ETH Price: $3,409.44 (-1.55%)
Gas: 9 Gwei

Contract

0xf4E596F245B9025f8D2FcF48ef5FD855F45447DA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Claim Tokens201751682024-06-26 10:08:476 days ago1719396527IN
0xf4E596F2...5F45447DA
0 ETH0.000332484.40234148
Claim Tokens201583442024-06-24 1:43:598 days ago1719193439IN
0xf4E596F2...5F45447DA
0 ETH0.000156721.69207033
Claim Tokens201521572024-06-23 4:57:119 days ago1719118631IN
0xf4E596F2...5F45447DA
0 ETH0.000251922.71988226
Claim Tokens201368052024-06-21 1:26:3511 days ago1718933195IN
0xf4E596F2...5F45447DA
0 ETH0.000267923.54754622
Claim Tokens201253482024-06-19 11:00:2313 days ago1718794823IN
0xf4E596F2...5F45447DA
0 ETH0.000411774.44567619
Claim Tokens201090412024-06-17 4:11:3515 days ago1718597495IN
0xf4E596F2...5F45447DA
0 ETH0.000411834.44626352
Claim Tokens201053362024-06-16 15:45:4716 days ago1718552747IN
0xf4E596F2...5F45447DA
0 ETH0.000580066.26257843
Claim Tokens201049032024-06-16 14:18:2316 days ago1718547503IN
0xf4E596F2...5F45447DA
0 ETH0.000374934.04797311
Claim Tokens201046712024-06-16 13:31:4716 days ago1718544707IN
0xf4E596F2...5F45447DA
0 ETH0.000564016.08930502
Claim Tokens201044842024-06-16 12:54:2316 days ago1718542463IN
0xf4E596F2...5F45447DA
0 ETH0.00038254.12960043
Claim Tokens201018072024-06-16 3:57:2316 days ago1718510243IN
0xf4E596F2...5F45447DA
0 ETH0.000236832.55692995
Claim Tokens201002732024-06-15 22:48:5916 days ago1718491739IN
0xf4E596F2...5F45447DA
0 ETH0.000328283.54429256
Claim Tokens200985262024-06-15 16:56:2316 days ago1718470583IN
0xf4E596F2...5F45447DA
0 ETH0.000488175.27046329
Claim Tokens200793242024-06-13 0:28:1119 days ago1718238491IN
0xf4E596F2...5F45447DA
0 ETH0.00072349.57842394
Claim Tokens200787292024-06-12 22:27:4719 days ago1718231267IN
0xf4E596F2...5F45447DA
0 ETH0.000925759.99474691
Claim Tokens200778282024-06-12 19:26:3519 days ago1718220395IN
0xf4E596F2...5F45447DA
0 ETH0.0012400813.3883844
Claim Tokens200663962024-06-11 5:07:4721 days ago1718082467IN
0xf4E596F2...5F45447DA
0 ETH0.000631946.82274552
Claim Tokens200637522024-06-10 20:15:1121 days ago1718050511IN
0xf4E596F2...5F45447DA
0 ETH0.0034223336.94869295
Claim Tokens200603132024-06-10 8:43:1122 days ago1718008991IN
0xf4E596F2...5F45447DA
0 ETH0.000487075.25867218
Claim Tokens200587842024-06-10 3:36:1122 days ago1717990571IN
0xf4E596F2...5F45447DA
0 ETH0.000332093.58545933
Claim Tokens200553862024-06-09 16:13:2322 days ago1717949603IN
0xf4E596F2...5F45447DA
0 ETH0.0007732510.23856761
Claim Tokens200550022024-06-09 14:56:1123 days ago1717944971IN
0xf4E596F2...5F45447DA
0 ETH0.0010059910.86105934
Claim Tokens200543512024-06-09 12:45:1123 days ago1717937111IN
0xf4E596F2...5F45447DA
0 ETH0.000645596.97007703
Claim Tokens200538752024-06-09 11:09:3523 days ago1717931375IN
0xf4E596F2...5F45447DA
0 ETH0.000396324.27889691
Claim Tokens200528242024-06-09 7:37:4723 days ago1717918667IN
0xf4E596F2...5F45447DA
0 ETH0.000304964.03792691
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
200021422024-06-02 5:47:3530 days ago1717307255
0xf4E596F2...5F45447DA
0.026 ETH
200020912024-06-02 5:36:4730 days ago1717306607
0xf4E596F2...5F45447DA
0.0053 ETH
200020652024-06-02 5:31:3530 days ago1717306295
0xf4E596F2...5F45447DA
0.4 ETH
200020172024-06-02 5:21:5930 days ago1717305719
0xf4E596F2...5F45447DA
0.015 ETH
200020112024-06-02 5:20:4730 days ago1717305647
0xf4E596F2...5F45447DA
0.06 ETH
200018372024-06-02 4:45:5930 days ago1717303559
0xf4E596F2...5F45447DA
0.035 ETH
200016412024-06-02 4:06:2330 days ago1717301183
0xf4E596F2...5F45447DA
0.048 ETH
200015802024-06-02 3:54:1130 days ago1717300451
0xf4E596F2...5F45447DA
0.067 ETH
200012292024-06-02 2:43:2330 days ago1717296203
0xf4E596F2...5F45447DA
0.013 ETH
200010912024-06-02 2:15:3530 days ago1717294535
0xf4E596F2...5F45447DA
0.031 ETH
200010092024-06-02 1:59:1130 days ago1717293551
0xf4E596F2...5F45447DA
0.006 ETH
200009782024-06-02 1:52:5930 days ago1717293179
0xf4E596F2...5F45447DA
0.1 ETH
200007852024-06-02 1:14:1130 days ago1717290851
0xf4E596F2...5F45447DA
0.023 ETH
200005672024-06-02 0:30:2330 days ago1717288223
0xf4E596F2...5F45447DA
0.9 ETH
200005442024-06-02 0:25:4730 days ago1717287947
0xf4E596F2...5F45447DA
0.01 ETH
200004062024-06-01 23:58:1130 days ago1717286291
0xf4E596F2...5F45447DA
0.377 ETH
200004042024-06-01 23:57:4730 days ago1717286267
0xf4E596F2...5F45447DA
0.027 ETH
199999822024-06-01 22:33:1130 days ago1717281191
0xf4E596F2...5F45447DA
0.058 ETH
199999252024-06-01 22:21:4730 days ago1717280507
0xf4E596F2...5F45447DA
0.02 ETH
199995922024-06-01 21:15:1130 days ago1717276511
0xf4E596F2...5F45447DA
0.25 ETH
199995792024-06-01 21:12:3530 days ago1717276355
0xf4E596F2...5F45447DA
0.039 ETH
199991602024-06-01 19:48:2330 days ago1717271303
0xf4E596F2...5F45447DA
0.04 ETH
199991272024-06-01 19:41:4730 days ago1717270907
0xf4E596F2...5F45447DA
0.0395 ETH
199990112024-06-01 19:18:2330 days ago1717269503
0xf4E596F2...5F45447DA
0.006 ETH
199990112024-06-01 19:18:2330 days ago1717269503
0xf4E596F2...5F45447DA
0.0296 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Presale

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT Licensed
pragma solidity ^0.8.18;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

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() {
        _transferOwnership(_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");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(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"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external;

    function transfer(address to, uint256 value) external;

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external;

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

interface AggregatorV3Interface {
    function decimals() external view returns (uint8);

    function description() external view returns (string memory);

    function version() external view returns (uint256);

    function getRoundData(uint80 _roundId)
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );

    function latestRoundData()
        external
        view
        returns (
            uint80 roundId,
            int256 answer,
            uint256 startedAt,
            uint256 updatedAt,
            uint80 answeredInRound
        );
}

contract Presale is Ownable {
    IERC20 public mainToken;
    IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);

    AggregatorV3Interface public priceFeed;

    struct Phase {
        uint256 endTime;
        uint256 tokensToSell;
        uint256 totalSoldTokens;
        uint256 tokenPerUsdPrice;
    }
    mapping(uint256 => Phase) public phases;

    // Stats
    uint256 public totalStages;
    uint256 public currentStage;
    uint256 public soldToken;
    uint256 public amountRaised;
    uint256 public amountRaisedUSDT;
    uint256 public uniqueBuyers;

    address payable public fundReceiver;

    bool public presaleStatus;
    bool public isPresaleEnded;
    uint256 public claimStartTime;

    address[] public UsersAddresses;
    struct User {
        uint256 native_balance;
        uint256 usdt_balance;
        uint256 token_balance;
        uint256 claimed_tokens;
    }

        uint256[] public tokensToSell = [
        200000000000000,
        300000000000000,
        700000000000000,
        1200000000000000,
        1100000000000000,
        500000000000000
    ];
    uint256[] public endTimestamps = [
        1704735960,
        1704950500,
        1706589347,
        1712948400,
        1714629600,
        1714629600
    ];
    uint256[] public tokenPerUsdPrice = [
        3333333333,
        2500000000,
        2222222222,
        2000000000,
        1818181818,
        1666666667
    ];


    mapping(address => User) public users;
    mapping(address => bool) public isExist;

    event BuyToken(address indexed _user, uint256 indexed _amount);
    event ClaimToken(address indexed _user, uint256 indexed _amount);
    event UpdatePrice(uint256 _oldPrice, uint256 _newPrice);

    constructor(
        IERC20 _token
    ) {
        require(
            tokensToSell.length == endTimestamps.length &&
                endTimestamps.length == tokenPerUsdPrice.length,
            "tokens and duration length mismatch"
        );
        mainToken = _token;
        fundReceiver = payable(0xE8EC5F7aF62e5Ad1284749517DC8C168225e2BF3);
        priceFeed = AggregatorV3Interface(
            0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
        );

        for (uint256 i = 0; i < tokensToSell.length; i++) {
            phases[i].endTime = endTimestamps[i];
            phases[i].tokensToSell = tokensToSell[i];
            phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i];
        }
        totalStages = tokensToSell.length;
        currentStage = 4;
        phases[0].totalSoldTokens = 199409601923892;
        phases[1].totalSoldTokens = 299987660172650;
        phases[2].totalSoldTokens = 699987501162338;
        phases[3].totalSoldTokens = 1199925241352520;
        phases[4].totalSoldTokens = 136800036005301;
        phases[5].totalSoldTokens = 21677580537482;
    }

    // to get real time price of Eth
    function getLatestPrice() public view returns (uint256) {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        return uint256(price);
    }

    // to buy token during preSale time with Eth => for web3 use
    function buyToken() public payable {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        fundReceiver.transfer(msg.value);
        // Check active phase
        uint256 activePhase = activePhaseInd();
        if (activePhase != currentStage) {
            currentStage = activePhase;
        }

        uint256 numberOfTokens;
        numberOfTokens = nativeToToken(msg.value, activePhase);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + (numberOfTokens);
        amountRaised = amountRaised + (msg.value);

        users[msg.sender].native_balance =
            users[msg.sender].native_balance +
            (msg.value);
        users[msg.sender].token_balance =
            users[msg.sender].token_balance +
            (numberOfTokens);
        phases[currentStage].totalSoldTokens += numberOfTokens;
    }

    // to buy token during preSale time with USDT => for web3 use
    function buyTokenUSDT(uint256 amount) public {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
        }
        USDT.transferFrom(msg.sender, fundReceiver, amount);
        // Check active phase
        uint256 activePhase = activePhaseInd();
        if (activePhase != currentStage) {
            currentStage = activePhase;
        }

        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, activePhase);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDT = amountRaisedUSDT + amount;

        users[msg.sender].usdt_balance += amount;

        users[msg.sender].token_balance =
            users[msg.sender].token_balance +
            numberOfTokens;
        phases[currentStage].totalSoldTokens += numberOfTokens;
    }

    function claimTokens() external {
        require(isPresaleEnded, "Presale has not ended yet");
        require(isExist[msg.sender], "User don't exist");
        User storage user = users[msg.sender];
        require(user.token_balance > 0, "No tokens purchased");
        uint256 claimableTokens = user.token_balance - user.claimed_tokens;
        require(claimableTokens > 0, "No tokens to claim");
        user.claimed_tokens += claimableTokens;
        mainToken.transfer(msg.sender, claimableTokens);
        emit ClaimToken(msg.sender, claimableTokens);
    }

    function activePhaseInd() public view returns (uint256) {
        if (block.timestamp < phases[currentStage].endTime) {
            if (
                phases[currentStage].totalSoldTokens <
                phases[currentStage].tokensToSell
            ) {
                return currentStage;
            } else {
                return currentStage + 1;
            }
        } else {
            return currentStage + 1;
        }
    }

    function changeClaimAddress(address _oldAddress, address _newWallet)
        public
        onlyOwner
    {
        require(isExist[_oldAddress], " Old User not a participant");
        User storage user = users[_oldAddress];
        User storage newUser = users[_newWallet];
        newUser.token_balance = user.token_balance;
        newUser.claimed_tokens = user.claimed_tokens;
        user.token_balance = 0;
        user.claimed_tokens = 0;
        isExist[_oldAddress] = false;
        isExist[_newWallet] = true;
    }

    function getPhaseDetail(uint256 phaseInd)
        external
        view
        returns (
            uint256 tokenToSell,
            uint256 soldTokens,
            uint256 priceUsd,
            uint256 duration
        )
    {
        Phase memory phase = phases[phaseInd];
        return (
            phase.tokensToSell,
            phase.totalSoldTokens,
            phase.tokenPerUsdPrice,
            phase.endTime
        );
    }

    function setPresaleStatus(bool _status) external onlyOwner {
        presaleStatus = _status;
    }

    function endPresale() external onlyOwner {
        isPresaleEnded = true;
        claimStartTime = block.timestamp;
    }

    // to check number of token for given Eth
    function nativeToToken(uint256 _amount, uint256 phaseId)
        public
        view
        returns (uint256)
    {
        uint256 ethToUsd = (_amount * (getLatestPrice())) / (1 ether);
        uint256 numberOfTokens = (ethToUsd * phases[phaseId].tokenPerUsdPrice) /
            (1e8);
        return numberOfTokens;
    }

    // to check number of token for given usdt
    function usdtToToken(uint256 _amount, uint256 phaseId)
        public
        view
        returns (uint256)
    {
        uint256 numberOfTokens = (_amount * phases[phaseId].tokenPerUsdPrice) /
            (1e6);
        return numberOfTokens;
    }

    function updateInfos(
        uint256 _sold,
        uint256 _raised,
        uint256 _raisedInUsdt
    ) external onlyOwner {
        soldToken = _sold;
        amountRaised = _raised;
        amountRaisedUSDT = _raisedInUsdt;
    }

    // change tokens
    function updateToken(address _token) external onlyOwner {
        mainToken = IERC20(_token);
    }

    function updateEndTime(uint256 _phase, uint256 _time) public onlyOwner {
        phases[_phase].endTime = _time;
    }

    //change tokens for buy
    function updateStableTokens(IERC20 _USDT) external onlyOwner {
        USDT = IERC20(_USDT);
    }

    // to withdraw funds for liquidity
    function initiateTransfer(uint256 _value) external onlyOwner {
        fundReceiver.transfer(_value);
    }

    function changeFundReciever(address _addr) external onlyOwner {
        fundReceiver = payable(_addr);
    }

    function updatePriceFeed(AggregatorV3Interface _priceFeed)
        external
        onlyOwner
    {
        priceFeed = _priceFeed;
    }

    // to withdraw out tokens
    function transferTokens(IERC20 token, uint256 _value) external onlyOwner {
        token.transfer(msg.sender, _value);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BuyToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClaimToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_oldPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"UpdatePrice","type":"event"},{"inputs":[],"name":"USDT","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"UsersAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activePhaseInd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaisedUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_oldAddress","type":"address"},{"internalType":"address","name":"_newWallet","type":"address"}],"name":"changeClaimAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"changeFundReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"endTimestamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseInd","type":"uint256"}],"name":"getPhaseDetail","outputs":[{"internalType":"uint256","name":"tokenToSell","type":"uint256"},{"internalType":"uint256","name":"soldTokens","type":"uint256"},{"internalType":"uint256","name":"priceUsd","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"initiateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPresaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"nativeToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phases","outputs":[{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"tokensToSell","type":"uint256"},{"internalType":"uint256","name":"totalSoldTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPerUsdPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenPerUsdPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokensToSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStages","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":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniqueBuyers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_phase","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"updateEndTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sold","type":"uint256"},{"internalType":"uint256","name":"_raised","type":"uint256"},{"internalType":"uint256","name":"_raisedInUsdt","type":"uint256"}],"name":"updateInfos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_USDT","type":"address"}],"name":"updateStableTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"updateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"usdtToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"native_balance","type":"uint256"},{"internalType":"uint256","name":"usdt_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"},{"internalType":"uint256","name":"claimed_tokens","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060c0016040528065b5e620f4800066ffffffffffffff168152602001660110d9316ec00066ffffffffffffff16815260200166027ca57357c00066ffffffffffffff16815260200166044364c5bb000066ffffffffffffff1681526020016603e871b540c00066ffffffffffffff1681526020016601c6bf5263400066ffffffffffffff16815250600e906006620000f792919062000624565b506040518060c0016040528063659c34d863ffffffff16815260200163659f7ae463ffffffff1681526020016365b87ca363ffffffff16815260200163661984b063ffffffff1681526020016366332be063ffffffff1681526020016366332be063ffffffff16815250600f9060066200017392919062000681565b506040518060c0016040528063c6aea15563ffffffff168152602001639502f90063ffffffff1681526020016384746b8e63ffffffff168152602001637735940063ffffffff168152602001636c5f40ba63ffffffff16815260200163635750ab63ffffffff168152506010906006620001ef92919062000681565b50348015620001fd57600080fd5b5060405162003b2538038062003b25833981810160405281019062000223919062000778565b62000243620002376200055860201b60201c565b6200056060201b60201c565b600f80549050600e80549050148015620002665750601080549050600f80549050145b620002a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200029f9062000831565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e8ec5f7af62e5ad1284749517dc8c168225e2bf3600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b8419600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b600e805490508110156200046e57600f8181548110620003bb57620003ba62000853565b5b90600052602060002001546004600083815260200190815260200160002060000181905550600e8181548110620003f757620003f662000853565b5b906000526020600020015460046000838152602001908152602001600020600101819055506010818154811062000433576200043262000853565b5b9060005260206000200154600460008381526020019081526020016000206003018190555080806200046590620008bb565b91505062000396565b50600e80549050600581905550600460068190555065b55caa7ccb346004600080815260200190815260200160002060020181905550660110d651ebed6a60046000600181526020019081526020016000206002018190555066027ca28a5a9f62600460006002815260200190815260200160002060020181905550660443535dc49148600460006003815260200190815260200160002060020181905550657c6b3d8d25b56004600060048152602001908152602001600020600201819055506513b7347cce8a6004600060058152602001908152602001600020600201819055505062000908565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280548282559060005260206000209081019282156200066e579160200282015b828111156200066d578251829066ffffffffffffff1690559160200191906001019062000645565b5b5090506200067d9190620006db565b5090565b828054828255906000526020600020908101928215620006c8579160200282015b82811115620006c7578251829063ffffffff16905591602001919060010190620006a2565b5b509050620006d79190620006db565b5090565b5b80821115620006f6576000816000905550600101620006dc565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200072c82620006ff565b9050919050565b600062000740826200071f565b9050919050565b620007528162000733565b81146200075e57600080fd5b50565b600081519050620007728162000747565b92915050565b600060208284031215620007915762000790620006fa565b5b6000620007a18482850162000761565b91505092915050565b600082825260208201905092915050565b7f746f6b656e7320616e64206475726174696f6e206c656e677468206d69736d6160008201527f7463680000000000000000000000000000000000000000000000000000000000602082015250565b600062000819602383620007aa565b91506200082682620007bb565b604082019050919050565b600060208201905081810360008301526200084c816200080a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620008c882620008b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620008fd57620008fc62000882565b5b600182019050919050565b61320d80620009186000396000f3fe6080604052600436106102505760003560e01c80638da5cb5b11610139578063bec3fa17116100b6578063e00e06121161007a578063e00e061214610889578063e44542df146108c6578063e9238daf146108ef578063f2fde38b1461092c578063f86a352914610955578063fb4aa0a11461098057610250565b8063bec3fa17146107a4578063c54e44eb146107cd578063c63368be146107f8578063c8fa553b14610821578063cb33365d1461084c57610250565b8063a6a11bb1116100fd578063a6a11bb1146106ba578063a87430ba146106e5578063aa1c3aa514610725578063acfb235514610750578063b5e75e1c1461077b57610250565b80638da5cb5b1461061a5780638e15f4731461064557806395877f7814610670578063a43be57b14610699578063a4821719146106b057610250565b806361a31e00116101d25780637ad3def2116101965780637ad3def2146104f85780637b3e5e7b146105215780637decf27f1461054c57806383ced170146105775780638577d452146105b45780638895283f146105f157610250565b806361a31e0014610425578063654914f81461044e5780636769d1f91461048b578063715018a6146104b6578063741bef1a146104cd57610250565b806348c54b9d1161021957806348c54b9d1461036857806353a29ad21461037f5780635bf5d54c146103a85780635cc8ca46146103d35780635dfd59f6146103fc57610250565b806213eb4b146102555780632d2fbfd4146102925780632e37eef6146102d25780633fc15f1514610312578063405fb9441461033d575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906125a5565b6109ab565b60405161028991906125ed565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061263e565b6109cb565b6040516102c9949392919061267a565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f4919061263e565b610a3f565b604051610309949392919061267a565b60405180910390f35b34801561031e57600080fd5b50610327610a6f565b604051610334919061271e565b60405180910390f35b34801561034957600080fd5b50610352610a95565b60405161035f9190612739565b60405180910390f35b34801561037457600080fd5b5061037d610a9b565b005b34801561038b57600080fd5b506103a660048036038101906103a191906125a5565b610d4d565b005b3480156103b457600080fd5b506103bd610e0d565b6040516103ca9190612739565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612754565b610e13565b005b34801561040857600080fd5b50610423600480360381019061041e91906127a7565b610ea9565b005b34801561043157600080fd5b5061044c6004803603810190610447919061263e565b61111b565b005b34801561045a57600080fd5b506104756004803603810190610470919061263e565b611203565b6040516104829190612739565b60405180910390f35b34801561049757600080fd5b506104a0611227565b6040516104ad9190612739565b60405180910390f35b3480156104c257600080fd5b506104cb61122d565b005b3480156104d957600080fd5b506104e26112b5565b6040516104ef9190612808565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a91906125a5565b6112db565b005b34801561052d57600080fd5b5061053661139b565b6040516105439190612739565b60405180910390f35b34801561055857600080fd5b506105616113a1565b60405161056e91906125ed565b60405180910390f35b34801561058357600080fd5b5061059e6004803603810190610599919061263e565b6113b4565b6040516105ab9190612739565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061263e565b6113d8565b6040516105e89190612739565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061284f565b6113fc565b005b34801561062657600080fd5b5061062f611495565b60405161063c919061288b565b60405180910390f35b34801561065157600080fd5b5061065a6114be565b6040516106679190612739565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906128e4565b61155f565b005b3480156106a557600080fd5b506106ae61161f565b005b6106b86116bf565b005b3480156106c657600080fd5b506106cf611b18565b6040516106dc9190612739565b60405180910390f35b3480156106f157600080fd5b5061070c600480360381019061070791906125a5565b611b1e565b60405161071c949392919061267a565b60405180910390f35b34801561073157600080fd5b5061073a611b4e565b6040516107479190612739565b60405180910390f35b34801561075c57600080fd5b50610765611b54565b60405161077291906125ed565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061263e565b611b67565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061294f565b611f6d565b005b3480156107d957600080fd5b506107e261205a565b6040516107ef919061271e565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a919061298f565b612080565b005b34801561082d57600080fd5b50610836612140565b6040516108439190612739565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e91906129bc565b6121cf565b6040516108809190612739565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab919061263e565b61223a565b6040516108bd919061288b565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e891906129bc565b612279565b005b3480156108fb57600080fd5b50610916600480360381019061091191906129bc565b612314565b6040516109239190612739565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906125a5565b612353565b005b34801561096157600080fd5b5061096a61244a565b6040516109779190612739565b60405180910390f35b34801561098c57600080fd5b50610995612450565b6040516109a29190612a1d565b60405180910390f35b60126020528060005260406000206000915054906101000a900460ff1681565b600080600080600060046000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b60159054906101000a900460ff16610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190612a95565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612b01565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612b6d565b60405180910390fd5b600081600301548260020154610c169190612bbc565b905060008111610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612c3c565b60405180910390fd5b80826003016000828254610c6f9190612c5c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cd3929190612c90565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610d55612476565b73ffffffffffffffffffffffffffffffffffffffff16610d73611495565b73ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612d05565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b610e1b612476565b73ffffffffffffffffffffffffffffffffffffffff16610e39611495565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612d05565b60405180910390fd5b826007819055508160088190555080600981905550505050565b610eb1612476565b73ffffffffffffffffffffffffffffffffffffffff16610ecf611495565b73ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90612d05565b60405180910390fd5b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890612d71565b60405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050816002015481600201819055508160030154816003018190555060008260020181905550600082600301819055506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b611123612476565b73ffffffffffffffffffffffffffffffffffffffff16611141611495565b73ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e90612d05565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111ff573d6000803e3d6000fd5b5050565b600f818154811061121357600080fd5b906000526020600020016000915090505481565b60075481565b611235612476565b73ffffffffffffffffffffffffffffffffffffffff16611253611495565b73ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612d05565b60405180910390fd5b6112b3600061247e565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112e3612476565b73ffffffffffffffffffffffffffffffffffffffff16611301611495565b73ffffffffffffffffffffffffffffffffffffffff1614611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612d05565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600b60159054906101000a900460ff1681565b601081815481106113c457600080fd5b906000526020600020016000915090505481565b600e81815481106113e857600080fd5b906000526020600020016000915090505481565b611404612476565b73ffffffffffffffffffffffffffffffffffffffff16611422611495565b73ffffffffffffffffffffffffffffffffffffffff1614611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612d05565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561152e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115529190612e1e565b5050509150508091505090565b611567612476565b73ffffffffffffffffffffffffffffffffffffffff16611585611495565b73ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290612d05565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611627612476565b73ffffffffffffffffffffffffffffffffffffffff16611645611495565b73ffffffffffffffffffffffffffffffffffffffff161461169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612d05565b60405180910390fd5b6001600b60156101000a81548160ff02191690831515021790555042600c81905550565b600b60159054906101000a900460ff161561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612ee5565b60405180910390fd5b600b60149054906101000a900460ff1661175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611883576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a600081548092919061181a90612f97565b9190505550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156118eb573d6000803e3d6000fd5b5060006118f6612140565b9050600654811461190957806006819055505b600061191534836121cf565b90506004600060065481526020019081526020016000206001015481600460006006548152602001908152602001600020600201546119549190612c5c565b1115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c9061302b565b60405180910390fd5b806007546119a39190612c5c565b600781905550346008546119b79190612c5c565b60088190555034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611a0b9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611a9f9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611b0d9190612c5c565b925050819055505050565b600c5481565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600a5481565b600b60149054906101000a900460ff1681565b600b60159054906101000a900460ff1615611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612ee5565b60405180910390fd5b600b60149054906101000a900460ff16611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cc8576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6000815480929190611cc290612f97565b91905055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611d499392919061306c565b600060405180830381600087803b158015611d6357600080fd5b505af1158015611d77573d6000803e3d6000fd5b505050506000611d85612140565b90506006548114611d9857806006819055505b6000611da48383612314565b9050600460006006548152602001908152602001600020600101548160046000600654815260200190815260200160002060020154611de39190612c5c565b1115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b9061302b565b60405180910390fd5b80600754611e329190612c5c565b60078190555082600954611e469190612c5c565b60098190555082601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611e9e9190612c5c565b9250508190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611ef39190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611f619190612c5c565b92505081905550505050565b611f75612476565b73ffffffffffffffffffffffffffffffffffffffff16611f93611495565b73ffffffffffffffffffffffffffffffffffffffff1614611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090612d05565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612024929190612c90565b600060405180830381600087803b15801561203e57600080fd5b505af1158015612052573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612088612476565b73ffffffffffffffffffffffffffffffffffffffff166120a6611495565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390612d05565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460006006548152602001908152602001600020600001544210156121ba57600460006006548152602001908152602001600020600101546004600060065481526020019081526020016000206002015410156121a45760065490506121cc565b60016006546121b39190612c5c565b90506121cc565b60016006546121c99190612c5c565b90505b90565b600080670de0b6b3a76400006121e36114be565b856121ee91906130a3565b6121f89190613114565b905060006305f5e10060046000868152602001908152602001600020600301548361222391906130a3565b61222d9190613114565b9050809250505092915050565b600d818154811061224a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612281612476565b73ffffffffffffffffffffffffffffffffffffffff1661229f611495565b73ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90612d05565b60405180910390fd5b8060046000848152602001908152602001600020600001819055505050565b600080620f424060046000858152602001908152602001600020600301548561233d91906130a3565b6123479190613114565b90508091505092915050565b61235b612476565b73ffffffffffffffffffffffffffffffffffffffff16612379611495565b73ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690612d05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906131b7565b60405180910390fd5b6124478161247e565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257282612547565b9050919050565b61258281612567565b811461258d57600080fd5b50565b60008135905061259f81612579565b92915050565b6000602082840312156125bb576125ba612542565b5b60006125c984828501612590565b91505092915050565b60008115159050919050565b6125e7816125d2565b82525050565b600060208201905061260260008301846125de565b92915050565b6000819050919050565b61261b81612608565b811461262657600080fd5b50565b60008135905061263881612612565b92915050565b60006020828403121561265457612653612542565b5b600061266284828501612629565b91505092915050565b61267481612608565b82525050565b600060808201905061268f600083018761266b565b61269c602083018661266b565b6126a9604083018561266b565b6126b6606083018461266b565b95945050505050565b6000819050919050565b60006126e46126df6126da84612547565b6126bf565b612547565b9050919050565b60006126f6826126c9565b9050919050565b6000612708826126eb565b9050919050565b612718816126fd565b82525050565b6000602082019050612733600083018461270f565b92915050565b600060208201905061274e600083018461266b565b92915050565b60008060006060848603121561276d5761276c612542565b5b600061277b86828701612629565b935050602061278c86828701612629565b925050604061279d86828701612629565b9150509250925092565b600080604083850312156127be576127bd612542565b5b60006127cc85828601612590565b92505060206127dd85828601612590565b9150509250929050565b60006127f2826126eb565b9050919050565b612802816127e7565b82525050565b600060208201905061281d60008301846127f9565b92915050565b61282c816125d2565b811461283757600080fd5b50565b60008135905061284981612823565b92915050565b60006020828403121561286557612864612542565b5b60006128738482850161283a565b91505092915050565b61288581612567565b82525050565b60006020820190506128a0600083018461287c565b92915050565b60006128b182612567565b9050919050565b6128c1816128a6565b81146128cc57600080fd5b50565b6000813590506128de816128b8565b92915050565b6000602082840312156128fa576128f9612542565b5b6000612908848285016128cf565b91505092915050565b600061291c82612567565b9050919050565b61292c81612911565b811461293757600080fd5b50565b60008135905061294981612923565b92915050565b6000806040838503121561296657612965612542565b5b60006129748582860161293a565b925050602061298585828601612629565b9150509250929050565b6000602082840312156129a5576129a4612542565b5b60006129b38482850161293a565b91505092915050565b600080604083850312156129d3576129d2612542565b5b60006129e185828601612629565b92505060206129f285828601612629565b9150509250929050565b6000612a0782612547565b9050919050565b612a17816129fc565b82525050565b6000602082019050612a326000830184612a0e565b92915050565b600082825260208201905092915050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b6000612a7f601983612a38565b9150612a8a82612a49565b602082019050919050565b60006020820190508181036000830152612aae81612a72565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b6000612aeb601083612a38565b9150612af682612ab5565b602082019050919050565b60006020820190508181036000830152612b1a81612ade565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000612b57601383612a38565b9150612b6282612b21565b602082019050919050565b60006020820190508181036000830152612b8681612b4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bc782612608565b9150612bd283612608565b9250828203905081811115612bea57612be9612b8d565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000612c26601283612a38565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b6000612c6782612608565b9150612c7283612608565b9250828201905080821115612c8a57612c89612b8d565b5b92915050565b6000604082019050612ca5600083018561287c565b612cb2602083018461266b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cef602083612a38565b9150612cfa82612cb9565b602082019050919050565b60006020820190508181036000830152612d1e81612ce2565b9050919050565b7f204f6c642055736572206e6f742061207061727469636970616e740000000000600082015250565b6000612d5b601b83612a38565b9150612d6682612d25565b602082019050919050565b60006020820190508181036000830152612d8a81612d4e565b9050919050565b600069ffffffffffffffffffff82169050919050565b612db081612d91565b8114612dbb57600080fd5b50565b600081519050612dcd81612da7565b92915050565b6000819050919050565b612de681612dd3565b8114612df157600080fd5b50565b600081519050612e0381612ddd565b92915050565b600081519050612e1881612612565b92915050565b600080600080600060a08688031215612e3a57612e39612542565b5b6000612e4888828901612dbe565b9550506020612e5988828901612df4565b9450506040612e6a88828901612e09565b9350506060612e7b88828901612e09565b9250506080612e8c88828901612dbe565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000612ecf600e83612a38565b9150612eda82612e99565b602082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000612f61602483612a38565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b6000612fa282612608565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd457612fd3612b8d565b5b600182019050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000613015601383612a38565b915061302082612fdf565b602082019050919050565b6000602082019050818103600083015261304481613008565b9050919050565b6000613056826126eb565b9050919050565b6130668161304b565b82525050565b6000606082019050613081600083018661287c565b61308e602083018561305d565b61309b604083018461266b565b949350505050565b60006130ae82612608565b91506130b983612608565b92508282026130c781612608565b915082820484148315176130de576130dd612b8d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061311f82612608565b915061312a83612608565b92508261313a576131396130e5565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a38565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b905091905056fea2646970667358221220293fad663497c5ca3547b29ea049560ef1a12a65b216fde1d06d50dab0f0900d64736f6c63430008120033000000000000000000000000b2cb194701094239db774049d9d72f7838944a17

Deployed Bytecode

0x6080604052600436106102505760003560e01c80638da5cb5b11610139578063bec3fa17116100b6578063e00e06121161007a578063e00e061214610889578063e44542df146108c6578063e9238daf146108ef578063f2fde38b1461092c578063f86a352914610955578063fb4aa0a11461098057610250565b8063bec3fa17146107a4578063c54e44eb146107cd578063c63368be146107f8578063c8fa553b14610821578063cb33365d1461084c57610250565b8063a6a11bb1116100fd578063a6a11bb1146106ba578063a87430ba146106e5578063aa1c3aa514610725578063acfb235514610750578063b5e75e1c1461077b57610250565b80638da5cb5b1461061a5780638e15f4731461064557806395877f7814610670578063a43be57b14610699578063a4821719146106b057610250565b806361a31e00116101d25780637ad3def2116101965780637ad3def2146104f85780637b3e5e7b146105215780637decf27f1461054c57806383ced170146105775780638577d452146105b45780638895283f146105f157610250565b806361a31e0014610425578063654914f81461044e5780636769d1f91461048b578063715018a6146104b6578063741bef1a146104cd57610250565b806348c54b9d1161021957806348c54b9d1461036857806353a29ad21461037f5780635bf5d54c146103a85780635cc8ca46146103d35780635dfd59f6146103fc57610250565b806213eb4b146102555780632d2fbfd4146102925780632e37eef6146102d25780633fc15f1514610312578063405fb9441461033d575b600080fd5b34801561026157600080fd5b5061027c600480360381019061027791906125a5565b6109ab565b60405161028991906125ed565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b4919061263e565b6109cb565b6040516102c9949392919061267a565b60405180910390f35b3480156102de57600080fd5b506102f960048036038101906102f4919061263e565b610a3f565b604051610309949392919061267a565b60405180910390f35b34801561031e57600080fd5b50610327610a6f565b604051610334919061271e565b60405180910390f35b34801561034957600080fd5b50610352610a95565b60405161035f9190612739565b60405180910390f35b34801561037457600080fd5b5061037d610a9b565b005b34801561038b57600080fd5b506103a660048036038101906103a191906125a5565b610d4d565b005b3480156103b457600080fd5b506103bd610e0d565b6040516103ca9190612739565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190612754565b610e13565b005b34801561040857600080fd5b50610423600480360381019061041e91906127a7565b610ea9565b005b34801561043157600080fd5b5061044c6004803603810190610447919061263e565b61111b565b005b34801561045a57600080fd5b506104756004803603810190610470919061263e565b611203565b6040516104829190612739565b60405180910390f35b34801561049757600080fd5b506104a0611227565b6040516104ad9190612739565b60405180910390f35b3480156104c257600080fd5b506104cb61122d565b005b3480156104d957600080fd5b506104e26112b5565b6040516104ef9190612808565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a91906125a5565b6112db565b005b34801561052d57600080fd5b5061053661139b565b6040516105439190612739565b60405180910390f35b34801561055857600080fd5b506105616113a1565b60405161056e91906125ed565b60405180910390f35b34801561058357600080fd5b5061059e6004803603810190610599919061263e565b6113b4565b6040516105ab9190612739565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061263e565b6113d8565b6040516105e89190612739565b60405180910390f35b3480156105fd57600080fd5b506106186004803603810190610613919061284f565b6113fc565b005b34801561062657600080fd5b5061062f611495565b60405161063c919061288b565b60405180910390f35b34801561065157600080fd5b5061065a6114be565b6040516106679190612739565b60405180910390f35b34801561067c57600080fd5b50610697600480360381019061069291906128e4565b61155f565b005b3480156106a557600080fd5b506106ae61161f565b005b6106b86116bf565b005b3480156106c657600080fd5b506106cf611b18565b6040516106dc9190612739565b60405180910390f35b3480156106f157600080fd5b5061070c600480360381019061070791906125a5565b611b1e565b60405161071c949392919061267a565b60405180910390f35b34801561073157600080fd5b5061073a611b4e565b6040516107479190612739565b60405180910390f35b34801561075c57600080fd5b50610765611b54565b60405161077291906125ed565b60405180910390f35b34801561078757600080fd5b506107a2600480360381019061079d919061263e565b611b67565b005b3480156107b057600080fd5b506107cb60048036038101906107c6919061294f565b611f6d565b005b3480156107d957600080fd5b506107e261205a565b6040516107ef919061271e565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a919061298f565b612080565b005b34801561082d57600080fd5b50610836612140565b6040516108439190612739565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e91906129bc565b6121cf565b6040516108809190612739565b60405180910390f35b34801561089557600080fd5b506108b060048036038101906108ab919061263e565b61223a565b6040516108bd919061288b565b60405180910390f35b3480156108d257600080fd5b506108ed60048036038101906108e891906129bc565b612279565b005b3480156108fb57600080fd5b50610916600480360381019061091191906129bc565b612314565b6040516109239190612739565b60405180910390f35b34801561093857600080fd5b50610953600480360381019061094e91906125a5565b612353565b005b34801561096157600080fd5b5061096a61244a565b6040516109779190612739565b60405180910390f35b34801561098c57600080fd5b50610995612450565b6040516109a29190612a1d565b60405180910390f35b60126020528060005260406000206000915054906101000a900460ff1681565b600080600080600060046000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60046020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600b60159054906101000a900460ff16610aea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae190612a95565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612b01565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612b6d565b60405180910390fd5b600081600301548260020154610c169190612bbc565b905060008111610c5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5290612c3c565b60405180910390fd5b80826003016000828254610c6f9190612c5c565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610cd3929190612c90565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b610d55612476565b73ffffffffffffffffffffffffffffffffffffffff16610d73611495565b73ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090612d05565b60405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60065481565b610e1b612476565b73ffffffffffffffffffffffffffffffffffffffff16610e39611495565b73ffffffffffffffffffffffffffffffffffffffff1614610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690612d05565b60405180910390fd5b826007819055508160088190555080600981905550505050565b610eb1612476565b73ffffffffffffffffffffffffffffffffffffffff16610ecf611495565b73ffffffffffffffffffffffffffffffffffffffff1614610f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1c90612d05565b60405180910390fd5b601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610fb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa890612d71565b60405180910390fd5b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050816002015481600201819055508160030154816003018190555060008260020181905550600082600301819055506000601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050505050565b611123612476565b73ffffffffffffffffffffffffffffffffffffffff16611141611495565b73ffffffffffffffffffffffffffffffffffffffff1614611197576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118e90612d05565b60405180910390fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111ff573d6000803e3d6000fd5b5050565b600f818154811061121357600080fd5b906000526020600020016000915090505481565b60075481565b611235612476565b73ffffffffffffffffffffffffffffffffffffffff16611253611495565b73ffffffffffffffffffffffffffffffffffffffff16146112a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a090612d05565b60405180910390fd5b6112b3600061247e565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112e3612476565b73ffffffffffffffffffffffffffffffffffffffff16611301611495565b73ffffffffffffffffffffffffffffffffffffffff1614611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612d05565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b600b60159054906101000a900460ff1681565b601081815481106113c457600080fd5b906000526020600020016000915090505481565b600e81815481106113e857600080fd5b906000526020600020016000915090505481565b611404612476565b73ffffffffffffffffffffffffffffffffffffffff16611422611495565b73ffffffffffffffffffffffffffffffffffffffff1614611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146f90612d05565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561152e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115529190612e1e565b5050509150508091505090565b611567612476565b73ffffffffffffffffffffffffffffffffffffffff16611585611495565b73ffffffffffffffffffffffffffffffffffffffff16146115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290612d05565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611627612476565b73ffffffffffffffffffffffffffffffffffffffff16611645611495565b73ffffffffffffffffffffffffffffffffffffffff161461169b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169290612d05565b60405180910390fd5b6001600b60156101000a81548160ff02191690831515021790555042600c81905550565b600b60159054906101000a900460ff161561170f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170690612ee5565b60405180910390fd5b600b60149054906101000a900460ff1661175e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175590612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611883576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a600081548092919061181a90612f97565b9190505550600d339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501580156118eb573d6000803e3d6000fd5b5060006118f6612140565b9050600654811461190957806006819055505b600061191534836121cf565b90506004600060065481526020019081526020016000206001015481600460006006548152602001908152602001600020600201546119549190612c5c565b1115611995576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198c9061302b565b60405180910390fd5b806007546119a39190612c5c565b600781905550346008546119b79190612c5c565b60088190555034601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611a0b9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611a9f9190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611b0d9190612c5c565b925050819055505050565b600c5481565b60116020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b600a5481565b600b60149054906101000a900460ff1681565b600b60159054906101000a900460ff1615611bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bae90612ee5565b60405180910390fd5b600b60149054906101000a900460ff16611c06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfd90612f77565b60405180910390fd5b601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611cc8576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600a6000815480929190611cc290612f97565b91905055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611d499392919061306c565b600060405180830381600087803b158015611d6357600080fd5b505af1158015611d77573d6000803e3d6000fd5b505050506000611d85612140565b90506006548114611d9857806006819055505b6000611da48383612314565b9050600460006006548152602001908152602001600020600101548160046000600654815260200190815260200160002060020154611de39190612c5c565b1115611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b9061302b565b60405180910390fd5b80600754611e329190612c5c565b60078190555082600954611e469190612c5c565b60098190555082601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254611e9e9190612c5c565b9250508190555080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154611ef39190612c5c565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550806004600060065481526020019081526020016000206002016000828254611f619190612c5c565b92505081905550505050565b611f75612476565b73ffffffffffffffffffffffffffffffffffffffff16611f93611495565b73ffffffffffffffffffffffffffffffffffffffff1614611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090612d05565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612024929190612c90565b600060405180830381600087803b15801561203e57600080fd5b505af1158015612052573d6000803e3d6000fd5b505050505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612088612476565b73ffffffffffffffffffffffffffffffffffffffff166120a6611495565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390612d05565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460006006548152602001908152602001600020600001544210156121ba57600460006006548152602001908152602001600020600101546004600060065481526020019081526020016000206002015410156121a45760065490506121cc565b60016006546121b39190612c5c565b90506121cc565b60016006546121c99190612c5c565b90505b90565b600080670de0b6b3a76400006121e36114be565b856121ee91906130a3565b6121f89190613114565b905060006305f5e10060046000868152602001908152602001600020600301548361222391906130a3565b61222d9190613114565b9050809250505092915050565b600d818154811061224a57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612281612476565b73ffffffffffffffffffffffffffffffffffffffff1661229f611495565b73ffffffffffffffffffffffffffffffffffffffff16146122f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ec90612d05565b60405180910390fd5b8060046000848152602001908152602001600020600001819055505050565b600080620f424060046000858152602001908152602001600020600301548561233d91906130a3565b6123479190613114565b90508091505092915050565b61235b612476565b73ffffffffffffffffffffffffffffffffffffffff16612379611495565b73ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123c690612d05565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361243e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612435906131b7565b60405180910390fd5b6124478161247e565b50565b60055481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257282612547565b9050919050565b61258281612567565b811461258d57600080fd5b50565b60008135905061259f81612579565b92915050565b6000602082840312156125bb576125ba612542565b5b60006125c984828501612590565b91505092915050565b60008115159050919050565b6125e7816125d2565b82525050565b600060208201905061260260008301846125de565b92915050565b6000819050919050565b61261b81612608565b811461262657600080fd5b50565b60008135905061263881612612565b92915050565b60006020828403121561265457612653612542565b5b600061266284828501612629565b91505092915050565b61267481612608565b82525050565b600060808201905061268f600083018761266b565b61269c602083018661266b565b6126a9604083018561266b565b6126b6606083018461266b565b95945050505050565b6000819050919050565b60006126e46126df6126da84612547565b6126bf565b612547565b9050919050565b60006126f6826126c9565b9050919050565b6000612708826126eb565b9050919050565b612718816126fd565b82525050565b6000602082019050612733600083018461270f565b92915050565b600060208201905061274e600083018461266b565b92915050565b60008060006060848603121561276d5761276c612542565b5b600061277b86828701612629565b935050602061278c86828701612629565b925050604061279d86828701612629565b9150509250925092565b600080604083850312156127be576127bd612542565b5b60006127cc85828601612590565b92505060206127dd85828601612590565b9150509250929050565b60006127f2826126eb565b9050919050565b612802816127e7565b82525050565b600060208201905061281d60008301846127f9565b92915050565b61282c816125d2565b811461283757600080fd5b50565b60008135905061284981612823565b92915050565b60006020828403121561286557612864612542565b5b60006128738482850161283a565b91505092915050565b61288581612567565b82525050565b60006020820190506128a0600083018461287c565b92915050565b60006128b182612567565b9050919050565b6128c1816128a6565b81146128cc57600080fd5b50565b6000813590506128de816128b8565b92915050565b6000602082840312156128fa576128f9612542565b5b6000612908848285016128cf565b91505092915050565b600061291c82612567565b9050919050565b61292c81612911565b811461293757600080fd5b50565b60008135905061294981612923565b92915050565b6000806040838503121561296657612965612542565b5b60006129748582860161293a565b925050602061298585828601612629565b9150509250929050565b6000602082840312156129a5576129a4612542565b5b60006129b38482850161293a565b91505092915050565b600080604083850312156129d3576129d2612542565b5b60006129e185828601612629565b92505060206129f285828601612629565b9150509250929050565b6000612a0782612547565b9050919050565b612a17816129fc565b82525050565b6000602082019050612a326000830184612a0e565b92915050565b600082825260208201905092915050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b6000612a7f601983612a38565b9150612a8a82612a49565b602082019050919050565b60006020820190508181036000830152612aae81612a72565b9050919050565b7f5573657220646f6e277420657869737400000000000000000000000000000000600082015250565b6000612aeb601083612a38565b9150612af682612ab5565b602082019050919050565b60006020820190508181036000830152612b1a81612ade565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000612b57601383612a38565b9150612b6282612b21565b602082019050919050565b60006020820190508181036000830152612b8681612b4a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612bc782612608565b9150612bd283612608565b9250828203905081811115612bea57612be9612b8d565b5b92915050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b6000612c26601283612a38565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b6000612c6782612608565b9150612c7283612608565b9250828201905080821115612c8a57612c89612b8d565b5b92915050565b6000604082019050612ca5600083018561287c565b612cb2602083018461266b565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612cef602083612a38565b9150612cfa82612cb9565b602082019050919050565b60006020820190508181036000830152612d1e81612ce2565b9050919050565b7f204f6c642055736572206e6f742061207061727469636970616e740000000000600082015250565b6000612d5b601b83612a38565b9150612d6682612d25565b602082019050919050565b60006020820190508181036000830152612d8a81612d4e565b9050919050565b600069ffffffffffffffffffff82169050919050565b612db081612d91565b8114612dbb57600080fd5b50565b600081519050612dcd81612da7565b92915050565b6000819050919050565b612de681612dd3565b8114612df157600080fd5b50565b600081519050612e0381612ddd565b92915050565b600081519050612e1881612612565b92915050565b600080600080600060a08688031215612e3a57612e39612542565b5b6000612e4888828901612dbe565b9550506020612e5988828901612df4565b9450506040612e6a88828901612e09565b9350506060612e7b88828901612e09565b9250506080612e8c88828901612dbe565b9150509295509295909350565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b6000612ecf600e83612a38565b9150612eda82612e99565b602082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000612f61602483612a38565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b6000612fa282612608565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fd457612fd3612b8d565b5b600182019050919050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b6000613015601383612a38565b915061302082612fdf565b602082019050919050565b6000602082019050818103600083015261304481613008565b9050919050565b6000613056826126eb565b9050919050565b6130668161304b565b82525050565b6000606082019050613081600083018661287c565b61308e602083018561305d565b61309b604083018461266b565b949350505050565b60006130ae82612608565b91506130b983612608565b92508282026130c781612608565b915082820484148315176130de576130dd612b8d565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061311f82612608565b915061312a83612608565b92508261313a576131396130e5565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a38565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b905091905056fea2646970667358221220293fad663497c5ca3547b29ea049560ef1a12a65b216fde1d06d50dab0f0900d64736f6c63430008120033

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

000000000000000000000000b2cb194701094239db774049d9d72f7838944a17

-----Decoded View---------------
Arg [0] : _token (address): 0xb2cb194701094239dB774049d9d72f7838944a17

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b2cb194701094239db774049d9d72f7838944a17


Deployed Bytecode Sourcemap

3552:9924:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5112:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10839:456;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3897:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3587:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4091:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9248:575;;;;;;;;;;;;;:::i;:::-;;13048:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3992:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12246:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10292:539;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12931:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4715:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4026:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:103;;;;;;;;;;;;;:::i;:::-;;3697:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12517:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4057:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4241:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4888:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4511:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11303:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6524:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13166:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11412:124;;;;;;;;;;;;;:::i;:::-;;6757:1248;;;:::i;:::-;;4274:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5068:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;4129:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4209:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8080:1160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13347:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3617:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9831:453;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11591:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4312:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12626:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11980:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1310:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3959:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4165:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5112:39;;;;;;;;;;;;;;;;;;;;;;:::o;10839:456::-;10945:19;10979:18;11012:16;11043;11087:18;11108:6;:16;11115:8;11108:16;;;;;;;;;;;11087:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11157:5;:18;;;11190:5;:21;;;11226:5;:22;;;11263:5;:13;;;11135:152;;;;;;;;;10839:456;;;;;:::o;3897:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3587:23::-;;;;;;;;;;;;;:::o;4091:31::-;;;;:::o;9248:575::-;9299:14;;;;;;;;;;;9291:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9362:7;:19;9370:10;9362:19;;;;;;;;;;;;;;;;;;;;;;;;;9354:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9413:17;9433:5;:17;9439:10;9433:17;;;;;;;;;;;;;;;9413:37;;9490:1;9469:4;:18;;;:22;9461:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9526:23;9573:4;:19;;;9552:4;:18;;;:40;;;;:::i;:::-;9526:66;;9629:1;9611:15;:19;9603:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9687:15;9664:4;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;9713:9;;;;;;;;;;;:18;;;9732:10;9744:15;9713:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9799:15;9787:10;9776:39;;;;;;;;;;;;9280:543;;9248:575::o;13048:110::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13144:5:::1;13121:12;;:29;;;;;;;;;;;;;;;;;;13048:110:::0;:::o;3992:27::-;;;;:::o;12246:241::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12398:5:::1;12386:9;:17;;;;12429:7;12414:12;:22;;;;12466:13;12447:16;:32;;;;12246:241:::0;;;:::o;10292:539::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10420:7:::1;:20;10428:11;10420:20;;;;;;;;;;;;;;;;;;;;;;;;;10412:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10483:17;10503:5;:18;10509:11;10503:18;;;;;;;;;;;;;;;10483:38;;10532:20;10555:5;:17;10561:10;10555:17;;;;;;;;;;;;;;;10532:40;;10607:4;:18;;;10583:7;:21;;:42;;;;10661:4;:19;;;10636:7;:22;;:44;;;;10712:1;10691:4;:18;;:22;;;;10746:1;10724:4;:19;;:23;;;;10781:5;10758:7;:20;10766:11;10758:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;10819:4;10797:7;:19;10805:10;10797:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10401:430;;10292:539:::0;;:::o;12931:109::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13003:12:::1;;;;;;;;;;;:21;;:29;13025:6;13003:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12931:109:::0;:::o;4715:166::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4026:24::-;;;;:::o;1052:103::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:30:::1;1144:1;1117:18;:30::i;:::-;1052:103::o:0;3697:38::-;;;;;;;;;;;;;:::o;12517:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12603:6:::1;12584:9;;:26;;;;;;;;;;;;;;;;;;12517:101:::0;:::o;4057:27::-;;;;:::o;4241:26::-;;;;;;;;;;;;;:::o;4888:169::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4511:197::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11303:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11389:7:::1;11373:13;;:23;;;;;;;;;;;;;;;;;;11303:101:::0;:::o;744:87::-;790:7;817:6;;;;;;;;;;;810:13;;744:87;:::o;6524:159::-;6571:7;6594:12;6616:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6591:52;;;;;;6669:5;6654:21;;;6524:159;:::o;13166:142::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13290:10:::1;13278:9;;:22;;;;;;;;;;;;;;;;;;13166:142:::0;:::o;11412:124::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11481:4:::1;11464:14;;:21;;;;;;;;;;;;;;;;;;11513:15;11496:14;:32;;;;11412:124::o:0;6757:1248::-;6812:14;;;;;;;;;;;6811:15;6803:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6864:13;;;;;;;;;;;6856:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6934:7;:19;6942:10;6934:19;;;;;;;;;;;;;;;;;;;;;;;;;6929:154;;6992:4;6970:7;:19;6978:10;6970:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7011:12;;:14;;;;;;;;;:::i;:::-;;;;;;7040;7060:10;7040:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6929:154;7093:12;;;;;;;;;;;:21;;:32;7115:9;7093:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7167:19;7189:16;:14;:16::i;:::-;7167:38;;7235:12;;7220:11;:27;7216:86;;7279:11;7264:12;:26;;;;7216:86;7314:22;7364:37;7378:9;7389:11;7364:13;:37::i;:::-;7347:54;;7508:6;:20;7515:12;;7508:20;;;;;;;;;;;:33;;;7473:14;7434:6;:20;7441:12;;7434:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;7412:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;7624:14;7611:9;;:28;;;;:::i;:::-;7599:9;:40;;;;7681:9;7665:12;;:26;;;;:::i;:::-;7650:12;:41;;;;7801:9;7752:5;:17;7758:10;7752:17;;;;;;;;;;;;;;;:32;;;:59;;;;:::i;:::-;7704:5;:17;7710:10;7704:17;;;;;;;;;;;;;;;:32;;:107;;;;7917:14;7869:5;:17;7875:10;7869:17;;;;;;;;;;;;;;;:31;;;:63;;;;:::i;:::-;7822:5;:17;7828:10;7822:17;;;;;;;;;;;;;;;:31;;:110;;;;7983:14;7943:6;:20;7950:12;;7943:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;6792:1213;;6757:1248::o;4274:29::-;;;;:::o;5068:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4129:27::-;;;;:::o;4209:25::-;;;;;;;;;;;;;:::o;8080:1160::-;8145:14;;;;;;;;;;;8144:15;8136:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8197:13;;;;;;;;;;;8189:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;8267:7;:19;8275:10;8267:19;;;;;;;;;;;;;;;;;;;;;;;;;8262:108;;8325:4;8303:7;:19;8311:10;8303:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8344:12;;:14;;;;;;;;;:::i;:::-;;;;;;8262:108;8380:4;;;;;;;;;;;:17;;;8398:10;8410:12;;;;;;;;;;;8424:6;8380:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8473:19;8495:16;:14;:16::i;:::-;8473:38;;8541:12;;8526:11;:27;8522:86;;8585:11;8570:12;:26;;;;8522:86;8620:22;8670:32;8682:6;8690:11;8670;:32::i;:::-;8653:49;;8809:6;:20;8816:12;;8809:20;;;;;;;;;;;:33;;;8774:14;8735:6;:20;8742:12;;8735:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;8713:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8924:14;8912:9;;:26;;;;:::i;:::-;8900:9;:38;;;;8987:6;8968:16;;:25;;;;:::i;:::-;8949:16;:44;;;;9040:6;9006:5;:17;9012:10;9006:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;9153:14;9106:5;:17;9112:10;9106:17;;;;;;;;;;;;;;;:31;;;:61;;;;:::i;:::-;9059:5;:17;9065:10;9059:17;;;;;;;;;;;;;;;:31;;:108;;;;9218:14;9178:6;:20;9185:12;;9178:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;8125:1115;;8080:1160;:::o;13347:126::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13431:5:::1;:14;;;13446:10;13458:6;13431:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13347:126:::0;;:::o;3617:71::-;;;;;;;;;;;;;:::o;12783:100::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12869:5:::1;12855:4;;:20;;;;;;;;;;;;;;;;;;12783:100:::0;:::o;9831:453::-;9878:7;9920:6;:20;9927:12;;9920:20;;;;;;;;;;;:28;;;9902:15;:46;9898:379;;;10043:6;:20;10050:12;;10043:20;;;;;;;;;;;:33;;;9987:6;:20;9994:12;;9987:20;;;;;;;;;;;:36;;;:89;9965:245;;;10118:12;;10111:19;;;;9965:245;10193:1;10178:12;;:16;;;;:::i;:::-;10171:23;;;;9898:379;10264:1;10249:12;;:16;;;;:::i;:::-;10242:23;;9831:453;;:::o;11591:333::-;11696:7;11721:16;11774:7;11752:16;:14;:16::i;:::-;11741:7;:28;;;;:::i;:::-;11740:42;;;;:::i;:::-;11721:61;;11793:22;11880:3;11830:6;:15;11837:7;11830:15;;;;;;;;;;;:32;;;11819:8;:43;;;;:::i;:::-;11818:66;;;;:::i;:::-;11793:91;;11902:14;11895:21;;;;11591:333;;;;:::o;4312:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12626:120::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12733:5:::1;12708:6;:14;12715:6;12708:14;;;;;;;;;;;:22;;:30;;;;12626:120:::0;;:::o;11980:258::-;12083:7;12108:22;12194:3;12144:6;:15;12151:7;12144:15;;;;;;;;;;;:32;;;12134:7;:42;;;;:::i;:::-;12133:65;;;;:::i;:::-;12108:90;;12216:14;12209:21;;;11980:258;;;;:::o;1310:238::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1433:1:::1;1413:22;;:8;:22;;::::0;1391:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1512:28;1531:8;1512:18;:28::i;:::-;1310:238:::0;:::o;3959:26::-;;;;:::o;4165:35::-;;;;;;;;;;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;1708:191::-;1782:16;1801:6;;;;;;;;;;;1782:25;;1827:8;1818:6;;:17;;;;;;;;;;;;;;;;;;1882:8;1851:40;;1872:8;1851:40;;;;;;;;;;;;1771:128;1708:191;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:77::-;1640:7;1669:5;1658:16;;1603:77;;;:::o;1686:122::-;1759:24;1777:5;1759:24;:::i;:::-;1752:5;1749:35;1739:63;;1798:1;1795;1788:12;1739:63;1686:122;:::o;1814:139::-;1860:5;1898:6;1885:20;1876:29;;1914:33;1941:5;1914:33;:::i;:::-;1814:139;;;;:::o;1959:329::-;2018:6;2067:2;2055:9;2046:7;2042:23;2038:32;2035:119;;;2073:79;;:::i;:::-;2035:119;2193:1;2218:53;2263:7;2254:6;2243:9;2239:22;2218:53;:::i;:::-;2208:63;;2164:117;1959:329;;;;:::o;2294:118::-;2381:24;2399:5;2381:24;:::i;:::-;2376:3;2369:37;2294:118;;:::o;2418:553::-;2595:4;2633:3;2622:9;2618:19;2610:27;;2647:71;2715:1;2704:9;2700:17;2691:6;2647:71;:::i;:::-;2728:72;2796:2;2785:9;2781:18;2772:6;2728:72;:::i;:::-;2810;2878:2;2867:9;2863:18;2854:6;2810:72;:::i;:::-;2892;2960:2;2949:9;2945:18;2936:6;2892:72;:::i;:::-;2418:553;;;;;;;:::o;2977:60::-;3005:3;3026:5;3019:12;;2977:60;;;:::o;3043:142::-;3093:9;3126:53;3144:34;3153:24;3171:5;3153:24;:::i;:::-;3144:34;:::i;:::-;3126:53;:::i;:::-;3113:66;;3043:142;;;:::o;3191:126::-;3241:9;3274:37;3305:5;3274:37;:::i;:::-;3261:50;;3191:126;;;:::o;3323:140::-;3387:9;3420:37;3451:5;3420:37;:::i;:::-;3407:50;;3323:140;;;:::o;3469:159::-;3570:51;3615:5;3570:51;:::i;:::-;3565:3;3558:64;3469:159;;:::o;3634:250::-;3741:4;3779:2;3768:9;3764:18;3756:26;;3792:85;3874:1;3863:9;3859:17;3850:6;3792:85;:::i;:::-;3634:250;;;;:::o;3890:222::-;3983:4;4021:2;4010:9;4006:18;3998:26;;4034:71;4102:1;4091:9;4087:17;4078:6;4034:71;:::i;:::-;3890:222;;;;:::o;4118:619::-;4195:6;4203;4211;4260:2;4248:9;4239:7;4235:23;4231:32;4228:119;;;4266:79;;:::i;:::-;4228:119;4386:1;4411:53;4456:7;4447:6;4436:9;4432:22;4411:53;:::i;:::-;4401:63;;4357:117;4513:2;4539:53;4584:7;4575:6;4564:9;4560:22;4539:53;:::i;:::-;4529:63;;4484:118;4641:2;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4612:118;4118:619;;;;;:::o;4743:474::-;4811:6;4819;4868:2;4856:9;4847:7;4843:23;4839:32;4836:119;;;4874:79;;:::i;:::-;4836:119;4994:1;5019:53;5064:7;5055:6;5044:9;5040:22;5019:53;:::i;:::-;5009:63;;4965:117;5121:2;5147:53;5192:7;5183:6;5172:9;5168:22;5147:53;:::i;:::-;5137:63;;5092:118;4743:474;;;;;:::o;5223:155::-;5302:9;5335:37;5366:5;5335:37;:::i;:::-;5322:50;;5223:155;;;:::o;5384:189::-;5500:66;5560:5;5500:66;:::i;:::-;5495:3;5488:79;5384:189;;:::o;5579:280::-;5701:4;5739:2;5728:9;5724:18;5716:26;;5752:100;5849:1;5838:9;5834:17;5825:6;5752:100;:::i;:::-;5579:280;;;;:::o;5865:116::-;5935:21;5950:5;5935:21;:::i;:::-;5928:5;5925:32;5915:60;;5971:1;5968;5961:12;5915:60;5865:116;:::o;5987:133::-;6030:5;6068:6;6055:20;6046:29;;6084:30;6108:5;6084:30;:::i;:::-;5987:133;;;;:::o;6126:323::-;6182:6;6231:2;6219:9;6210:7;6206:23;6202:32;6199:119;;;6237:79;;:::i;:::-;6199:119;6357:1;6382:50;6424:7;6415:6;6404:9;6400:22;6382:50;:::i;:::-;6372:60;;6328:114;6126:323;;;;:::o;6455:118::-;6542:24;6560:5;6542:24;:::i;:::-;6537:3;6530:37;6455:118;;:::o;6579:222::-;6672:4;6710:2;6699:9;6695:18;6687:26;;6723:71;6791:1;6780:9;6776:17;6767:6;6723:71;:::i;:::-;6579:222;;;;:::o;6807:125::-;6873:7;6902:24;6920:5;6902:24;:::i;:::-;6891:35;;6807:125;;;:::o;6938:180::-;7040:53;7087:5;7040:53;:::i;:::-;7033:5;7030:64;7020:92;;7108:1;7105;7098:12;7020:92;6938:180;:::o;7124:197::-;7199:5;7237:6;7224:20;7215:29;;7253:62;7309:5;7253:62;:::i;:::-;7124:197;;;;:::o;7327:387::-;7415:6;7464:2;7452:9;7443:7;7439:23;7435:32;7432:119;;;7470:79;;:::i;:::-;7432:119;7590:1;7615:82;7689:7;7680:6;7669:9;7665:22;7615:82;:::i;:::-;7605:92;;7561:146;7327:387;;;;:::o;7720:110::-;7771:7;7800:24;7818:5;7800:24;:::i;:::-;7789:35;;7720:110;;;:::o;7836:150::-;7923:38;7955:5;7923:38;:::i;:::-;7916:5;7913:49;7903:77;;7976:1;7973;7966:12;7903:77;7836:150;:::o;7992:167::-;8052:5;8090:6;8077:20;8068:29;;8106:47;8147:5;8106:47;:::i;:::-;7992:167;;;;:::o;8165:502::-;8247:6;8255;8304:2;8292:9;8283:7;8279:23;8275:32;8272:119;;;8310:79;;:::i;:::-;8272:119;8430:1;8455:67;8514:7;8505:6;8494:9;8490:22;8455:67;:::i;:::-;8445:77;;8401:131;8571:2;8597:53;8642:7;8633:6;8622:9;8618:22;8597:53;:::i;:::-;8587:63;;8542:118;8165:502;;;;;:::o;8673:357::-;8746:6;8795:2;8783:9;8774:7;8770:23;8766:32;8763:119;;;8801:79;;:::i;:::-;8763:119;8921:1;8946:67;9005:7;8996:6;8985:9;8981:22;8946:67;:::i;:::-;8936:77;;8892:131;8673:357;;;;:::o;9036:474::-;9104:6;9112;9161:2;9149:9;9140:7;9136:23;9132:32;9129:119;;;9167:79;;:::i;:::-;9129:119;9287:1;9312:53;9357:7;9348:6;9337:9;9333:22;9312:53;:::i;:::-;9302:63;;9258:117;9414:2;9440:53;9485:7;9476:6;9465:9;9461:22;9440:53;:::i;:::-;9430:63;;9385:118;9036:474;;;;;:::o;9516:104::-;9561:7;9590:24;9608:5;9590:24;:::i;:::-;9579:35;;9516:104;;;:::o;9626:142::-;9729:32;9755:5;9729:32;:::i;:::-;9724:3;9717:45;9626:142;;:::o;9774:254::-;9883:4;9921:2;9910:9;9906:18;9898:26;;9934:87;10018:1;10007:9;10003:17;9994:6;9934:87;:::i;:::-;9774:254;;;;:::o;10034:169::-;10118:11;10152:6;10147:3;10140:19;10192:4;10187:3;10183:14;10168:29;;10034:169;;;;:::o;10209:175::-;10349:27;10345:1;10337:6;10333:14;10326:51;10209:175;:::o;10390:366::-;10532:3;10553:67;10617:2;10612:3;10553:67;:::i;:::-;10546:74;;10629:93;10718:3;10629:93;:::i;:::-;10747:2;10742:3;10738:12;10731:19;;10390:366;;;:::o;10762:419::-;10928:4;10966:2;10955:9;10951:18;10943:26;;11015:9;11009:4;11005:20;11001:1;10990:9;10986:17;10979:47;11043:131;11169:4;11043:131;:::i;:::-;11035:139;;10762:419;;;:::o;11187:166::-;11327:18;11323:1;11315:6;11311:14;11304:42;11187:166;:::o;11359:366::-;11501:3;11522:67;11586:2;11581:3;11522:67;:::i;:::-;11515:74;;11598:93;11687:3;11598:93;:::i;:::-;11716:2;11711:3;11707:12;11700:19;;11359:366;;;:::o;11731:419::-;11897:4;11935:2;11924:9;11920:18;11912:26;;11984:9;11978:4;11974:20;11970:1;11959:9;11955:17;11948:47;12012:131;12138:4;12012:131;:::i;:::-;12004:139;;11731:419;;;:::o;12156:169::-;12296:21;12292:1;12284:6;12280:14;12273:45;12156:169;:::o;12331:366::-;12473:3;12494:67;12558:2;12553:3;12494:67;:::i;:::-;12487:74;;12570:93;12659:3;12570:93;:::i;:::-;12688:2;12683:3;12679:12;12672:19;;12331:366;;;:::o;12703:419::-;12869:4;12907:2;12896:9;12892:18;12884:26;;12956:9;12950:4;12946:20;12942:1;12931:9;12927:17;12920:47;12984:131;13110:4;12984:131;:::i;:::-;12976:139;;12703:419;;;:::o;13128:180::-;13176:77;13173:1;13166:88;13273:4;13270:1;13263:15;13297:4;13294:1;13287:15;13314:194;13354:4;13374:20;13392:1;13374:20;:::i;:::-;13369:25;;13408:20;13426:1;13408:20;:::i;:::-;13403:25;;13452:1;13449;13445:9;13437:17;;13476:1;13470:4;13467:11;13464:37;;;13481:18;;:::i;:::-;13464:37;13314:194;;;;:::o;13514:168::-;13654:20;13650:1;13642:6;13638:14;13631:44;13514:168;:::o;13688:366::-;13830:3;13851:67;13915:2;13910:3;13851:67;:::i;:::-;13844:74;;13927:93;14016:3;13927:93;:::i;:::-;14045:2;14040:3;14036:12;14029:19;;13688:366;;;:::o;14060:419::-;14226:4;14264:2;14253:9;14249:18;14241:26;;14313:9;14307:4;14303:20;14299:1;14288:9;14284:17;14277:47;14341:131;14467:4;14341:131;:::i;:::-;14333:139;;14060:419;;;:::o;14485:191::-;14525:3;14544:20;14562:1;14544:20;:::i;:::-;14539:25;;14578:20;14596:1;14578:20;:::i;:::-;14573:25;;14621:1;14618;14614:9;14607:16;;14642:3;14639:1;14636:10;14633:36;;;14649:18;;:::i;:::-;14633:36;14485:191;;;;:::o;14682:332::-;14803:4;14841:2;14830:9;14826:18;14818:26;;14854:71;14922:1;14911:9;14907:17;14898:6;14854:71;:::i;:::-;14935:72;15003:2;14992:9;14988:18;14979:6;14935:72;:::i;:::-;14682:332;;;;;:::o;15020:182::-;15160:34;15156:1;15148:6;15144:14;15137:58;15020:182;:::o;15208:366::-;15350:3;15371:67;15435:2;15430:3;15371:67;:::i;:::-;15364:74;;15447:93;15536:3;15447:93;:::i;:::-;15565:2;15560:3;15556:12;15549:19;;15208:366;;;:::o;15580:419::-;15746:4;15784:2;15773:9;15769:18;15761:26;;15833:9;15827:4;15823:20;15819:1;15808:9;15804:17;15797:47;15861:131;15987:4;15861:131;:::i;:::-;15853:139;;15580:419;;;:::o;16005:177::-;16145:29;16141:1;16133:6;16129:14;16122:53;16005:177;:::o;16188:366::-;16330:3;16351:67;16415:2;16410:3;16351:67;:::i;:::-;16344:74;;16427:93;16516:3;16427:93;:::i;:::-;16545:2;16540:3;16536:12;16529:19;;16188:366;;;:::o;16560:419::-;16726:4;16764:2;16753:9;16749:18;16741:26;;16813:9;16807:4;16803:20;16799:1;16788:9;16784:17;16777:47;16841:131;16967:4;16841:131;:::i;:::-;16833:139;;16560:419;;;:::o;16985:105::-;17021:7;17061:22;17054:5;17050:34;17039:45;;16985:105;;;:::o;17096:120::-;17168:23;17185:5;17168:23;:::i;:::-;17161:5;17158:34;17148:62;;17206:1;17203;17196:12;17148:62;17096:120;:::o;17222:141::-;17278:5;17309:6;17303:13;17294:22;;17325:32;17351:5;17325:32;:::i;:::-;17222:141;;;;:::o;17369:76::-;17405:7;17434:5;17423:16;;17369:76;;;:::o;17451:120::-;17523:23;17540:5;17523:23;:::i;:::-;17516:5;17513:34;17503:62;;17561:1;17558;17551:12;17503:62;17451:120;:::o;17577:141::-;17633:5;17664:6;17658:13;17649:22;;17680:32;17706:5;17680:32;:::i;:::-;17577:141;;;;:::o;17724:143::-;17781:5;17812:6;17806:13;17797:22;;17828:33;17855:5;17828:33;:::i;:::-;17724:143;;;;:::o;17873:971::-;17976:6;17984;17992;18000;18008;18057:3;18045:9;18036:7;18032:23;18028:33;18025:120;;;18064:79;;:::i;:::-;18025:120;18184:1;18209:63;18264:7;18255:6;18244:9;18240:22;18209:63;:::i;:::-;18199:73;;18155:127;18321:2;18347:63;18402:7;18393:6;18382:9;18378:22;18347:63;:::i;:::-;18337:73;;18292:128;18459:2;18485:64;18541:7;18532:6;18521:9;18517:22;18485:64;:::i;:::-;18475:74;;18430:129;18598:2;18624:64;18680:7;18671:6;18660:9;18656:22;18624:64;:::i;:::-;18614:74;;18569:129;18737:3;18764:63;18819:7;18810:6;18799:9;18795:22;18764:63;:::i;:::-;18754:73;;18708:129;17873:971;;;;;;;;:::o;18850:164::-;18990:16;18986:1;18978:6;18974:14;18967:40;18850:164;:::o;19020:366::-;19162:3;19183:67;19247:2;19242:3;19183:67;:::i;:::-;19176:74;;19259:93;19348:3;19259:93;:::i;:::-;19377:2;19372:3;19368:12;19361:19;;19020:366;;;:::o;19392:419::-;19558:4;19596:2;19585:9;19581:18;19573:26;;19645:9;19639:4;19635:20;19631:1;19620:9;19616:17;19609:47;19673:131;19799:4;19673:131;:::i;:::-;19665:139;;19392:419;;;:::o;19817:223::-;19957:34;19953:1;19945:6;19941:14;19934:58;20026:6;20021:2;20013:6;20009:15;20002:31;19817:223;:::o;20046:366::-;20188:3;20209:67;20273:2;20268:3;20209:67;:::i;:::-;20202:74;;20285:93;20374:3;20285:93;:::i;:::-;20403:2;20398:3;20394:12;20387:19;;20046:366;;;:::o;20418:419::-;20584:4;20622:2;20611:9;20607:18;20599:26;;20671:9;20665:4;20661:20;20657:1;20646:9;20642:17;20635:47;20699:131;20825:4;20699:131;:::i;:::-;20691:139;;20418:419;;;:::o;20843:233::-;20882:3;20905:24;20923:5;20905:24;:::i;:::-;20896:33;;20951:66;20944:5;20941:77;20938:103;;21021:18;;:::i;:::-;20938:103;21068:1;21061:5;21057:13;21050:20;;20843:233;;;:::o;21082:169::-;21222:21;21218:1;21210:6;21206:14;21199:45;21082:169;:::o;21257:366::-;21399:3;21420:67;21484:2;21479:3;21420:67;:::i;:::-;21413:74;;21496:93;21585:3;21496:93;:::i;:::-;21614:2;21609:3;21605:12;21598:19;;21257:366;;;:::o;21629:419::-;21795:4;21833:2;21822:9;21818:18;21810:26;;21882:9;21876:4;21872:20;21868:1;21857:9;21853:17;21846:47;21910:131;22036:4;21910:131;:::i;:::-;21902:139;;21629:419;;;:::o;22054:134::-;22112:9;22145:37;22176:5;22145:37;:::i;:::-;22132:50;;22054:134;;;:::o;22194:147::-;22289:45;22328:5;22289:45;:::i;:::-;22284:3;22277:58;22194:147;;:::o;22347:458::-;22504:4;22542:2;22531:9;22527:18;22519:26;;22555:71;22623:1;22612:9;22608:17;22599:6;22555:71;:::i;:::-;22636:80;22712:2;22701:9;22697:18;22688:6;22636:80;:::i;:::-;22726:72;22794:2;22783:9;22779:18;22770:6;22726:72;:::i;:::-;22347:458;;;;;;:::o;22811:410::-;22851:7;22874:20;22892:1;22874:20;:::i;:::-;22869:25;;22908:20;22926:1;22908:20;:::i;:::-;22903:25;;22963:1;22960;22956:9;22985:30;23003:11;22985:30;:::i;:::-;22974:41;;23164:1;23155:7;23151:15;23148:1;23145:22;23125:1;23118:9;23098:83;23075:139;;23194:18;;:::i;:::-;23075:139;22859:362;22811:410;;;;:::o;23227:180::-;23275:77;23272:1;23265:88;23372:4;23369:1;23362:15;23396:4;23393:1;23386:15;23413:185;23453:1;23470:20;23488:1;23470:20;:::i;:::-;23465:25;;23504:20;23522:1;23504:20;:::i;:::-;23499:25;;23543:1;23533:35;;23548:18;;:::i;:::-;23533:35;23590:1;23587;23583:9;23578:14;;23413:185;;;;:::o;23604:225::-;23744:34;23740:1;23732:6;23728:14;23721:58;23813:8;23808:2;23800:6;23796:15;23789:33;23604:225;:::o;23835:366::-;23977:3;23998:67;24062:2;24057:3;23998:67;:::i;:::-;23991:74;;24074:93;24163:3;24074:93;:::i;:::-;24192:2;24187:3;24183:12;24176:19;;23835:366;;;:::o;24207:419::-;24373:4;24411:2;24400:9;24396:18;24388:26;;24460:9;24454:4;24450:20;24446:1;24435:9;24431:17;24424:47;24488:131;24614:4;24488:131;:::i;:::-;24480:139;;24207:419;;;:::o

Swarm Source

ipfs://293fad663497c5ca3547b29ea049560ef1a12a65b216fde1d06d50dab0f0900d

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.