ETH Price: $2,258.71 (+7.69%)

Contract

0xB8Fd38B799Ad0E30466625C4F7c6621CbfD05E12
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

Transaction Hash
Method
Block
From
To
Buy Token246696932026-03-16 11:14:113 hrs ago1773659651IN
0xB8Fd38B7...CbfD05E12
0.125 ETH0.000279442.1775847
Buy Token246071682026-03-07 17:49:118 days ago1772905751IN
0xB8Fd38B7...CbfD05E12
0.01438 ETH0.000016730.13037223
Buy Token246046782026-03-07 9:27:599 days ago1772875679IN
0xB8Fd38B7...CbfD05E12
0.0101 ETH0.000008590.06696356
Buy Token246019172026-03-07 0:12:119 days ago1772842331IN
0xB8Fd38B7...CbfD05E12
0.016 ETH0.000261182.03532893
Buy Token246016692026-03-06 23:22:119 days ago1772839331IN
0xB8Fd38B7...CbfD05E12
0.0010061 ETH0.000132421.03193148
Buy Token245623362026-03-01 11:36:4715 days ago1772365007IN
0xB8Fd38B7...CbfD05E12
0.16 ETH0.000260982.03372766
Buy Token USDC245452402026-02-27 2:20:4717 days ago1772158847IN
0xB8Fd38B7...CbfD05E12
0 ETH0.000119821.0451067
Buy Token USDC245377302026-02-26 1:13:2318 days ago1772068403IN
0xB8Fd38B7...CbfD05E12
0 ETH0.000246492.06372018
Buy Token USDC244935062026-02-19 21:13:2324 days ago1771535603IN
0xB8Fd38B7...CbfD05E12
0 ETH0.000120231.04868525
Buy Token USDC244855082026-02-18 18:26:5925 days ago1771439219IN
0xB8Fd38B7...CbfD05E12
0 ETH0.000137511.19949885
Buy Token244851352026-02-18 17:12:1125 days ago1771434731IN
0xB8Fd38B7...CbfD05E12
0.0962 ETH0.000273422.13069837
Buy Token244850882026-02-18 17:02:4725 days ago1771434167IN
0xB8Fd38B7...CbfD05E12
0.005073 ETH0.000527012.11306339
Buy Token244843662026-02-18 14:37:5926 days ago1771425479IN
0xB8Fd38B7...CbfD05E12
0.0225 ETH0.000019660.15320564
Buy Token244843282026-02-18 14:30:2326 days ago1771425023IN
0xB8Fd38B7...CbfD05E12
0.043 ETH0.000030730.23946696
Buy Token244558412026-02-14 15:11:1129 days ago1771081871IN
0xB8Fd38B7...CbfD05E12
0.0063 ETH0.000262221.05139135
Buy Token USDC244364472026-02-11 22:14:3532 days ago1770848075IN
0xB8Fd38B7...CbfD05E12
0 ETH0.000120371.05004176
Buy Token244145512026-02-08 20:50:1135 days ago1770583811IN
0xB8Fd38B7...CbfD05E12
0.015 ETH0.000264352.06003309
Buy Token244003952026-02-06 21:13:3537 days ago1770412415IN
0xB8Fd38B7...CbfD05E12
0.00125 ETH0.000029490.22983588
Buy Token243911182026-02-05 14:07:1139 days ago1770300431IN
0xB8Fd38B7...CbfD05E12
0.12 ETH0.000456963.56094628
Buy Token USDC243881762026-02-05 4:13:4739 days ago1770264827IN
0xB8Fd38B7...CbfD05E12
0 ETH0.000151311.31973897
Buy Token243854152026-02-04 18:56:4739 days ago1770231407IN
0xB8Fd38B7...CbfD05E12
0.026 ETH0.000344422.68400161
Buy Token243647442026-02-01 21:37:3542 days ago1769981855IN
0xB8Fd38B7...CbfD05E12
0.012 ETH0.000273852.13407477
Buy Token243353982026-01-28 19:21:1146 days ago1769628071IN
0xB8Fd38B7...CbfD05E12
0.045 ETH0.000280391.12422854
Buy Token243304942026-01-28 2:56:4747 days ago1769569007IN
0xB8Fd38B7...CbfD05E12
0.008 ETH0.000263052.04987828
Buy Token243304892026-01-28 2:55:4747 days ago1769568947IN
0xB8Fd38B7...CbfD05E12
0.0009 ETH0.000262762.04758279
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer246696932026-03-16 11:14:113 hrs ago1773659651
0xB8Fd38B7...CbfD05E12
0.125 ETH
Transfer246071682026-03-07 17:49:118 days ago1772905751
0xB8Fd38B7...CbfD05E12
0.01438 ETH
Transfer246046782026-03-07 9:27:599 days ago1772875679
0xB8Fd38B7...CbfD05E12
0.0101 ETH
Transfer246019172026-03-07 0:12:119 days ago1772842331
0xB8Fd38B7...CbfD05E12
0.016 ETH
Transfer246016692026-03-06 23:22:119 days ago1772839331
0xB8Fd38B7...CbfD05E12
0.0010061 ETH
Transfer245623362026-03-01 11:36:4715 days ago1772365007
0xB8Fd38B7...CbfD05E12
0.16 ETH
Transfer244851352026-02-18 17:12:1125 days ago1771434731
0xB8Fd38B7...CbfD05E12
0.0962 ETH
Transfer244850882026-02-18 17:02:4725 days ago1771434167
0xB8Fd38B7...CbfD05E12
0.005073 ETH
Transfer244843662026-02-18 14:37:5926 days ago1771425479
0xB8Fd38B7...CbfD05E12
0.0225 ETH
Transfer244843282026-02-18 14:30:2326 days ago1771425023
0xB8Fd38B7...CbfD05E12
0.043 ETH
Transfer244558412026-02-14 15:11:1129 days ago1771081871
0xB8Fd38B7...CbfD05E12
0.0063 ETH
Transfer244145512026-02-08 20:50:1135 days ago1770583811
0xB8Fd38B7...CbfD05E12
0.015 ETH
Transfer244003952026-02-06 21:13:3537 days ago1770412415
0xB8Fd38B7...CbfD05E12
0.00125 ETH
Transfer243911182026-02-05 14:07:1139 days ago1770300431
0xB8Fd38B7...CbfD05E12
0.12 ETH
Transfer243854152026-02-04 18:56:4739 days ago1770231407
0xB8Fd38B7...CbfD05E12
0.026 ETH
Transfer243647442026-02-01 21:37:3542 days ago1769981855
0xB8Fd38B7...CbfD05E12
0.012 ETH
Transfer243353982026-01-28 19:21:1146 days ago1769628071
0xB8Fd38B7...CbfD05E12
0.045 ETH
Transfer243304942026-01-28 2:56:4747 days ago1769569007
0xB8Fd38B7...CbfD05E12
0.008 ETH
Transfer243304892026-01-28 2:55:4747 days ago1769568947
0xB8Fd38B7...CbfD05E12
0.0009 ETH
Transfer243096152026-01-25 5:04:4750 days ago1769317487
0xB8Fd38B7...CbfD05E12
0.004257 ETH
Transfer243035382026-01-24 8:44:1151 days ago1769244251
0xB8Fd38B7...CbfD05E12
0.08 ETH
Transfer242932242026-01-22 22:10:4752 days ago1769119847
0xB8Fd38B7...CbfD05E12
0.1466 ETH
Transfer242716702026-01-19 22:00:4755 days ago1768860047
0xB8Fd38B7...CbfD05E12
0.013 ETH
Transfer242514272026-01-17 2:18:2358 days ago1768616303
0xB8Fd38B7...CbfD05E12
0.002 ETH
Buy Token242514272026-01-17 2:18:2358 days ago1768616303
0xB8Fd38B7...CbfD05E12
0.002 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
RuviPresale

Compiler Version
v0.8.29+commit.ab55807c

Optimization Enabled:
No with 200 runs

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

