ETH Price: $2,924.29 (-2.68%)
Gas: 1 Gwei

Contract

0x5fA9Ab75E6eeacB685C06194CAe0134D0c894A74
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Withdraw Tokens202204202024-07-02 17:48:355 days ago1719942515IN
0x5fA9Ab75...D0c894A74
0 ETH0.00028794.59259104
Withdraw Tokens201899442024-06-28 11:40:119 days ago1719574811IN
0x5fA9Ab75...D0c894A74
0 ETH0.000343454.30464718
Withdraw Tokens201839682024-06-27 15:37:5910 days ago1719502679IN
0x5fA9Ab75...D0c894A74
0 ETH0.0009994415.94316079
Withdraw Tokens201786202024-06-26 21:43:3511 days ago1719438215IN
0x5fA9Ab75...D0c894A74
0 ETH0.000278434.44155922
Withdraw Tokens201784742024-06-26 21:14:2311 days ago1719436463IN
0x5fA9Ab75...D0c894A74
0 ETH0.000461457.36113911
Withdraw Tokens201781842024-06-26 20:15:5911 days ago1719432959IN
0x5fA9Ab75...D0c894A74
0 ETH0.0008063910.1066629
Withdraw Tokens201697442024-06-25 15:58:4712 days ago1719331127IN
0x5fA9Ab75...D0c894A74
0 ETH0.0007424611.8437844
Withdraw Tokens201695182024-06-25 15:13:2312 days ago1719328403IN
0x5fA9Ab75...D0c894A74
0 ETH0.0010376413.0050198
Withdraw Tokens201284672024-06-19 21:27:3518 days ago1718832455IN
0x5fA9Ab75...D0c894A74
0 ETH0.0012194115.28312545
Withdraw Tokens200987272024-06-15 17:36:4722 days ago1718473007IN
0x5fA9Ab75...D0c894A74
0 ETH0.0006423410.24669388
Withdraw Tokens200840762024-06-13 16:24:3524 days ago1718295875IN
0x5fA9Ab75...D0c894A74
0 ETH0.0018063228.81455751
Withdraw Tokens200813252024-06-13 7:10:3525 days ago1718262635IN
0x5fA9Ab75...D0c894A74
0 ETH0.0010081612.63555662
Withdraw Tokens200537702024-06-09 10:48:1128 days ago1717930091IN
0x5fA9Ab75...D0c894A74
0 ETH0.000274773.44383073
Withdraw Tokens200413262024-06-07 17:04:5930 days ago1717779899IN
0x5fA9Ab75...D0c894A74
0 ETH0.0012827520.46258496
Withdraw Tokens200144892024-06-03 23:11:2334 days ago1717456283IN
0x5fA9Ab75...D0c894A74
0 ETH0.00084387.22511804
Withdraw Tokens200109262024-06-03 11:14:2334 days ago1717413263IN
0x5fA9Ab75...D0c894A74
0 ETH0.000493167.86692703
Withdraw Tokens200034572024-06-02 10:11:4735 days ago1717323107IN
0x5fA9Ab75...D0c894A74
0 ETH0.000742199.30210945
Withdraw Tokens199861622024-05-31 0:14:1138 days ago1717114451IN
0x5fA9Ab75...D0c894A74
0 ETH0.000534466.69855148
Withdraw Tokens199781022024-05-29 21:10:1139 days ago1717017011IN
0x5fA9Ab75...D0c894A74
0 ETH0.000593869.47340452
Withdraw Tokens199737272024-05-29 6:27:4740 days ago1716964067IN
0x5fA9Ab75...D0c894A74
0 ETH0.000731089.16289565
Withdraw Tokens199566762024-05-26 21:15:5942 days ago1716758159IN
0x5fA9Ab75...D0c894A74
0 ETH0.000612917.68181558
Withdraw Tokens199556582024-05-26 17:51:2342 days ago1716745883IN
0x5fA9Ab75...D0c894A74
0 ETH0.000845467.23931691
Withdraw Tokens199455472024-05-25 7:57:5943 days ago1716623879IN
0x5fA9Ab75...D0c894A74
0 ETH0.000384334.81692654
Withdraw Tokens199283042024-05-22 22:08:1146 days ago1716415691IN
0x5fA9Ab75...D0c894A74
0 ETH0.000662878.30797513
Withdraw Tokens199172042024-05-21 8:51:1147 days ago1716281471IN
0x5fA9Ab75...D0c894A74
0 ETH0.00072539.09043048
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To Value
192388512024-02-16 7:02:11143 days ago1708066931
0x5fA9Ab75...D0c894A74
8.15063585 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PreSale

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-23
*/

