ETH Price: $1,675.55 (+4.47%)

Contract

0xFb7cc10Ff990c06c87943a18Ac658F2439300D40

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint Batch Witho...66318042025-04-13 12:32:0823 hrs ago1744547528IN
0xFb7cc10F...439300D40
0.0006 ETH0.000021890.047
Mint Batch Witho...65601722025-04-12 16:02:3243 hrs ago1744473752IN
0xFb7cc10F...439300D40
0.0003 ETH0.000032870.04525
Mint Batch Witho...65558742025-04-12 14:47:5245 hrs ago1744469272IN
0xFb7cc10F...439300D40
0.0006 ETH0.00003030.047
Mint Batch Witho...65550132025-04-12 14:32:2945 hrs ago1744468349IN
0xFb7cc10F...439300D40
0.0006 ETH0.000023590.04525
Mint Batch Witho...65497622025-04-12 13:03:0746 hrs ago1744462987IN
0xFb7cc10F...439300D40
0.0003 ETH0.000013010.04525
Mint Batch Witho...65434922025-04-12 11:16:212 days ago1744456581IN
0xFb7cc10F...439300D40
0.0006 ETH0.000021080.04525
Mint Batch Witho...65047692025-04-12 0:13:522 days ago1744416832IN
0xFb7cc10F...439300D40
0.0003 ETH0.000016590.04525
Mint Batch Witho...64945462025-04-11 21:14:462 days ago1744406086IN
0xFb7cc10F...439300D40
0.0006 ETH0.000021530.046
Mint Batch Witho...64930132025-04-11 20:48:122 days ago1744404492IN
0xFb7cc10F...439300D40
0.0003 ETH0.000016770.04525
Mint Batch Witho...64901802025-04-11 19:59:092 days ago1744401549IN
0xFb7cc10F...439300D40
0.0006 ETH0.000016230.047
Mint Batch Witho...64901262025-04-11 19:58:152 days ago1744401495IN
0xFb7cc10F...439300D40
0.0009 ETH0.000026430.047
Mint Batch Witho...64886422025-04-11 19:31:482 days ago1744399908IN
0xFb7cc10F...439300D40
0.0003 ETH0.000018060.04525
Mint Batch Witho...64873552025-04-11 19:07:102 days ago1744398430IN
0xFb7cc10F...439300D40
0.0003 ETH0.000018290.046
Mint Batch Witho...64786502025-04-11 16:34:312 days ago1744389271IN
0xFb7cc10F...439300D40
0.0006 ETH0.000024570.04525
Mint Batch Witho...64728362025-04-11 14:54:092 days ago1744383249IN
0xFb7cc10F...439300D40
0.0009 ETH0.000055490.04525
Mint Batch Witho...64724352025-04-11 14:47:142 days ago1744382834IN
0xFb7cc10F...439300D40
0.0009 ETH0.000048340.047
Mint Batch Witho...64722002025-04-11 14:43:192 days ago1744382599IN
0xFb7cc10F...439300D40
0.0003 ETH0.000038980.04525
Mint Batch Witho...64721192025-04-11 14:41:472 days ago1744382507IN
0xFb7cc10F...439300D40
0.0003 ETH0.000012570.047
Mint Batch Witho...64719572025-04-11 14:39:052 days ago1744382345IN
0xFb7cc10F...439300D40
0.0003 ETH0.000031440.04525
Mint Batch Witho...62302562025-04-08 17:10:515 days ago1744132251IN0.0036 ETH0.000066030.04525
Mint Batch Witho...62065682025-04-08 10:25:426 days ago1744107942IN0.0009 ETH0.000025580.04525
Mint Batch Witho...61716712025-04-08 0:20:016 days ago1744071601IN0.0015 ETH0.000035010.047
Mint Batch Witho...61660582025-04-07 22:42:576 days ago1744065777IN0.0009 ETH0.000023840.04525
Mint Batch Witho...61576392025-04-07 20:18:016 days ago1744057081IN0.0006 ETH0.000019980.04525
Mint Batch Witho...61478832025-04-07 17:30:506 days ago1744047050IN0.0006 ETH0.000024760.04525
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
66318042025-04-13 12:32:0823 hrs ago1744547528
0xFb7cc10F...439300D40
0.0006 ETH
66318042025-04-13 12:32:0823 hrs ago1744547528
0xFb7cc10F...439300D40
 Contract Creation0 ETH
66318042025-04-13 12:32:0823 hrs ago1744547528
0xFb7cc10F...439300D40
0.0006 ETH
65601722025-04-12 16:02:3243 hrs ago1744473752
0xFb7cc10F...439300D40
0.0003 ETH
65601722025-04-12 16:02:3243 hrs ago1744473752
0xFb7cc10F...439300D40
 Contract Creation0 ETH
65601722025-04-12 16:02:3243 hrs ago1744473752
0xFb7cc10F...439300D40
0.0003 ETH
65558742025-04-12 14:47:5245 hrs ago1744469272
0xFb7cc10F...439300D40
0.0006 ETH
65558742025-04-12 14:47:5245 hrs ago1744469272
0xFb7cc10F...439300D40
 Contract Creation0 ETH
65558742025-04-12 14:47:5245 hrs ago1744469272
0xFb7cc10F...439300D40
0.0006 ETH
65550132025-04-12 14:32:2945 hrs ago1744468349
0xFb7cc10F...439300D40
0.0006 ETH
65550132025-04-12 14:32:2945 hrs ago1744468349
0xFb7cc10F...439300D40
 Contract Creation0 ETH
65550132025-04-12 14:32:2945 hrs ago1744468349
0xFb7cc10F...439300D40
0.0006 ETH
65497622025-04-12 13:03:0746 hrs ago1744462987
0xFb7cc10F...439300D40
0.0003 ETH
65497622025-04-12 13:03:0746 hrs ago1744462987
0xFb7cc10F...439300D40
 Contract Creation0 ETH
65497622025-04-12 13:03:0746 hrs ago1744462987
0xFb7cc10F...439300D40
0.0003 ETH
65434922025-04-12 11:16:212 days ago1744456581
0xFb7cc10F...439300D40
0.0006 ETH
65434922025-04-12 11:16:212 days ago1744456581
0xFb7cc10F...439300D40
 Contract Creation0 ETH
65434922025-04-12 11:16:212 days ago1744456581
0xFb7cc10F...439300D40
0.0006 ETH
65047692025-04-12 0:13:522 days ago1744416832
0xFb7cc10F...439300D40
0.0003 ETH
65047692025-04-12 0:13:522 days ago1744416832
0xFb7cc10F...439300D40
 Contract Creation0 ETH
65047692025-04-12 0:13:522 days ago1744416832
0xFb7cc10F...439300D40
0.0003 ETH
64945462025-04-11 21:14:462 days ago1744406086
0xFb7cc10F...439300D40
0.0006 ETH
64945462025-04-11 21:14:462 days ago1744406086
0xFb7cc10F...439300D40
 Contract Creation0 ETH
64945462025-04-11 21:14:462 days ago1744406086
0xFb7cc10F...439300D40
0.0006 ETH
64930132025-04-11 20:48:122 days ago1744404492
0xFb7cc10F...439300D40
0.0003 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UniversalMinter

Compiler Version
v0.8.25+commit.b61c2a91

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
cancun EvmVersion
File 1 of 10 : UniversalMinter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
import {IUniversalMinter} from "../interfaces/IUniversalMinter.sol";
import {IMinterAgent} from "../interfaces/IMinterAgent.sol";
import {Clones} from "./Clone.sol";
import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
import {IERC1155Receiver} from "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol";
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";