// Ruvi AI Presale
//SPDX-License-Identifier: MIT Licensed
pragma solidity ^0.8.29;

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 RuviPresale is Ownable {
    IERC20 public mainToken;
    IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);
    IERC20 public USDC = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);

    AggregatorV3Interface public priceFeed;

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

    uint256 public totalStages;
    uint256 public currentStage;
    uint256 public soldToken;
    uint256 public amountRaised;
    uint256 public amountRaisedUSDT;
    uint256 public amountRaisedUSDC;
    uint256 public amountRaisedOverall;
    uint256 public uniqueBuyers;

    uint256[] public tokenPerUsdPrice = [
        100000000000000000000,
        66666666666666666666,
        50000000000000000000,
        35714285714285714285,
        28571428571428571428,
        20000000000000000000,
        14285714285714285714
    ];

    uint256[] public tokensToSell = [
        100_000_000 * 10**18,
        150_000_000 * 10**18,
        200_000_000 * 10**18,
        225_000_000 * 10**18,
        250_000_000 * 10**18,
        275_000_000 * 10**18,
        300_000_000 * 10**18
    ];

    address payable public fundReceiver;

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

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

    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, address _fundReceiver) {
        mainToken = _token;
        fundReceiver = payable(_fundReceiver);
        priceFeed = AggregatorV3Interface(
            0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
        );
        for (uint256 i = 0; i < tokensToSell.length; i++) {
            phases[i].tokensToSell = tokensToSell[i];
            phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i];
        }
        totalStages = tokensToSell.length;
    }

    function updatePresale(
        uint256 _phaseId,
        uint256 _tokensToSell,
        uint256 _tokenPerUsdPrice
    ) public onlyOwner {
        require(phases[_phaseId].tokensToSell > 0, "presale doesn't exist");
        phases[_phaseId].tokensToSell = _tokensToSell;
        phases[_phaseId].tokenPerUsdPrice = _tokenPerUsdPrice;
    }

    function getLatestPrice() public view returns (uint256) {
        (, int256 price, , , ) = priceFeed.latestRoundData();
        return uint256(price);
    }

    function buyToken() public payable {
        require(!isPresaleEnded, "Presale ended.");
        require(presaleStatus, " Presale is currently Paused");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        fundReceiver.transfer(msg.value);
        uint256 numberOfTokens;
        uint256 ethToUsdConverted;
        numberOfTokens = nativeToToken(msg.value, currentStage);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        mainToken.transfer(msg.sender, numberOfTokens);
        soldToken = soldToken + (numberOfTokens);
        amountRaised = amountRaised + (msg.value);
        ethToUsdConverted = nativeToUsd(msg.value);
        amountRaisedOverall = amountRaisedOverall + ethToUsdConverted;

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

    function buyTokenUSDC(uint256 amount) public {
        require(!isPresaleEnded, "Presale ended.");
        require(presaleStatus, " Presale is currently Paused");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        USDC.transferFrom(msg.sender, fundReceiver, amount);
        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, currentStage);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        mainToken.transfer(msg.sender, numberOfTokens);
        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDT = amountRaisedUSDT + amount;
        amountRaisedOverall = amountRaisedOverall + amount;

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

    function buyTokenUSDT(uint256 amount) public {
        require(!isPresaleEnded, "Presale ended");
        require(presaleStatus, " Presale is currently Paused");
        if (!isExist[msg.sender]) {
            isExist[msg.sender] = true;
            uniqueBuyers++;
            UsersAddresses.push(msg.sender);
        }
        USDT.transferFrom(msg.sender, fundReceiver, amount);

        uint256 numberOfTokens;
        numberOfTokens = usdtToToken(amount, currentStage);
        require(
            phases[currentStage].totalSoldTokens + numberOfTokens <=
                phases[currentStage].tokensToSell,
            "Phase Limit Reached"
        );
        mainToken.transfer(msg.sender, numberOfTokens);
        soldToken = soldToken + numberOfTokens;
        amountRaisedUSDC = amountRaisedUSDC + amount;
        amountRaisedOverall = amountRaisedOverall + amount;

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

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

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

    function endPresale(bool _status) external onlyOwner {
        isPresaleEnded = _status;
    }

    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;
    }

    function usdtToToken(uint256 _amount, uint256 phaseId)
        public
        view
        returns (uint256)
    {
        uint256 numberOfTokens = (_amount * phases[phaseId].tokenPerUsdPrice) /
            (1e6);
        return numberOfTokens;
    }

    function nativeToUsd(uint256 _amount) public view returns (uint256) {
        uint256 nativeTousd = (_amount * (getLatestPrice())) / (1e20);
        return nativeTousd;
    }

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

    function updateStableTokens(IERC20 _USDT, IERC20 _USDC) external onlyOwner {
        USDT = IERC20(_USDT);
        USDC = IERC20(_USDC);
    }

    function initiateTransfer(uint256 _value) external onlyOwner {
        fundReceiver.transfer(_value);
    }

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

    function setCurrentStage(uint256 _stageNum) public onlyOwner {
        currentStage = _stageNum;
    }

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

    function transferTokens(IERC20 token, uint256 _value) external onlyOwner {
        token.transfer(msg.sender, _value);
    }

    function totalUsersCount() external view returns (uint256) {
        return UsersAddresses.length;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"address","name":"_fundReceiver","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":"USDC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":"amountRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaisedOverall","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaisedUSDC","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":"buyTokenUSDC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buyTokenUSDT","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":"currentStage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","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"}],"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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"nativeToUsd","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":"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":"uint256","name":"_stageNum","type":"uint256"}],"name":"setCurrentStage","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":[],"name":"totalUsersCount","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":"_phaseId","type":"uint256"},{"internalType":"uint256","name":"_tokensToSell","type":"uint256"},{"internalType":"uint256","name":"_tokenPerUsdPrice","type":"uint256"}],"name":"updatePresale","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"},{"internalType":"contract IERC20","name":"_USDC","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":"ethToUsd_balance","type":"uint256"},{"internalType":"uint256","name":"usdt_balance","type":"uint256"},{"internalType":"uint256","name":"usdc_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405273dac17f958d2ee523a2206206994597c13d831ec760025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060e0016040528068056bc75e2d6310000068ffffffffffffffffff16815260200168039d2f941e420aaaaa68ffffffffffffffffff1681526020016802b5e3af16b188000068ffffffffffffffffff1681526020016801efa2a1a27ecedb6d68ffffffffffffffffff16815260200168018c821ae86572492468ffffffffffffffffff1681526020016801158e460913d0000068ffffffffffffffffff16815260200167c6410d7432b9249268ffffffffffffffffff16815250600e90600761017a9291906104e8565b506040518060e001604052806a52b7d2dcc80cd2e40000006affffffffffffffffffffff1681526020016a7c13bc4b2c133c560000006affffffffffffffffffffff1681526020016aa56fa5b99019a5c80000006affffffffffffffffffffff1681526020016aba1d9a70c21cda810000006affffffffffffffffffffff1681526020016acecb8f27f4200f3a0000006affffffffffffffffffffff1681526020016ae37983df262343f30000006affffffffffffffffffffff1681526020016af8277896582678ac0000006affffffffffffffffffffff16815250600f906007610266929190610540565b50348015610272575f5ffd5b506040516137883803806137888339818101604052810190610294919061064e565b6102b06102a561042060201b60201c565b61042760201b60201c565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b841960045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f5f90505b600f8054905081101561040c57600f81815481106103aa576103a961068c565b5b905f5260205f20015460055f8381526020019081526020015f205f0181905550600e81815481106103de576103dd61068c565b5b905f5260205f20015460055f8381526020019081526020015f20600201819055508080600101915050610389565b50600f8054905060068190555050506106b9565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255905f5260205f2090810192821561052f579160200282015b8281111561052e578251829068ffffffffffffffffff16905591602001919060010190610506565b5b50905061053c919061059a565b5090565b828054828255905f5260205f20908101928215610589579160200282015b8281111561058857825182906affffffffffffffffffffff1690559160200191906001019061055e565b5b509050610596919061059a565b5090565b5b808211156105b1575f815f90555060010161059b565b5090565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105e2826105b9565b9050919050565b5f6105f3826105d8565b9050919050565b610603816105e9565b811461060d575f5ffd5b50565b5f8151905061061e816105fa565b92915050565b61062d816105d8565b8114610637575f5ffd5b50565b5f8151905061064881610624565b92915050565b5f5f60408385031215610664576106636105b5565b5b5f61067185828601610610565b92505060206106828582860161063a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6130c2806106c65f395ff3fe608060405260043610610265575f3560e01c80638895283f11610143578063b5e75e1c116100b5578063db203b7f11610079578063db203b7f146108f1578063e00e06121461091b578063e9238daf14610957578063f2fde38b14610993578063f86a3529146109bb578063fb4aa0a1146109e557610265565b8063b5e75e1c146107ff578063bec3fa1714610827578063c54e44eb1461084f578063caed938814610879578063cb33365d146108b557610265565b8063a482171911610107578063a48217191461070f578063a6a11bb114610719578063a87430ba14610743578063aa1c3aa514610783578063acfb2355146107ad578063aeaf4b7a146107d757610265565b80638895283f1461064157806389a30271146106695780638da5cb5b146106935780638e15f473146106bd57806395877f78146106e757610265565b8063544b15d2116101dc578063741bef1a116101a0578063741bef1a146105235780637ad3def21461054d5780637b3e5e7b146105755780637decf27f1461059f57806383ced170146105c95780638577d4521461060557610265565b8063544b15d2146104695780635bf5d54c1461049157806361a31e00146104bb5780636769d1f9146104e3578063715018a61461050d57610265565b806338c67b731161022e57806338c67b731461037357806339878eaa1461039b5780633fc15f15146103c5578063405fb944146103ef57806342caa8401461041957806353a29ad21461044157610265565b806213eb4b146102695780631626bf01146102a55780632d2fbfd4146102cf5780632e37eef61461030d578063317d71a51461034b575b5f5ffd5b348015610274575f5ffd5b5061028f600480360381019061028a9190612648565b610a0f565b60405161029c919061268d565b60405180910390f35b3480156102b0575f5ffd5b506102b9610a2c565b6040516102c691906126be565b60405180910390f35b3480156102da575f5ffd5b506102f560048036038101906102f09190612701565b610a32565b6040516103049392919061272c565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190612701565b610a8d565b6040516103429392919061272c565b60405180910390f35b348015610356575f5ffd5b50610371600480360381019061036c9190612701565b610ab3565b005b34801561037e575f5ffd5b5061039960048036038101906103949190612701565b610f42565b005b3480156103a6575f5ffd5b506103af610fc8565b6040516103bc91906126be565b60405180910390f35b3480156103d0575f5ffd5b506103d9610fce565b6040516103e691906127bc565b60405180910390f35b3480156103fa575f5ffd5b50610403610ff3565b60405161041091906126be565b60405180910390f35b348015610424575f5ffd5b5061043f600480360381019061043a9190612810565b610ff9565b005b34801561044c575f5ffd5b5061046760048036038101906104629190612648565b6110f9565b005b348015610474575f5ffd5b5061048f600480360381019061048a919061284e565b6111b8565b005b34801561049c575f5ffd5b506104a56112bf565b6040516104b291906126be565b60405180910390f35b3480156104c6575f5ffd5b506104e160048036038101906104dc9190612701565b6112c5565b005b3480156104ee575f5ffd5b506104f76113a9565b60405161050491906126be565b60405180910390f35b348015610518575f5ffd5b506105216113af565b005b34801561052e575f5ffd5b50610537611436565b60405161054491906128be565b60405180910390f35b348015610558575f5ffd5b50610573600480360381019061056e9190612648565b61145b565b005b348015610580575f5ffd5b5061058961151a565b60405161059691906126be565b60405180910390f35b3480156105aa575f5ffd5b506105b3611520565b6040516105c0919061268d565b60405180910390f35b3480156105d4575f5ffd5b506105ef60048036038101906105ea9190612701565b611533565b6040516105fc91906126be565b60405180910390f35b348015610610575f5ffd5b5061062b60048036038101906106269190612701565b611553565b60405161063891906126be565b60405180910390f35b34801561064c575f5ffd5b5061066760048036038101906106629190612901565b611573565b005b348015610674575f5ffd5b5061067d61160c565b60405161068a91906127bc565b60405180910390f35b34801561069e575f5ffd5b506106a7611631565b6040516106b4919061293b565b60405180910390f35b3480156106c8575f5ffd5b506106d1611658565b6040516106de91906126be565b60405180910390f35b3480156106f2575f5ffd5b5061070d6004803603810190610708919061298f565b6116f5565b005b6107176117b4565b005b348015610724575f5ffd5b5061072d611c5d565b60405161073a91906126be565b60405180910390f35b34801561074e575f5ffd5b5061076960048036038101906107649190612648565b611c63565b60405161077a9594939291906129ba565b60405180910390f35b34801561078e575f5ffd5b50610797611c95565b6040516107a491906126be565b60405180910390f35b3480156107b8575f5ffd5b506107c1611c9b565b6040516107ce919061268d565b60405180910390f35b3480156107e2575f5ffd5b506107fd60048036038101906107f89190612901565b611cae565b005b34801561080a575f5ffd5b5061082560048036038101906108209190612701565b611d47565b005b348015610832575f5ffd5b5061084d60048036038101906108489190612a0b565b6121d6565b005b34801561085a575f5ffd5b506108636122be565b60405161087091906127bc565b60405180910390f35b348015610884575f5ffd5b5061089f600480360381019061089a9190612701565b6122e3565b6040516108ac91906126be565b60405180910390f35b3480156108c0575f5ffd5b506108db60048036038101906108d69190612a49565b612317565b6040516108e891906126be565b60405180910390f35b3480156108fc575f5ffd5b5061090561237e565b60405161091291906126be565b60405180910390f35b348015610926575f5ffd5b50610941600480360381019061093c9190612701565b61238a565b60405161094e919061293b565b60405180910390f35b348015610962575f5ffd5b5061097d60048036038101906109789190612a49565b6123c5565b60405161098a91906126be565b60405180910390f35b34801561099e575f5ffd5b506109b960048036038101906109b49190612648565b612401565b005b3480156109c6575f5ffd5b506109cf6124f7565b6040516109dc91906126be565b60405180910390f35b3480156109f0575f5ffd5b506109f96124fd565b604051610a069190612aa7565b60405180910390f35b6014602052805f5260405f205f915054906101000a900460ff1681565b600b5481565b5f5f5f5f60055f8681526020019081526020015f206040518060600160405290815f8201548152602001600182015481526020016002820154815250509050805f015181602001518260400151935093509350509193909250565b6005602052805f5260405f205f91509050805f0154908060010154908060020154905083565b601060159054906101000a900460ff1615610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90612b1a565b60405180910390fd5b601060149054906101000a900460ff16610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c6d57600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f815480929190610c0790612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610cec93929190612c34565b5f604051808303815f87803b158015610d03575f5ffd5b505af1158015610d15573d5f5f3e3d5ffd5b505050505f610d26826007546123c5565b905060055f60075481526020019081526020015f205f01548160055f60075481526020019081526020015f2060010154610d609190612c69565b1115610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9890612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610dfd929190612d04565b5f604051808303815f87803b158015610e14575f5ffd5b505af1158015610e26573d5f5f3e3d5ffd5b5050505080600854610e389190612c69565b60088190555081600a54610e4c9190612c69565b600a8190555081600c54610e609190612c69565b600c819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f828254610eb59190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f828254610f0b9190612c69565b925050819055508060055f60075481526020019081526020015f206001015f828254610f379190612c69565b925050819055505050565b610f4a612522565b73ffffffffffffffffffffffffffffffffffffffff16610f68611631565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590612d75565b60405180910390fd5b8060078190555050565b600c5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b611001612522565b73ffffffffffffffffffffffffffffffffffffffff1661101f611631565b73ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612d75565b60405180910390fd5b8160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611101612522565b73ffffffffffffffffffffffffffffffffffffffff1661111f611631565b73ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612d75565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111c0612522565b73ffffffffffffffffffffffffffffffffffffffff166111de611631565b73ffffffffffffffffffffffffffffffffffffffff1614611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90612d75565b60405180910390fd5b5f60055f8581526020019081526020015f205f015411611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612ddd565b60405180910390fd5b8160055f8581526020019081526020015f205f01819055508060055f8581526020019081526020015f2060020181905550505050565b60075481565b6112cd612522565b73ffffffffffffffffffffffffffffffffffffffff166112eb611631565b73ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612d75565b60405180910390fd5b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156113a5573d5f5f3e3d5ffd5b5050565b60085481565b6113b7612522565b73ffffffffffffffffffffffffffffffffffffffff166113d5611631565b73ffffffffffffffffffffffffffffffffffffffff161461142b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142290612d75565b60405180910390fd5b6114345f612529565b565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611463612522565b73ffffffffffffffffffffffffffffffffffffffff16611481611631565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612d75565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b601060159054906101000a900460ff1681565b600e8181548110611542575f80fd5b905f5260205f20015f915090505481565b600f8181548110611562575f80fd5b905f5260205f20015f915090505481565b61157b612522565b73ffffffffffffffffffffffffffffffffffffffff16611599611631565b73ffffffffffffffffffffffffffffffffffffffff16146115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690612d75565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156116c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e89190612e81565b5050509150508091505090565b6116fd612522565b73ffffffffffffffffffffffffffffffffffffffff1661171b611631565b73ffffffffffffffffffffffffffffffffffffffff1614611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612d75565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060159054906101000a900460ff1615611804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fb90612b1a565b60405180910390fd5b601060149054906101000a900460ff16611853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a90612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661196e57600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f81548092919061190890612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f193505050501580156119d2573d5f5f3e3d5ffd5b505f5f6119e134600754612317565b915060055f60075481526020019081526020015f205f01548260055f60075481526020019081526020015f2060010154611a1b9190612c69565b1115611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5390612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611ab8929190612d04565b5f604051808303815f87803b158015611acf575f5ffd5b505af1158015611ae1573d5f5f3e3d5ffd5b5050505081600854611af39190612c69565b60088190555034600954611b079190612c69565b600981905550611b16346122e3565b905080600c54611b269190612c69565b600c819055503460135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f828254611b7a9190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015f828254611bd09190612c69565b925050819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f828254611c269190612c69565b925050819055508160055f60075481526020019081526020015f206001015f828254611c529190612c69565b925050819055505050565b60115481565b6013602052805f5260405f205f91509050805f0154908060010154908060020154908060030154908060040154905085565b600d5481565b601060149054906101000a900460ff1681565b611cb6612522565b73ffffffffffffffffffffffffffffffffffffffff16611cd4611631565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190612d75565b60405180910390fd5b80601060156101000a81548160ff02191690831515021790555050565b601060159054906101000a900460ff1615611d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8e90612f42565b60405180910390fd5b601060149054906101000a900460ff16611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f0157600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f815480929190611e9b90612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611f8093929190612c34565b5f604051808303815f87803b158015611f97575f5ffd5b505af1158015611fa9573d5f5f3e3d5ffd5b505050505f611fba826007546123c5565b905060055f60075481526020019081526020015f205f01548160055f60075481526020019081526020015f2060010154611ff49190612c69565b1115612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c90612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612091929190612d04565b5f604051808303815f87803b1580156120a8575f5ffd5b505af11580156120ba573d5f5f3e3d5ffd5b50505050806008546120cc9190612c69565b60088190555081600b546120e09190612c69565b600b8190555081600c546120f49190612c69565b600c819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546121499190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f82825461219f9190612c69565b925050819055508060055f60075481526020019081526020015f206001015f8282546121cb9190612c69565b925050819055505050565b6121de612522565b73ffffffffffffffffffffffffffffffffffffffff166121fc611631565b73ffffffffffffffffffffffffffffffffffffffff1614612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990612d75565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161228d929190612d04565b5f604051808303815f87803b1580156122a4575f5ffd5b505af11580156122b6573d5f5f3e3d5ffd5b505050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f68056bc75e2d631000006122f7611658565b846123029190612f60565b61230c9190612fce565b905080915050919050565b5f5f670de0b6b3a764000061232a611658565b856123359190612f60565b61233f9190612fce565b90505f6305f5e10060055f8681526020019081526020015f2060020154836123679190612f60565b6123719190612fce565b9050809250505092915050565b5f601280549050905090565b60128181548110612399575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f620f424060055f8581526020019081526020015f2060020154856123eb9190612f60565b6123f59190612fce565b90508091505092915050565b612409612522565b73ffffffffffffffffffffffffffffffffffffffff16612427611631565b73ffffffffffffffffffffffffffffffffffffffff161461247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247490612d75565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e29061306e565b60405180910390fd5b6124f481612529565b50565b60065481565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612617826125ee565b9050919050565b6126278161260d565b8114612631575f5ffd5b50565b5f813590506126428161261e565b92915050565b5f6020828403121561265d5761265c6125ea565b5b5f61266a84828501612634565b91505092915050565b5f8115159050919050565b61268781612673565b82525050565b5f6020820190506126a05f83018461267e565b92915050565b5f819050919050565b6126b8816126a6565b82525050565b5f6020820190506126d15f8301846126af565b92915050565b6126e0816126a6565b81146126ea575f5ffd5b50565b5f813590506126fb816126d7565b92915050565b5f60208284031215612716576127156125ea565b5b5f612723848285016126ed565b91505092915050565b5f60608201905061273f5f8301866126af565b61274c60208301856126af565b61275960408301846126af565b949350505050565b5f819050919050565b5f61278461277f61277a846125ee565b612761565b6125ee565b9050919050565b5f6127958261276a565b9050919050565b5f6127a68261278b565b9050919050565b6127b68161279c565b82525050565b5f6020820190506127cf5f8301846127ad565b92915050565b5f6127df8261260d565b9050919050565b6127ef816127d5565b81146127f9575f5ffd5b50565b5f8135905061280a816127e6565b92915050565b5f5f60408385031215612826576128256125ea565b5b5f612833858286016127fc565b9250506020612844858286016127fc565b9150509250929050565b5f5f5f60608486031215612865576128646125ea565b5b5f612872868287016126ed565b9350506020612883868287016126ed565b9250506040612894868287016126ed565b9150509250925092565b5f6128a88261278b565b9050919050565b6128b88161289e565b82525050565b5f6020820190506128d15f8301846128af565b92915050565b6128e081612673565b81146128ea575f5ffd5b50565b5f813590506128fb816128d7565b92915050565b5f60208284031215612916576129156125ea565b5b5f612923848285016128ed565b91505092915050565b6129358161260d565b82525050565b5f60208201905061294e5f83018461292c565b92915050565b5f61295e8261260d565b9050919050565b61296e81612954565b8114612978575f5ffd5b50565b5f8135905061298981612965565b92915050565b5f602082840312156129a4576129a36125ea565b5b5f6129b18482850161297b565b91505092915050565b5f60a0820190506129cd5f8301886126af565b6129da60208301876126af565b6129e760408301866126af565b6129f460608301856126af565b612a0160808301846126af565b9695505050505050565b5f5f60408385031215612a2157612a206125ea565b5b5f612a2e858286016127fc565b9250506020612a3f858286016126ed565b9150509250929050565b5f5f60408385031215612a5f57612a5e6125ea565b5b5f612a6c858286016126ed565b9250506020612a7d858286016126ed565b9150509250929050565b5f612a91826125ee565b9050919050565b612aa181612a87565b82525050565b5f602082019050612aba5f830184612a98565b92915050565b5f82825260208201905092915050565b7f50726573616c6520656e6465642e0000000000000000000000000000000000005f82015250565b5f612b04600e83612ac0565b9150612b0f82612ad0565b602082019050919050565b5f6020820190508181035f830152612b3181612af8565b9050919050565b7f2050726573616c652069732063757272656e746c7920506175736564000000005f82015250565b5f612b6c601c83612ac0565b9150612b7782612b38565b602082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bd7826126a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c0957612c08612ba0565b5b600182019050919050565b5f612c1e8261278b565b9050919050565b612c2e81612c14565b82525050565b5f606082019050612c475f83018661292c565b612c546020830185612c25565b612c6160408301846126af565b949350505050565b5f612c73826126a6565b9150612c7e836126a6565b9250828201905080821115612c9657612c95612ba0565b5b92915050565b7f5068617365204c696d69742052656163686564000000000000000000000000005f82015250565b5f612cd0601383612ac0565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b5f604082019050612d175f83018561292c565b612d2460208301846126af565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d5f602083612ac0565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b7f70726573616c6520646f65736e277420657869737400000000000000000000005f82015250565b5f612dc7601583612ac0565b9150612dd282612d93565b602082019050919050565b5f6020820190508181035f830152612df481612dbb565b9050919050565b5f69ffffffffffffffffffff82169050919050565b612e1981612dfb565b8114612e23575f5ffd5b50565b5f81519050612e3481612e10565b92915050565b5f819050919050565b612e4c81612e3a565b8114612e56575f5ffd5b50565b5f81519050612e6781612e43565b92915050565b5f81519050612e7b816126d7565b92915050565b5f5f5f5f5f60a08688031215612e9a57612e996125ea565b5b5f612ea788828901612e26565b9550506020612eb888828901612e59565b9450506040612ec988828901612e6d565b9350506060612eda88828901612e6d565b9250506080612eeb88828901612e26565b9150509295509295909350565b7f50726573616c6520656e646564000000000000000000000000000000000000005f82015250565b5f612f2c600d83612ac0565b9150612f3782612ef8565b602082019050919050565b5f6020820190508181035f830152612f5981612f20565b9050919050565b5f612f6a826126a6565b9150612f75836126a6565b9250828202612f83816126a6565b91508282048414831517612f9a57612f99612ba0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd8826126a6565b9150612fe3836126a6565b925082612ff357612ff2612fa1565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613058602683612ac0565b915061306382612ffe565b604082019050919050565b5f6020820190508181035f8301526130858161304c565b905091905056fea26469706673582212205c4e835ca527bb7e727c3dab6b641edf0ee659f9ce5978ca0e02f5ad4ddae73364736f6c634300081d0033000000000000000000000000b26fac9e2ca768a2294e74ff11fa9c79a698f307000000000000000000000000db4180fb9fcc3dffcaf2fd86e8e4bcf64538ef38