/**
 *Submitted for verification at BscScan.com on 2021-05-09
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.0;
/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
pragma solidity 0.8.0;
/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
pragma solidity 0.8.0;
/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }
    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }
    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }
    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }
    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }
    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}
//--------------------------CROWD SALE------------------------
pragma solidity 0.8.0;
interface IERC20 {
    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 PreSale is Ownable {
    using SafeMath for uint256;
    
    IERC20 public token; // Token being sold in the presale.
    // Presale parameters
    uint256 public _TOTAL_SOLD_TOKEN; // Total amount of tokens sold.
    uint256 public _TOTAL_DEPOSIT_BNB; // Total BNB collected.
    uint256 public _RATE; // Rate of token per BNB.
    uint256 public _MAX_BNB_CONTRIBUTION; // Maximum BNB contribution per wallet.
    uint256 public _MIN_BNB_CONTRIBUTION; // Minimum BNB contribution.
    // Vesting parameters
    uint256 public initialReleasePercentage; // Percentage of tokens to be released initially.
    uint256 public fullReleaseTime; // Timestamp when full release completes.
    uint256 public _SOFTCAP; // Minimum amount of BNB to be raised for the presale to be considered successful.
    uint256 public _HARDCAP; // Maximum amount of BNB that can be raised.
    uint256 public _START_TIME; // Start time of the presale.
    uint256 public _END_TIME; // End time of the presale.
    uint256 public _RELEASE_TOKEN_TIME; // Time when tokens start to become available for withdrawal.
    bool public isPreSaleOpen; // Flag indicating if the presale is open.
    
    // Mapping to track blacklisted users and token purchase amounts.
    mapping(address => bool) public isBlacklisted;
    mapping(address => uint256) public totalPurchased;
    mapping(address => uint256) public withdrawnTokens;
    mapping(address => bool) public withdrawn; // Tracks whether a user has withdrawn their initial tokens.
    constructor() {}
    // Allows the owner to set the address of the token being sold.
    function setTokenAddress(address _tokenAddress) public onlyOwner {
        require(_tokenAddress != address(0), "Invalid token address");
        token = IERC20(_tokenAddress);
    }
    // Allows owner to set the vesting schedule.
    function setVestingSchedule(uint256 _initialReleasePercentage, uint256 _releaseTime, uint256 _fullReleaseTime) public onlyOwner {
        require(_initialReleasePercentage > 0 && _initialReleasePercentage <= 100, "Invalid release percentage");
        require(_releaseTime < _fullReleaseTime, "Release time must be before full release time");
        initialReleasePercentage = _initialReleasePercentage;
        fullReleaseTime = _fullReleaseTime;
    }
    // Fallback function to handle BNB deposits.
    receive() external payable {
        deposite();
    }
    // Allows the owner to withdraw collected BNB after the presale ends, provided the softcap is reached.
    function ownerWithdrawBNB() public onlyOwner {
        require(block.timestamp > _END_TIME, "Presale hasn't finished yet");
        require(_TOTAL_DEPOSIT_BNB >= _SOFTCAP, "Presale didn't hit softcap");
        payable(msg.sender).transfer(address(this).balance);
    }
    // Allows the owner to withdraw any unsold tokens after the presale.
    function ownerWithdrawToken() public onlyOwner {
        token.transfer(msg.sender, token.balanceOf(address(this)));
    }
    // Function to blacklist or unblacklist users.
    function addToBlacklist(address user) external onlyOwner { isBlacklisted[user] = true; }
    function removeFromBlacklist(address user) external onlyOwner { isBlacklisted[user] = false; }
    // Setup function for the presale parameters.
    function setupPresale(uint256 start, uint256 end, uint256 release, uint256 rate, uint256 softcap, uint256 hardcap, uint256 maxPerWallet, uint256 minPerWallet) public onlyOwner {
        _RATE = rate;
        _MAX_BNB_CONTRIBUTION = maxPerWallet;
        _MIN_BNB_CONTRIBUTION = minPerWallet;
        _SOFTCAP = softcap;
        _HARDCAP = hardcap;
        _START_TIME = start;
        _END_TIME = end;
        _RELEASE_TOKEN_TIME = release;
    }
    function setRate(uint256 rate) public onlyOwner {
        _RATE = rate;
    }
    // Opens or closes the presale.
    function openPresale(bool opened) public onlyOwner { isPreSaleOpen = opened; }
    // Function for users to deposit BNB and purchase tokens during the presale.
    function deposite() public payable {
        require(isPreSaleOpen, "Presale is not open");
        require(block.timestamp >= _START_TIME && block.timestamp <= _END_TIME, "Not in presale time");
        require(msg.value >= _MIN_BNB_CONTRIBUTION && msg.value <= _MAX_BNB_CONTRIBUTION, "Invalid BNB amount");
        require(!isBlacklisted[_msgSender()], "You are blacklisted");
        require(_TOTAL_DEPOSIT_BNB.add(msg.value) <= _HARDCAP, "Exceed HARD CAP");
        totalPurchased[msg.sender]=  totalPurchased[msg.sender].add(msg.value);
        _TOTAL_DEPOSIT_BNB = _TOTAL_DEPOSIT_BNB.add(msg.value);
    }
    // Allows users to withdraw their vested tokens.
    function withdrawTokens() public {
        require(block.timestamp > _RELEASE_TOKEN_TIME, "Vesting period not started");
        
        uint256 totalTokens = totalPurchased[msg.sender].mul(_RATE);
        uint256 tokensToRelease = totalTokens.mul(initialReleasePercentage).div(100);
        uint256 vestedTokens = 0;
        if (block.timestamp >= fullReleaseTime) {
            vestedTokens = totalTokens; // All tokens are vested
        } else {
            uint256 vestingDuration = fullReleaseTime - _RELEASE_TOKEN_TIME;
            uint256 timeSinceRelease = block.timestamp - _RELEASE_TOKEN_TIME;
            uint256 additionalTokensVested = totalTokens.sub(tokensToRelease).mul(timeSinceRelease).div(vestingDuration);
            vestedTokens = tokensToRelease.add(additionalTokensVested);
        }
        uint256 tokensToWithdraw = vestedTokens.sub(withdrawnTokens[msg.sender]);
        require(tokensToWithdraw > 0, "No vested tokens available for withdrawal");
        withdrawnTokens[msg.sender] = withdrawnTokens[msg.sender].add(tokensToWithdraw);
        withdrawn[msg.sender] = true;
        require(token.transfer(msg.sender, tokensToWithdraw), "Token transfer failed");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"_END_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MAX_BNB_CONTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MIN_BNB_CONTRIBUTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_RELEASE_TOKEN_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SOFTCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_START_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TOTAL_DEPOSIT_BNB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TOTAL_SOLD_TOKEN","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deposite","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"fullReleaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialReleasePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPreSaleOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"opened","type":"bool"}],"name":"openPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerWithdrawBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ownerWithdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_initialReleasePercentage","type":"uint256"},{"internalType":"uint256","name":"_releaseTime","type":"uint256"},{"internalType":"uint256","name":"_fullReleaseTime","type":"uint256"}],"name":"setVestingSchedule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"release","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"softcap","type":"uint256"},{"internalType":"uint256","name":"hardcap","type":"uint256"},{"internalType":"uint256","name":"maxPerWallet","type":"uint256"},{"internalType":"uint256","name":"minPerWallet","type":"uint256"}],"name":"setupPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"totalPurchased","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawnTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b5060006100216100c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100cc565b600033905090565b612943806100db6000396000f3fe6080604052600436106101e75760003560e01c80637e717d3a11610102578063b76c93f111610095578063f5e329a411610064578063f5e329a414610664578063fc0c546a1461068f578063fddd5b09146106ba578063fe575a87146106e5576101f6565b8063b76c93f1146105a8578063caf64d73146105d3578063e8c9a3e5146105fe578063f2fde38b1461063b576101f6565b8063a0dfe58d116100d1578063a0dfe58d1461051f578063a168ca1314610548578063a50ec32614610573578063b25ec61b1461057d576101f6565b80637e717d3a146104875780638d8f2adb146104b25780638da5cb5b146104c95780639546b73e146104f4576101f6565b806344337ea11161017a5780636ef61092116101495780636ef61092146103f3578063715018a61461043057806371e4605c146104475780637c50601c14610470576101f6565b806344337ea114610339578063497aef2814610362578063537df3b61461039f578063685439d8146103c8576101f6565b806334fcf437116101b657806334fcf4371461028f57806337117b7f146102b85780633a6b75cd146102e35780633bdbe8bb1461030e576101f6565b80630b895c51146101fb5780631f281ace1461021257806326a4e8d21461023d5780632b356cbd14610266576101f6565b366101f6576101f4610722565b005b600080fd5b34801561020757600080fd5b506102106109b6565b005b34801561021e57600080fd5b50610227610b8e565b6040516102349190612427565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190611c81565b610ba1565b005b34801561027257600080fd5b5061028d60048036038101906102889190611caa565b610cd1565b005b34801561029b57600080fd5b506102b660048036038101906102b19190611cfc565b610d6a565b005b3480156102c457600080fd5b506102cd610df0565b6040516102da91906126bd565b60405180910390f35b3480156102ef57600080fd5b506102f8610df6565b60405161030591906126bd565b60405180910390f35b34801561031a57600080fd5b50610323610dfc565b60405161033091906126bd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611c81565b610e02565b005b34801561036e57600080fd5b5061038960048036038101906103849190611c81565b610ed9565b60405161039691906126bd565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611c81565b610ef1565b005b3480156103d457600080fd5b506103dd610fc8565b6040516103ea91906126bd565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190611c81565b610fce565b6040516104279190612427565b60405180910390f35b34801561043c57600080fd5b50610445610fee565b005b34801561045357600080fd5b5061046e60048036038101906104699190611d9d565b611128565b005b34801561047c57600080fd5b506104856111e6565b005b34801561049357600080fd5b5061049c611336565b6040516104a991906126bd565b60405180910390f35b3480156104be57600080fd5b506104c761133c565b005b3480156104d557600080fd5b506104de61170b565b6040516104eb91906123e3565b60405180910390f35b34801561050057600080fd5b50610509611734565b60405161051691906126bd565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190611d4e565b61173a565b005b34801561055457600080fd5b5061055d61185b565b60405161056a91906126bd565b60405180910390f35b61057b610722565b005b34801561058957600080fd5b50610592611861565b60405161059f91906126bd565b60405180910390f35b3480156105b457600080fd5b506105bd611867565b6040516105ca91906126bd565b60405180910390f35b3480156105df57600080fd5b506105e861186d565b6040516105f591906126bd565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190611c81565b611873565b60405161063291906126bd565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190611c81565b61188b565b005b34801561067057600080fd5b50610679611a34565b60405161068691906126bd565b60405180910390f35b34801561069b57600080fd5b506106a4611a3a565b6040516106b19190612442565b60405180910390f35b3480156106c657600080fd5b506106cf611a60565b6040516106dc91906126bd565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190611c81565b611a66565b6040516107199190612427565b60405180910390f35b600e60009054906101000a900460ff16610771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107689061263d565b60405180910390fd5b600b5442101580156107855750600c544211155b6107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb9061265d565b60405180910390fd5b60065434101580156107d857506005543411155b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061269d565b60405180910390fd5b600f6000610823611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061261d565b60405180910390fd5b600a546108c334600354611a8e90919063ffffffff16565b1115610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906124dd565b60405180910390fd5b61095634601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ae34600354611a8e90919063ffffffff16565b600381905550565b6109be611a86565b73ffffffffffffffffffffffffffffffffffffffff166109dc61170b565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906125fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acc91906123e3565b60206040518083038186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d25565b6040518363ffffffff1660e01b8152600401610b399291906123fe565b602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190611cd3565b50565b600e60009054906101000a900460ff1681565b610ba9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610bc761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061267d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cd9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610cf761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906125fd565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610d72611a86565b73ffffffffffffffffffffffffffffffffffffffff16610d9061170b565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906125fd565b60405180910390fd5b8060048190555050565b60045481565b60095481565b60035481565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff16610e2861170b565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906125fd565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915090505481565b610ef9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610f1761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f64906125fd565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60126020528060005260406000206000915054906101000a900460ff1681565b610ff6611a86565b73ffffffffffffffffffffffffffffffffffffffff1661101461170b565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611130611a86565b73ffffffffffffffffffffffffffffffffffffffff1661114e61170b565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906125fd565b60405180910390fd5b8460048190555081600581905550806006819055508360098190555082600a8190555087600b8190555086600c8190555085600d819055505050505050505050565b6111ee611a86565b73ffffffffffffffffffffffffffffffffffffffff1661120c61170b565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611259906125fd565b60405180910390fd5b600c5442116112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d9061257d565b60405180910390fd5b60095460035410156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061253d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611333573d6000803e3d6000fd5b50565b600d5481565b600d544211611380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113779061259d565b60405180910390fd5b60006113d6600454601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b9050600061140260646113f460075485611aec90919063ffffffff16565b611b6790919063ffffffff16565b90506000600854421061141757829050611491565b6000600d5460085461142991906127ca565b90506000600d544261143b91906127ca565b90506000611476836114688461145a898b611bbf90919063ffffffff16565b611aec90919063ffffffff16565b611b6790919063ffffffff16565b905061148b8186611a8e90919063ffffffff16565b93505050505b60006114e5601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611bbf90919063ffffffff16565b90506000811161152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061245d565b60405180910390fd5b61157c81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116749291906123fe565b602060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611cd3565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061255d565b60405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b611742611a86565b73ffffffffffffffffffffffffffffffffffffffff1661176061170b565b73ffffffffffffffffffffffffffffffffffffffff16146117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad906125fd565b60405180910390fd5b6000831180156117c7575060648311155b611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd9061247d565b60405180910390fd5b808210611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906125bd565b60405180910390fd5b8260078190555080600881905550505050565b60085481565b60025481565b600a5481565b60055481565b60116020528060005260406000206000915090505481565b611893611a86565b73ffffffffffffffffffffffffffffffffffffffff166118b161170b565b73ffffffffffffffffffffffffffffffffffffffff1614611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061249d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6000808284611a9d91906126e9565b905083811015611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906124bd565b60405180910390fd5b8091505092915050565b600080831415611aff5760009050611b61565b60008284611b0d9190612770565b9050828482611b1c919061273f565b14611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906125dd565b60405180910390fd5b809150505b92915050565b6000808211611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061251d565b60405180910390fd5b8183611bb7919061273f565b905092915050565b600082821115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906124fd565b60405180910390fd5b8183611c1091906127ca565b905092915050565b600081359050611c27816128c8565b92915050565b600081359050611c3c816128df565b92915050565b600081519050611c51816128df565b92915050565b600081359050611c66816128f6565b92915050565b600081519050611c7b816128f6565b92915050565b600060208284031215611c9357600080fd5b6000611ca184828501611c18565b91505092915050565b600060208284031215611cbc57600080fd5b6000611cca84828501611c2d565b91505092915050565b600060208284031215611ce557600080fd5b6000611cf384828501611c42565b91505092915050565b600060208284031215611d0e57600080fd5b6000611d1c84828501611c57565b91505092915050565b600060208284031215611d3757600080fd5b6000611d4584828501611c6c565b91505092915050565b600080600060608486031215611d6357600080fd5b6000611d7186828701611c57565b9350506020611d8286828701611c57565b9250506040611d9386828701611c57565b9150509250925092565b600080600080600080600080610100898b031215611dba57600080fd5b6000611dc88b828c01611c57565b9850506020611dd98b828c01611c57565b9750506040611dea8b828c01611c57565b9650506060611dfb8b828c01611c57565b9550506080611e0c8b828c01611c57565b94505060a0611e1d8b828c01611c57565b93505060c0611e2e8b828c01611c57565b92505060e0611e3f8b828c01611c57565b9150509295985092959890939650565b611e58816127fe565b82525050565b611e6781612810565b82525050565b611e7681612846565b82525050565b6000611e896029836126d8565b91507f4e6f2076657374656420746f6b656e7320617661696c61626c6520666f72207760008301527f69746864726177616c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eef601a836126d8565b91507f496e76616c69642072656c656173652070657263656e746167650000000000006000830152602082019050919050565b6000611f2f6026836126d8565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f95601b836126d8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611fd5600f836126d8565b91507f45786365656420484152442043415000000000000000000000000000000000006000830152602082019050919050565b6000612015601e836126d8565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612055601a836126d8565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612095601a836126d8565b91507f50726573616c65206469646e27742068697420736f66746361700000000000006000830152602082019050919050565b60006120d56015836126d8565b91507f546f6b656e207472616e73666572206661696c656400000000000000000000006000830152602082019050919050565b6000612115601b836126d8565b91507f50726573616c65206861736e27742066696e69736865642079657400000000006000830152602082019050919050565b6000612155601a836126d8565b91507f56657374696e6720706572696f64206e6f7420737461727465640000000000006000830152602082019050919050565b6000612195602d836126d8565b91507f52656c656173652074696d65206d757374206265206265666f72652066756c6c60008301527f2072656c656173652074696d65000000000000000000000000000000000000006020830152604082019050919050565b60006121fb6021836126d8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122616020836126d8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122a16013836126d8565b91507f596f752061726520626c61636b6c6973746564000000000000000000000000006000830152602082019050919050565b60006122e16013836126d8565b91507f50726573616c65206973206e6f74206f70656e000000000000000000000000006000830152602082019050919050565b60006123216013836126d8565b91507f4e6f7420696e2070726573616c652074696d65000000000000000000000000006000830152602082019050919050565b60006123616015836126d8565b91507f496e76616c696420746f6b656e206164647265737300000000000000000000006000830152602082019050919050565b60006123a16012836126d8565b91507f496e76616c696420424e4220616d6f756e7400000000000000000000000000006000830152602082019050919050565b6123dd8161283c565b82525050565b60006020820190506123f86000830184611e4f565b92915050565b60006040820190506124136000830185611e4f565b61242060208301846123d4565b9392505050565b600060208201905061243c6000830184611e5e565b92915050565b60006020820190506124576000830184611e6d565b92915050565b6000602082019050818103600083015261247681611e7c565b9050919050565b6000602082019050818103600083015261249681611ee2565b9050919050565b600060208201905081810360008301526124b681611f22565b9050919050565b600060208201905081810360008301526124d681611f88565b9050919050565b600060208201905081810360008301526124f681611fc8565b9050919050565b6000602082019050818103600083015261251681612008565b9050919050565b6000602082019050818103600083015261253681612048565b9050919050565b6000602082019050818103600083015261255681612088565b9050919050565b60006020820190508181036000830152612576816120c8565b9050919050565b6000602082019050818103600083015261259681612108565b9050919050565b600060208201905081810360008301526125b681612148565b9050919050565b600060208201905081810360008301526125d681612188565b9050919050565b600060208201905081810360008301526125f6816121ee565b9050919050565b6000602082019050818103600083015261261681612254565b9050919050565b6000602082019050818103600083015261263681612294565b9050919050565b60006020820190508181036000830152612656816122d4565b9050919050565b6000602082019050818103600083015261267681612314565b9050919050565b6000602082019050818103600083015261269681612354565b9050919050565b600060208201905081810360008301526126b681612394565b9050919050565b60006020820190506126d260008301846123d4565b92915050565b600082825260208201905092915050565b60006126f48261283c565b91506126ff8361283c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127345761273361286a565b5b828201905092915050565b600061274a8261283c565b91506127558361283c565b92508261276557612764612899565b5b828204905092915050565b600061277b8261283c565b91506127868361283c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bf576127be61286a565b5b828202905092915050565b60006127d58261283c565b91506127e08361283c565b9250828210156127f3576127f261286a565b5b828203905092915050565b60006128098261281c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061285182612858565b9050919050565b60006128638261281c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6128d1816127fe565b81146128dc57600080fd5b50565b6128e881612810565b81146128f357600080fd5b50565b6128ff8161283c565b811461290a57600080fd5b5056fea26469706673582212204c5d1829949126ae6b554ef8029128086fc36e4d4b3521f07c9309afd952336e64736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80637e717d3a11610102578063b76c93f111610095578063f5e329a411610064578063f5e329a414610664578063fc0c546a1461068f578063fddd5b09146106ba578063fe575a87146106e5576101f6565b8063b76c93f1146105a8578063caf64d73146105d3578063e8c9a3e5146105fe578063f2fde38b1461063b576101f6565b8063a0dfe58d116100d1578063a0dfe58d1461051f578063a168ca1314610548578063a50ec32614610573578063b25ec61b1461057d576101f6565b80637e717d3a146104875780638d8f2adb146104b25780638da5cb5b146104c95780639546b73e146104f4576101f6565b806344337ea11161017a5780636ef61092116101495780636ef61092146103f3578063715018a61461043057806371e4605c146104475780637c50601c14610470576101f6565b806344337ea114610339578063497aef2814610362578063537df3b61461039f578063685439d8146103c8576101f6565b806334fcf437116101b657806334fcf4371461028f57806337117b7f146102b85780633a6b75cd146102e35780633bdbe8bb1461030e576101f6565b80630b895c51146101fb5780631f281ace1461021257806326a4e8d21461023d5780632b356cbd14610266576101f6565b366101f6576101f4610722565b005b600080fd5b34801561020757600080fd5b506102106109b6565b005b34801561021e57600080fd5b50610227610b8e565b6040516102349190612427565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190611c81565b610ba1565b005b34801561027257600080fd5b5061028d60048036038101906102889190611caa565b610cd1565b005b34801561029b57600080fd5b506102b660048036038101906102b19190611cfc565b610d6a565b005b3480156102c457600080fd5b506102cd610df0565b6040516102da91906126bd565b60405180910390f35b3480156102ef57600080fd5b506102f8610df6565b60405161030591906126bd565b60405180910390f35b34801561031a57600080fd5b50610323610dfc565b60405161033091906126bd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611c81565b610e02565b005b34801561036e57600080fd5b5061038960048036038101906103849190611c81565b610ed9565b60405161039691906126bd565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611c81565b610ef1565b005b3480156103d457600080fd5b506103dd610fc8565b6040516103ea91906126bd565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190611c81565b610fce565b6040516104279190612427565b60405180910390f35b34801561043c57600080fd5b50610445610fee565b005b34801561045357600080fd5b5061046e60048036038101906104699190611d9d565b611128565b005b34801561047c57600080fd5b506104856111e6565b005b34801561049357600080fd5b5061049c611336565b6040516104a991906126bd565b60405180910390f35b3480156104be57600080fd5b506104c761133c565b005b3480156104d557600080fd5b506104de61170b565b6040516104eb91906123e3565b60405180910390f35b34801561050057600080fd5b50610509611734565b60405161051691906126bd565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190611d4e565b61173a565b005b34801561055457600080fd5b5061055d61185b565b60405161056a91906126bd565b60405180910390f35b61057b610722565b005b34801561058957600080fd5b50610592611861565b60405161059f91906126bd565b60405180910390f35b3480156105b457600080fd5b506105bd611867565b6040516105ca91906126bd565b60405180910390f35b3480156105df57600080fd5b506105e861186d565b6040516105f591906126bd565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190611c81565b611873565b60405161063291906126bd565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190611c81565b61188b565b005b34801561067057600080fd5b50610679611a34565b60405161068691906126bd565b60405180910390f35b34801561069b57600080fd5b506106a4611a3a565b6040516106b19190612442565b60405180910390f35b3480156106c657600080fd5b506106cf611a60565b6040516106dc91906126bd565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190611c81565b611a66565b6040516107199190612427565b60405180910390f35b600e60009054906101000a900460ff16610771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107689061263d565b60405180910390fd5b600b5442101580156107855750600c544211155b6107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb9061265d565b60405180910390fd5b60065434101580156107d857506005543411155b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061269d565b60405180910390fd5b600f6000610823611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061261d565b60405180910390fd5b600a546108c334600354611a8e90919063ffffffff16565b1115610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906124dd565b60405180910390fd5b61095634601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ae34600354611a8e90919063ffffffff16565b600381905550565b6109be611a86565b73ffffffffffffffffffffffffffffffffffffffff166109dc61170b565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906125fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acc91906123e3565b60206040518083038186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d25565b6040518363ffffffff1660e01b8152600401610b399291906123fe565b602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190611cd3565b50565b600e60009054906101000a900460ff1681565b610ba9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610bc761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061267d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cd9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610cf761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906125fd565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610d72611a86565b73ffffffffffffffffffffffffffffffffffffffff16610d9061170b565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906125fd565b60405180910390fd5b8060048190555050565b60045481565b60095481565b60035481565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff16610e2861170b565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906125fd565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915090505481565b610ef9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610f1761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f64906125fd565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60126020528060005260406000206000915054906101000a900460ff1681565b610ff6611a86565b73ffffffffffffffffffffffffffffffffffffffff1661101461170b565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611130611a86565b73ffffffffffffffffffffffffffffffffffffffff1661114e61170b565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906125fd565b60405180910390fd5b8460048190555081600581905550806006819055508360098190555082600a8190555087600b8190555086600c8190555085600d819055505050505050505050565b6111ee611a86565b73ffffffffffffffffffffffffffffffffffffffff1661120c61170b565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611259906125fd565b60405180910390fd5b600c5442116112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d9061257d565b60405180910390fd5b60095460035410156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061253d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611333573d6000803e3d6000fd5b50565b600d5481565b600d544211611380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113779061259d565b60405180910390fd5b60006113d6600454601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b9050600061140260646113f460075485611aec90919063ffffffff16565b611b6790919063ffffffff16565b90506000600854421061141757829050611491565b6000600d5460085461142991906127ca565b90506000600d544261143b91906127ca565b90506000611476836114688461145a898b611bbf90919063ffffffff16565b611aec90919063ffffffff16565b611b6790919063ffffffff16565b905061148b8186611a8e90919063ffffffff16565b93505050505b60006114e5601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611bbf90919063ffffffff16565b90506000811161152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061245d565b60405180910390fd5b61157c81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116749291906123fe565b602060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611cd3565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061255d565b60405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b611742611a86565b73ffffffffffffffffffffffffffffffffffffffff1661176061170b565b73ffffffffffffffffffffffffffffffffffffffff16146117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad906125fd565b60405180910390fd5b6000831180156117c7575060648311155b611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd9061247d565b60405180910390fd5b808210611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906125bd565b60405180910390fd5b8260078190555080600881905550505050565b60085481565b60025481565b600a5481565b60055481565b60116020528060005260406000206000915090505481565b611893611a86565b73ffffffffffffffffffffffffffffffffffffffff166118b161170b565b73ffffffffffffffffffffffffffffffffffffffff1614611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061249d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6000808284611a9d91906126e9565b905083811015611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906124bd565b60405180910390fd5b8091505092915050565b600080831415611aff5760009050611b61565b60008284611b0d9190612770565b9050828482611b1c919061273f565b14611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906125dd565b60405180910390fd5b809150505b92915050565b6000808211611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061251d565b60405180910390fd5b8183611bb7919061273f565b905092915050565b600082821115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906124fd565b60405180910390fd5b8183611c1091906127ca565b905092915050565b600081359050611c27816128c8565b92915050565b600081359050611c3c816128df565b92915050565b600081519050611c51816128df565b92915050565b600081359050611c66816128f6565b92915050565b600081519050611c7b816128f6565b92915050565b600060208284031215611c9357600080fd5b6000611ca184828501611c18565b91505092915050565b600060208284031215611cbc57600080fd5b6000611cca84828501611c2d565b91505092915050565b600060208284031215611ce557600080fd5b6000611cf384828501611c42565b91505092915050565b600060208284031215611d0e57600080fd5b6000611d1c84828501611c57565b91505092915050565b600060208284031215611d3757600080fd5b6000611d4584828501611c6c565b91505092915050565b600080600060608486031215611d6357600080fd5b6000611d7186828701611c57565b9350506020611d8286828701611c57565b9250506040611d9386828701611c57565b9150509250925092565b600080600080600080600080610100898b031215611dba57600080fd5b6000611dc88b828c01611c57565b9850506020611dd98b828c01611c57565b9750506040611dea8b828c01611c57565b9650506060611dfb8b828c01611c57565b9550506080611e0c8b828c01611c57565b94505060a0611e1d8b828c01611c57565b93505060c0611e2e8b828c01611c57565b92505060e0611e3f8b828c01611c57565b9150509295985092959890939650565b611e58816127fe565b82525050565b611e6781612810565b82525050565b611e7681612846565b82525050565b6000611e896029836126d8565b91507f4e6f2076657374656420746f6b656e7320617661696c61626c6520666f72207760008301527f69746864726177616c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eef601a836126d8565b91507f496e76616c69642072656c656173652070657263656e746167650000000000006000830152602082019050919050565b6000611f2f6026836126d8565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f95601b836126d8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611fd5600f836126d8565b91507f45786365656420484152442043415000000000000000000000000000000000006000830152602082019050919050565b6000612015601e836126d8565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612055601a836126d8565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612095601a836126d8565b91507f50726573616c65206469646e27742068697420736f66746361700000000000006000830152602082019050919050565b60006120d56015836126d8565b91507f546f6b656e207472616e73666572206661696c656400000000000000000000006000830152602082019050919050565b6000612115601b836126d8565b91507f50726573616c65206861736e27742066696e69736865642079657400000000006000830152602082019050919050565b6000612155601a836126d8565b91507f56657374696e6720706572696f64206e6f7420737461727465640000000000006000830152602082019050919050565b6000612195602d836126d8565b91507f52656c656173652074696d65206d757374206265206265666f72652066756c6c60008301527f2072656c656173652074696d65000000000000000000000000000000000000006020830152604082019050919050565b60006121fb6021836126d8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122616020836126d8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122a16013836126d8565b91507f596f752061726520626c61636b6c6973746564000000000000000000000000006000830152602082019050919050565b60006122e16013836126d8565b91507f50726573616c65206973206e6f74206f70656e000000000000000000000000006000830152602082019050919050565b60006123216013836126d8565b91507f4e6f7420696e2070726573616c652074696d65000000000000000000000000006000830152602082019050919050565b60006123616015836126d8565b91507f496e76616c696420746f6b656e206164647265737300000000000000000000006000830152602082019050919050565b60006123a16012836126d8565b91507f496e76616c696420424e4220616d6f756e7400000000000000000000000000006000830152602082019050919050565b6123dd8161283c565b82525050565b60006020820190506123f86000830184611e4f565b92915050565b60006040820190506124136000830185611e4f565b61242060208301846123d4565b9392505050565b600060208201905061243c6000830184611e5e565b92915050565b60006020820190506124576000830184611e6d565b92915050565b6000602082019050818103600083015261247681611e7c565b9050919050565b6000602082019050818103600083015261249681611ee2565b9050919050565b600060208201905081810360008301526124b681611f22565b9050919050565b600060208201905081810360008301526124d681611f88565b9050919050565b600060208201905081810360008301526124f681611fc8565b9050919050565b6000602082019050818103600083015261251681612008565b9050919050565b6000602082019050818103600083015261253681612048565b9050919050565b6000602082019050818103600083015261255681612088565b9050919050565b60006020820190508181036000830152612576816120c8565b9050919050565b6000602082019050818103600083015261259681612108565b9050919050565b600060208201905081810360008301526125b681612148565b9050919050565b600060208201905081810360008301526125d681612188565b9050919050565b600060208201905081810360008301526125f6816121ee565b9050919050565b6000602082019050818103600083015261261681612254565b9050919050565b6000602082019050818103600083015261263681612294565b9050919050565b60006020820190508181036000830152612656816122d4565b9050919050565b6000602082019050818103600083015261267681612314565b9050919050565b6000602082019050818103600083015261269681612354565b9050919050565b600060208201905081810360008301526126b681612394565b9050919050565b60006020820190506126d260008301846123d4565b92915050565b600082825260208201905092915050565b60006126f48261283c565b91506126ff8361283c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127345761273361286a565b5b828201905092915050565b600061274a8261283c565b91506127558361283c565b92508261276557612764612899565b5b828204905092915050565b600061277b8261283c565b91506127868361283c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bf576127be61286a565b5b828202905092915050565b60006127d58261283c565b91506127e08361283c565b9250828210156127f3576127f261286a565b5b828203905092915050565b60006128098261281c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061285182612858565b9050919050565b60006128638261281c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6128d1816127fe565b81146128dc57600080fd5b50565b6128e881612810565b81146128f357600080fd5b50565b6128ff8161283c565b811461290a57600080fd5b5056fea26469706673582212204c5d1829949126ae6b554ef8029128086fc36e4d4b3521f07c9309afd952336e64736f6c63430008000033

Deployed Bytecode Sourcemap

11365:5990:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13797:10;:8;:10::i;:::-;11365:5990;;;;;14282:124;;;;;;;;;;;;;:::i;:::-;;12486:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15292:78;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15170:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11663:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12073:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11599:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14464:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12690:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14558:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11898:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12803:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2683:148;;;;;;;;;;;;;:::i;:::-;;14709:455;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13929:273;;;;;;;;;;;;;:::i;:::-;;12383:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16137:1215;;;;;;;;;;;;;:::i;:::-;;2036:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12324:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13244:459;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11994:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15458:619;;;:::i;:::-;;11528:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12186:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11716:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12746:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2984:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12261:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11439:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11799:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12638:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15458:619;15512:13;;;;;;;;;;;15504:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;15587:11;;15568:15;:30;;:62;;;;;15621:9;;15602:15;:28;;15568:62;15560:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15686:21;;15673:9;:34;;:72;;;;;15724:21;;15711:9;:34;;15673:72;15665:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;15788:13;:27;15802:12;:10;:12::i;:::-;15788:27;;;;;;;;;;;;;;;;;;;;;;;;;15787:28;15779:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;15895:8;;15858:33;15881:9;15858:18;;:22;;:33;;;;:::i;:::-;:45;;15850:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15963:41;15994:9;15963:14;:26;15978:10;15963:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;15934:14;:26;15949:10;15934:26;;;;;;;;;;;;;;;:70;;;;16036:33;16059:9;16036:18;;:22;;:33;;;;:::i;:::-;16015:18;:54;;;;15458:619::o;14282:124::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14340:5:::1;;;;;;;;;;;:14;;;14355:10;14367:5;;;;;;;;;;;:15;;;14391:4;14367:30;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14340:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14282:124::o:0;12486:25::-;;;;;;;;;;;;;:::o;13003:185::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13112:1:::1;13087:27;;:13;:27;;;;13079:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13166:13;13151:5;;:29;;;;;;;;;;;;;;;;;;13003:185:::0;:::o;15292:78::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15361:6:::1;15345:13;;:22;;;;;;;;;;;;;;;;;;15292:78:::0;:::o;15170:79::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15237:4:::1;15229:5;:12;;;;15170:79:::0;:::o;11663:20::-;;;;:::o;12073:23::-;;;;:::o;11599:33::-;;;;:::o;14464:88::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14545:4:::1;14523:13;:19;14537:4;14523:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14464:88:::0;:::o;12690:49::-;;;;;;;;;;;;;;;;;:::o;14558:94::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14644:5:::1;14622:13;:19;14636:4;14622:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;14558:94:::0;:::o;11898:39::-;;;;:::o;12803:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2683:148::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2790:1:::1;2753:40;;2774:6;::::0;::::1;;;;;;;;2753:40;;;;;;;;;;;;2821:1;2804:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2683:148::o:0;14709:455::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14904:4:::1;14896:5;:12;;;;14943;14919:21;:36;;;;14990:12;14966:21;:36;;;;15024:7;15013:8;:18;;;;15053:7;15042:8;:18;;;;15085:5;15071:11;:19;;;;15113:3;15101:9;:15;;;;15149:7;15127:19;:29;;;;14709:455:::0;;;;;;;;:::o;13929:273::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14011:9:::1;;13993:15;:27;13985:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14093:8;;14071:18;;:30;;14063:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14151:10;14143:28;;:51;14172:21;14143:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13929:273::o:0;12383:34::-;;;;:::o;16137:1215::-;16207:19;;16189:15;:37;16181:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;16278:19;16300:37;16331:5;;16300:14;:26;16315:10;16300:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;16278:59;;16348:23;16374:50;16420:3;16374:41;16390:24;;16374:11;:15;;:41;;;;:::i;:::-;:45;;:50;;;;:::i;:::-;16348:76;;16435:20;16493:15;;16474;:34;16470:489;;16540:11;16525:26;;16470:489;;;16609:23;16653:19;;16635:15;;:37;;;;:::i;:::-;16609:63;;16687:24;16732:19;;16714:15;:37;;;;:::i;:::-;16687:64;;16766:30;16799:75;16858:15;16799:54;16836:16;16799:32;16815:15;16799:11;:15;;:32;;;;:::i;:::-;:36;;:54;;;;:::i;:::-;:58;;:75;;;;:::i;:::-;16766:108;;16904:43;16924:22;16904:15;:19;;:43;;;;:::i;:::-;16889:58;;16470:489;;;;16969:24;16996:45;17013:15;:27;17029:10;17013:27;;;;;;;;;;;;;;;;16996:12;:16;;:45;;;;:::i;:::-;16969:72;;17079:1;17060:16;:20;17052:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17167:49;17199:16;17167:15;:27;17183:10;17167:27;;;;;;;;;;;;;;;;:31;;:49;;;;:::i;:::-;17137:15;:27;17153:10;17137:27;;;;;;;;;;;;;;;:79;;;;17251:4;17227:9;:21;17237:10;17227:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17274:5;;;;;;;;;;;:14;;;17289:10;17301:16;17274:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17266:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;16137:1215;;;;:::o;2036:87::-;2082:7;2109:6;;;;;;;;;;;2102:13;;2036:87;:::o;12324:24::-;;;;:::o;13244:459::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13419:1:::1;13391:25;:29;:65;;;;;13453:3;13424:25;:32;;13391:65;13383:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;13521:16;13506:12;:31;13498:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;13625:25;13598:24;:52;;;;13679:16;13661:15;:34;;;;13244:459:::0;;;:::o;11994:30::-;;;;:::o;11528:32::-;;;;:::o;12186:23::-;;;;:::o;11716:36::-;;;;:::o;12746:50::-;;;;;;;;;;;;;;;;;:::o;2984:244::-;2265:12;:10;:12::i;:::-;2254:23;;:7;:5;:7::i;:::-;:23;;;2246:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3093:1:::1;3073:22;;:8;:22;;;;3065:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3183:8;3154:38;;3175:6;::::0;::::1;;;;;;;;3154:38;;;;;;;;;;;;3212:8;3203:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2984:244:::0;:::o;12261:26::-;;;;:::o;11439:19::-;;;;;;;;;;;;;:::o;11799:36::-;;;;:::o;12638:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;668:98::-;721:7;748:10;741:17;;668:98;:::o;5951:179::-;6009:7;6029:9;6045:1;6041;:5;;;;:::i;:::-;6029:17;;6070:1;6065;:6;;6057:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6121:1;6114:8;;;5951:179;;;;:::o;6826:220::-;6884:7;6913:1;6908;:6;6904:20;;;6923:1;6916:8;;;;6904:20;6935:9;6951:1;6947;:5;;;;:::i;:::-;6935:17;;6980:1;6975;6971;:5;;;;:::i;:::-;:10;6963:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7037:1;7030:8;;;6826:220;;;;;:::o;7522:153::-;7580:7;7612:1;7608;:5;7600:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7666:1;7662;:5;;;;:::i;:::-;7655:12;;7522:153;;;;:::o;6411:158::-;6469:7;6502:1;6497;:6;;6489:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6560:1;6556;:5;;;;:::i;:::-;6549:12;;6411:158;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:137::-;;376:6;370:13;361:22;;392:30;416:5;392:30;:::i;:::-;351:77;;;;:::o;434:139::-;;518:6;505:20;496:29;;534:33;561:5;534:33;:::i;:::-;486:87;;;;:::o;579:143::-;;667:6;661:13;652:22;;683:33;710:5;683:33;:::i;:::-;642:80;;;;:::o;728:262::-;;836:2;824:9;815:7;811:23;807:32;804:2;;;852:1;849;842:12;804:2;895:1;920:53;965:7;956:6;945:9;941:22;920:53;:::i;:::-;910:63;;866:117;794:196;;;;:::o;996:256::-;;1101:2;1089:9;1080:7;1076:23;1072:32;1069:2;;;1117:1;1114;1107:12;1069:2;1160:1;1185:50;1227:7;1218:6;1207:9;1203:22;1185:50;:::i;:::-;1175:60;;1131:114;1059:193;;;;:::o;1258:278::-;;1374:2;1362:9;1353:7;1349:23;1345:32;1342:2;;;1390:1;1387;1380:12;1342:2;1433:1;1458:61;1511:7;1502:6;1491:9;1487:22;1458:61;:::i;:::-;1448:71;;1404:125;1332:204;;;;:::o;1542:262::-;;1650:2;1638:9;1629:7;1625:23;1621:32;1618:2;;;1666:1;1663;1656:12;1618:2;1709:1;1734:53;1779:7;1770:6;1759:9;1755:22;1734:53;:::i;:::-;1724:63;;1680:117;1608:196;;;;:::o;1810:284::-;;1929:2;1917:9;1908:7;1904:23;1900:32;1897:2;;;1945:1;1942;1935:12;1897:2;1988:1;2013:64;2069:7;2060:6;2049:9;2045:22;2013:64;:::i;:::-;2003:74;;1959:128;1887:207;;;;:::o;2100:552::-;;;;2242:2;2230:9;2221:7;2217:23;2213:32;2210:2;;;2258:1;2255;2248:12;2210:2;2301:1;2326:53;2371:7;2362:6;2351:9;2347:22;2326:53;:::i;:::-;2316:63;;2272:117;2428:2;2454:53;2499:7;2490:6;2479:9;2475:22;2454:53;:::i;:::-;2444:63;;2399:118;2556:2;2582:53;2627:7;2618:6;2607:9;2603:22;2582:53;:::i;:::-;2572:63;;2527:118;2200:452;;;;;:::o;2658:1282::-;;;;;;;;;2885:3;2873:9;2864:7;2860:23;2856:33;2853:2;;;2902:1;2899;2892:12;2853:2;2945:1;2970:53;3015:7;3006:6;2995:9;2991:22;2970:53;:::i;:::-;2960:63;;2916:117;3072:2;3098:53;3143:7;3134:6;3123:9;3119:22;3098:53;:::i;:::-;3088:63;;3043:118;3200:2;3226:53;3271:7;3262:6;3251:9;3247:22;3226:53;:::i;:::-;3216:63;;3171:118;3328:2;3354:53;3399:7;3390:6;3379:9;3375:22;3354:53;:::i;:::-;3344:63;;3299:118;3456:3;3483:53;3528:7;3519:6;3508:9;3504:22;3483:53;:::i;:::-;3473:63;;3427:119;3585:3;3612:53;3657:7;3648:6;3637:9;3633:22;3612:53;:::i;:::-;3602:63;;3556:119;3714:3;3741:53;3786:7;3777:6;3766:9;3762:22;3741:53;:::i;:::-;3731:63;;3685:119;3843:3;3870:53;3915:7;3906:6;3895:9;3891:22;3870:53;:::i;:::-;3860:63;;3814:119;2843:1097;;;;;;;;;;;:::o;3946:118::-;4033:24;4051:5;4033:24;:::i;:::-;4028:3;4021:37;4011:53;;:::o;4070:109::-;4151:21;4166:5;4151:21;:::i;:::-;4146:3;4139:34;4129:50;;:::o;4185:159::-;4286:51;4331:5;4286:51;:::i;:::-;4281:3;4274:64;4264:80;;:::o;4350:373::-;;4513:67;4577:2;4572:3;4513:67;:::i;:::-;4506:74;;4610:34;4606:1;4601:3;4597:11;4590:55;4676:11;4671:2;4666:3;4662:12;4655:33;4714:2;4709:3;4705:12;4698:19;;4496:227;;;:::o;4729:324::-;;4892:67;4956:2;4951:3;4892:67;:::i;:::-;4885:74;;4989:28;4985:1;4980:3;4976:11;4969:49;5044:2;5039:3;5035:12;5028:19;;4875:178;;;:::o;5059:370::-;;5222:67;5286:2;5281:3;5222:67;:::i;:::-;5215:74;;5319:34;5315:1;5310:3;5306:11;5299:55;5385:8;5380:2;5375:3;5371:12;5364:30;5420:2;5415:3;5411:12;5404:19;;5205:224;;;:::o;5435:325::-;;5598:67;5662:2;5657:3;5598:67;:::i;:::-;5591:74;;5695:29;5691:1;5686:3;5682:11;5675:50;5751:2;5746:3;5742:12;5735:19;;5581:179;;;:::o;5766:313::-;;5929:67;5993:2;5988:3;5929:67;:::i;:::-;5922:74;;6026:17;6022:1;6017:3;6013:11;6006:38;6070:2;6065:3;6061:12;6054:19;;5912:167;;;:::o;6085:328::-;;6248:67;6312:2;6307:3;6248:67;:::i;:::-;6241:74;;6345:32;6341:1;6336:3;6332:11;6325:53;6404:2;6399:3;6395:12;6388:19;;6231:182;;;:::o;6419:324::-;;6582:67;6646:2;6641:3;6582:67;:::i;:::-;6575:74;;6679:28;6675:1;6670:3;6666:11;6659:49;6734:2;6729:3;6725:12;6718:19;;6565:178;;;:::o;6749:324::-;;6912:67;6976:2;6971:3;6912:67;:::i;:::-;6905:74;;7009:28;7005:1;7000:3;6996:11;6989:49;7064:2;7059:3;7055:12;7048:19;;6895:178;;;:::o;7079:319::-;;7242:67;7306:2;7301:3;7242:67;:::i;:::-;7235:74;;7339:23;7335:1;7330:3;7326:11;7319:44;7389:2;7384:3;7380:12;7373:19;;7225:173;;;:::o;7404:325::-;;7567:67;7631:2;7626:3;7567:67;:::i;:::-;7560:74;;7664:29;7660:1;7655:3;7651:11;7644:50;7720:2;7715:3;7711:12;7704:19;;7550:179;;;:::o;7735:324::-;;7898:67;7962:2;7957:3;7898:67;:::i;:::-;7891:74;;7995:28;7991:1;7986:3;7982:11;7975:49;8050:2;8045:3;8041:12;8034:19;;7881:178;;;:::o;8065:377::-;;8228:67;8292:2;8287:3;8228:67;:::i;:::-;8221:74;;8325:34;8321:1;8316:3;8312:11;8305:55;8391:15;8386:2;8381:3;8377:12;8370:37;8433:2;8428:3;8424:12;8417:19;;8211:231;;;:::o;8448:365::-;;8611:67;8675:2;8670:3;8611:67;:::i;:::-;8604:74;;8708:34;8704:1;8699:3;8695:11;8688:55;8774:3;8769:2;8764:3;8760:12;8753:25;8804:2;8799:3;8795:12;8788:19;;8594:219;;;:::o;8819:330::-;;8982:67;9046:2;9041:3;8982:67;:::i;:::-;8975:74;;9079:34;9075:1;9070:3;9066:11;9059:55;9140:2;9135:3;9131:12;9124:19;;8965:184;;;:::o;9155:317::-;;9318:67;9382:2;9377:3;9318:67;:::i;:::-;9311:74;;9415:21;9411:1;9406:3;9402:11;9395:42;9463:2;9458:3;9454:12;9447:19;;9301:171;;;:::o;9478:317::-;;9641:67;9705:2;9700:3;9641:67;:::i;:::-;9634:74;;9738:21;9734:1;9729:3;9725:11;9718:42;9786:2;9781:3;9777:12;9770:19;;9624:171;;;:::o;9801:317::-;;9964:67;10028:2;10023:3;9964:67;:::i;:::-;9957:74;;10061:21;10057:1;10052:3;10048:11;10041:42;10109:2;10104:3;10100:12;10093:19;;9947:171;;;:::o;10124:319::-;;10287:67;10351:2;10346:3;10287:67;:::i;:::-;10280:74;;10384:23;10380:1;10375:3;10371:11;10364:44;10434:2;10429:3;10425:12;10418:19;;10270:173;;;:::o;10449:316::-;;10612:67;10676:2;10671:3;10612:67;:::i;:::-;10605:74;;10709:20;10705:1;10700:3;10696:11;10689:41;10756:2;10751:3;10747:12;10740:19;;10595:170;;;:::o;10771:118::-;10858:24;10876:5;10858:24;:::i;:::-;10853:3;10846:37;10836:53;;:::o;10895:222::-;;11026:2;11015:9;11011:18;11003:26;;11039:71;11107:1;11096:9;11092:17;11083:6;11039:71;:::i;:::-;10993:124;;;;:::o;11123:332::-;;11282:2;11271:9;11267:18;11259:26;;11295:71;11363:1;11352:9;11348:17;11339:6;11295:71;:::i;:::-;11376:72;11444:2;11433:9;11429:18;11420:6;11376:72;:::i;:::-;11249:206;;;;;:::o;11461:210::-;;11586:2;11575:9;11571:18;11563:26;;11599:65;11661:1;11650:9;11646:17;11637:6;11599:65;:::i;:::-;11553:118;;;;:::o;11677:250::-;;11822:2;11811:9;11807:18;11799:26;;11835:85;11917:1;11906:9;11902:17;11893:6;11835:85;:::i;:::-;11789:138;;;;:::o;11933:419::-;;12137:2;12126:9;12122:18;12114:26;;12186:9;12180:4;12176:20;12172:1;12161:9;12157:17;12150:47;12214:131;12340:4;12214:131;:::i;:::-;12206:139;;12104:248;;;:::o;12358:419::-;;12562:2;12551:9;12547:18;12539:26;;12611:9;12605:4;12601:20;12597:1;12586:9;12582:17;12575:47;12639:131;12765:4;12639:131;:::i;:::-;12631:139;;12529:248;;;:::o;12783:419::-;;12987:2;12976:9;12972:18;12964:26;;13036:9;13030:4;13026:20;13022:1;13011:9;13007:17;13000:47;13064:131;13190:4;13064:131;:::i;:::-;13056:139;;12954:248;;;:::o;13208:419::-;;13412:2;13401:9;13397:18;13389:26;;13461:9;13455:4;13451:20;13447:1;13436:9;13432:17;13425:47;13489:131;13615:4;13489:131;:::i;:::-;13481:139;;13379:248;;;:::o;13633:419::-;;13837:2;13826:9;13822:18;13814:26;;13886:9;13880:4;13876:20;13872:1;13861:9;13857:17;13850:47;13914:131;14040:4;13914:131;:::i;:::-;13906:139;;13804:248;;;:::o;14058:419::-;;14262:2;14251:9;14247:18;14239:26;;14311:9;14305:4;14301:20;14297:1;14286:9;14282:17;14275:47;14339:131;14465:4;14339:131;:::i;:::-;14331:139;;14229:248;;;:::o;14483:419::-;;14687:2;14676:9;14672:18;14664:26;;14736:9;14730:4;14726:20;14722:1;14711:9;14707:17;14700:47;14764:131;14890:4;14764:131;:::i;:::-;14756:139;;14654:248;;;:::o;14908:419::-;;15112:2;15101:9;15097:18;15089:26;;15161:9;15155:4;15151:20;15147:1;15136:9;15132:17;15125:47;15189:131;15315:4;15189:131;:::i;:::-;15181:139;;15079:248;;;:::o;15333:419::-;;15537:2;15526:9;15522:18;15514:26;;15586:9;15580:4;15576:20;15572:1;15561:9;15557:17;15550:47;15614:131;15740:4;15614:131;:::i;:::-;15606:139;;15504:248;;;:::o;15758:419::-;;15962:2;15951:9;15947:18;15939:26;;16011:9;16005:4;16001:20;15997:1;15986:9;15982:17;15975:47;16039:131;16165:4;16039:131;:::i;:::-;16031:139;;15929:248;;;:::o;16183:419::-;;16387:2;16376:9;16372:18;16364:26;;16436:9;16430:4;16426:20;16422:1;16411:9;16407:17;16400:47;16464:131;16590:4;16464:131;:::i;:::-;16456:139;;16354:248;;;:::o;16608:419::-;;16812:2;16801:9;16797:18;16789:26;;16861:9;16855:4;16851:20;16847:1;16836:9;16832:17;16825:47;16889:131;17015:4;16889:131;:::i;:::-;16881:139;;16779:248;;;:::o;17033:419::-;;17237:2;17226:9;17222:18;17214:26;;17286:9;17280:4;17276:20;17272:1;17261:9;17257:17;17250:47;17314:131;17440:4;17314:131;:::i;:::-;17306:139;;17204:248;;;:::o;17458:419::-;;17662:2;17651:9;17647:18;17639:26;;17711:9;17705:4;17701:20;17697:1;17686:9;17682:17;17675:47;17739:131;17865:4;17739:131;:::i;:::-;17731:139;;17629:248;;;:::o;17883:419::-;;18087:2;18076:9;18072:18;18064:26;;18136:9;18130:4;18126:20;18122:1;18111:9;18107:17;18100:47;18164:131;18290:4;18164:131;:::i;:::-;18156:139;;18054:248;;;:::o;18308:419::-;;18512:2;18501:9;18497:18;18489:26;;18561:9;18555:4;18551:20;18547:1;18536:9;18532:17;18525:47;18589:131;18715:4;18589:131;:::i;:::-;18581:139;;18479:248;;;:::o;18733:419::-;;18937:2;18926:9;18922:18;18914:26;;18986:9;18980:4;18976:20;18972:1;18961:9;18957:17;18950:47;19014:131;19140:4;19014:131;:::i;:::-;19006:139;;18904:248;;;:::o;19158:419::-;;19362:2;19351:9;19347:18;19339:26;;19411:9;19405:4;19401:20;19397:1;19386:9;19382:17;19375:47;19439:131;19565:4;19439:131;:::i;:::-;19431:139;;19329:248;;;:::o;19583:419::-;;19787:2;19776:9;19772:18;19764:26;;19836:9;19830:4;19826:20;19822:1;19811:9;19807:17;19800:47;19864:131;19990:4;19864:131;:::i;:::-;19856:139;;19754:248;;;:::o;20008:222::-;;20139:2;20128:9;20124:18;20116:26;;20152:71;20220:1;20209:9;20205:17;20196:6;20152:71;:::i;:::-;20106:124;;;;:::o;20236:169::-;;20354:6;20349:3;20342:19;20394:4;20389:3;20385:14;20370:29;;20332:73;;;;:::o;20411:305::-;;20470:20;20488:1;20470:20;:::i;:::-;20465:25;;20504:20;20522:1;20504:20;:::i;:::-;20499:25;;20658:1;20590:66;20586:74;20583:1;20580:81;20577:2;;;20664:18;;:::i;:::-;20577:2;20708:1;20705;20701:9;20694:16;;20455:261;;;;:::o;20722:185::-;;20779:20;20797:1;20779:20;:::i;:::-;20774:25;;20813:20;20831:1;20813:20;:::i;:::-;20808:25;;20852:1;20842:2;;20857:18;;:::i;:::-;20842:2;20899:1;20896;20892:9;20887:14;;20764:143;;;;:::o;20913:348::-;;20976:20;20994:1;20976:20;:::i;:::-;20971:25;;21010:20;21028:1;21010:20;:::i;:::-;21005:25;;21198:1;21130:66;21126:74;21123:1;21120:81;21115:1;21108:9;21101:17;21097:105;21094:2;;;21205:18;;:::i;:::-;21094:2;21253:1;21250;21246:9;21235:20;;20961:300;;;;:::o;21267:191::-;;21327:20;21345:1;21327:20;:::i;:::-;21322:25;;21361:20;21379:1;21361:20;:::i;:::-;21356:25;;21400:1;21397;21394:8;21391:2;;;21405:18;;:::i;:::-;21391:2;21450:1;21447;21443:9;21435:17;;21312:146;;;;:::o;21464:96::-;;21530:24;21548:5;21530:24;:::i;:::-;21519:35;;21509:51;;;:::o;21566:90::-;;21643:5;21636:13;21629:21;21618:32;;21608:48;;;:::o;21662:126::-;;21739:42;21732:5;21728:54;21717:65;;21707:81;;;:::o;21794:77::-;;21860:5;21849:16;;21839:32;;;:::o;21877:154::-;;21974:51;22019:5;21974:51;:::i;:::-;21961:64;;21951:80;;;:::o;22037:127::-;;22134:24;22152:5;22134:24;:::i;:::-;22121:37;;22111:53;;;:::o;22170:180::-;22218:77;22215:1;22208:88;22315:4;22312:1;22305:15;22339:4;22336:1;22329:15;22356:180;22404:77;22401:1;22394:88;22501:4;22498:1;22491:15;22525:4;22522:1;22515:15;22542:122;22615:24;22633:5;22615:24;:::i;:::-;22608:5;22605:35;22595:2;;22654:1;22651;22644:12;22595:2;22585:79;:::o;22670:116::-;22740:21;22755:5;22740:21;:::i;:::-;22733:5;22730:32;22720:2;;22776:1;22773;22766:12;22720:2;22710:76;:::o;22792:122::-;22865:24;22883:5;22865:24;:::i;:::-;22858:5;22855:35;22845:2;;22904:1;22901;22894:12;22845:2;22835:79;:::o

Swarm Source

ipfs://4c5d1829949126ae6b554ef8029128086fc36e4d4b3521f07c9309afd952336e

Block Transaction Difficulty 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
Loading...
Loading
[ 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.