/// @title Universal Minter.
/// @notice Mints ERC721 or ERC1155 tokens on behalf of an account on any standard ER721 or ERC1155 contract. Optionally collects fees and rewards for a finder.
contract UniversalMinter is IUniversalMinter {
    /// @dev Default fee collects per token minted
    uint256 constant FEE_PER_TOKEN = 0.000222 ether;
    /// @dev Default reward finder collects per token minted
    uint256 constant FINDER_REWARD_PER_TOKEN = 0.000555 ether;
    /// @dev default fee collects per token minted when no finder is specified
    uint256 constant FEE_PER_TOKEN_WHEN_NO_FINDER = FEE_PER_TOKEN + FINDER_REWARD_PER_TOKEN;
    /// @dev Rewards allocated to addresses that can be withdran from later
    mapping(address => uint256) rewardAllocations;
    /// @dev How much has been withdrawn so far by each address
    mapping(address => uint256) withdrawn;

    /// @dev The address of the Protocol's fee recipient
    address public immutable feeRecipient;
    /// @dev The address of the minter agent implementation, which is cloned for each EOA
    address public immutable agentImpl;

    mapping(address => address) private _deployedAgents; 

    constructor(address _minterAgentImpl, address _feeRecipient) {
        feeRecipient = _feeRecipient;
        agentImpl = _minterAgentImpl;
    }

    /// Executes mint calls on a series of target ERC721 or ERC1155 contracts, then transfers the minted tokens to the calling account.
    /// Adds a mint fee to the msg.value sent to the contract.
    /// Assumes that the mint function for each target follows the ERC721 or ERC1155 standard for minting - which is that
    /// the a safe transfer is used to transfer tokens - and the corresponding safeTransfer callbacks on the receiving account are called AFTER minting the tokens.
    /// The value sent must include all the values to send to the minting contracts and the fees + reward amount.
    /// This can be determined by calling `fee`, and getting the requiredToSend parameter.
    /// @param _targets Addresses of contracts to call
    /// @param _calldatas Data to pass to the mint functions for each target
    /// @param _values Value to send to each target - must match the value required by the target's mint function.
    /// @param _tokensMinted Total number of tokens minted across all targets, used to calculate fees
    /// @param _finder Optional - address of finder that will receive a portion of the fees
    function mintBatch(
        address[] calldata _targets,
        bytes[] calldata _calldatas,
        uint256[] calldata _values,
        uint256 _tokensMinted,
        address _finder
    ) external payable {
        uint256 totalValue = _uncheckedSum(_values);

        // calculate fees
        (uint256 feeAmount, uint256 finderReward, uint256 totalWithFees) = fee(totalValue, _tokensMinted, _finder);

        emit MintedBatch(_targets, _values, _tokensMinted, _finder, msg.sender, totalWithFees, feeAmount, finderReward);

        // allocate the fees to the mint fee receiver and finder, which can be withdrawn against later.  Validates
        // that proper value has been sent.
        _allocateFeesAndRewards(feeAmount, finderReward, totalWithFees, _finder);

        _mintAll(msg.sender, totalValue, _targets, _calldatas, _values);
    }

    /// @notice Executes mint calls on a series of target ERC721 or ERC1155 contracts, then transfers the minted tokens to the calling account.
    /// Does not add a mint feee
    /// Assumes that the mint function for each target follows the ERC721 or ERC1155 standard for minting - which is that
    /// the a safe transfer is used to transfer tokens - and the corresponding safeTransfer callbacks on the receiving account are called AFTER minting the tokens.
    /// The value sent must equal the total values to send to the minting contracts.
    /// @param _targets Addresses of contracts to call
    /// @param _calldatas Data to pass to the mint functions for each target
    /// @param _values Value to send to each target - must match the value required by the target's mint function.
    function mintBatchWithoutFees(address[] calldata _targets, bytes[] calldata _calldatas, uint256[] calldata _values) external payable {
        uint256 totalValue = _uncheckedSum(_values);

        // make sure that enough value was sent to cover the fees + values needed to be sent to the contracts
        // Cannot realistically overflow
        if (totalValue != msg.value) {
            revert INSUFFICIENT_VALUE(totalValue, msg.value);
        }

        emit MintedBatch(_targets, _values, 0, address(0), msg.sender, 0, 0, 0);

        _mintAll(msg.sender, totalValue, _targets, _calldatas, _values);
    }

    /// Execute a mint call on a series a target ERC721 or ERC1155 contracts, then transfers the minted tokens to the calling account.
    /// Adds a mint fee to the msg.value sent to the contract.
    /// Assumes that the mint function for each target follows the ERC721 or ERC1155 standard for minting - which is that
    /// the a safe transfer is used to transfer tokens - and the corresponding safeTransfer callbacks on the receiving account are called AFTER minting the tokens.
    /// The value sent must include the value to send to the minting contract and the universal minter fee + finder reward amount.
    /// This can be determined by calling `fee`, and getting the requiredToSend parameter.
    /// @param _target Addresses of contract to call
    /// @param _calldata Data to pass to the mint function for the target
    /// @param _value Value to send to the target - must match the value required by the target's mint function.
    /// @param _tokensMinted Total number of tokens minted across all targets, used to calculate fees
    /// @param _finder Optional - address of finder that will receive a portion of the fees
    function mint(address _target, bytes calldata _calldata, uint256 _value, uint256 _tokensMinted, address _finder) external payable {
        IMinterAgent agent = _getOrCloneAgent(msg.sender);

        (uint256 feeAmount, uint256 finderReward, uint256 totalWithFees) = fee(_value, _tokensMinted, _finder);

        emit Minted(_target, _value, _tokensMinted, _finder, msg.sender, totalWithFees, feeAmount, finderReward);

        // allocate the fees to the mint fee receiver and rewards to the finder, which can be withdrawn against later
        _allocateFeesAndRewards(feeAmount, finderReward, totalWithFees, _finder);

        // mint the fokens for each target contract.  These will be transferred to the msg.caller.
        _mint(agent, _target, _calldata, _value);
    }

    /// Withdraws any fees that have been allocated to the caller's address to a specified address.
    /// @param to The address to withdraw to
    function withdraw(address to) external {
        uint256 feeAllocation = rewardAllocations[msg.sender];

        uint256 withdrawnSoFar = withdrawn[msg.sender];

        if (feeAllocation <= withdrawnSoFar) {
            revert NOTHING_TO_WITHDRAW();
        }

        uint256 toWithdraw = feeAllocation - withdrawnSoFar;

        withdrawn[msg.sender] = withdrawnSoFar + toWithdraw;

        _safeSend(toWithdraw, to);
    }

    /// Calculates the fees that will be collected for a given mint, based on the value and tokens minted.
    /// @param _mintValue Total value of the mint
    /// @param _tokensMinted Quantity of tokens minted
    /// @param _finderAddress Address of the finder, if any.  If the finder is the fee recipient, then the finder fee is 0.
    /// @return feeAmount The fee that will be allocated to the fee recipient
    /// @return finderReward The reward that will be allcoated to the finder
    /// @return requiredToSend The total value that must be sent to the contract, including fees
    function fee(
        uint256 _mintValue,
        uint256 _tokensMinted,
        address _finderAddress
    ) public view returns (uint256 feeAmount, uint256 finderReward, uint256 requiredToSend) {
        if (_finderAddress == address(0) || _finderAddress == feeRecipient) {
            unchecked {
                feeAmount = FEE_PER_TOKEN_WHEN_NO_FINDER * _tokensMinted;
                requiredToSend = feeAmount + _mintValue;
            }
        } else {
            unchecked {
                feeAmount = FEE_PER_TOKEN * _tokensMinted;
                finderReward = FINDER_REWARD_PER_TOKEN * _tokensMinted;
                requiredToSend = feeAmount + finderReward + _mintValue;
            }
        }
    }

    /// Has a minter agent execute a transaction on behalf of the calling acccount.  The minter
    /// agent's address will be the same for the calling account as the address that was
    /// used to mint the tokens.  Can be used to recover tokens that may get accidentally locked in
    /// the minter agent's contract address.
    /// @param _target Address of contract to call
    /// @param _calldata Calldata for arguments to call.
    function forwardCallFromAgent(address _target, bytes calldata _calldata, uint256 _additionalValue) external payable {
        IMinterAgent agent = _getOrCloneAgent(msg.sender);

        (bool success, bytes memory result) = agent.forwardCall{value: msg.value}(_target, _calldata, msg.value + _additionalValue);

        if (!success) {
            _handleForwardCallFail(result);
        }
    }

    /// @dev Unwraps a forward call failure to return the original error.  Useful
    /// for debugging failed minting calls.
    function _handleForwardCallFail(bytes memory result) private pure {
        // source: https://yos.io/2022/07/16/bubbling-up-errors-in-solidity/#:~:text=An%20inline%20assembly%20block%20is,object%20is%20returned%20in%20result%20.
        // if no error message, revert with generic error
        if (result.length == 0) {
            revert FORWARD_CALL_FAILED();
        }
        assembly {
            // We use Yul's revert() to bubble up errors from the target contract.
            revert(add(32, result), mload(result))
        }
    }

    /// Gets the deterministic address of the MinterAgent clone that gets created for a given recipient.
    /// @param recipient The account that the agent is cloned on behalf of.
    function agentAddress(address recipient) public view returns (address) {
        return Clones.predictDeterministicAddress(agentImpl, _agentSalt(recipient));
    }

    /// Creates a clone of an agent contract, which mints tokens on behalf of the msg.sender.  If a clone has already been created
    /// for that account, returns it.  Clone address is deterministic based on the recipient's address.
    /// Sends all tokens received as a result of minting to the recipient.
    /// @param callingAccount the account to receive tokens minted by this cloned agent.
    /// @return agent the created agent
    function _getOrCloneAgent(address callingAccount) private returns (IMinterAgent agent) {
        address targetAddress = agentAddress(callingAccount);
        
        if (_deployedAgents[targetAddress] != address(0)) {
            return IMinterAgent(_deployedAgents[targetAddress]);
        }

        address cloneAddress = Clones.cloneDeterministic(agentImpl, _agentSalt(callingAccount));
        require(cloneAddress != address(0), "Clone deployment failed");
        
        agent = IMinterAgent(cloneAddress);
        agent.initialize(address(this), callingAccount);
        _deployedAgents[targetAddress] = cloneAddress;

        return agent;
    }

    /// @dev Unique salt generated from an address for a callingAccount that a MinterAgent is create for.
    function _agentSalt(address callingAccount) private pure returns (bytes32) {
        return bytes32(uint256(uint160(callingAccount)) << 96);
    }

    function _mint(IMinterAgent _agent, address _target, bytes calldata _calldata, uint256 _value) private {
        (bool success, bytes memory result) = _agent.forwardCall{value: _value}(_target, _calldata, _value);

        if (!success) {
            _handleForwardCallFail(result);
        }
    }

    /// @dev Iterates through minting calls and calls them each via a IMinterAgent.
    function _mintAll(
        address callingAccount,
        uint256 totalValueToSend,
        address[] calldata _targets,
        bytes[] calldata _calldatas,
        uint256[] calldata _values
    ) private {
        IMinterAgent _agent = _getOrCloneAgent(callingAccount);

        (bool success, bytes memory result) = _agent.forwardCallBatch{value: totalValueToSend}(_targets, _calldatas, _values);

        if (!success) {
            _handleForwardCallFail(result);
        }
    }

    /// Allocates fees and rewards which can be withdrawn against later.
    /// Validates that the proper value has been sent by the calling account.
    function _allocateFeesAndRewards(uint256 feeAmount, uint256 finderReward, uint256 requiredToBeSent, address finder) private {
        // make sure that the correct amount was sent
        if (requiredToBeSent != msg.value) {
            revert INSUFFICIENT_VALUE(requiredToBeSent, msg.value);
        }

        rewardAllocations[feeRecipient] += feeAmount;
        if (finderReward > 0) {
            rewardAllocations[finder] += finderReward;
        }
    }

    function _safeSend(uint256 amount, address to) private {
        (bool success, ) = to.call{value: amount}("");

        if (!success) revert FAILED_TO_SEND();
    }

    function _uncheckedSum(uint256[] calldata _values) private pure returns (uint256 totalValue) {
        unchecked {
            for (uint256 i = 0; i < _values.length; i++) {
                totalValue += _values[i];
            }
        }
    }
}

File 2 of 10 : IUniversalMinter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;


/// @title Universal Minter
/// @notice Mints ERC721 or ERC1155 tokens on behalf of an account on any standard ER721 or ERC1155 contract. Optionally collects fees and rewards for a finder.
interface IUniversalMinter {
    error MINT_EXECUTION_FAILED();
    error NOTHING_TO_WITHDRAW();
    error FORWARD_CALL_FAILED();
    error FAILED_TO_SEND();
    error INSUFFICIENT_VALUE(uint256 expectedValue, uint256 actualValue);

    event MintedBatch(
        address[] indexed targets,
        uint256[] values,
        uint256 tokensMinted,
        address finder,
        address indexed minter,
        uint256 indexed totalWithFees,
        uint256 fee,
        uint256 finderFee
    );

    event Minted(
        address indexed target,
        uint256 value,
        uint256 tokensMinted,
        address finder,
        address indexed minter,
        uint256 indexed totalWithFees,
        uint256 fee,
        uint256 finderFee
    );

    enum MintableTypes {
        NONE,
        ERC721,
        ERC1155,
        ERC1155_BATCH
    }

    /// Executes mint calls on a series of target ERC721 or ERC1155 contracts, then transfers the minted tokens to the calling account.
    /// Adds a mint fee to the msg.value sent to the contract.
    /// Assumes that the mint function for each target follows the ERC721 or ERC1155 standard for minting - which is that
    /// the a safe transfer is used to transfer tokens - and the corresponding safeTransfer callbacks on the receiving account are called AFTER minting the tokens.
    /// The value sent must include all the values to send to the minting contracts and the fees + reward amount.
    /// This can be determined by calling `fee`, and getting the requiredToSend parameter.
    /// @param _targets Addresses of contracts to call
    /// @param _calldatas Data to pass to the mint functions for each target
    /// @param _values Value to send to each target - must match the value required by the target's mint function.
    /// @param _tokensMinted Total number of tokens minted across all targets, used to calculate fees
    /// @param _finder Optional - address of finder that will receive a portion of the fees
    function mintBatch(
        address[] calldata _targets,
        bytes[] calldata _calldatas,
        uint256[] calldata _values,
        uint256 _tokensMinted,
        address _finder
    ) external payable;

