ETH Price: $3,684.12 (+1.43%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Tokens214196492024-12-17 3:45:1120 days ago1734407111IN
0x3Bd361AF...bd2574cbD
0 ETH0.0008049310.35588428
Withdraw Tokens214164652024-12-16 17:06:2320 days ago1734368783IN
0x3Bd361AF...bd2574cbD
0 ETH0.0028723436.95433008
Withdraw Tokens213536472024-12-07 22:39:3529 days ago1733611175IN
0x3Bd361AF...bd2574cbD
0 ETH0.0009485912.20424607
Withdraw Tokens212754992024-11-27 0:26:1140 days ago1732667171IN
0x3Bd361AF...bd2574cbD
0 ETH0.0006490510.70575374
Withdraw Tokens212060462024-11-17 7:50:4749 days ago1731829847IN
0x3Bd361AF...bd2574cbD
0 ETH0.0008019910.31811223
Withdraw Tokens210719772024-10-29 14:46:2368 days ago1730213183IN
0x3Bd361AF...bd2574cbD
0 ETH0.0005346814.83921217
Withdraw Tokens210719672024-10-29 14:44:2368 days ago1730213063IN
0x3Bd361AF...bd2574cbD
0 ETH0.0018266215.92147465
Withdraw Tokens210660642024-10-28 18:57:2369 days ago1730141843IN
0x3Bd361AF...bd2574cbD
0 ETH0.0007941813.09959758
Withdraw Tokens210419482024-10-25 10:11:1172 days ago1729851071IN
0x3Bd361AF...bd2574cbD
0 ETH0.000441497.28222548
Withdraw Tokens210348362024-10-24 10:23:3573 days ago1729765415IN
0x3Bd361AF...bd2574cbD
0 ETH0.000520768.58959369
Withdraw Tokens210189412024-10-22 5:10:2376 days ago1729573823IN
0x3Bd361AF...bd2574cbD
0 ETH0.000444755.72203208
Withdraw Tokens210059072024-10-20 9:30:5977 days ago1729416659IN
0x3Bd361AF...bd2574cbD
0 ETH0.000653868.4123277
Withdraw Tokens210002872024-10-19 14:43:2378 days ago1729349003IN
0x3Bd361AF...bd2574cbD
0 ETH0.0024730931.81776338
Withdraw Tokens209993262024-10-19 11:30:2378 days ago1729337423IN
0x3Bd361AF...bd2574cbD
0 ETH0.000717159.2265742
Withdraw Tokens209989092024-10-19 10:06:2378 days ago1729332383IN
0x3Bd361AF...bd2574cbD
0 ETH0.000572499.44286306
Withdraw Tokens209812252024-10-16 22:52:4781 days ago1729119167IN
0x3Bd361AF...bd2574cbD
0 ETH0.0006522110.75781255
Withdraw Tokens209455062024-10-11 22:58:4786 days ago1728687527IN
0x3Bd361AF...bd2574cbD
0 ETH0.0008562711.01641275
Withdraw Tokens209293182024-10-09 16:45:4788 days ago1728492347IN
0x3Bd361AF...bd2574cbD
0 ETH0.003961150.96178904
Withdraw Tokens209231022024-10-08 19:58:3589 days ago1728417515IN
0x3Bd361AF...bd2574cbD
0 ETH0.003215253.03256974
Withdraw Tokens209155412024-10-07 18:41:2390 days ago1728326483IN
0x3Bd361AF...bd2574cbD
0 ETH0.0029073737.40501803
Withdraw Tokens209153422024-10-07 18:01:3590 days ago1728324095IN
0x3Bd361AF...bd2574cbD
0 ETH0.0029195148.1553104
Withdraw Tokens208930862024-10-04 15:34:1193 days ago1728056051IN
0x3Bd361AF...bd2574cbD
0 ETH0.0006842511.28631133
Withdraw Tokens208768052024-10-02 9:05:4795 days ago1727859947IN
0x3Bd361AF...bd2574cbD
0 ETH0.000556477.1593557
Withdraw Tokens208719052024-10-01 16:41:5996 days ago1727800919IN
0x3Bd361AF...bd2574cbD
0 ETH0.0014471823.87032181
Withdraw Tokens208709022024-10-01 13:19:5996 days ago1727788799IN
0x3Bd361AF...bd2574cbD
0 ETH0.0018027915.71376771
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
195683262024-04-02 13:11:35278 days ago1712063495
0x3Bd361AF...bd2574cbD
47.37907628 ETH
195597042024-04-01 8:10:11279 days ago1711959011
0x3Bd361AF...bd2574cbD
2.75483901 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"}]

608060405234801561001057600080fd5b5060006100216100c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100cc565b600033905090565b612943806100db6000396000f3fe6080604052600436106101e75760003560e01c80637e717d3a11610102578063b76c93f111610095578063f5e329a411610064578063f5e329a414610664578063fc0c546a1461068f578063fddd5b09146106ba578063fe575a87146106e5576101f6565b8063b76c93f1146105a8578063caf64d73146105d3578063e8c9a3e5146105fe578063f2fde38b1461063b576101f6565b8063a0dfe58d116100d1578063a0dfe58d1461051f578063a168ca1314610548578063a50ec32614610573578063b25ec61b1461057d576101f6565b80637e717d3a146104875780638d8f2adb146104b25780638da5cb5b146104c95780639546b73e146104f4576101f6565b806344337ea11161017a5780636ef61092116101495780636ef61092146103f3578063715018a61461043057806371e4605c146104475780637c50601c14610470576101f6565b806344337ea114610339578063497aef2814610362578063537df3b61461039f578063685439d8146103c8576101f6565b806334fcf437116101b657806334fcf4371461028f57806337117b7f146102b85780633a6b75cd146102e35780633bdbe8bb1461030e576101f6565b80630b895c51146101fb5780631f281ace1461021257806326a4e8d21461023d5780632b356cbd14610266576101f6565b366101f6576101f4610722565b005b600080fd5b34801561020757600080fd5b506102106109b6565b005b34801561021e57600080fd5b50610227610b8e565b6040516102349190612427565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190611c81565b610ba1565b005b34801561027257600080fd5b5061028d60048036038101906102889190611caa565b610cd1565b005b34801561029b57600080fd5b506102b660048036038101906102b19190611cfc565b610d6a565b005b3480156102c457600080fd5b506102cd610df0565b6040516102da91906126bd565b60405180910390f35b3480156102ef57600080fd5b506102f8610df6565b60405161030591906126bd565b60405180910390f35b34801561031a57600080fd5b50610323610dfc565b60405161033091906126bd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611c81565b610e02565b005b34801561036e57600080fd5b5061038960048036038101906103849190611c81565b610ed9565b60405161039691906126bd565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611c81565b610ef1565b005b3480156103d457600080fd5b506103dd610fc8565b6040516103ea91906126bd565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190611c81565b610fce565b6040516104279190612427565b60405180910390f35b34801561043c57600080fd5b50610445610fee565b005b34801561045357600080fd5b5061046e60048036038101906104699190611d9d565b611128565b005b34801561047c57600080fd5b506104856111e6565b005b34801561049357600080fd5b5061049c611336565b6040516104a991906126bd565b60405180910390f35b3480156104be57600080fd5b506104c761133c565b005b3480156104d557600080fd5b506104de61170b565b6040516104eb91906123e3565b60405180910390f35b34801561050057600080fd5b50610509611734565b60405161051691906126bd565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190611d4e565b61173a565b005b34801561055457600080fd5b5061055d61185b565b60405161056a91906126bd565b60405180910390f35b61057b610722565b005b34801561058957600080fd5b50610592611861565b60405161059f91906126bd565b60405180910390f35b3480156105b457600080fd5b506105bd611867565b6040516105ca91906126bd565b60405180910390f35b3480156105df57600080fd5b506105e861186d565b6040516105f591906126bd565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190611c81565b611873565b60405161063291906126bd565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190611c81565b61188b565b005b34801561067057600080fd5b50610679611a34565b60405161068691906126bd565b60405180910390f35b34801561069b57600080fd5b506106a4611a3a565b6040516106b19190612442565b60405180910390f35b3480156106c657600080fd5b506106cf611a60565b6040516106dc91906126bd565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190611c81565b611a66565b6040516107199190612427565b60405180910390f35b600e60009054906101000a900460ff16610771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107689061263d565b60405180910390fd5b600b5442101580156107855750600c544211155b6107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb9061265d565b60405180910390fd5b60065434101580156107d857506005543411155b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061269d565b60405180910390fd5b600f6000610823611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061261d565b60405180910390fd5b600a546108c334600354611a8e90919063ffffffff16565b1115610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906124dd565b60405180910390fd5b61095634601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ae34600354611a8e90919063ffffffff16565b600381905550565b6109be611a86565b73ffffffffffffffffffffffffffffffffffffffff166109dc61170b565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906125fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acc91906123e3565b60206040518083038186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d25565b6040518363ffffffff1660e01b8152600401610b399291906123fe565b602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190611cd3565b50565b600e60009054906101000a900460ff1681565b610ba9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610bc761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061267d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cd9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610cf761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906125fd565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610d72611a86565b73ffffffffffffffffffffffffffffffffffffffff16610d9061170b565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906125fd565b60405180910390fd5b8060048190555050565b60045481565b60095481565b60035481565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff16610e2861170b565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906125fd565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915090505481565b610ef9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610f1761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f64906125fd565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60126020528060005260406000206000915054906101000a900460ff1681565b610ff6611a86565b73ffffffffffffffffffffffffffffffffffffffff1661101461170b565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611130611a86565b73ffffffffffffffffffffffffffffffffffffffff1661114e61170b565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906125fd565b60405180910390fd5b8460048190555081600581905550806006819055508360098190555082600a8190555087600b8190555086600c8190555085600d819055505050505050505050565b6111ee611a86565b73ffffffffffffffffffffffffffffffffffffffff1661120c61170b565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611259906125fd565b60405180910390fd5b600c5442116112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d9061257d565b60405180910390fd5b60095460035410156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061253d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611333573d6000803e3d6000fd5b50565b600d5481565b600d544211611380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113779061259d565b60405180910390fd5b60006113d6600454601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b9050600061140260646113f460075485611aec90919063ffffffff16565b611b6790919063ffffffff16565b90506000600854421061141757829050611491565b6000600d5460085461142991906127ca565b90506000600d544261143b91906127ca565b90506000611476836114688461145a898b611bbf90919063ffffffff16565b611aec90919063ffffffff16565b611b6790919063ffffffff16565b905061148b8186611a8e90919063ffffffff16565b93505050505b60006114e5601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611bbf90919063ffffffff16565b90506000811161152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061245d565b60405180910390fd5b61157c81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116749291906123fe565b602060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611cd3565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061255d565b60405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b611742611a86565b73ffffffffffffffffffffffffffffffffffffffff1661176061170b565b73ffffffffffffffffffffffffffffffffffffffff16146117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad906125fd565b60405180910390fd5b6000831180156117c7575060648311155b611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd9061247d565b60405180910390fd5b808210611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906125bd565b60405180910390fd5b8260078190555080600881905550505050565b60085481565b60025481565b600a5481565b60055481565b60116020528060005260406000206000915090505481565b611893611a86565b73ffffffffffffffffffffffffffffffffffffffff166118b161170b565b73ffffffffffffffffffffffffffffffffffffffff1614611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061249d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6000808284611a9d91906126e9565b905083811015611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906124bd565b60405180910390fd5b8091505092915050565b600080831415611aff5760009050611b61565b60008284611b0d9190612770565b9050828482611b1c919061273f565b14611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906125dd565b60405180910390fd5b809150505b92915050565b6000808211611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061251d565b60405180910390fd5b8183611bb7919061273f565b905092915050565b600082821115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906124fd565b60405180910390fd5b8183611c1091906127ca565b905092915050565b600081359050611c27816128c8565b92915050565b600081359050611c3c816128df565b92915050565b600081519050611c51816128df565b92915050565b600081359050611c66816128f6565b92915050565b600081519050611c7b816128f6565b92915050565b600060208284031215611c9357600080fd5b6000611ca184828501611c18565b91505092915050565b600060208284031215611cbc57600080fd5b6000611cca84828501611c2d565b91505092915050565b600060208284031215611ce557600080fd5b6000611cf384828501611c42565b91505092915050565b600060208284031215611d0e57600080fd5b6000611d1c84828501611c57565b91505092915050565b600060208284031215611d3757600080fd5b6000611d4584828501611c6c565b91505092915050565b600080600060608486031215611d6357600080fd5b6000611d7186828701611c57565b9350506020611d8286828701611c57565b9250506040611d9386828701611c57565b9150509250925092565b600080600080600080600080610100898b031215611dba57600080fd5b6000611dc88b828c01611c57565b9850506020611dd98b828c01611c57565b9750506040611dea8b828c01611c57565b9650506060611dfb8b828c01611c57565b9550506080611e0c8b828c01611c57565b94505060a0611e1d8b828c01611c57565b93505060c0611e2e8b828c01611c57565b92505060e0611e3f8b828c01611c57565b9150509295985092959890939650565b611e58816127fe565b82525050565b611e6781612810565b82525050565b611e7681612846565b82525050565b6000611e896029836126d8565b91507f4e6f2076657374656420746f6b656e7320617661696c61626c6520666f72207760008301527f69746864726177616c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eef601a836126d8565b91507f496e76616c69642072656c656173652070657263656e746167650000000000006000830152602082019050919050565b6000611f2f6026836126d8565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f95601b836126d8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611fd5600f836126d8565b91507f45786365656420484152442043415000000000000000000000000000000000006000830152602082019050919050565b6000612015601e836126d8565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612055601a836126d8565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612095601a836126d8565b91507f50726573616c65206469646e27742068697420736f66746361700000000000006000830152602082019050919050565b60006120d56015836126d8565b91507f546f6b656e207472616e73666572206661696c656400000000000000000000006000830152602082019050919050565b6000612115601b836126d8565b91507f50726573616c65206861736e27742066696e69736865642079657400000000006000830152602082019050919050565b6000612155601a836126d8565b91507f56657374696e6720706572696f64206e6f7420737461727465640000000000006000830152602082019050919050565b6000612195602d836126d8565b91507f52656c656173652074696d65206d757374206265206265666f72652066756c6c60008301527f2072656c656173652074696d65000000000000000000000000000000000000006020830152604082019050919050565b60006121fb6021836126d8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122616020836126d8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122a16013836126d8565b91507f596f752061726520626c61636b6c6973746564000000000000000000000000006000830152602082019050919050565b60006122e16013836126d8565b91507f50726573616c65206973206e6f74206f70656e000000000000000000000000006000830152602082019050919050565b60006123216013836126d8565b91507f4e6f7420696e2070726573616c652074696d65000000000000000000000000006000830152602082019050919050565b60006123616015836126d8565b91507f496e76616c696420746f6b656e206164647265737300000000000000000000006000830152602082019050919050565b60006123a16012836126d8565b91507f496e76616c696420424e4220616d6f756e7400000000000000000000000000006000830152602082019050919050565b6123dd8161283c565b82525050565b60006020820190506123f86000830184611e4f565b92915050565b60006040820190506124136000830185611e4f565b61242060208301846123d4565b9392505050565b600060208201905061243c6000830184611e5e565b92915050565b60006020820190506124576000830184611e6d565b92915050565b6000602082019050818103600083015261247681611e7c565b9050919050565b6000602082019050818103600083015261249681611ee2565b9050919050565b600060208201905081810360008301526124b681611f22565b9050919050565b600060208201905081810360008301526124d681611f88565b9050919050565b600060208201905081810360008301526124f681611fc8565b9050919050565b6000602082019050818103600083015261251681612008565b9050919050565b6000602082019050818103600083015261253681612048565b9050919050565b6000602082019050818103600083015261255681612088565b9050919050565b60006020820190508181036000830152612576816120c8565b9050919050565b6000602082019050818103600083015261259681612108565b9050919050565b600060208201905081810360008301526125b681612148565b9050919050565b600060208201905081810360008301526125d681612188565b9050919050565b600060208201905081810360008301526125f6816121ee565b9050919050565b6000602082019050818103600083015261261681612254565b9050919050565b6000602082019050818103600083015261263681612294565b9050919050565b60006020820190508181036000830152612656816122d4565b9050919050565b6000602082019050818103600083015261267681612314565b9050919050565b6000602082019050818103600083015261269681612354565b9050919050565b600060208201905081810360008301526126b681612394565b9050919050565b60006020820190506126d260008301846123d4565b92915050565b600082825260208201905092915050565b60006126f48261283c565b91506126ff8361283c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127345761273361286a565b5b828201905092915050565b600061274a8261283c565b91506127558361283c565b92508261276557612764612899565b5b828204905092915050565b600061277b8261283c565b91506127868361283c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bf576127be61286a565b5b828202905092915050565b60006127d58261283c565b91506127e08361283c565b9250828210156127f3576127f261286a565b5b828203905092915050565b60006128098261281c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061285182612858565b9050919050565b60006128638261281c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6128d1816127fe565b81146128dc57600080fd5b50565b6128e881612810565b81146128f357600080fd5b50565b6128ff8161283c565b811461290a57600080fd5b5056fea26469706673582212206f3f2b9be4b3c309e9a9371e3f6c63742d945bc438cc6f9b6220c5943908f77064736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80637e717d3a11610102578063b76c93f111610095578063f5e329a411610064578063f5e329a414610664578063fc0c546a1461068f578063fddd5b09146106ba578063fe575a87146106e5576101f6565b8063b76c93f1146105a8578063caf64d73146105d3578063e8c9a3e5146105fe578063f2fde38b1461063b576101f6565b8063a0dfe58d116100d1578063a0dfe58d1461051f578063a168ca1314610548578063a50ec32614610573578063b25ec61b1461057d576101f6565b80637e717d3a146104875780638d8f2adb146104b25780638da5cb5b146104c95780639546b73e146104f4576101f6565b806344337ea11161017a5780636ef61092116101495780636ef61092146103f3578063715018a61461043057806371e4605c146104475780637c50601c14610470576101f6565b806344337ea114610339578063497aef2814610362578063537df3b61461039f578063685439d8146103c8576101f6565b806334fcf437116101b657806334fcf4371461028f57806337117b7f146102b85780633a6b75cd146102e35780633bdbe8bb1461030e576101f6565b80630b895c51146101fb5780631f281ace1461021257806326a4e8d21461023d5780632b356cbd14610266576101f6565b366101f6576101f4610722565b005b600080fd5b34801561020757600080fd5b506102106109b6565b005b34801561021e57600080fd5b50610227610b8e565b6040516102349190612427565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f9190611c81565b610ba1565b005b34801561027257600080fd5b5061028d60048036038101906102889190611caa565b610cd1565b005b34801561029b57600080fd5b506102b660048036038101906102b19190611cfc565b610d6a565b005b3480156102c457600080fd5b506102cd610df0565b6040516102da91906126bd565b60405180910390f35b3480156102ef57600080fd5b506102f8610df6565b60405161030591906126bd565b60405180910390f35b34801561031a57600080fd5b50610323610dfc565b60405161033091906126bd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190611c81565b610e02565b005b34801561036e57600080fd5b5061038960048036038101906103849190611c81565b610ed9565b60405161039691906126bd565b60405180910390f35b3480156103ab57600080fd5b506103c660048036038101906103c19190611c81565b610ef1565b005b3480156103d457600080fd5b506103dd610fc8565b6040516103ea91906126bd565b60405180910390f35b3480156103ff57600080fd5b5061041a60048036038101906104159190611c81565b610fce565b6040516104279190612427565b60405180910390f35b34801561043c57600080fd5b50610445610fee565b005b34801561045357600080fd5b5061046e60048036038101906104699190611d9d565b611128565b005b34801561047c57600080fd5b506104856111e6565b005b34801561049357600080fd5b5061049c611336565b6040516104a991906126bd565b60405180910390f35b3480156104be57600080fd5b506104c761133c565b005b3480156104d557600080fd5b506104de61170b565b6040516104eb91906123e3565b60405180910390f35b34801561050057600080fd5b50610509611734565b60405161051691906126bd565b60405180910390f35b34801561052b57600080fd5b5061054660048036038101906105419190611d4e565b61173a565b005b34801561055457600080fd5b5061055d61185b565b60405161056a91906126bd565b60405180910390f35b61057b610722565b005b34801561058957600080fd5b50610592611861565b60405161059f91906126bd565b60405180910390f35b3480156105b457600080fd5b506105bd611867565b6040516105ca91906126bd565b60405180910390f35b3480156105df57600080fd5b506105e861186d565b6040516105f591906126bd565b60405180910390f35b34801561060a57600080fd5b5061062560048036038101906106209190611c81565b611873565b60405161063291906126bd565b60405180910390f35b34801561064757600080fd5b50610662600480360381019061065d9190611c81565b61188b565b005b34801561067057600080fd5b50610679611a34565b60405161068691906126bd565b60405180910390f35b34801561069b57600080fd5b506106a4611a3a565b6040516106b19190612442565b60405180910390f35b3480156106c657600080fd5b506106cf611a60565b6040516106dc91906126bd565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190611c81565b611a66565b6040516107199190612427565b60405180910390f35b600e60009054906101000a900460ff16610771576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107689061263d565b60405180910390fd5b600b5442101580156107855750600c544211155b6107c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107bb9061265d565b60405180910390fd5b60065434101580156107d857506005543411155b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e9061269d565b60405180910390fd5b600f6000610823611a86565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a29061261d565b60405180910390fd5b600a546108c334600354611a8e90919063ffffffff16565b1115610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb906124dd565b60405180910390fd5b61095634601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506109ae34600354611a8e90919063ffffffff16565b600381905550565b6109be611a86565b73ffffffffffffffffffffffffffffffffffffffff166109dc61170b565b73ffffffffffffffffffffffffffffffffffffffff1614610a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a29906125fd565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610acc91906123e3565b60206040518083038186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1c9190611d25565b6040518363ffffffff1660e01b8152600401610b399291906123fe565b602060405180830381600087803b158015610b5357600080fd5b505af1158015610b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8b9190611cd3565b50565b600e60009054906101000a900460ff1681565b610ba9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610bc761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c849061267d565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610cd9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610cf761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d44906125fd565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b610d72611a86565b73ffffffffffffffffffffffffffffffffffffffff16610d9061170b565b73ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd906125fd565b60405180910390fd5b8060048190555050565b60045481565b60095481565b60035481565b610e0a611a86565b73ffffffffffffffffffffffffffffffffffffffff16610e2861170b565b73ffffffffffffffffffffffffffffffffffffffff1614610e7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e75906125fd565b60405180910390fd5b6001600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915090505481565b610ef9611a86565b73ffffffffffffffffffffffffffffffffffffffff16610f1761170b565b73ffffffffffffffffffffffffffffffffffffffff1614610f6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f64906125fd565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60075481565b60126020528060005260406000206000915054906101000a900460ff1681565b610ff6611a86565b73ffffffffffffffffffffffffffffffffffffffff1661101461170b565b73ffffffffffffffffffffffffffffffffffffffff161461106a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611061906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b611130611a86565b73ffffffffffffffffffffffffffffffffffffffff1661114e61170b565b73ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906125fd565b60405180910390fd5b8460048190555081600581905550806006819055508360098190555082600a8190555087600b8190555086600c8190555085600d819055505050505050505050565b6111ee611a86565b73ffffffffffffffffffffffffffffffffffffffff1661120c61170b565b73ffffffffffffffffffffffffffffffffffffffff1614611262576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611259906125fd565b60405180910390fd5b600c5442116112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d9061257d565b60405180910390fd5b60095460035410156112ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e49061253d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611333573d6000803e3d6000fd5b50565b600d5481565b600d544211611380576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113779061259d565b60405180910390fd5b60006113d6600454601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b9050600061140260646113f460075485611aec90919063ffffffff16565b611b6790919063ffffffff16565b90506000600854421061141757829050611491565b6000600d5460085461142991906127ca565b90506000600d544261143b91906127ca565b90506000611476836114688461145a898b611bbf90919063ffffffff16565b611aec90919063ffffffff16565b611b6790919063ffffffff16565b905061148b8186611a8e90919063ffffffff16565b93505050505b60006114e5601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611bbf90919063ffffffff16565b90506000811161152a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115219061245d565b60405180910390fd5b61157c81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8e90919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016116749291906123fe565b602060405180830381600087803b15801561168e57600080fd5b505af11580156116a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116c69190611cd3565b611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fc9061255d565b60405180910390fd5b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b611742611a86565b73ffffffffffffffffffffffffffffffffffffffff1661176061170b565b73ffffffffffffffffffffffffffffffffffffffff16146117b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ad906125fd565b60405180910390fd5b6000831180156117c7575060648311155b611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd9061247d565b60405180910390fd5b808210611848576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183f906125bd565b60405180910390fd5b8260078190555080600881905550505050565b60085481565b60025481565b600a5481565b60055481565b60116020528060005260406000206000915090505481565b611893611a86565b73ffffffffffffffffffffffffffffffffffffffff166118b161170b565b73ffffffffffffffffffffffffffffffffffffffff1614611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe906125fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196e9061249d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60065481565b600f6020528060005260406000206000915054906101000a900460ff1681565b600033905090565b6000808284611a9d91906126e9565b905083811015611ae2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad9906124bd565b60405180910390fd5b8091505092915050565b600080831415611aff5760009050611b61565b60008284611b0d9190612770565b9050828482611b1c919061273f565b14611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b53906125dd565b60405180910390fd5b809150505b92915050565b6000808211611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba29061251d565b60405180910390fd5b8183611bb7919061273f565b905092915050565b600082821115611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906124fd565b60405180910390fd5b8183611c1091906127ca565b905092915050565b600081359050611c27816128c8565b92915050565b600081359050611c3c816128df565b92915050565b600081519050611c51816128df565b92915050565b600081359050611c66816128f6565b92915050565b600081519050611c7b816128f6565b92915050565b600060208284031215611c9357600080fd5b6000611ca184828501611c18565b91505092915050565b600060208284031215611cbc57600080fd5b6000611cca84828501611c2d565b91505092915050565b600060208284031215611ce557600080fd5b6000611cf384828501611c42565b91505092915050565b600060208284031215611d0e57600080fd5b6000611d1c84828501611c57565b91505092915050565b600060208284031215611d3757600080fd5b6000611d4584828501611c6c565b91505092915050565b600080600060608486031215611d6357600080fd5b6000611d7186828701611c57565b9350506020611d8286828701611c57565b9250506040611d9386828701611c57565b9150509250925092565b600080600080600080600080610100898b031215611dba57600080fd5b6000611dc88b828c01611c57565b9850506020611dd98b828c01611c57565b9750506040611dea8b828c01611c57565b9650506060611dfb8b828c01611c57565b9550506080611e0c8b828c01611c57565b94505060a0611e1d8b828c01611c57565b93505060c0611e2e8b828c01611c57565b92505060e0611e3f8b828c01611c57565b9150509295985092959890939650565b611e58816127fe565b82525050565b611e6781612810565b82525050565b611e7681612846565b82525050565b6000611e896029836126d8565b91507f4e6f2076657374656420746f6b656e7320617661696c61626c6520666f72207760008301527f69746864726177616c00000000000000000000000000000000000000000000006020830152604082019050919050565b6000611eef601a836126d8565b91507f496e76616c69642072656c656173652070657263656e746167650000000000006000830152602082019050919050565b6000611f2f6026836126d8565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f95601b836126d8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000611fd5600f836126d8565b91507f45786365656420484152442043415000000000000000000000000000000000006000830152602082019050919050565b6000612015601e836126d8565b91507f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006000830152602082019050919050565b6000612055601a836126d8565b91507f536166654d6174683a206469766973696f6e206279207a65726f0000000000006000830152602082019050919050565b6000612095601a836126d8565b91507f50726573616c65206469646e27742068697420736f66746361700000000000006000830152602082019050919050565b60006120d56015836126d8565b91507f546f6b656e207472616e73666572206661696c656400000000000000000000006000830152602082019050919050565b6000612115601b836126d8565b91507f50726573616c65206861736e27742066696e69736865642079657400000000006000830152602082019050919050565b6000612155601a836126d8565b91507f56657374696e6720706572696f64206e6f7420737461727465640000000000006000830152602082019050919050565b6000612195602d836126d8565b91507f52656c656173652074696d65206d757374206265206265666f72652066756c6c60008301527f2072656c656173652074696d65000000000000000000000000000000000000006020830152604082019050919050565b60006121fb6021836126d8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006122616020836126d8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006122a16013836126d8565b91507f596f752061726520626c61636b6c6973746564000000000000000000000000006000830152602082019050919050565b60006122e16013836126d8565b91507f50726573616c65206973206e6f74206f70656e000000000000000000000000006000830152602082019050919050565b60006123216013836126d8565b91507f4e6f7420696e2070726573616c652074696d65000000000000000000000000006000830152602082019050919050565b60006123616015836126d8565b91507f496e76616c696420746f6b656e206164647265737300000000000000000000006000830152602082019050919050565b60006123a16012836126d8565b91507f496e76616c696420424e4220616d6f756e7400000000000000000000000000006000830152602082019050919050565b6123dd8161283c565b82525050565b60006020820190506123f86000830184611e4f565b92915050565b60006040820190506124136000830185611e4f565b61242060208301846123d4565b9392505050565b600060208201905061243c6000830184611e5e565b92915050565b60006020820190506124576000830184611e6d565b92915050565b6000602082019050818103600083015261247681611e7c565b9050919050565b6000602082019050818103600083015261249681611ee2565b9050919050565b600060208201905081810360008301526124b681611f22565b9050919050565b600060208201905081810360008301526124d681611f88565b9050919050565b600060208201905081810360008301526124f681611fc8565b9050919050565b6000602082019050818103600083015261251681612008565b9050919050565b6000602082019050818103600083015261253681612048565b9050919050565b6000602082019050818103600083015261255681612088565b9050919050565b60006020820190508181036000830152612576816120c8565b9050919050565b6000602082019050818103600083015261259681612108565b9050919050565b600060208201905081810360008301526125b681612148565b9050919050565b600060208201905081810360008301526125d681612188565b9050919050565b600060208201905081810360008301526125f6816121ee565b9050919050565b6000602082019050818103600083015261261681612254565b9050919050565b6000602082019050818103600083015261263681612294565b9050919050565b60006020820190508181036000830152612656816122d4565b9050919050565b6000602082019050818103600083015261267681612314565b9050919050565b6000602082019050818103600083015261269681612354565b9050919050565b600060208201905081810360008301526126b681612394565b9050919050565b60006020820190506126d260008301846123d4565b92915050565b600082825260208201905092915050565b60006126f48261283c565b91506126ff8361283c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127345761273361286a565b5b828201905092915050565b600061274a8261283c565b91506127558361283c565b92508261276557612764612899565b5b828204905092915050565b600061277b8261283c565b91506127868361283c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127bf576127be61286a565b5b828202905092915050565b60006127d58261283c565b91506127e08361283c565b9250828210156127f3576127f261286a565b5b828203905092915050565b60006128098261281c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061285182612858565b9050919050565b60006128638261281c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6128d1816127fe565b81146128dc57600080fd5b50565b6128e881612810565b81146128f357600080fd5b50565b6128ff8161283c565b811461290a57600080fd5b5056fea26469706673582212206f3f2b9be4b3c309e9a9371e3f6c63742d945bc438cc6f9b6220c5943908f77064736f6c63430008000033

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://6f3f2b9be4b3c309e9a9371e3f6c63742d945bc438cc6f9b6220c5943908f770

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.