Deployed Bytecode

0x608060405260043610610265575f3560e01c80638895283f11610143578063b5e75e1c116100b5578063db203b7f11610079578063db203b7f146108f1578063e00e06121461091b578063e9238daf14610957578063f2fde38b14610993578063f86a3529146109bb578063fb4aa0a1146109e557610265565b8063b5e75e1c146107ff578063bec3fa1714610827578063c54e44eb1461084f578063caed938814610879578063cb33365d146108b557610265565b8063a482171911610107578063a48217191461070f578063a6a11bb114610719578063a87430ba14610743578063aa1c3aa514610783578063acfb2355146107ad578063aeaf4b7a146107d757610265565b80638895283f1461064157806389a30271146106695780638da5cb5b146106935780638e15f473146106bd57806395877f78146106e757610265565b8063544b15d2116101dc578063741bef1a116101a0578063741bef1a146105235780637ad3def21461054d5780637b3e5e7b146105755780637decf27f1461059f57806383ced170146105c95780638577d4521461060557610265565b8063544b15d2146104695780635bf5d54c1461049157806361a31e00146104bb5780636769d1f9146104e3578063715018a61461050d57610265565b806338c67b731161022e57806338c67b731461037357806339878eaa1461039b5780633fc15f15146103c5578063405fb944146103ef57806342caa8401461041957806353a29ad21461044157610265565b806213eb4b146102695780631626bf01146102a55780632d2fbfd4146102cf5780632e37eef61461030d578063317d71a51461034b575b5f5ffd5b348015610274575f5ffd5b5061028f600480360381019061028a9190612648565b610a0f565b60405161029c919061268d565b60405180910390f35b3480156102b0575f5ffd5b506102b9610a2c565b6040516102c691906126be565b60405180910390f35b3480156102da575f5ffd5b506102f560048036038101906102f09190612701565b610a32565b6040516103049392919061272c565b60405180910390f35b348015610318575f5ffd5b50610333600480360381019061032e9190612701565b610a8d565b6040516103429392919061272c565b60405180910390f35b348015610356575f5ffd5b50610371600480360381019061036c9190612701565b610ab3565b005b34801561037e575f5ffd5b5061039960048036038101906103949190612701565b610f42565b005b3480156103a6575f5ffd5b506103af610fc8565b6040516103bc91906126be565b60405180910390f35b3480156103d0575f5ffd5b506103d9610fce565b6040516103e691906127bc565b60405180910390f35b3480156103fa575f5ffd5b50610403610ff3565b60405161041091906126be565b60405180910390f35b348015610424575f5ffd5b5061043f600480360381019061043a9190612810565b610ff9565b005b34801561044c575f5ffd5b5061046760048036038101906104629190612648565b6110f9565b005b348015610474575f5ffd5b5061048f600480360381019061048a919061284e565b6111b8565b005b34801561049c575f5ffd5b506104a56112bf565b6040516104b291906126be565b60405180910390f35b3480156104c6575f5ffd5b506104e160048036038101906104dc9190612701565b6112c5565b005b3480156104ee575f5ffd5b506104f76113a9565b60405161050491906126be565b60405180910390f35b348015610518575f5ffd5b506105216113af565b005b34801561052e575f5ffd5b50610537611436565b60405161054491906128be565b60405180910390f35b348015610558575f5ffd5b50610573600480360381019061056e9190612648565b61145b565b005b348015610580575f5ffd5b5061058961151a565b60405161059691906126be565b60405180910390f35b3480156105aa575f5ffd5b506105b3611520565b6040516105c0919061268d565b60405180910390f35b3480156105d4575f5ffd5b506105ef60048036038101906105ea9190612701565b611533565b6040516105fc91906126be565b60405180910390f35b348015610610575f5ffd5b5061062b60048036038101906106269190612701565b611553565b60405161063891906126be565b60405180910390f35b34801561064c575f5ffd5b5061066760048036038101906106629190612901565b611573565b005b348015610674575f5ffd5b5061067d61160c565b60405161068a91906127bc565b60405180910390f35b34801561069e575f5ffd5b506106a7611631565b6040516106b4919061293b565b60405180910390f35b3480156106c8575f5ffd5b506106d1611658565b6040516106de91906126be565b60405180910390f35b3480156106f2575f5ffd5b5061070d6004803603810190610708919061298f565b6116f5565b005b6107176117b4565b005b348015610724575f5ffd5b5061072d611c5d565b60405161073a91906126be565b60405180910390f35b34801561074e575f5ffd5b5061076960048036038101906107649190612648565b611c63565b60405161077a9594939291906129ba565b60405180910390f35b34801561078e575f5ffd5b50610797611c95565b6040516107a491906126be565b60405180910390f35b3480156107b8575f5ffd5b506107c1611c9b565b6040516107ce919061268d565b60405180910390f35b3480156107e2575f5ffd5b506107fd60048036038101906107f89190612901565b611cae565b005b34801561080a575f5ffd5b5061082560048036038101906108209190612701565b611d47565b005b348015610832575f5ffd5b5061084d60048036038101906108489190612a0b565b6121d6565b005b34801561085a575f5ffd5b506108636122be565b60405161087091906127bc565b60405180910390f35b348015610884575f5ffd5b5061089f600480360381019061089a9190612701565b6122e3565b6040516108ac91906126be565b60405180910390f35b3480156108c0575f5ffd5b506108db60048036038101906108d69190612a49565b612317565b6040516108e891906126be565b60405180910390f35b3480156108fc575f5ffd5b5061090561237e565b60405161091291906126be565b60405180910390f35b348015610926575f5ffd5b50610941600480360381019061093c9190612701565b61238a565b60405161094e919061293b565b60405180910390f35b348015610962575f5ffd5b5061097d60048036038101906109789190612a49565b6123c5565b60405161098a91906126be565b60405180910390f35b34801561099e575f5ffd5b506109b960048036038101906109b49190612648565b612401565b005b3480156109c6575f5ffd5b506109cf6124f7565b6040516109dc91906126be565b60405180910390f35b3480156109f0575f5ffd5b506109f96124fd565b604051610a069190612aa7565b60405180910390f35b6014602052805f5260405f205f915054906101000a900460ff1681565b600b5481565b5f5f5f5f60055f8681526020019081526020015f206040518060600160405290815f8201548152602001600182015481526020016002820154815250509050805f015181602001518260400151935093509350509193909250565b6005602052805f5260405f205f91509050805f0154908060010154908060020154905083565b601060159054906101000a900460ff1615610b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afa90612b1a565b60405180910390fd5b601060149054906101000a900460ff16610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c6d57600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f815480929190610c0790612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610cec93929190612c34565b5f604051808303815f87803b158015610d03575f5ffd5b505af1158015610d15573d5f5f3e3d5ffd5b505050505f610d26826007546123c5565b905060055f60075481526020019081526020015f205f01548160055f60075481526020019081526020015f2060010154610d609190612c69565b1115610da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9890612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610dfd929190612d04565b5f604051808303815f87803b158015610e14575f5ffd5b505af1158015610e26573d5f5f3e3d5ffd5b5050505080600854610e389190612c69565b60088190555081600a54610e4c9190612c69565b600a8190555081600c54610e609190612c69565b600c819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f828254610eb59190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f828254610f0b9190612c69565b925050819055508060055f60075481526020019081526020015f206001015f828254610f379190612c69565b925050819055505050565b610f4a612522565b73ffffffffffffffffffffffffffffffffffffffff16610f68611631565b73ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590612d75565b60405180910390fd5b8060078190555050565b600c5481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b611001612522565b73ffffffffffffffffffffffffffffffffffffffff1661101f611631565b73ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612d75565b60405180910390fd5b8160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b611101612522565b73ffffffffffffffffffffffffffffffffffffffff1661111f611631565b73ffffffffffffffffffffffffffffffffffffffff1614611175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116c90612d75565b60405180910390fd5b8060105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111c0612522565b73ffffffffffffffffffffffffffffffffffffffff166111de611631565b73ffffffffffffffffffffffffffffffffffffffff1614611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122b90612d75565b60405180910390fd5b5f60055f8581526020019081526020015f205f015411611289576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128090612ddd565b60405180910390fd5b8160055f8581526020019081526020015f205f01819055508060055f8581526020019081526020015f2060020181905550505050565b60075481565b6112cd612522565b73ffffffffffffffffffffffffffffffffffffffff166112eb611631565b73ffffffffffffffffffffffffffffffffffffffff1614611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612d75565b60405180910390fd5b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156113a5573d5f5f3e3d5ffd5b5050565b60085481565b6113b7612522565b73ffffffffffffffffffffffffffffffffffffffff166113d5611631565b73ffffffffffffffffffffffffffffffffffffffff161461142b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142290612d75565b60405180910390fd5b6114345f612529565b565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611463612522565b73ffffffffffffffffffffffffffffffffffffffff16611481611631565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612d75565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b601060159054906101000a900460ff1681565b600e8181548110611542575f80fd5b905f5260205f20015f915090505481565b600f8181548110611562575f80fd5b905f5260205f20015f915090505481565b61157b612522565b73ffffffffffffffffffffffffffffffffffffffff16611599611631565b73ffffffffffffffffffffffffffffffffffffffff16146115ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e690612d75565b60405180910390fd5b80601060146101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156116c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e89190612e81565b5050509150508091505090565b6116fd612522565b73ffffffffffffffffffffffffffffffffffffffff1661171b611631565b73ffffffffffffffffffffffffffffffffffffffff1614611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890612d75565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601060159054906101000a900460ff1615611804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fb90612b1a565b60405180910390fd5b601060149054906101000a900460ff16611853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a90612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661196e57600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f81548092919061190890612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f193505050501580156119d2573d5f5f3e3d5ffd5b505f5f6119e134600754612317565b915060055f60075481526020019081526020015f205f01548260055f60075481526020019081526020015f2060010154611a1b9190612c69565b1115611a5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5390612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff1660e01b8152600401611ab8929190612d04565b5f604051808303815f87803b158015611acf575f5ffd5b505af1158015611ae1573d5f5f3e3d5ffd5b5050505081600854611af39190612c69565b60088190555034600954611b079190612c69565b600981905550611b16346122e3565b905080600c54611b269190612c69565b600c819055503460135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f828254611b7a9190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015f828254611bd09190612c69565b925050819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f828254611c269190612c69565b925050819055508160055f60075481526020019081526020015f206001015f828254611c529190612c69565b925050819055505050565b60115481565b6013602052805f5260405f205f91509050805f0154908060010154908060020154908060030154908060040154905085565b600d5481565b601060149054906101000a900460ff1681565b611cb6612522565b73ffffffffffffffffffffffffffffffffffffffff16611cd4611631565b73ffffffffffffffffffffffffffffffffffffffff1614611d2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2190612d75565b60405180910390fd5b80601060156101000a81548160ff02191690831515021790555050565b601060159054906101000a900460ff1615611d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8e90612f42565b60405180910390fd5b601060149054906101000a900460ff16611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd90612b82565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611f0157600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600d5f815480929190611e9b90612bcd565b9190505550601233908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401611f8093929190612c34565b5f604051808303815f87803b158015611f97575f5ffd5b505af1158015611fa9573d5f5f3e3d5ffd5b505050505f611fba826007546123c5565b905060055f60075481526020019081526020015f205f01548160055f60075481526020019081526020015f2060010154611ff49190612c69565b1115612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c90612ce6565b60405180910390fd5b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401612091929190612d04565b5f604051808303815f87803b1580156120a8575f5ffd5b505af11580156120ba573d5f5f3e3d5ffd5b50505050806008546120cc9190612c69565b60088190555081600b546120e09190612c69565b600b8190555081600c546120f49190612c69565b600c819055508160135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015f8282546121499190612c69565b925050819055508060135f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f82825461219f9190612c69565b925050819055508060055f60075481526020019081526020015f206001015f8282546121cb9190612c69565b925050819055505050565b6121de612522565b73ffffffffffffffffffffffffffffffffffffffff166121fc611631565b73ffffffffffffffffffffffffffffffffffffffff1614612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990612d75565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161228d929190612d04565b5f604051808303815f87803b1580156122a4575f5ffd5b505af11580156122b6573d5f5f3e3d5ffd5b505050505050565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f68056bc75e2d631000006122f7611658565b846123029190612f60565b61230c9190612fce565b905080915050919050565b5f5f670de0b6b3a764000061232a611658565b856123359190612f60565b61233f9190612fce565b90505f6305f5e10060055f8681526020019081526020015f2060020154836123679190612f60565b6123719190612fce565b9050809250505092915050565b5f601280549050905090565b60128181548110612399575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f620f424060055f8581526020019081526020015f2060020154856123eb9190612f60565b6123f59190612fce565b90508091505092915050565b612409612522565b73ffffffffffffffffffffffffffffffffffffffff16612427611631565b73ffffffffffffffffffffffffffffffffffffffff161461247d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247490612d75565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036124eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e29061306e565b60405180910390fd5b6124f481612529565b50565b60065481565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612617826125ee565b9050919050565b6126278161260d565b8114612631575f5ffd5b50565b5f813590506126428161261e565b92915050565b5f6020828403121561265d5761265c6125ea565b5b5f61266a84828501612634565b91505092915050565b5f8115159050919050565b61268781612673565b82525050565b5f6020820190506126a05f83018461267e565b92915050565b5f819050919050565b6126b8816126a6565b82525050565b5f6020820190506126d15f8301846126af565b92915050565b6126e0816126a6565b81146126ea575f5ffd5b50565b5f813590506126fb816126d7565b92915050565b5f60208284031215612716576127156125ea565b5b5f612723848285016126ed565b91505092915050565b5f60608201905061273f5f8301866126af565b61274c60208301856126af565b61275960408301846126af565b949350505050565b5f819050919050565b5f61278461277f61277a846125ee565b612761565b6125ee565b9050919050565b5f6127958261276a565b9050919050565b5f6127a68261278b565b9050919050565b6127b68161279c565b82525050565b5f6020820190506127cf5f8301846127ad565b92915050565b5f6127df8261260d565b9050919050565b6127ef816127d5565b81146127f9575f5ffd5b50565b5f8135905061280a816127e6565b92915050565b5f5f60408385031215612826576128256125ea565b5b5f612833858286016127fc565b9250506020612844858286016127fc565b9150509250929050565b5f5f5f60608486031215612865576128646125ea565b5b5f612872868287016126ed565b9350506020612883868287016126ed565b9250506040612894868287016126ed565b9150509250925092565b5f6128a88261278b565b9050919050565b6128b88161289e565b82525050565b5f6020820190506128d15f8301846128af565b92915050565b6128e081612673565b81146128ea575f5ffd5b50565b5f813590506128fb816128d7565b92915050565b5f60208284031215612916576129156125ea565b5b5f612923848285016128ed565b91505092915050565b6129358161260d565b82525050565b5f60208201905061294e5f83018461292c565b92915050565b5f61295e8261260d565b9050919050565b61296e81612954565b8114612978575f5ffd5b50565b5f8135905061298981612965565b92915050565b5f602082840312156129a4576129a36125ea565b5b5f6129b18482850161297b565b91505092915050565b5f60a0820190506129cd5f8301886126af565b6129da60208301876126af565b6129e760408301866126af565b6129f460608301856126af565b612a0160808301846126af565b9695505050505050565b5f5f60408385031215612a2157612a206125ea565b5b5f612a2e858286016127fc565b9250506020612a3f858286016126ed565b9150509250929050565b5f5f60408385031215612a5f57612a5e6125ea565b5b5f612a6c858286016126ed565b9250506020612a7d858286016126ed565b9150509250929050565b5f612a91826125ee565b9050919050565b612aa181612a87565b82525050565b5f602082019050612aba5f830184612a98565b92915050565b5f82825260208201905092915050565b7f50726573616c6520656e6465642e0000000000000000000000000000000000005f82015250565b5f612b04600e83612ac0565b9150612b0f82612ad0565b602082019050919050565b5f6020820190508181035f830152612b3181612af8565b9050919050565b7f2050726573616c652069732063757272656e746c7920506175736564000000005f82015250565b5f612b6c601c83612ac0565b9150612b7782612b38565b602082019050919050565b5f6020820190508181035f830152612b9981612b60565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612bd7826126a6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c0957612c08612ba0565b5b600182019050919050565b5f612c1e8261278b565b9050919050565b612c2e81612c14565b82525050565b5f606082019050612c475f83018661292c565b612c546020830185612c25565b612c6160408301846126af565b949350505050565b5f612c73826126a6565b9150612c7e836126a6565b9250828201905080821115612c9657612c95612ba0565b5b92915050565b7f5068617365204c696d69742052656163686564000000000000000000000000005f82015250565b5f612cd0601383612ac0565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b5f604082019050612d175f83018561292c565b612d2460208301846126af565b9392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612d5f602083612ac0565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b7f70726573616c6520646f65736e277420657869737400000000000000000000005f82015250565b5f612dc7601583612ac0565b9150612dd282612d93565b602082019050919050565b5f6020820190508181035f830152612df481612dbb565b9050919050565b5f69ffffffffffffffffffff82169050919050565b612e1981612dfb565b8114612e23575f5ffd5b50565b5f81519050612e3481612e10565b92915050565b5f819050919050565b612e4c81612e3a565b8114612e56575f5ffd5b50565b5f81519050612e6781612e43565b92915050565b5f81519050612e7b816126d7565b92915050565b5f5f5f5f5f60a08688031215612e9a57612e996125ea565b5b5f612ea788828901612e26565b9550506020612eb888828901612e59565b9450506040612ec988828901612e6d565b9350506060612eda88828901612e6d565b9250506080612eeb88828901612e26565b9150509295509295909350565b7f50726573616c6520656e646564000000000000000000000000000000000000005f82015250565b5f612f2c600d83612ac0565b9150612f3782612ef8565b602082019050919050565b5f6020820190508181035f830152612f5981612f20565b9050919050565b5f612f6a826126a6565b9150612f75836126a6565b9250828202612f83816126a6565b91508282048414831517612f9a57612f99612ba0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd8826126a6565b9150612fe3836126a6565b925082612ff357612ff2612fa1565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613058602683612ac0565b915061306382612ffe565b604082019050919050565b5f6020820190508181035f8301526130858161304c565b905091905056fea26469706673582212205c4e835ca527bb7e727c3dab6b641edf0ee659f9ce5978ca0e02f5ad4ddae73364736f6c634300081d0033

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