    /// @notice Executes mint calls on a series of target ERC721 or ERC1155 contracts, then transfers the minted tokens to the calling account.
    /// Does not add a mint feee
    /// Assumes that the mint function for each target follows the ERC721 or ERC1155 standard for minting - which is that
    /// the a safe transfer is used to transfer tokens - and the corresponding safeTransfer callbacks on the receiving account are called AFTER minting the tokens.
    /// The value sent must equal the total values to send to the minting contracts.
    /// @param _targets Addresses of contracts to call
    /// @param _calldatas Data to pass to the mint functions for each target
    /// @param _values Value to send to each target - must match the value required by the target's mint function.
    function mintBatchWithoutFees(address[] calldata _targets, bytes[] calldata _calldatas, uint256[] calldata _values) external payable;

    /// Execute a mint call on a series a target ERC721 or ERC1155 contracts, then transfers the minted tokens to the calling account.
    /// Adds a mint fee to the msg.value sent to the contract.
    /// Assumes that the mint function for each target follows the ERC721 or ERC1155 standard for minting - which is that
    /// the a safe transfer is used to transfer tokens - and the corresponding safeTransfer callbacks on the receiving account are called AFTER minting the tokens.
    /// The value sent must include the value to send to the minting contract and the universal minter fee + finder reward amount.
    /// This can be determined by calling `fee`, and getting the requiredToSend parameter.
    /// @param _target Addresses of contract to call
    /// @param _calldata Data to pass to the mint function for the target
    /// @param _value Value to send to the target - must match the value required by the target's mint function.
    /// @param _tokensMinted Total number of tokens minted across all targets, used to calculate fees
    /// @param _finder Optional - address of finder that will receive a portion of the fees
    function mint(address _target, bytes calldata _calldata, uint256 _value, uint256 _tokensMinted, address _finder) external payable;

    /// Has a minter agent execute a transaction on behalf of the calling acccount.  The minter
    /// agent's address will be the same for the calling account as the address that was
    /// used to mint the tokens.  Can be used to recover tokens that may get accidentally locked in
    /// the minter agent's contract address.
    /// @param _target Address of contract to call
    /// @param _calldata Calldata for arguments to call.
    function forwardCallFromAgent(address _target, bytes calldata _calldata, uint256 _additionalValue) external payable;

    /// Withdraws any fees or rewards that have been allocated to the caller's address.  Fees can be withdrawn to any other specified address.
    /// @param to The address to withdraw to
    function withdraw(address to) external;

    /// Calculates the fees that will be collected for a given mint, based on the value and tokens minted.
    /// @param _mintValue Total value of the mint that is to be sent to external minting contracts
    /// @param _tokensMinted Quantity of tokens minted
    /// @param _finderAddress Address of the finder, if any.  If the finder is the fee recipient, then the finder fee is 0.
    /// @return fee The fee that will be sent to the fee recipient
    /// @return finderReward The fee that will be sent to the finder
    /// @return requiredToSend The total value that must be sent to the contract, including fees
    function fee(
        uint256 _mintValue,
        uint256 _tokensMinted,
        address _finderAddress
    ) external view returns (uint256 fee, uint256 finderReward, uint256 requiredToSend);

    /// Gets the deterministic address of the MinterAgent clone that gets created for a given recipient.
    /// @param recipient The account that the agent is cloned on behalf of.
    function agentAddress(address recipient) external view returns (address);
}

File 3 of 10 : IMinterAgent.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;

interface IMinterAgent {
    error ALREADY_INITIALIZED(address);
    error ONLY_OWNER();
    error ARRAY_LENGTH_MISMATCH();

    function initialize(address _owner, address _receiver) external;

    function isInitialized() external view returns (bool);

    function forwardCall(address _target, bytes calldata _cd, uint256 _value) external payable returns (bool success, bytes memory data);

    function forwardCallBatch(
        address[] calldata _targets,
        bytes[] calldata _calldatas,
        uint256[] calldata _values
    ) external payable returns (bool success, bytes memory data);
}

File 4 of 10 : Clone.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (proxy/Clones.sol)
pragma solidity ^0.8.0;

import {Proxy} from "./Proxy.sol";

/**
 * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
 * deploying minimal proxy contracts, also known as "clones".
 *
 * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
 * > a minimal bytecode implementation that delegates all calls to a known, fixed address.
 *
 * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
 * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
 * deterministic method.
 *
 * Modified for ZKSync Era compatibility.
 */
library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     * 
     * This function uses the create opcode, optimized for ZKSync.
     * The deployment is done using explicit bytecode generation to ensure compatibility.
     */
    function clone(address implementation) internal returns (address instance) {
        // Append constructor parameters to creation code
        bytes memory bytecode = abi.encodePacked(
            type(Proxy).creationCode,
            abi.encode(implementation)  // Constructor parameters
        );
        
        /// @solidity memory-safe-assembly
        assembly {
            instance := create(0, add(bytecode, 0x20), mload(bytecode))
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     *
     * Modified to use ZKSync's deployment mechanism.
     */
        /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        // Use the implementation address as constructor parameter
        bytes memory bytecode = abi.encodePacked(
            type(Proxy).creationCode,
            abi.encode(implementation)  // Constructor parameters
        );
        
        /// @solidity memory-safe-assembly
        assembly {
            instance := create2(0, add(bytecode, 0x20), mload(bytecode), salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     * Modified to use ZKSync's address derivation scheme.
     *
     * The address is computed using ZKSync's specific CREATE2 formula which includes:
     * - A special prefix ("zksyncCreate2")
     * - The deployer address
     * - The salt
     * - The bytecode hash
     * - The constructor input hash
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        // Generate the creation code including constructor parameters
        bytes memory bytecode = abi.encodePacked(
            type(Proxy).creationCode,
            abi.encode(implementation)  // Constructor parameters
        );
        
        bytes32 bytecodeHash = keccak256(bytecode);
        bytes32 constructorInputHash = keccak256("");  // Empty constructor input since it's included in bytecode
        
        bytes32 prefix = keccak256(bytes("zksyncCreate2"));
        bytes32 senderBytes = bytes32(uint256(uint160(deployer)));
        
        bytes32 data = keccak256(
            abi.encodePacked(prefix, senderBytes, salt, bytecodeHash, constructorInputHash)
        );
        
        predicted = address(uint160(uint256(data)));
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     * Uses the current contract as the deployer.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt
    ) internal view returns (address predicted) {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

File 5 of 10 : IERC1155.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC1155/IERC1155.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155 is IERC165 {
    /**
     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the amount of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(
        address[] calldata accounts,
        uint256[] calldata ids
    ) external view returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

File 6 of 10 : IERC721.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(address from, address to, uint256 tokenId) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721
     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must
     * understand this adds an external call which potentially creates a reentrancy vulnerability.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 tokenId) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);
}

File 7 of 10 : IERC1155Receiver.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev _Available since v3.1._
 */
interface IERC1155Receiver is IERC165 {
    /**
     * @dev Handles the receipt of a single ERC1155 token type. This function is
     * called at the end of a `safeTransferFrom` after the balance has been updated.
     *
     * NOTE: To accept the transfer, this must return
     * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
     * (i.e. 0xf23a6e61, or its own function selector).
     *
     * @param operator The address which initiated the transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param id The ID of the token being transferred
     * @param value The amount of tokens being transferred
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed
     */
    function onERC1155Received(
        address operator,
        address from,
        uint256 id,
        uint256 value,
        bytes calldata data
    ) external returns (bytes4);

    /**
     * @dev Handles the receipt of a multiple ERC1155 token types. This function
     * is called at the end of a `safeBatchTransferFrom` after the balances have
     * been updated.
     *
     * NOTE: To accept the transfer(s), this must return
     * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
     * (i.e. 0xbc197c81, or its own function selector).
     *
     * @param operator The address which initiated the batch transfer (i.e. msg.sender)
     * @param from The address which previously owned the token
     * @param ids An array containing ids of each token being transferred (order and length must match values array)
     * @param values An array containing amounts of each token being transferred (order and length must match ids array)
     * @param data Additional data with no specified format
     * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed
     */
    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata values,
        bytes calldata data
    ) external returns (bytes4);
}

File 8 of 10 : IERC721Receiver.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)

pragma solidity ^0.8.0;

/**
 * @title ERC721 token receiver interface
 * @dev Interface for any contract that wants to support safeTransfers
 * from ERC721 asset contracts.
 */
interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

File 9 of 10 : Proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/**
 * @title Minimal Proxy Contract
 * @dev Enhanced proxy implementation compatible with EIP-1967
 */
contract Proxy {
    // EIP-1967 storage slots
    bytes32 private constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;

    constructor(address _impl) {
        require(_impl != address(0), "Invalid implementation");
    
        assembly {
            sstore(IMPLEMENTATION_SLOT, _impl)
        }
    }

    /**
     * @dev Receive function to accept ETH
     */
    receive() external payable {
        _fallback();
    }

    /**
     * @dev Fallback function for all other calls
     */
    fallback() external payable {
        _fallback();
    }

    /**
     * @dev Returns the current implementation address
     */
    function _implementation() internal view returns (address impl) {
        assembly {
            impl := sload(IMPLEMENTATION_SLOT)
        }
    }

    /**
     * @dev Core delegation function
     */
    function _fallback() internal {
        address _impl = _implementation();
        require(_impl != address(0), "Implementation not set");

        assembly {
            // The pointer to the free memory slot
            let ptr := mload(0x40)
            // Copy function signature and arguments from calldata
            calldatacopy(ptr, 0, calldatasize())
            // Delegate call to the implementation contract
            let result := delegatecall(gas(), _impl, ptr, calldatasize(), 0, 0)
            // Get the size of the last return data
            let size := returndatasize()
            // Copy the return data
            returndatacopy(ptr, 0, size)
            
            switch result
            case 0 {
                revert(ptr, size)
            }
            default {
                return(ptr, size)
            }
        }
    }
}

File 10 of 10 : IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev 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}.
 */
interface IERC165 {
    /**
     * @dev 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.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

Settings
{
  "viaIR": true,
  "codegen": "yul",
  "remappings": [
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "erc721a-upgradeable/=lib/ERC721A-Upgradeable/contracts/",
    "forge-std/=lib/forge-std/src/",
    "ERC721A-Upgradeable/=lib/ERC721A-Upgradeable/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/"
  ],
  "evmVersion": "cancun",
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "detectMissingLibraries": false,
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_minterAgentImpl","type":"address"},{"internalType":"address","name":"_feeRecipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FAILED_TO_SEND","type":"error"},{"inputs":[],"name":"FORWARD_CALL_FAILED","type":"error"},{"inputs":[{"internalType":"uint256","name":"expectedValue","type":"uint256"},{"internalType":"uint256","name":"actualValue","type":"uint256"}],"name":"INSUFFICIENT_VALUE","type":"error"},{"inputs":[],"name":"MINT_EXECUTION_FAILED","type":"error"},{"inputs":[],"name":"NOTHING_TO_WITHDRAW","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":false,"internalType":"address","name":"finder","type":"address"},{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"uint256","name":"totalWithFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finderFee","type":"uint256"}],"name":"Minted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address[]","name":"targets","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":false,"internalType":"address","name":"finder","type":"address"},{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"uint256","name":"totalWithFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finderFee","type":"uint256"}],"name":"MintedBatch","type":"event"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"agentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"agentImpl","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintValue","type":"uint256"},{"internalType":"uint256","name":"_tokensMinted","type":"uint256"},{"internalType":"address","name":"_finderAddress","type":"address"}],"name":"fee","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"finderReward","type":"uint256"},{"internalType":"uint256","name":"requiredToSend","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"},{"internalType":"uint256","name":"_additionalValue","type":"uint256"}],"name":"forwardCallFromAgent","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"uint256","name":"_tokensMinted","type":"uint256"},{"internalType":"address","name":"_finder","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bytes[]","name":"_calldatas","type":"bytes[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"},{"internalType":"uint256","name":"_tokensMinted","type":"uint256"},{"internalType":"address","name":"_finder","type":"address"}],"name":"mintBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bytes[]","name":"_calldatas","type":"bytes[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"mintBatchWithoutFees","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

9c4d535b0000000000000000000000000000000000000000000000000000000000000000010003f36aa82bdf5c0572ef36a0c0154f3c58ac59f9130fbd165e4a9273645800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000b76713f80c040395e7cf3b9cc484757e7f88dde800000000000000000000000095f07f2269f61da823f55c84bafc06113157653a

Deployed Bytecode

0x000400000000000200130000000000020000006004100270000003ac0340019700030000003103550002000000010355000003ac0040019d0000000100200190000000330000c13d0000008002000039000000400020043f000000040030008c0000070f0000413d000000000401043b000000e004400270000003b10040009c000000650000a13d000003b20040009c000000c10000a13d000003b30040009c000001940000613d000003b40040009c000003150000613d000003b50040009c0000070f0000c13d000000640030008c0000070f0000413d0000000002000416000000000002004b0000070f0000c13d0000004402100370000000000302043b000003af0030009c0000070f0000213d0000000402100370000000000402043b0000002401100370000000000201043b00000000010400190eaa083e0000040f000000400400043d00000020054000390000000000250435000000400240003900000000003204350000000000140435000003ac0040009c000003ac040080410000004001400210000003bd011001c700000eab0001042e0000000002000416000000000002004b0000070f0000c13d0000001f02300039000003ad02200197000000c002200039000000400020043f0000001f0430018f000003ae05300198000000c002500039000000440000613d000000c006000039000000000701034f000000007807043c0000000006860436000000000026004b000000400000c13d000000000004004b000000510000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000400030008c0000070f0000413d000000c00100043d000003af0010009c0000070f0000213d000000e00200043d000003af0020009c0000070f0000213d000000800020043f000000a00010043f0000014000000443000001600020044300000020020000390000018000200443000001a000100443000001000020044300000002010000390000012000100443000003b00100004100000eab0001042e000003b80040009c0000007c0000213d000003bb0040009c000001340000613d000003bc0040009c0000070f0000c13d000000240030008c0000070f0000413d0000000002000416000000000002004b0000070f0000c13d0000000401100370000000000101043b000003af0010009c0000070f0000213d0eaa074b0000040f000000400200043d0000000000120435000003ac0020009c000003ac020080410000004001200210000003e9011001c700000eab0001042e000003b90040009c000001890000613d000003ba0040009c0000070f0000c13d000000240030008c0000070f0000413d0000000002000416000000000002004b0000070f0000c13d0000000401100370000000000101043b000f00000001001d000003af0010009c0000070f0000213d0000000001000411000000000010043f000000200000043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000101041a000e00000001001d0000000101000039000d00000001001d000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000101041a0000000e0110006b000003260000a13d000c00000001001d0000000001000411000003af01100197000000000010043f0000000101000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b0000000e02000029000000000021041b00000000010004140000000f04000029000000040040008c000003420000c13d00000001010000310000034f0000013d000003b60040009c0000026a0000613d000003b70040009c0000070f0000c13d000000a40030008c0000070f0000413d0000000402100370000000000202043b000f00000002001d000003af0020009c0000070f0000213d0000002402100370000000000202043b000003c00020009c0000070f0000213d0000002304200039000000000034004b0000070f0000813d0000000404200039000000000441034f000000000404043b000e00000004001d000003c00040009c0000070f0000213d0000002404200039000d00000004001d0000000e02400029000000000032004b0000070f0000213d0000006402100370000000000202043b000b00000002001d0000004402100370000000000202043b000a00000002001d0000008401100370000000000101043b000c00000001001d000003af0010009c0000070f0000213d0000014001000039000000400010043f0000008401000039000000800010043f000003ca01000041000000c40010043f000003be01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f00000001002001900000068a0000613d000000000101043b000003af01100197000001600010043f0000002001000039000001400010043f0000018001000039000000400010043f000000800100043d000003ed031001980000001f0210018f000001110000613d00000180042001bf00000080052001bf0000000006340019000000000735001900000000070704330000000000760435000000200330008c0000010b0000c13d000000000002004b0000011d0000613d0000000302200210000001a00300043d00000000032301cf000000000323022f0000010002200089000000a00400043d000000000424022f00000000022401cf000000000232019f000001a00020043f000001a0031000390000000000030435000001400200043d000003ed052001970000001f0420018f000001610030008c0000040f0000413d000000000005004b0000012f0000613d000000000743001900000140064001bf000000200770008a0000000008570019000000000956001900000000090904330000000000980435000000200550008c000001290000c13d000000000004004b000004250000613d000001600500003900000000060300190000041b0000013d000000640030008c0000070f0000413d0000000402100370000000000202043b000f00000002001d000003af0020009c0000070f0000213d0000002402100370000000000202043b000003c00020009c0000070f0000213d0000002304200039000000000034004b0000070f0000813d000d00040020003d0000000d01100360000000000101043b000e00000001001d000003c00010009c0000070f0000213d0000000e012000290000002401100039000000000031004b0000070f0000213d00000000010004110eaa08640000040f00000002040003670000004402400370000000000202043b0000000003000416000000000023001a000007450000413d000000400d00043d0000002405d0003900000060060000390000000000650435000003dc0500004100000000055d0436000c00000005001d0000000405d000390000000f0600002900000000006504350000006405d000390000000e0e0000290000000000e504350000000d050000290000002005500039000000000754034f000000200c00008a0000000008ce01700000001f09e0018f0000008405d000390000000006850019000001700000613d000000000407034f000000000a050019000000004b04043c000000000aba043600000000006a004b0000016c0000c13d000003af041001970000000001230019000000000009004b0000017f0000613d000000000287034f0000000307900210000000000806043300000000087801cf000000000878022f000000000202043b0000010007700089000000000272022f00000000027201cf000000000282019f00000000002604350000000002e5001900000000000204350000004402d0003900000000001204350000000001000414000000040040008c0000032e0000c13d000000030100036700000001030000310000038b0000013d0000000001000416000000000001004b0000070f0000c13d0000000001000412001300000001001d001200000000003d000080050100003900000044030000390000000004000415000000130440008a0000031f0000013d000000a40030008c0000070f0000413d0000000402100370000000000202043b000003c00020009c0000070f0000213d0000002304200039000000000034004b0000070f0000813d0000000404200039000000000441034f000000000504043b000003c00050009c0000070f0000213d000f00240020003d00000005025002100000000f02200029000000000032004b0000070f0000213d0000002402100370000000000202043b000003c00020009c0000070f0000213d0000002304200039000000000034004b0000070f0000813d0000000404200039000000000441034f000000000404043b000e00000004001d000003c00040009c0000070f0000213d000d00240020003d0000000e0200002900000005022002100000000d02200029000000000032004b0000070f0000213d0000004402100370000000000202043b000003c00020009c0000070f0000213d0000002304200039000000000034004b0000070f0000813d000b00040020003d0000000b04100360000000000404043b000c00000004001d000003c00040009c0000070f0000213d00000024042000390000000c020000290000000502200210000a00000004001d000900000002001d0000000002420019000000000032004b0000070f0000213d0000006402100370000000000202043b000700000002001d0000008402100370000000000202043b000800000002001d000003af0020009c0000070f0000213d000600000005001d0000000c04000029000000000004004b00000000060000190000000a05000029000001e70000613d0000000002000019000000000600001900000005032002100000000003530019000000000331034f000000000303043b00000000066300190000000102200039000000000042004b000001df0000413d000400000006001d0000000801000029000503af0010019c000001fd0000613d000003be0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f00000001002001900000068a0000613d000000000101043b000003af01100197000000050010006b000004d70000c13d0000000701000029000003c2011000d1000200000000001d000300000001001d000100000001001d000000400100043d0000000607000029000000000007004b0000000002010019000002140000613d000000020300036700000000040000190000000f050000290000000002010019000000000653034f000000000606043b000003af0060009c0000070f0000213d000000000262043600000020055000390000000104400039000000000074004b0000020b0000413d0000000002120049000003ac0020009c000003ac020080410000006002200210000003ac0010009c000003ac010080410000004001100210000000000112019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003c5011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000501043b000000400100043d000000a0021000390000000c030000290000000000320435000000a0020000390000000002210436000003c60030009c0000070f0000213d00000009040000290000001f0340018f000000000004004b0000023c0000613d000000c00410003900000009064000290000000b0700002900000020077000390000000207700367000000007807043c0000000004840436000000000064004b000002380000c13d0000000106000029000b00040060002d000000000003004b00000080031000390000000204000029000000000043043500000060031000390000000304000029000000000043043500000040031000390000000504000029000000000043043500000007030000290000000000320435000003ac0010009c000003ac0100804100000040011002100000000902000029000003c70020009c000003c7020080410000006002200210000000000112019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003c80110009a0000800d0200003900000004030000390000000006000411000003c9040000410000000b070000290eaa0ea00000040f00000001002001900000070f0000613d000000030100002900000002020000290000000b0300002900000008040000290eaa0e300000040f000000000100041100000004020000290000000f0300002900000006040000290000030e0000013d000000640030008c0000070f0000413d0000000404100370000000000404043b000003c00040009c0000070f0000213d0000002305400039000000000035004b0000070f0000813d0000000405400039000000000551034f000000000605043b000003c00060009c0000070f0000213d000f00240040003d00000005046002100000000f04400029000000000034004b0000070f0000213d0000002404100370000000000404043b000003c00040009c0000070f0000213d0000002305400039000000000035004b0000070f0000813d0000000405400039000000000551034f000000000505043b000e00000005001d000003c00050009c0000070f0000213d000d00240040003d0000000e0400002900000005044002100000000d04400029000000000034004b0000070f0000213d0000004404100370000000000404043b000003c00040009c0000070f0000213d0000002305400039000000000035004b0000070f0000813d000b00040040003d0000000b05100360000000000505043b000c00000005001d000003c00050009c0000070f0000213d00000024054000390000000c040000290000000504400210000a00000005001d000900000004001d0000000004540019000000000034004b0000070f0000213d000800000006001d0000000c06000029000000000006004b00000000030000190000000a07000029000002b50000613d0000000004000019000000000300001900000005054002100000000005750019000000000551034f000000000505043b00000000033500190000000104400039000000000064004b000002ad0000413d0000000004000416000000000043004b000004700000c13d000000080000006b0000000003000019000002c90000613d00000000030000190000000f0400002900000008060000290000000005020019000000000241034f000000000202043b000003af0020009c0000070f0000213d000000000225043600000020044000390000000103300039000000000063004b000002be0000413d000000600350008a000003ac0030009c000003ac0300804100000060013002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003e5011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000501043b000000400100043d000000a0021000390000000c030000290000000000320435000000a0020000390000000002210436000003c60030009c0000070f0000213d00000009040000290000001f0340018f000000000004004b000002ec0000613d000000c00410003900000009064000290000000b0700002900000020077000390000000207700367000000007807043c0000000004840436000000000064004b000002e80000c13d000000000003004b0000008003100039000000000003043500000060031000390000000000030435000000400310003900000000000304350000000000020435000003ac0010009c000003ac0100804100000040011002100000000902000029000003c70020009c000003c7020080410000006002200210000000000112019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003c80110009a0000800d0200003900000004030000390000000006000411000003c90400004100000000070000190eaa0ea00000040f000000010020019000000008040000290000070f0000613d000000000100041100000000020004160000000f030000290000000d050000290000000e060000290000000a070000290000000c080000290eaa0a9f0000040f000000000100001900000eab0001042e0000000001000416000000000001004b0000070f0000c13d0000000001000412001100000001001d001000200000003d000080050100003900000044030000390000000004000415000000110440008a0000000504400210000003be020000410eaa0e870000040f000003af01100197000000800010043f000003bf0100004100000eab0001042e000000400100043d000003e6020000410000000000210435000003ac0010009c000003ac010080410000004001100210000003e7011001c700000eac000104300000001f02e000390000000002c2016f000003dd0020009c000003dd020080410000006002200210000003ac00d0009c000f0000000d001d000003ac0500004100000000050d40190000004005500210000000000252019f000003ac0010009c000003ac01008041000000c001100210000000000112019f000003de0110009a000000000003004b0000037f0000c13d0000000002040019000003820000013d000003ac0010009c000003ac01008041000000c001100210000003c5011001c700008009020000390000000c0300002900000000050000190eaa0ea00000040f000d00000002001d00030000000103550000006001100270000103ac0010019d000003ac01100197000000000001004b000003560000c13d0000000d0100002900000001001001900000040c0000613d000000000100001900000eab0001042e000003c00010009c0000046a0000213d0000001f03100039000003ed033001970000003f03300039000003ed04300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000003c00040009c0000046a0000213d00000001005001900000046a0000c13d000000400040043f0000000005130436000003ed021001980000001f0310018f00000000012500190000000304000367000003710000613d000000000604034f000000006706043c0000000005750436000000000015004b0000036d0000c13d000000000003004b000003510000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000003510000013d000003c5011001c7000080090200003900000000050000190eaa0ea00000040f00030000000103550000006003100270000103ac0030019d000003ac033001970000000100200190000003ee0000613d000000200c00008a0000000f0d0000290000000004c301700000001f0530018f00000000024d0019000003950000613d000000000601034f00000000070d0019000000006806043c0000000007870436000000000027004b000003910000c13d000000000005004b000003a20000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f013000390000000002c1016f0000000001d20019000000000021004b00000000020000390000000102004039000003c00010009c0000046a0000213d00000001002001900000046a0000c13d000000400010043f000003df0030009c0000070f0000213d000000400030008c0000070f0000413d00000000020d0433000000000002004b0000000004000039000000010400c039000000000042004b0000070f0000c13d0000000c040000290000000004040433000003c00040009c0000070f0000213d0000000006d300190000000003d400190000001f04300039000000000064004b0000000005000019000003e005008041000003e004400197000003e007600197000000000874013f000000000074004b0000000004000019000003e004004041000003e00080009c000000000405c019000000000004004b0000070f0000c13d0000000053030434000003c00030009c0000046a0000213d0000001f043000390000000004c4016f0000003f044000390000000004c4016f0000000004140019000003c00040009c0000046a0000213d000000400040043f00000000043104360000000007530019000000000067004b0000070f0000213d0000000007c3016f0000001f0630018f000000000045004b000004dc0000813d000000000007004b000003ea0000613d00000000096500190000000008640019000000200880008a000000200990008a000000000a780019000000000b790019000000000b0b04330000000000ba0435000000200770008c000003e40000c13d000000000006004b000004f20000613d0000000008040019000004e80000013d0000001f0530018f000003ae06300198000000400200043d0000000004620019000003f90000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003f50000c13d000000000005004b000004060000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000003ac0020009c000003ac020080410000004002200210000000000112019f00000eac00010430000000400100043d000003e802000041000003280000013d0000000006530019000000000005004b000004180000613d0000016007000039000000000803001900000000790704340000000008980436000000000068004b000004140000c13d000000000004004b000004250000613d00000160055000390000000304400210000000000706043300000000074701cf000000000747022f00000000050504330000010004400089000000000545022f00000000044501cf000000000474019f000000000046043500000000033200190000000000030435000001610330008a000003ed033001970000000001120019000001800010043f000003cb0030009c0000046a0000213d0000018002300039000000400020043f000003ac0010009c000003ac0100804100000060011002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003cc011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000900000001001d000000400100043d000003cd0010009c0000046a0000213d0000004002100039000000400020043f0000000d020000390000000001210436000003ce020000410000000000210435000003ac0010009c000003ac0100804100000040011002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003cf011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d0000000005000411000000000301043b000000400100043d000000a002100039000003d004000041000000000042043500000080021000390000000904000029000000000042043500000060045002100000006002100039000900000004001d000000000042043500000040021000390000000004000410000000000042043500000020021000390000000000320435000000a0030000390000000000310435000003d10010009c000004770000a13d000003eb01000041000000000010043f0000004101000039000000040010043f000003ec0100004100000eac00010430000003db01000041000000800010043f000000840030043f0000000001000416000000a40010043f000003e40100004100000eac00010430000000c003100039000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000003af01100197000800000001001d000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000101041a000003af00100198000004fc0000c13d000003be01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f00000001002001900000068a0000613d000000400200043d000003d10020009c0000046a0000213d000000000301043b000000c001200039000000400010043f0000004401200039000003ca04000041000000000041043500000084010000390000000005120436000000400100043d00000020040000390000000004410436000003af033001970000000000340435000003cd0010009c0000046a0000213d0000004003100039000000400030043f0000000006020433000003ed086001970000001f0760018f0000006002100039000000000025004b000005cd0000813d000000000008004b000004d30000613d000000000a7500190000000009720019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c000004cd0000c13d000000000007004b000005e30000613d0000000009020019000005d90000013d0000000701000029000103c2001000d5000203c3001000d5000303c4001000d5000002020000013d0000000008740019000000000007004b000004e50000613d0000000009050019000000000a040019000000009b090434000000000aba043600000000008a004b000004e10000c13d000000000006004b000004f20000613d00000000057500190000000306600210000000000708043300000000076701cf000000000767022f00000000050504330000010006600089000000000565022f00000000056501cf000000000575019f000000000058043500000000034300190000000000030435000000000002004b000003540000c13d0000000001010433000000000001004b000005b30000c13d000000400100043d000003ea02000041000003280000013d0000000801000029000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000101041a000703af0010019b0000000c0000006b000005200000613d000003be0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f00000001002001900000068a0000613d000000000101043b000003af011001970000000c0010006b000005c80000c13d0000000b01000029000003c2011000d1000800000000001d000900000001001d000000400200043d00000080032000390000000804000029000000000043043500000060032000390000000904000029000000000043043500000040032000390000000c04000029000000000043043500000020032000390000000b0400002900000000004304350000000a0300002900000000003204350000000007310019000003ac0020009c000003ac0200804100000040012002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003d9011001c70000800d020000390000000403000039000003da040000410000000f050000290000000006000411000b00000007001d0eaa0ea00000040f00000001002001900000070f0000613d00000000010004160000000b0010006c000005bb0000c13d000003be0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f00000001002001900000068a0000613d000000000101043b000003af01100197000000000010043f000000200000043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000201041a000000090020002a000007450000413d0000000902200029000000000021041b000000080000006b0000057e0000613d0000000c01000029000000000010043f000000200000043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000201041a000000080020002a000007450000413d0000000802200029000000000021041b000000400500043d000000240150003900000060020000390000000000210435000003dc010000410000000001150436000c00000001001d00000004015000390000000f02000029000000000021043500000064015000390000000e020000290000000000210435000003ed032001980000001f0420018f000f00000005001d000000840150003900000000023100190000000d050000290000000205500367000005990000613d000000000605034f0000000007010019000000006806043c0000000007870436000000000027004b000005950000c13d000000000004004b000005a60000613d000000000335034f0000000304400210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003204350000000e0110002900000000000104350000000f0100002900000044011000390000000a02000029000000000021043500000000010004140000000702000029000000040020008c0000069f0000c13d00000003010003670000000103000031000006bf0000013d000003ac0040009c000003ac040080410000004002400210000003ac0010009c000003ac010080410000006001100210000000000121019f00000eac00010430000000400200043d00000024032000390000000000130435000003db01000041000000000012043500000004012000390000000b030000290000000000310435000003ac0020009c000003ac020080410000004001200210000003d7011001c700000eac000104300000000b02000029000003c2012000d1000803c3002000d5000903c4002000d5000005240000013d0000000009820019000000000008004b000005d60000613d000000000a050019000000000b02001900000000ac0a0434000000000bcb043600000000009b004b000005d20000c13d000000000007004b000005e30000613d00000000058500190000000307700210000000000809043300000000087801cf000000000878022f00000000050504330000010007700089000000000575022f00000000057501cf000000000585019f0000000000590435000000000526001900000000000504350000000006010433000003ed086001970000001f0760018f000000000054004b000005fa0000813d000000000008004b000005f60000613d000000000a7400190000000009750019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c000005f00000c13d000000000007004b000006100000613d0000000009050019000006060000013d0000000009850019000000000008004b000006030000613d000000000a040019000000000b05001900000000ac0a0434000000000bcb043600000000009b004b000005ff0000c13d000000000007004b000006100000613d00000000048400190000000307700210000000000809043300000000087801cf000000000878022f00000000040404330000010007700089000000000474022f00000000047401cf000000000484019f0000000000490435000000000456001900000000000404350000000004340049000000200540008a00000000005304350000001f04400039000003ed054001970000000004350019000000000054004b00000000050000390000000105004039000003c00040009c0000046a0000213d00000001005001900000046a0000c13d000000400040043f00000000030304330000000004000414000003d3050000410000000000520435000000c405100039000000840630008a0000000000650435000000a40510003900000060060000390000000000650435000000640110003900000009050000290000000000510435000003ac0020009c000003ac020080410000004001200210000003ac0030009c000003ac030080410000006002300210000000000112019f000003ac0040009c000003ac04008041000000c002400210000000000112019f000003c5011001c700008006020000390eaa0ea00000040f00000001002001900000068b0000613d000000000101043b000703af0010019c0000068e0000613d000003d4010000410000000000100443000000070100002900000004001004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003d5011001c700008002020000390eaa0ea50000040f00000001002001900000068a0000613d000000000101043b000000000001004b0000070f0000613d0000000001000411000003af01100197000000400300043d00000024023000390000000000120435000003d60100004100000000001304350000000001000410000003af01100197000900000003001d0000000402300039000000000012043500000000010004140000000702000029000000040020008c000006700000613d0000000902000029000003ac0020009c000003ac020080410000004002200210000003ac0010009c000003ac01008041000000c001100210000000000121019f000003d7011001c700000007020000290eaa0ea00000040f0000006003100270000103ac0030019d000300000001035500000001002001900000071d0000613d0000000901000029000003c00010009c0000046a0000213d0000000901000029000000400010043f0000000801000029000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000070f0000613d000000000101043b000000000201041a000003d80220019700000007022001af000000000021041b0000000c0000006b0000050e0000c13d000005200000013d000000000001042f00030000000103550000006001100270000103ac0010019d000000400100043d0000004402100039000003e1030000410000000000320435000000240210003900000017030000390000000000320435000003e2020000410000000000210435000000040210003900000020030000390000000000320435000003ac0010009c000003ac010080410000004001100210000003e3011001c700000eac000104300000000e020000290000001f02200039000003ed02200197000003dd0020009c000003dd0200804100000060022002100000000f03000029000003ac0030009c000003ac030080410000004003300210000000000232019f000003ac0010009c000003ac01008041000000c001100210000000000112019f000003de0110009a0000000a0000006b000006b30000c13d0000000702000029000006b80000013d000003c5011001c700008009020000390000000a03000029000000070400002900000000050000190eaa0ea00000040f00030000000103550000006003100270000103ac0030019d000003ac033001970000000100200190000007110000613d000003ed043001980000001f0530018f0000000f02400029000006c90000613d000000000601034f0000000f07000029000000006806043c0000000007870436000000000027004b000006c50000c13d000000000005004b000006d60000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f01300039000003ed021001970000000f01200029000000000021004b00000000020000390000000102004039000003c00010009c0000046a0000213d00000001002001900000046a0000c13d000000400010043f000003df0030009c0000070f0000213d000000400030008c0000070f0000413d0000000f020000290000000002020433000000000002004b0000000004000039000000010400c039000000000042004b0000070f0000c13d0000000c040000290000000004040433000003c00040009c0000070f0000213d0000000f063000290000000f034000290000001f04300039000000000064004b0000000005000019000003e005008041000003e004400197000003e007600197000000000874013f000000000074004b0000000004000019000003e004004041000003e00080009c000000000405c019000000000004004b0000070f0000c13d0000000053030434000003c00030009c0000046a0000213d0000001f04300039000003ed044001970000003f04400039000003ed044001970000000004140019000003c00040009c0000046a0000213d000000400040043f00000000043104360000000007530019000000000067004b0000072a0000a13d000000000100001900000eac000104300000001f0530018f000003ae06300198000000400200043d0000000004620019000003f90000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007180000c13d000003f90000013d000003ac033001970000001f0530018f000003ae06300198000000400200043d0000000004620019000003f90000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007250000c13d000003f90000013d000003ed073001970000001f0630018f000000000045004b0000073b0000813d000000000007004b000003ea0000613d00000000096500190000000008640019000000200880008a000000200990008a000000000a780019000000000b790019000000000b0b04330000000000ba0435000000200770008c000007340000c13d000003ea0000013d0000000008740019000000000007004b000004e50000613d0000000009050019000000000a040019000000009b090434000000000aba043600000000008a004b000007400000c13d000004e50000013d000003eb01000041000000000010043f0000001101000039000000040010043f000003ec0100004100000eac000104300004000000000002000100000001001d000000400300043d000003ee0030009c000008350000813d000000c001300039000000400010043f0000004401300039000003ca0200004100000000002104350000008401000039000400000003001d0000000001130436000200000001001d000000400100043d000300000001001d000003be01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f00000001002001900000083d0000613d000000000101043b000000030c000029000000200200003900000000042c0436000003af011001970000000000140435000003cd00c0009c0000000402000029000008350000213d0000004001c00039000000400010043f0000000005020433000003ed075001970000001f0650018f0000006002c00039000000020d00002900000000002d004b0000078c0000813d000000000007004b000007880000613d00000000096d00190000000008620019000000200880008a000000200990008a000000000a780019000000000b790019000000000b0b04330000000000ba0435000000200770008c000007820000c13d000000000006004b000007a20000613d0000000008020019000007980000013d0000000008720019000000000007004b000007950000613d00000000090d0019000000000a020019000000009b090434000000000aba043600000000008a004b000007910000c13d000000000006004b000007a20000613d000000000d7d00190000000306600210000000000708043300000000076701cf000000000767022f00000000090d04330000010006600089000000000969022f00000000066901cf000000000676019f00000000006804350000000005250019000000000005043500000000060c0433000003ed086001970000001f0760018f000000000054004b000007b90000813d000000000008004b000007b50000613d000000000a7400190000000009750019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c000007af0000c13d000000000007004b000007cf0000613d0000000009050019000007c50000013d0000000009850019000000000008004b000007c20000613d000000000a040019000000000b05001900000000ac0a0434000000000bcb043600000000009b004b000007be0000c13d000000000007004b000007cf0000613d00000000048400190000000307700210000000000809043300000000087801cf000000000878022f00000000040404330000010007700089000000000474022f00000000047401cf000000000484019f0000000000490435000000000456001900000000000404350000000004140049000000200540008a00000000005104350000001f04400039000003ed044001970000000003140019000000000043004b00000000040000390000000104004039000003c00030009c000008350000213d0000000100400190000008350000c13d000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f00000001002001900000083b0000613d000000000101043b000400000001001d000000400100043d000003cd0010009c000008350000213d0000004002100039000000400020043f0000000d020000390000000001210436000003ce020000410000000000210435000003ac0010009c000003ac0100804100000040011002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003cf011001c700008010020000390eaa0ea50000040f00000001002001900000083b0000613d000000000301043b000000400100043d000000a002100039000003d0040000410000000000420435000000800210003900000004040000290000000000420435000000010200002900000060022002100000006004100039000000000024043500000040021000390000000004000410000000000042043500000020021000390000000000320435000000a0030000390000000000310435000003d10010009c000008350000213d000000c003100039000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f00000001002001900000083b0000613d000000000101043b000003af01100197000000000001042d000003eb01000041000000000010043f0000004101000039000000040010043f000003ec0100004100000eac00010430000000000100001900000eac00010430000000000001042f000300000000000200000000050200190000000004010019000003af013001980000085a0000613d000100000001001d000200000005001d000300000004001d000003be0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f0000000100200190000008630000613d000000000101043b000003af01100197000000010010006b000000030400002900000002050000290000085e0000c13d000003c2015000d100000000020000190000000003410019000000000001042d000003c2035000d1000003c3025000d1000003c4015000d10000000003430019000000000001042d000000000001042f0004000000000002000400000001001d000000400300043d000003ee0030009c00000a630000813d000000c001300039000000400010043f0000004401300039000003ca0200004100000000002104350000008401000039000300000003001d0000000001130436000100000001001d000000400100043d000200000001001d000003be01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f000000010020019000000a6b0000613d000000000101043b000000020b000029000000200200003900000000032b0436000003af011001970000000000130435000003cd00b0009c000000030200002900000a630000213d0000004001b00039000000400010043f0000000004020433000003ed064001970000001f0540018f0000006002b00039000000010d00002900000000002d004b000008a50000813d000000000006004b000008a10000613d00000000085d00190000000007520019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c0000089b0000c13d000000000005004b000008bb0000613d0000000007020019000008b10000013d0000000007620019000000000006004b000008ae0000613d00000000080d00190000000009020019000000008a0804340000000009a90436000000000079004b000008aa0000c13d000000000005004b000008bb0000613d000000000d6d00190000000305500210000000000607043300000000065601cf000000000656022f00000000080d04330000010005500089000000000858022f00000000055801cf000000000565019f00000000005704350000000004240019000000000004043500000000050b0433000003ed075001970000001f0650018f000000000043004b000008d20000813d000000000007004b000008ce0000613d00000000096300190000000008640019000000200880008a000000200990008a000000000a780019000000000b790019000000000b0b04330000000000ba0435000000200770008c000008c80000c13d000000000006004b000008e80000613d0000000008040019000008de0000013d0000000008740019000000000007004b000008db0000613d0000000009030019000000000a040019000000009b090434000000000aba043600000000008a004b000008d70000c13d000000000006004b000008e80000613d00000000037300190000000306600210000000000708043300000000076701cf000000000767022f00000000030304330000010006600089000000000363022f00000000036301cf000000000373019f0000000000380435000000000345001900000000000304350000000003130049000000200430008a00000000004104350000001f03300039000003ed043001970000000003140019000000000043004b00000000040000390000000104004039000003c00030009c00000a630000213d000000010040019000000a630000c13d000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f000000010020019000000a690000613d000000000101043b000300000001001d000000400100043d000003cd0010009c00000a630000213d0000004002100039000000400020043f0000000d020000390000000001210436000003ce020000410000000000210435000003ac0010009c000003ac0100804100000040011002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003cf011001c700008010020000390eaa0ea50000040f000000010020019000000a690000613d000000000301043b000000400100043d000000a002100039000003d0040000410000000000420435000000800210003900000003040000290000000000420435000000040200002900000060042002100000006002100039000200000004001d000000000042043500000040021000390000000004000410000000000042043500000020021000390000000000320435000000a0030000390000000000310435000003d10010009c00000a630000213d000000c003100039000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f000000010020019000000a690000613d000000000101043b000003af01100197000300000001001d000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f000000010020019000000a690000613d000000000101043b000000000101041a000003af001001980000002002000039000009710000613d0000000301000029000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f000000010020019000000a690000613d000000000101043b000000000101041a000003af01100197000000000001042d000003be0100004100000000001004430000000001000412000000040010044300000024002004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f000000010020019000000a6b0000613d000000400200043d000003d10020009c00000a630000213d000000000301043b000000c001200039000000400010043f0000004401200039000003ca04000041000000000041043500000084010000390000000005120436000000400100043d00000020040000390000000004410436000003af033001970000000000340435000003cd0010009c00000a630000213d0000004003100039000000400030043f0000000006020433000003ed086001970000001f0760018f0000006002100039000000000025004b000009a90000813d000000000008004b000009a50000613d000000000a7500190000000009720019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c0000099f0000c13d000000000007004b000009bf0000613d0000000009020019000009b50000013d0000000009820019000000000008004b000009b20000613d000000000a050019000000000b02001900000000ac0a0434000000000bcb043600000000009b004b000009ae0000c13d000000000007004b000009bf0000613d00000000058500190000000307700210000000000809043300000000087801cf000000000878022f00000000050504330000010007700089000000000575022f00000000057501cf000000000585019f0000000000590435000000000526001900000000000504350000000006010433000003ed086001970000001f0760018f000000000054004b000009d60000813d000000000008004b000009d20000613d000000000a7400190000000009750019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c000009cc0000c13d000000000007004b000009ec0000613d0000000009050019000009e20000013d0000000009850019000000000008004b000009df0000613d000000000a040019000000000b05001900000000ac0a0434000000000bcb043600000000009b004b000009db0000c13d000000000007004b000009ec0000613d00000000048400190000000307700210000000000809043300000000087801cf000000000878022f00000000040404330000010007700089000000000474022f00000000047401cf000000000484019f0000000000490435000000000456001900000000000404350000000004340049000000200540008a00000000005304350000001f04400039000003ed054001970000000004350019000000000054004b00000000050000390000000105004039000003c00040009c00000a630000213d000000010050019000000a630000c13d000000400040043f00000000030304330000000004000414000003d3050000410000000000520435000000c405100039000000840630008a0000000000650435000000a40510003900000060060000390000000000650435000000640110003900000002050000290000000000510435000003ac0020009c000003ac020080410000004001200210000003ac0030009c000003ac030080410000006002300210000000000112019f000003ac0040009c000003ac04008041000000c002400210000000000112019f000003c5011001c700008006020000390eaa0ea00000040f000000010020019000000a6c0000613d000000000101043b000003af0210019800000a6f0000613d000003d4010000410000000000100443000200000002001d00000004002004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003d5011001c700008002020000390eaa0ea50000040f000000010020019000000a6b0000613d000000000101043b000000000001004b00000a690000613d0000000401000029000003af01100197000000400400043d00000024024000390000000000120435000003d60100004100000000001404350000000001000410000003af011001970000000402400039000000000012043500000000010004140000000202000029000000040020008c00000a4c0000613d000003ac0040009c000003ac0300004100000000030440190000004003300210000003ac0010009c000003ac01008041000000c001100210000000000131019f000003d7011001c7000400000004001d0eaa0ea00000040f00000004040000290000006003100270000103ac0030019d0003000000010355000000010020019000000a800000613d000003c00040009c00000a630000213d000000400040043f0000000301000029000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f000000010020019000000a690000613d000000000301043b000000000203041a000003d8022001970000000201000029000000000212019f000000000023041b000000000001042d000003eb01000041000000000010043f0000004101000039000000040010043f000003ec0100004100000eac00010430000000000100001900000eac00010430000000000001042f00030000000103550000006001100270000103ac0010019d000000400100043d0000004402100039000003e1030000410000000000320435000000240210003900000017030000390000000000320435000003e2020000410000000000210435000000040210003900000020030000390000000000320435000003ac0010009c000003ac010080410000004001100210000003e3011001c700000eac00010430000003ac033001970000001f0530018f000003ae06300198000000400200043d000000000462001900000a8c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000a880000c13d000000000005004b00000a990000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000003ac0020009c000003ac020080410000004002200210000000000112019f00000eac00010430000b000000000002000700000008001d000200000007001d000b00000006001d000a00000005001d000400000004001d000300000003001d000100000002001d000900000001001d000000400300043d000003ee0030009c00000dd70000813d000000c001300039000000400010043f0000004401300039000003ca0200004100000000002104350000008401000039000800000003001d0000000001130436000500000001001d000000400100043d000600000001001d000003be01000041000000000010044300000000010004120000000400100443000000200100003900000024001004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f000000010020019000000ddd0000613d000000000101043b000000060b000029000000200200003900000000032b0436000003af011001970000000000130435000003cd00b0009c000000080200002900000dd70000213d0000004001b00039000000400010043f0000000004020433000003ed064001970000001f0540018f0000006002b00039000000050c00002900000000002c004b00000ae70000813d000000000006004b00000ae30000613d00000000085c00190000000007520019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c00000add0000c13d000000000005004b00000afd0000613d000000000702001900000af30000013d0000000007620019000000000006004b00000af00000613d00000000080c00190000000009020019000000008a0804340000000009a90436000000000079004b00000aec0000c13d000000000005004b00000afd0000613d000000000c6c00190000000305500210000000000607043300000000065601cf000000000656022f00000000080c04330000010005500089000000000858022f00000000055801cf000000000565019f00000000005704350000000004240019000000000004043500000000050b0433000003ed075001970000001f0650018f000000000043004b00000b140000813d000000000007004b00000b100000613d00000000096300190000000008640019000000200880008a000000200990008a000000000a780019000000000b790019000000000b0b04330000000000ba0435000000200770008c00000b0a0000c13d000000000006004b00000b2a0000613d000000000804001900000b200000013d0000000008740019000000000007004b00000b1d0000613d0000000009030019000000000a040019000000009b090434000000000aba043600000000008a004b00000b190000c13d000000000006004b00000b2a0000613d00000000037300190000000306600210000000000708043300000000076701cf000000000767022f00000000030304330000010006600089000000000363022f00000000036301cf000000000373019f0000000000380435000000000345001900000000000304350000000003130049000000200430008a00000000004104350000001f03300039000003ed043001970000000003140019000000000043004b00000000040000390000000104004039000003c00030009c00000dd70000213d000000010040019000000dd70000c13d000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f000000010020019000000dd50000613d000000000101043b000800000001001d000000400100043d000003cd0010009c00000dd70000213d0000004002100039000000400020043f0000000d020000390000000001210436000003ce020000410000000000210435000003ac0010009c000003ac0100804100000040011002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000121019f000003cf011001c700008010020000390eaa0ea50000040f000000010020019000000dd50000613d000000000301043b000000400100043d000000a002100039000003d0040000410000000000420435000000800210003900000008040000290000000000420435000000090200002900000060042002100000006002100039000600000004001d000000000042043500000040021000390000000004000410000000000042043500000020021000390000000000320435000000a0030000390000000000310435000003d10010009c00000dd70000213d000000c003100039000000400030043f000003ac0020009c000003ac0200804100000040022002100000000001010433000003ac0010009c000003ac010080410000006001100210000000000121019f0000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003c5011001c700008010020000390eaa0ea50000040f000000010020019000000dd50000613d000000000101043b000003af01100197000800000001001d000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f000000010020019000000dd50000613d000000000101043b000000000101041a000003af00100198000000200200003900000bb50000613d0000000801000029000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000000405000029000000030600002900000dd50000613d000000000101043b000000000101041a000603af0010019b00000ca70000013d000003be0100004100000000001004430000000001000412000000040010044300000024002004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f000000010020019000000ddd0000613d000000400200043d000003d10020009c00000dd70000213d000000000301043b000000c001200039000000400010043f0000004401200039000003ca04000041000000000041043500000084010000390000000005120436000000400100043d00000020040000390000000004410436000003af033001970000000000340435000003cd0010009c00000dd70000213d0000004003100039000000400030043f0000000006020433000003ed086001970000001f0760018f0000006002100039000000000025004b00000bed0000813d000000000008004b00000be90000613d000000000a7500190000000009720019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c00000be30000c13d000000000007004b00000c030000613d000000000902001900000bf90000013d0000000009820019000000000008004b00000bf60000613d000000000a050019000000000b02001900000000ac0a0434000000000bcb043600000000009b004b00000bf20000c13d000000000007004b00000c030000613d00000000058500190000000307700210000000000809043300000000087801cf000000000878022f00000000050504330000010007700089000000000575022f00000000057501cf000000000585019f0000000000590435000000000526001900000000000504350000000006010433000003ed086001970000001f0760018f000000000054004b00000c1a0000813d000000000008004b00000c160000613d000000000a7400190000000009750019000000200990008a000000200aa0008a000000000b890019000000000c8a0019000000000c0c04330000000000cb0435000000200880008c00000c100000c13d000000000007004b00000c300000613d000000000905001900000c260000013d0000000009850019000000000008004b00000c230000613d000000000a040019000000000b05001900000000ac0a0434000000000bcb043600000000009b004b00000c1f0000c13d000000000007004b00000c300000613d00000000048400190000000307700210000000000809043300000000087801cf000000000878022f00000000040404330000010007700089000000000474022f00000000047401cf000000000484019f0000000000490435000000000456001900000000000404350000000004340049000000200540008a00000000005304350000001f04400039000003ed054001970000000004350019000000000054004b00000000050000390000000105004039000003c00040009c00000dd70000213d000000010050019000000dd70000c13d000000400040043f00000000030304330000000004000414000003d3050000410000000000520435000000c405100039000000840630008a0000000000650435000000a40510003900000060060000390000000000650435000000640110003900000006050000290000000000510435000003ac0020009c000003ac020080410000004001200210000003ac0030009c000003ac030080410000006002300210000000000112019f000003ac0040009c000003ac04008041000000c002400210000000000112019f000003c5011001c700008006020000390eaa0ea00000040f000000010020019000000dfd0000613d000000000101043b000003af0210019800000e000000613d000003d4010000410000000000100443000600000002001d00000004002004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003d5011001c700008002020000390eaa0ea50000040f000000010020019000000ddd0000613d000000000101043b000000000001004b00000dd50000613d0000000901000029000003af01100197000000400400043d00000024024000390000000000120435000003d60100004100000000001404350000000001000410000003af011001970000000402400039000000000012043500000000010004140000000602000029000000040020008c00000c900000613d000003ac0040009c000003ac0300004100000000030440190000004003300210000003ac0010009c000003ac01008041000000c001100210000000000131019f000003d7011001c7000900000004001d0eaa0ea00000040f00000009040000290000006003100270000103ac0030019d0003000000010355000000010020019000000e110000613d000003c00040009c00000dd70000213d000000400040043f0000000801000029000000000010043f0000000201000039000000200010043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f00000001002001900000000405000029000000030600002900000dd50000613d000000000101043b000000000201041a000003d80220019700000006022001af000000000021041b000000400300043d000003ef010000410000000001130436000500000001001d00000004013000390000006002000039000000000021043500000064013000390000000000510435000800000003001d0000008401300039000000000005004b00000cbf0000613d00000002020003670000000003000019000000000462034f000000000404043b000003af0040009c00000dd50000213d000000000141043600000020066000390000000103300039000000000053004b00000cb60000413d00000008030000290000000002310049000000040220008a000000240330003900000000002304350000000b030000290000000000310435000000050230021000000000021200190000002009200039000000000003004b00000d1c0000613d0000000a080000290009000000000035000000000480007900000002030003670000001f0440008a000003e0054001970000000006000019000000000701001900000cdd0000013d0000001f02a00039000003ed02200197000000000a9a001900000000000a04350000000009920019000000200880003900000001066000390000000b0060006c00000d1c0000813d000000000a190049000000200aa0008a00000020077000390000000000a70435000000000a83034f000000000a0a043b000003e00ba00197000000000c5b013f00000000005b004b000000000b000019000003e00b00204100000000004a004b000000000d000019000003e00d004041000003e000c0009c000000000b0dc01900000000000b004b00000dd50000613d0000000a0ba00029000000000ab3034f000000000a0a043b000003c000a0009c00000dd50000213d000000200bb00039000000090ca000690000000000cb004b000000000d000019000003e00d002041000003e00cc00197000003e00eb00197000000000fce013f0000000000ce004b000000000c000019000003e00c004041000003e000f0009c000000000c0dc01900000000000c004b00000dd50000c13d000000000cb3034f0000000009a90436000003ed0da00198000000000bd9001900000d0e0000613d000000000e0c034f000000000f09001900000000e20e043c000000000f2f04360000000000bf004b00000d0a0000c13d0000001f0ea0019000000cd40000613d0000000002dc034f000000030ce00210000000000d0b0433000000000dcd01cf000000000dcd022f000000000202043b000001000cc000890000000002c2022f0000000002c201cf0000000002d2019f00000000002b043500000cd40000013d00000008020000290000000001290049000000040110008a0000004402200039000000000012043500000007020000290000000001290436000003c60020009c00000dd50000213d0000000702000029000000050220021200000d300000613d0000000203000029000000020330036700000000042100190000000005010019000000003603043c0000000005650436000000000045004b00000d2c0000c13d000000010000008b00000000030004140000000604000029000000040040008c00000d380000c13d0000000301000367000000010300003100000d560000013d000000080500002900000000025200490000000001120019000003ac0010009c000003ac010080410000006001100210000003ac0050009c000003ac0200004100000000020540190000004002200210000000000121019f000003ac0030009c000003ac03008041000000c002300210000000000112019f0000000103000029000000000003004b00000d4e0000613d000003c5011001c70000800902000039000000000500001900000d4f0000013d00000000020400190eaa0ea00000040f00030000000103550000006003100270000103ac0030019d000003ac03300197000000010020019000000de90000613d000003ed043001980000001f0530018f000000080240002900000d600000613d000000000601034f0000000807000029000000006806043c0000000007870436000000000027004b00000d5c0000c13d000000000005004b00000d6d0000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f01300039000003ed021001970000000801200029000000000021004b00000000020000390000000102004039000003c00010009c00000dd70000213d000000010020019000000dd70000c13d000000400010043f000003df0030009c00000dd50000213d000000400030008c00000dd50000413d00000008020000290000000002020433000000000002004b0000000004000039000000010400c039000000000042004b00000dd50000c13d00000005040000290000000004040433000003c00040009c00000dd50000213d000000080630002900000008034000290000001f04300039000000000064004b0000000005000019000003e005008041000003e004400197000003e007600197000000000874013f000000000074004b0000000004000019000003e004004041000003e00080009c000000000405c019000000000004004b00000dd50000c13d0000000053030434000003c00030009c00000dd70000213d0000001f04300039000003ed044001970000003f04400039000003ed044001970000000004140019000003c00040009c00000dd70000213d000000400040043f00000000043104360000000007530019000000000067004b00000dd50000213d000003ed073001970000001f0630018f000000000045004b00000dba0000813d000000000007004b00000db60000613d00000000096500190000000008640019000000200880008a000000200990008a000000000a780019000000000b790019000000000b0b04330000000000ba0435000000200770008c00000db00000c13d000000000006004b00000dd00000613d000000000804001900000dc60000013d0000000008740019000000000007004b00000dc30000613d0000000009050019000000000a040019000000009b090434000000000aba043600000000008a004b00000dbf0000c13d000000000006004b00000dd00000613d00000000057500190000000306600210000000000708043300000000076701cf000000000767022f00000000050504330000010006600089000000000565022f00000000056501cf000000000575019f000000000058043500000000033400190000000000030435000000000002004b00000dde0000613d000000000001042d000000000100001900000eac00010430000003eb01000041000000000010043f0000004101000039000000040010043f000003ec0100004100000eac00010430000000000001042f0000000001010433000000000001004b00000df50000c13d000000400100043d000003ea020000410000000000210435000003ac0010009c000003ac010080410000004001100210000003e7011001c700000eac000104300000001f0530018f000003ae06300198000000400200043d000000000462001900000e1d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000df00000c13d00000e1d0000013d000003ac0040009c000003ac040080410000004002400210000003ac0010009c000003ac010080410000006001100210000000000121019f00000eac0001043000030000000103550000006001100270000103ac0010019d000000400100043d0000004402100039000003e1030000410000000000320435000000240210003900000017030000390000000000320435000003e2020000410000000000210435000000040210003900000020030000390000000000320435000003ac0010009c000003ac010080410000004001100210000003e3011001c700000eac00010430000003ac033001970000001f0530018f000003ae06300198000000400200043d000000000462001900000e1d0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000e190000c13d000000000005004b00000e2a0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000003ac0020009c000003ac020080410000004002200210000000000112019f00000eac000104300003000000000002000100000004001d000300000002001d000200000001001d0000000001000416000000000031004b00000e730000c13d000003be0100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000003ac0010009c000003ac01008041000000c001100210000003c1011001c700008005020000390eaa0ea50000040f000000010020019000000e7f0000613d000000000101043b000003af01100197000000000010043f000000200000043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f000000010020019000000e710000613d000000000101043b000000000201041a0000000204000029000000000042001a000000030300002900000e800000413d0000000002420019000000000021041b000000000003004b00000e700000613d0000000101000029000003af01100197000000000010043f000000200000043f0000000001000414000003ac0010009c000003ac01008041000000c001100210000003d2011001c700008010020000390eaa0ea50000040f000000010020019000000e710000613d000000000101043b000000000201041a0000000303000029000000000032001a00000e800000413d0000000002320019000000000021041b000000000001042d000000000100001900000eac00010430000000400200043d00000024042000390000000000140435000003db01000041000000000012043500000004012000390000000000310435000003ac0020009c000003ac020080410000004001200210000003d7011001c700000eac00010430000000000001042f000003eb01000041000000000010043f0000001101000039000000040010043f000003ec0100004100000eac00010430000000000001042f00000000050100190000000000200443000000040100003900000005024002700000000002020031000000000121043a0000002004400039000000000031004b00000e8a0000413d000003ac0030009c000003ac0300804100000060013002100000000002000414000003ac0020009c000003ac02008041000000c002200210000000000112019f000003f0011001c700000000020500190eaa0ea50000040f000000010020019000000e9f0000613d000000000101043b000000000001042d000000000001042f00000ea3002104210000000102000039000000000001042d0000000002000019000000000001042d00000ea8002104230000000102000039000000000001042d0000000002000019000000000001042d00000eaa0000043200000eab0001042e00000eac0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff00000002000000000000000000000000000000c0000001000000000000000000000000000000000000000000000000000000000000000000000000007c1e206700000000000000000000000000000000000000000000000000000000d58b576800000000000000000000000000000000000000000000000000000000d58b576900000000000000000000000000000000000000000000000000000000e84d442000000000000000000000000000000000000000000000000000000000fdca7099000000000000000000000000000000000000000000000000000000007c1e206800000000000000000000000000000000000000000000000000000000842210eb000000000000000000000000000000000000000000000000000000004690483f00000000000000000000000000000000000000000000000000000000469048400000000000000000000000000000000000000000000000000000000051cff8d9000000000000000000000000000000000000000000000000000000002013446e00000000000000000000000000000000000000000000000000000000302deb140000000000000000000000000000000000000060000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0000000000000000000000000000000000000020000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000002000000000000000000000000000000440000000000000000000000000000000000000000000000000000000000000000000000000002c2ad68fd90000000000000000000000000000000000000000000000000000001f8c501d9b0000000000000000000000000000000000000000000000000000000c9e86723e000020000000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000ffffff3ffdffffffffffffffffffffffffffffffffffff40000000000000000000000000e36a6f34ea83c6d542aa5154762f4212ebd322e41ecc55b97420d93904a24dcc01000047279f3135d1d02e07c85d3acfc66ac14d76dc55c31f51ce3f8bb0ea2c000000000000000000000000000000000000000000000000fffffffffffffe7f0200000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000000ffffffffffffffbf7a6b73796e634372656174653200000000000000000000000000000000000000020000000000000000000000000000000000000d000000000000000000000000c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000000000000000000000000000ffffffffffffff3f02000000000000000000000000000000000000400000000000000000000000003cda33511d41a8a5431b1770c5bc0ddd62e1cd30555d16659b89c0d60f4f9f571806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000485cc955000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000a0000000000000000000000000878da9a7ef8f595dd108643e1793e86cb8b04e90410fb000bb83a070309ff75a028ebaf000000000000000000000000000000000000000000000000000000000c0951d6b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff7bffffffffffffffffffffffffffffffffffffff7c0000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000455243313136373a2063726561746532206661696c656400000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000004400000080000000000000000002000000000000000000000000000000000000000000008000000000000000006c01d14c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000381f9583000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000ded9a23b000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff408363da7200000000000000000000000000000000000000000000000000000000020000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d7f9a1eb6c9aa819cfc868db168d2ddb24b7f55d18e9609403ee101ff25b67a

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b76713f80c040395e7cf3b9cc484757e7f88dde800000000000000000000000095f07f2269f61da823f55c84bafc06113157653a

-----Decoded View---------------
Arg [0] : _minterAgentImpl (address): 0xb76713F80c040395E7cf3b9Cc484757e7f88dDe8
Arg [1] : _feeRecipient (address): 0x95f07f2269F61Da823f55c84BAFC06113157653A

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b76713f80c040395e7cf3b9cc484757e7f88dde8
Arg [1] : 00000000000000000000000095f07f2269f61da823f55c84bafc06113157653a


Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.