000000000000000000000000b26fac9e2ca768a2294e74ff11fa9c79a698f307000000000000000000000000db4180fb9fcc3dffcaf2fd86e8e4bcf64538ef38

-----Decoded View---------------
Arg [0] : _token (address): 0xb26FaC9E2ca768A2294e74fF11Fa9c79A698F307
Arg [1] : _fundReceiver (address): 0xDB4180fb9fCc3DffCAf2fD86e8E4bCf64538EF38

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b26fac9e2ca768a2294e74ff11fa9c79a698f307
Arg [1] : 000000000000000000000000db4180fb9fcc3dffcaf2fd86e8e4bcf64538ef38


Deployed Bytecode Sourcemap

3572:8771:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5260:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4191:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9931:397;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;3973:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;7758:1078;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11838:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4229:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3611:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4153:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11450:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11720:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6001:348;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4054:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11603:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4088:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:103;;;;;;;;;;;;;:::i;:::-;;3799:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11341:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4119:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4917:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4306:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4576:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10336:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3719:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;764:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6357:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11950:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6524:1226;;;:::i;:::-;;4950:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5216:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;4270:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4885:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10445:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8844:1079;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12100:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3641:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11156:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10549:333;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12234:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4988:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10890:258;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1330:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4021:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4841:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5260:39;;;;;;;;;;;;;;;;;;;;;;:::o;4191:31::-;;;;:::o;9931:397::-;10037:19;10071:18;10104:16;10148:18;10169:6;:16;10176:8;10169:16;;;;;;;;;;;10148:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10218:5;:18;;;10251:5;:21;;;10287:5;:22;;;10196:124;;;;;;;9931:397;;;;;:::o;3973:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7758:1078::-;7823:14;;;;;;;;;;;7822:15;7814:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7875:13;;;;;;;;;;;7867:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7937:7;:19;7945:10;7937:19;;;;;;;;;;;;;;;;;;;;;;;;;7932:154;;7995:4;7973:7;:19;7981:10;7973:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;8014:12;;:14;;;;;;;;;:::i;:::-;;;;;;8043;8063:10;8043:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7932:154;8096:4;;;;;;;;;;;:17;;;8114:10;8126:12;;;;;;;;;;;8140:6;8096:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8158:22;8208:33;8220:6;8228:12;;8208:11;:33::i;:::-;8191:50;;8348:6;:20;8355:12;;8348:20;;;;;;;;;;;:33;;;8313:14;8274:6;:20;8281:12;;8274:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;8252:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8439:9;;;;;;;;;;;:18;;;8458:10;8470:14;8439:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8520:14;8508:9;;:26;;;;:::i;:::-;8496:9;:38;;;;8583:6;8564:16;;:25;;;;:::i;:::-;8545:16;:44;;;;8644:6;8622:19;;:28;;;;:::i;:::-;8600:19;:50;;;;8697:6;8663:5;:17;8669:10;8663:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;8749:14;8714:5;:17;8720:10;8714:17;;;;;;;;;;;;;;;:31;;;:49;;;;;;;:::i;:::-;;;;;;;;8814:14;8774:6;:20;8781:12;;8774:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;7803:1033;7758:1078;:::o;11838:104::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11925:9:::1;11910:12;:24;;;;11838:104:::0;:::o;4229:34::-;;;;:::o;3611:23::-;;;;;;;;;;;;;:::o;4153:31::-;;;;:::o;11450:145::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11550:5:::1;11536:4;;:20;;;;;;;;;;;;;;;;;;11581:5;11567:4;;:20;;;;;;;;;;;;;;;;;;11450:145:::0;;:::o;11720:110::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11816:5:::1;11793:12;;:29;;;;;;;;;;;;;;;;;;11720:110:::0;:::o;6001:348::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6194:1:::1;6162:6;:16;6169:8;6162:16;;;;;;;;;;;:29;;;:33;6154:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6264:13;6232:6;:16;6239:8;6232:16;;;;;;;;;;;:29;;:45;;;;6324:17;6288:6;:16;6295:8;6288:16;;;;;;;;;;;:33;;:53;;;;6001:348:::0;;;:::o;4054:27::-;;;;:::o;11603:109::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11675:12:::1;;;;;;;;;;;:21;;:29;11697:6;11675:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11603:109:::0;:::o;4088:24::-;;;;:::o;1072:103::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1137:30:::1;1164:1;1137:18;:30::i;:::-;1072:103::o:0;3799:38::-;;;;;;;;;;;;;:::o;11341:101::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11427:6:::1;11408:9;;:26;;;;;;;;;;;;;;;;;;11341:101:::0;:::o;4119:27::-;;;;:::o;4917:26::-;;;;;;;;;;;;;:::o;4306:261::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4576:256::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10336:101::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10422:7:::1;10406:13;;:23;;;;;;;;;;;;;;;;;;10336:101:::0;:::o;3719:71::-;;;;;;;;;;;;;:::o;764:87::-;810:7;837:6;;;;;;;;;;;830:13;;764:87;:::o;6357:159::-;6404:7;6427:12;6449:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6424:52;;;;;;6502:5;6487:21;;;6357:159;:::o;11950:142::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12074:10:::1;12062:9;;:22;;;;;;;;;;;;;;;;;;11950:142:::0;:::o;6524:1226::-;6579:14;;;;;;;;;;;6578:15;6570:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6631:13;;;;;;;;;;;6623:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6693:7;:19;6701:10;6693:19;;;;;;;;;;;;;;;;;;;;;;;;;6688:154;;6751:4;6729:7;:19;6737:10;6729:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;6770:12;;:14;;;;;;;;;:::i;:::-;;;;;;6799;6819:10;6799:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6688:154;6852:12;;;;;;;;;;;:21;;:32;6874:9;6852:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6895:22;6928:25;6981:38;6995:9;7006:12;;6981:13;:38::i;:::-;6964:55;;7126:6;:20;7133:12;;7126:20;;;;;;;;;;;:33;;;7091:14;7052:6;:20;7059:12;;7052:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;7030:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;7217:9;;;;;;;;;;;:18;;;7236:10;7248:14;7217:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7299:14;7286:9;;:28;;;;:::i;:::-;7274:9;:40;;;;7356:9;7340:12;;:26;;;;:::i;:::-;7325:12;:41;;;;7397:22;7409:9;7397:11;:22::i;:::-;7377:42;;7474:17;7452:19;;:39;;;;:::i;:::-;7430:19;:61;;;;7541:9;7504:5;:17;7510:10;7504:17;;;;;;;;;;;;;;;:32;;;:47;;;;;;;:::i;:::-;;;;;;;;7600:17;7562:5;:17;7568:10;7562:17;;;;;;;;;;;;;;;:34;;;:55;;;;;;;:::i;:::-;;;;;;;;7663:14;7628:5;:17;7634:10;7628:17;;;;;;;;;;;;;;;:31;;;:49;;;;;;;:::i;:::-;;;;;;;;7728:14;7688:6;:20;7695:12;;7688:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;6559:1191;;6524:1226::o;4950:29::-;;;;:::o;5216:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4270:27::-;;;;:::o;4885:25::-;;;;;;;;;;;;;:::o;10445:96::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10526:7:::1;10509:14;;:24;;;;;;;;;;;;;;;;;;10445:96:::0;:::o;8844:1079::-;8909:14;;;;;;;;;;;8908:15;8900:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8960:13;;;;;;;;;;;8952:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9022:7;:19;9030:10;9022:19;;;;;;;;;;;;;;;;;;;;;;;;;9017:154;;9080:4;9058:7;:19;9066:10;9058:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9099:12;;:14;;;;;;;;;:::i;:::-;;;;;;9128;9148:10;9128:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9017:154;9181:4;;;;;;;;;;;:17;;;9199:10;9211:12;;;;;;;;;;;9225:6;9181:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9245:22;9295:33;9307:6;9315:12;;9295:11;:33::i;:::-;9278:50;;9435:6;:20;9442:12;;9435:20;;;;;;;;;;;:33;;;9400:14;9361:6;:20;9368:12;;9361:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;9339:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;9526:9;;;;;;;;;;;:18;;;9545:10;9557:14;9526:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9607:14;9595:9;;:26;;;;:::i;:::-;9583:9;:38;;;;9670:6;9651:16;;:25;;;;:::i;:::-;9632:16;:44;;;;9731:6;9709:19;;:28;;;;:::i;:::-;9687:19;:50;;;;9784:6;9750:5;:17;9756:10;9750:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;9836:14;9801:5;:17;9807:10;9801:17;;;;;;;;;;;;;;;:31;;;:49;;;;;;;:::i;:::-;;;;;;;;9901:14;9861:6;:20;9868:12;;9861:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;8889:1034;8844:1079;:::o;12100:126::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12184:5:::1;:14;;;12199:10;12211:6;12184:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12100:126:::0;;:::o;3641:71::-;;;;;;;;;;;;;:::o;11156:177::-;11215:7;11235:19;11291:4;11269:16;:14;:16::i;:::-;11258:7;:28;;;;:::i;:::-;11257:39;;;;:::i;:::-;11235:61;;11314:11;11307:18;;;11156:177;;;:::o;10549:333::-;10654:7;10679:16;10732:7;10710:16;:14;:16::i;:::-;10699:7;:28;;;;:::i;:::-;10698:42;;;;:::i;:::-;10679:61;;10751:22;10838:3;10788:6;:15;10795:7;10788:15;;;;;;;;;;;:32;;;10777:8;:43;;;;:::i;:::-;10776:66;;;;:::i;:::-;10751:91;;10860:14;10853:21;;;;10549:333;;;;:::o;12234:106::-;12284:7;12311:14;:21;;;;12304:28;;12234:106;:::o;4988:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10890:258::-;10993:7;11018:22;11104:3;11054:6;:15;11061:7;11054:15;;;;;;;;;;;:32;;;11044:7;:42;;;;:::i;:::-;11043:65;;;;:::i;:::-;11018:90;;11126:14;11119:21;;;10890:258;;;;:::o;1330:238::-;995:12;:10;:12::i;:::-;984:23;;:7;:5;:7::i;:::-;:23;;;976:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1453:1:::1;1433:22;;:8;:22;;::::0;1411:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1532:28;1551:8;1532:18;:28::i;:::-;1330:238:::0;:::o;4021:26::-;;;;:::o;4841:35::-;;;;;;;;;;;;;:::o;122:98::-;175:7;202:10;195:17;;122:98;:::o;1728:191::-;1802:16;1821:6;;;;;;;;;;;1802:25;;1847:8;1838:6;;:17;;;;;;;;;;;;;;;;;;1902:8;1871:40;;1892:8;1871:40;;;;;;;;;;;;1791:128;1728: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:118::-;1773:24;1791:5;1773:24;:::i;:::-;1768:3;1761:37;1686:118;;:::o;1810:222::-;1903:4;1941:2;1930:9;1926:18;1918:26;;1954:71;2022:1;2011:9;2007:17;1998:6;1954:71;:::i;:::-;1810:222;;;;:::o;2038:122::-;2111:24;2129:5;2111:24;:::i;:::-;2104:5;2101:35;2091:63;;2150:1;2147;2140:12;2091:63;2038:122;:::o;2166:139::-;2212:5;2250:6;2237:20;2228:29;;2266:33;2293:5;2266:33;:::i;:::-;2166:139;;;;:::o;2311:329::-;2370:6;2419:2;2407:9;2398:7;2394:23;2390:32;2387:119;;;2425:79;;:::i;:::-;2387:119;2545:1;2570:53;2615:7;2606:6;2595:9;2591:22;2570:53;:::i;:::-;2560:63;;2516:117;2311:329;;;;:::o;2646:442::-;2795:4;2833:2;2822:9;2818:18;2810:26;;2846:71;2914:1;2903:9;2899:17;2890:6;2846:71;:::i;:::-;2927:72;2995:2;2984:9;2980:18;2971:6;2927:72;:::i;:::-;3009;3077:2;3066:9;3062:18;3053:6;3009:72;:::i;:::-;2646:442;;;;;;:::o;3094:60::-;3122:3;3143:5;3136:12;;3094:60;;;:::o;3160:142::-;3210:9;3243:53;3261:34;3270:24;3288:5;3270:24;:::i;:::-;3261:34;:::i;:::-;3243:53;:::i;:::-;3230:66;;3160:142;;;:::o;3308:126::-;3358:9;3391:37;3422:5;3391:37;:::i;:::-;3378:50;;3308:126;;;:::o;3440:140::-;3504:9;3537:37;3568:5;3537:37;:::i;:::-;3524:50;;3440:140;;;:::o;3586:159::-;3687:51;3732:5;3687:51;:::i;:::-;3682:3;3675:64;3586:159;;:::o;3751:250::-;3858:4;3896:2;3885:9;3881:18;3873:26;;3909:85;3991:1;3980:9;3976:17;3967:6;3909:85;:::i;:::-;3751:250;;;;:::o;4007:110::-;4058:7;4087:24;4105:5;4087:24;:::i;:::-;4076:35;;4007:110;;;:::o;4123:150::-;4210:38;4242:5;4210:38;:::i;:::-;4203:5;4200:49;4190:77;;4263:1;4260;4253:12;4190:77;4123:150;:::o;4279:167::-;4339:5;4377:6;4364:20;4355:29;;4393:47;4434:5;4393:47;:::i;:::-;4279:167;;;;:::o;4452:530::-;4548:6;4556;4605:2;4593:9;4584:7;4580:23;4576:32;4573:119;;;4611:79;;:::i;:::-;4573:119;4731:1;4756:67;4815:7;4806:6;4795:9;4791:22;4756:67;:::i;:::-;4746:77;;4702:131;4872:2;4898:67;4957:7;4948:6;4937:9;4933:22;4898:67;:::i;:::-;4888:77;;4843:132;4452:530;;;;;:::o;4988:619::-;5065:6;5073;5081;5130:2;5118:9;5109:7;5105:23;5101:32;5098:119;;;5136:79;;:::i;:::-;5098:119;5256:1;5281:53;5326:7;5317:6;5306:9;5302:22;5281:53;:::i;:::-;5271:63;;5227:117;5383:2;5409:53;5454:7;5445:6;5434:9;5430:22;5409:53;:::i;:::-;5399:63;;5354:118;5511:2;5537:53;5582:7;5573:6;5562:9;5558:22;5537:53;:::i;:::-;5527:63;;5482:118;4988:619;;;;;:::o;5613:155::-;5692:9;5725:37;5756:5;5725:37;:::i;:::-;5712:50;;5613:155;;;:::o;5774:189::-;5890:66;5950:5;5890:66;:::i;:::-;5885:3;5878:79;5774:189;;:::o;5969:280::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:100;6239:1;6228:9;6224:17;6215:6;6142:100;:::i;:::-;5969:280;;;;:::o;6255:116::-;6325:21;6340:5;6325:21;:::i;:::-;6318:5;6315:32;6305:60;;6361:1;6358;6351:12;6305:60;6255:116;:::o;6377:133::-;6420:5;6458:6;6445:20;6436:29;;6474:30;6498:5;6474:30;:::i;:::-;6377:133;;;;:::o;6516:323::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:50;6814:7;6805:6;6794:9;6790:22;6772:50;:::i;:::-;6762:60;;6718:114;6516:323;;;;:::o;6845:118::-;6932:24;6950:5;6932:24;:::i;:::-;6927:3;6920:37;6845:118;;:::o;6969:222::-;7062:4;7100:2;7089:9;7085:18;7077:26;;7113:71;7181:1;7170:9;7166:17;7157:6;7113:71;:::i;:::-;6969:222;;;;:::o;7197:125::-;7263:7;7292:24;7310:5;7292:24;:::i;:::-;7281:35;;7197:125;;;:::o;7328:180::-;7430:53;7477:5;7430:53;:::i;:::-;7423:5;7420:64;7410:92;;7498:1;7495;7488:12;7410:92;7328:180;:::o;7514:197::-;7589:5;7627:6;7614:20;7605:29;;7643:62;7699:5;7643:62;:::i;:::-;7514:197;;;;:::o;7717:387::-;7805:6;7854:2;7842:9;7833:7;7829:23;7825:32;7822:119;;;7860:79;;:::i;:::-;7822:119;7980:1;8005:82;8079:7;8070:6;8059:9;8055:22;8005:82;:::i;:::-;7995:92;;7951:146;7717:387;;;;:::o;8110:664::-;8315:4;8353:3;8342:9;8338:19;8330:27;;8367:71;8435:1;8424:9;8420:17;8411:6;8367:71;:::i;:::-;8448:72;8516:2;8505:9;8501:18;8492:6;8448:72;:::i;:::-;8530;8598:2;8587:9;8583:18;8574:6;8530:72;:::i;:::-;8612;8680:2;8669:9;8665:18;8656:6;8612:72;:::i;:::-;8694:73;8762:3;8751:9;8747:19;8738:6;8694:73;:::i;:::-;8110:664;;;;;;;;:::o;8780:502::-;8862:6;8870;8919:2;8907:9;8898:7;8894:23;8890:32;8887:119;;;8925:79;;:::i;:::-;8887:119;9045:1;9070:67;9129:7;9120:6;9109:9;9105:22;9070:67;:::i;:::-;9060:77;;9016:131;9186:2;9212:53;9257:7;9248:6;9237:9;9233:22;9212:53;:::i;:::-;9202:63;;9157:118;8780:502;;;;;:::o;9288:474::-;9356:6;9364;9413:2;9401:9;9392:7;9388:23;9384:32;9381:119;;;9419:79;;:::i;:::-;9381:119;9539:1;9564:53;9609:7;9600:6;9589:9;9585:22;9564:53;:::i;:::-;9554:63;;9510:117;9666:2;9692:53;9737:7;9728:6;9717:9;9713:22;9692:53;:::i;:::-;9682:63;;9637:118;9288:474;;;;;:::o;9768:104::-;9813:7;9842:24;9860:5;9842:24;:::i;:::-;9831:35;;9768:104;;;:::o;9878:142::-;9981:32;10007:5;9981:32;:::i;:::-;9976:3;9969:45;9878:142;;:::o;10026:254::-;10135:4;10173:2;10162:9;10158:18;10150:26;;10186:87;10270:1;10259:9;10255:17;10246:6;10186:87;:::i;:::-;10026:254;;;;:::o;10286:169::-;10370:11;10404:6;10399:3;10392:19;10444:4;10439:3;10435:14;10420:29;;10286:169;;;;:::o;10461:164::-;10601:16;10597:1;10589:6;10585:14;10578:40;10461:164;:::o;10631:366::-;10773:3;10794:67;10858:2;10853:3;10794:67;:::i;:::-;10787:74;;10870:93;10959:3;10870:93;:::i;:::-;10988:2;10983:3;10979:12;10972:19;;10631:366;;;:::o;11003:419::-;11169:4;11207:2;11196:9;11192:18;11184:26;;11256:9;11250:4;11246:20;11242:1;11231:9;11227:17;11220:47;11284:131;11410:4;11284:131;:::i;:::-;11276:139;;11003:419;;;:::o;11428:178::-;11568:30;11564:1;11556:6;11552:14;11545:54;11428:178;:::o;11612:366::-;11754:3;11775:67;11839:2;11834:3;11775:67;:::i;:::-;11768:74;;11851:93;11940:3;11851:93;:::i;:::-;11969:2;11964:3;11960:12;11953:19;;11612:366;;;:::o;11984:419::-;12150:4;12188:2;12177:9;12173:18;12165:26;;12237:9;12231:4;12227:20;12223:1;12212:9;12208:17;12201:47;12265:131;12391:4;12265:131;:::i;:::-;12257:139;;11984:419;;;:::o;12409:180::-;12457:77;12454:1;12447:88;12554:4;12551:1;12544:15;12578:4;12575:1;12568:15;12595:233;12634:3;12657:24;12675:5;12657:24;:::i;:::-;12648:33;;12703:66;12696:5;12693:77;12690:103;;12773:18;;:::i;:::-;12690:103;12820:1;12813:5;12809:13;12802:20;;12595:233;;;:::o;12834:134::-;12892:9;12925:37;12956:5;12925:37;:::i;:::-;12912:50;;12834:134;;;:::o;12974:147::-;13069:45;13108:5;13069:45;:::i;:::-;13064:3;13057:58;12974:147;;:::o;13127:458::-;13284:4;13322:2;13311:9;13307:18;13299:26;;13335:71;13403:1;13392:9;13388:17;13379:6;13335:71;:::i;:::-;13416:80;13492:2;13481:9;13477:18;13468:6;13416:80;:::i;:::-;13506:72;13574:2;13563:9;13559:18;13550:6;13506:72;:::i;:::-;13127:458;;;;;;:::o;13591:191::-;13631:3;13650:20;13668:1;13650:20;:::i;:::-;13645:25;;13684:20;13702:1;13684:20;:::i;:::-;13679:25;;13727:1;13724;13720:9;13713:16;;13748:3;13745:1;13742:10;13739:36;;;13755:18;;:::i;:::-;13739:36;13591:191;;;;:::o;13788:169::-;13928:21;13924:1;13916:6;13912:14;13905:45;13788:169;:::o;13963:366::-;14105:3;14126:67;14190:2;14185:3;14126:67;:::i;:::-;14119:74;;14202:93;14291:3;14202:93;:::i;:::-;14320:2;14315:3;14311:12;14304:19;;13963:366;;;:::o;14335:419::-;14501:4;14539:2;14528:9;14524:18;14516:26;;14588:9;14582:4;14578:20;14574:1;14563:9;14559:17;14552:47;14616:131;14742:4;14616:131;:::i;:::-;14608:139;;14335:419;;;:::o;14760:332::-;14881:4;14919:2;14908:9;14904:18;14896:26;;14932:71;15000:1;14989:9;14985:17;14976:6;14932:71;:::i;:::-;15013:72;15081:2;15070:9;15066:18;15057:6;15013:72;:::i;:::-;14760:332;;;;;:::o;15098:182::-;15238:34;15234:1;15226:6;15222:14;15215:58;15098:182;:::o;15286:366::-;15428:3;15449:67;15513:2;15508:3;15449:67;:::i;:::-;15442:74;;15525:93;15614:3;15525:93;:::i;:::-;15643:2;15638:3;15634:12;15627:19;;15286:366;;;:::o;15658:419::-;15824:4;15862:2;15851:9;15847:18;15839:26;;15911:9;15905:4;15901:20;15897:1;15886:9;15882:17;15875:47;15939:131;16065:4;15939:131;:::i;:::-;15931:139;;15658:419;;;:::o;16083:171::-;16223:23;16219:1;16211:6;16207:14;16200:47;16083:171;:::o;16260:366::-;16402:3;16423:67;16487:2;16482:3;16423:67;:::i;:::-;16416:74;;16499:93;16588:3;16499:93;:::i;:::-;16617:2;16612:3;16608:12;16601:19;;16260:366;;;:::o;16632:419::-;16798:4;16836:2;16825:9;16821:18;16813:26;;16885:9;16879:4;16875:20;16871:1;16860:9;16856:17;16849:47;16913:131;17039:4;16913:131;:::i;:::-;16905:139;;16632:419;;;:::o;17057:105::-;17093:7;17133:22;17126:5;17122:34;17111:45;;17057:105;;;:::o;17168:120::-;17240:23;17257:5;17240:23;:::i;:::-;17233:5;17230:34;17220:62;;17278:1;17275;17268:12;17220:62;17168:120;:::o;17294:141::-;17350:5;17381:6;17375:13;17366:22;;17397:32;17423:5;17397:32;:::i;:::-;17294:141;;;;:::o;17441:76::-;17477:7;17506:5;17495:16;;17441:76;;;:::o;17523:120::-;17595:23;17612:5;17595:23;:::i;:::-;17588:5;17585:34;17575:62;;17633:1;17630;17623:12;17575:62;17523:120;:::o;17649:141::-;17705:5;17736:6;17730:13;17721:22;;17752:32;17778:5;17752:32;:::i;:::-;17649:141;;;;:::o;17796:143::-;17853:5;17884:6;17878:13;17869:22;;17900:33;17927:5;17900:33;:::i;:::-;17796:143;;;;:::o;17945:971::-;18048:6;18056;18064;18072;18080;18129:3;18117:9;18108:7;18104:23;18100:33;18097:120;;;18136:79;;:::i;:::-;18097:120;18256:1;18281:63;18336:7;18327:6;18316:9;18312:22;18281:63;:::i;:::-;18271:73;;18227:127;18393:2;18419:63;18474:7;18465:6;18454:9;18450:22;18419:63;:::i;:::-;18409:73;;18364:128;18531:2;18557:64;18613:7;18604:6;18593:9;18589:22;18557:64;:::i;:::-;18547:74;;18502:129;18670:2;18696:64;18752:7;18743:6;18732:9;18728:22;18696:64;:::i;:::-;18686:74;;18641:129;18809:3;18836:63;18891:7;18882:6;18871:9;18867:22;18836:63;:::i;:::-;18826:73;;18780:129;17945:971;;;;;;;;:::o;18922:163::-;19062:15;19058:1;19050:6;19046:14;19039:39;18922:163;:::o;19091:366::-;19233:3;19254:67;19318:2;19313:3;19254:67;:::i;:::-;19247:74;;19330:93;19419:3;19330:93;:::i;:::-;19448:2;19443:3;19439:12;19432:19;;19091:366;;;:::o;19463:419::-;19629:4;19667:2;19656:9;19652:18;19644:26;;19716:9;19710:4;19706:20;19702:1;19691:9;19687:17;19680:47;19744:131;19870:4;19744:131;:::i;:::-;19736:139;;19463:419;;;:::o;19888:410::-;19928:7;19951:20;19969:1;19951:20;:::i;:::-;19946:25;;19985:20;20003:1;19985:20;:::i;:::-;19980:25;;20040:1;20037;20033:9;20062:30;20080:11;20062:30;:::i;:::-;20051:41;;20241:1;20232:7;20228:15;20225:1;20222:22;20202:1;20195:9;20175:83;20152:139;;20271:18;;:::i;:::-;20152:139;19936:362;19888:410;;;;:::o;20304:180::-;20352:77;20349:1;20342:88;20449:4;20446:1;20439:15;20473:4;20470:1;20463:15;20490:185;20530:1;20547:20;20565:1;20547:20;:::i;:::-;20542:25;;20581:20;20599:1;20581:20;:::i;:::-;20576:25;;20620:1;20610:35;;20625:18;;:::i;:::-;20610:35;20667:1;20664;20660:9;20655:14;;20490:185;;;;:::o;20681:225::-;20821:34;20817:1;20809:6;20805:14;20798:58;20890:8;20885:2;20877:6;20873:15;20866:33;20681:225;:::o;20912:366::-;21054:3;21075:67;21139:2;21134:3;21075:67;:::i;:::-;21068:74;;21151:93;21240:3;21151:93;:::i;:::-;21269:2;21264:3;21260:12;21253:19;;20912:366;;;:::o;21284:419::-;21450:4;21488:2;21477:9;21473:18;21465:26;;21537:9;21531:4;21527:20;21523:1;21512:9;21508:17;21501:47;21565:131;21691:4;21565:131;:::i;:::-;21557:139;;21284:419;;;:::o

Swarm Source

ipfs://5c4e835ca527bb7e727c3dab6b641edf0ee659f9ce5978ca0e02f5ad4ddae733

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