ETH Price: $2,998.44 (-0.48%)
Gas: 6 Gwei

Contract

0xb750D51aA1D40C1BA629b8136a78FCEE2E9201D1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Claim Tokens201561442024-06-23 18:21:1114 days ago1719166871IN
0xb750D51a...E2E9201D1
0 ETH0.000456913.73312066
Claim Tokens201561432024-06-23 18:20:5914 days ago1719166859IN
0xb750D51a...E2E9201D1
0 ETH0.000441463.60683768
Claim Tokens201555552024-06-23 16:22:4714 days ago1719159767IN
0xb750D51a...E2E9201D1
0 ETH0.000799376.53108151
Claim Tokens201452462024-06-22 5:45:5916 days ago1719035159IN
0xb750D51a...E2E9201D1
0 ETH0.000324342.64997191
Claim Tokens201437332024-06-22 0:40:3516 days ago1719016835IN
0xb750D51a...E2E9201D1
0 ETH0.000383033.12944542
Claim Tokens201437122024-06-22 0:36:2316 days ago1719016583IN
0xb750D51a...E2E9201D1
0 ETH0.000327872.67879255
Claim Tokens201432912024-06-21 23:11:4716 days ago1719011507IN
0xb750D51a...E2E9201D1
0 ETH0.000086632.33664195
Claim Tokens201432902024-06-21 23:11:3516 days ago1719011495IN
0xb750D51a...E2E9201D1
0 ETH0.000256962.44041329
Claim Tokens201432722024-06-21 23:07:5916 days ago1719011279IN
0xb750D51a...E2E9201D1
0 ETH0.000369283.01713018
Claim Tokens201426692024-06-21 21:06:1116 days ago1719003971IN
0xb750D51a...E2E9201D1
0 ETH0.000451083.68547594
Claim Tokens201423062024-06-21 19:52:5916 days ago1718999579IN
0xb750D51a...E2E9201D1
0 ETH0.000506984.14213763
Claim Tokens201401012024-06-21 12:28:5916 days ago1718972939IN
0xb750D51a...E2E9201D1
0 ETH0.000474813.87934497
Claim Tokens201400272024-06-21 12:14:1116 days ago1718972051IN
0xb750D51a...E2E9201D1
0 ETH0.000356713.38778173
Claim Tokens201391362024-06-21 9:15:4716 days ago1718961347IN
0xb750D51a...E2E9201D1
0 ETH0.001077198.80090579
Claim Tokens201390932024-06-21 9:07:1116 days ago1718960831IN
0xb750D51a...E2E9201D1
0 ETH0.0014783912.07880503
Claim Tokens201379002024-06-21 5:07:2317 days ago1718946443IN
0xb750D51a...E2E9201D1
0 ETH0.000461454.38246051
Claim Tokens201364232024-06-21 0:10:1117 days ago1718928611IN
0xb750D51a...E2E9201D1
0 ETH0.000374053.05609372
Claim Tokens201363912024-06-21 0:03:4717 days ago1718928227IN
0xb750D51a...E2E9201D1
0 ETH0.000329732.69403431
Claim Tokens201361622024-06-20 23:17:3517 days ago1718925455IN
0xb750D51a...E2E9201D1
0 ETH0.000382713.63470077
Claim Tokens201361302024-06-20 23:11:1117 days ago1718925071IN
0xb750D51a...E2E9201D1
0 ETH0.000560644.58059655
Claim Tokens201357532024-06-20 21:55:3517 days ago1718920535IN
0xb750D51a...E2E9201D1
0 ETH0.000633715.17755595
Claim Tokens201353542024-06-20 20:35:1117 days ago1718915711IN
0xb750D51a...E2E9201D1
0 ETH0.000673715.50434784
Claim Tokens201353392024-06-20 20:32:1117 days ago1718915531IN
0xb750D51a...E2E9201D1
0 ETH0.000772426.32144237
Claim Tokens201353342024-06-20 20:31:1117 days ago1718915471IN
0xb750D51a...E2E9201D1
0 ETH0.001105949.0509787
Update Vesting D...201353002024-06-20 20:24:2317 days ago1718915063IN
0xb750D51a...E2E9201D1
0 ETH0.000169815.40023348
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
200565422024-06-09 20:05:3528 days ago1717963535
0xb750D51a...E2E9201D1
0.015 ETH
199310062024-05-23 7:11:2346 days ago1716448283
0xb750D51a...E2E9201D1
0.014 ETH
199272072024-05-22 18:27:3546 days ago1716402455
0xb750D51a...E2E9201D1
0.01012 ETH
199002982024-05-19 0:06:2350 days ago1716077183
0xb750D51a...E2E9201D1
0.0071 ETH
198901342024-05-17 13:57:2351 days ago1715954243
0xb750D51a...E2E9201D1
0.054 ETH
198895682024-05-17 12:03:3551 days ago1715947415
0xb750D51a...E2E9201D1
0.00181007 ETH
198889842024-05-17 10:06:1151 days ago1715940371
0xb750D51a...E2E9201D1
0.03696655 ETH
198880012024-05-17 6:46:5952 days ago1715928419
0xb750D51a...E2E9201D1
0.004 ETH
198873352024-05-17 4:32:4752 days ago1715920367
0xb750D51a...E2E9201D1
0.18 ETH
198872672024-05-17 4:18:5952 days ago1715919539
0xb750D51a...E2E9201D1
0.0035 ETH
198871472024-05-17 3:54:5952 days ago1715918099
0xb750D51a...E2E9201D1
0.002 ETH
198870262024-05-17 3:30:3552 days ago1715916635
0xb750D51a...E2E9201D1
0.0082 ETH
198870112024-05-17 3:27:3552 days ago1715916455
0xb750D51a...E2E9201D1
0.025 ETH
198850902024-05-16 21:02:1152 days ago1715893331
0xb750D51a...E2E9201D1
0.15 ETH
198850742024-05-16 20:58:5952 days ago1715893139
0xb750D51a...E2E9201D1
0.051 ETH
198850492024-05-16 20:53:5952 days ago1715892839
0xb750D51a...E2E9201D1
0.01361107 ETH
198850412024-05-16 20:52:2352 days ago1715892743
0xb750D51a...E2E9201D1
0.009 ETH
198849272024-05-16 20:29:2352 days ago1715891363
0xb750D51a...E2E9201D1
0.009 ETH
198849222024-05-16 20:28:2352 days ago1715891303
0xb750D51a...E2E9201D1
0.01 ETH
198848362024-05-16 20:10:5952 days ago1715890259
0xb750D51a...E2E9201D1
0.002 ETH
198848342024-05-16 20:10:3552 days ago1715890235
0xb750D51a...E2E9201D1
0.341 ETH
198848342024-05-16 20:10:3552 days ago1715890235
0xb750D51a...E2E9201D1
0.04 ETH
198848032024-05-16 20:04:2352 days ago1715889863
0xb750D51a...E2E9201D1
0.08 ETH
198847762024-05-16 19:58:5952 days ago1715889539
0xb750D51a...E2E9201D1
0.015 ETH
198847252024-05-16 19:48:4752 days ago1715888927
0xb750D51a...E2E9201D1
0.02 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
birdbytePresale

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-16
*/

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

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

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

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

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

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

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

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

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

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

    function approve(address spender, uint256 value) external;

    function transfer(address to, uint256 value) external;

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

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

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

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

    function version() external view returns (uint256);

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

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

contract birdbytePresale is Ownable {
    IERC20 public mainToken;
    IERC20 public USDT = IERC20(0xdAC17F958D2ee523a2206206994597C13D831ec7);
    IERC20 public USDC = IERC20(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);

    AggregatorV3Interface public priceFeed;

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

    // Stats
    uint256 public totalStages;
    uint256 public currentStage;
    uint256 public totalUsers;
    uint256 public soldToken;
    uint256 public amountRaised;
    uint256 public amountRaisedUSDT;
    uint256 public amountRaisedUSDC;

    address payable public fundReceiver;


    uint256 public vestingDuration; // Vesting duration in seconds
    uint256 public vestingPercentage; // Percentage of tokens vested every period

    bool public presaleStatus;
    bool public isPresaleEnded;
    uint256 public claimStartTime;
    address[] public UsersAddresses;

    mapping(address => bool) public oldBuyer;
    struct User {
        uint256 native_balance;
        uint256 usdt_balance;
        uint256 usdc_balance;
        uint256 token_balance;
        uint256 claimed_tokens;
        uint256 last_claimed_at;
    }

    mapping(address => User) public users;

    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,
        uint256[] memory tokensToSell,
        uint256[] memory endTimestamps,
        uint256[] memory tokenPerUsdPrice
    ) {
        require(
            tokensToSell.length == endTimestamps.length &&
                endTimestamps.length == tokenPerUsdPrice.length,
            "tokens and duration length mismatch"
        );
        mainToken = _token;
        fundReceiver = payable(_fundReceiver);
        priceFeed = AggregatorV3Interface(
            0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
        );

        for (uint256 i = 0; i < tokensToSell.length; i++) {
            phases[i].endTime = endTimestamps[i];
            phases[i].tokensToSell = tokensToSell[i];
            phases[i].tokenPerUsdPrice = tokenPerUsdPrice[i];
        }
        totalStages = tokensToSell.length;
    }

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

    // to buy token during preSale time with Eth => for web3 use

    function buyToken() public payable {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!oldBuyer[msg.sender]) {
            totalUsers += 1;
            UsersAddresses.push(msg.sender);
        }
        fundReceiver.transfer(msg.value);
        // Check active phase
        uint256 activePhase = activePhaseInd();
        if (activePhase != currentStage) {
            currentStage = activePhase;
        }

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

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

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

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

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

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

    // to buy token during preSale time with USDc => for web3 use
    function buyTokenUSDC(uint256 amount) public {
        require(!isPresaleEnded, "Presale ended!");
        require(presaleStatus, " Presale is Paused, check back later");
        if (!oldBuyer[msg.sender]) {
            totalUsers += 1;
            UsersAddresses.push(msg.sender);
        }
        USDC.transferFrom(msg.sender, fundReceiver, amount);
        // Check active phase
        uint256 activePhase = activePhaseInd();
        if (activePhase != currentStage) {
            currentStage = activePhase;
        }

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

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

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

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

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

    function claimTokens() external {
        require(isPresaleEnded, "Presale has not ended yet");
        User storage user = users[msg.sender];
        require(user.token_balance > 0, "No tokens purchased");
        uint256 claimableTokens = calculateClaimableTokens(msg.sender);
        require(claimableTokens > 0, "No tokens to claim");

        user.claimed_tokens += claimableTokens;
        user.last_claimed_at = block.timestamp;
        mainToken.transfer(msg.sender, claimableTokens);
        emit ClaimToken(msg.sender, claimableTokens);
    }

    function calculateClaimableTokens(
        address _usr
    ) public view returns (uint256) {
        User memory user = users[_usr];
        if (user.claimed_tokens < user.token_balance) {
            uint256 lastClaimTime = user.last_claimed_at == 0
                ? claimStartTime
                : user.last_claimed_at;
            uint256 periods = (block.timestamp - lastClaimTime) /
                vestingDuration;
            uint256 vestedTokens = (user.token_balance * vestingPercentage) /
                100;
            uint256 claimableTokens = vestedTokens * periods;
            if (user.claimed_tokens + claimableTokens > user.token_balance) {
                return user.token_balance - user.claimed_tokens;
            }
            return claimableTokens;
        }
        return 0;
    }

    function whitelistBSCAddresses(
        address[] memory _addresses,
        uint256[] memory _tokenAmount
    ) external onlyOwner {
        require(
            _addresses.length == _tokenAmount.length,
            "Addresses and amounts must be equal"
        );

        for (uint256 i = 0; i < _addresses.length; i++) {
            users[_addresses[i]].token_balance += _tokenAmount[i];
        }
    }

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

    function AdvanceStage(uint256 _currentStage) external onlyOwner {
        currentStage = _currentStage;
    }

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

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

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

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

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

    function updateVestingDetail(
        uint256 _vestingDuration,
        uint256 _vestingPercentage
    ) external onlyOwner {
        vestingDuration = _vestingDuration;
        vestingPercentage = _vestingPercentage;
    }

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

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

    // to withdraw funds for liquidity
    function changeFundReciever(address _addr) external onlyOwner {
        fundReceiver = payable(_addr);
    }

    //live feed for ETH-USD
    function updatePriceFeed(
        AggregatorV3Interface _priceFeed
    ) external onlyOwner {
        priceFeed = _priceFeed;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"address","name":"_fundReceiver","type":"address"},{"internalType":"uint256[]","name":"tokensToSell","type":"uint256[]"},{"internalType":"uint256[]","name":"endTimestamps","type":"uint256[]"},{"internalType":"uint256[]","name":"tokenPerUsdPrice","type":"uint256[]"}],"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":[{"internalType":"uint256","name":"_currentStage","type":"uint256"}],"name":"AdvanceStage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"activePhaseInd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountRaised","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"_usr","type":"address"}],"name":"calculateClaimableTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"changeFundReciever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentStage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endPresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"phaseInd","type":"uint256"}],"name":"getPhaseDetail","outputs":[{"internalType":"uint256","name":"tokenToSell","type":"uint256"},{"internalType":"uint256","name":"soldTokens","type":"uint256"},{"internalType":"uint256","name":"priceUsd","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"initiateTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"address","name":"","type":"address"}],"name":"oldBuyer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"phases","outputs":[{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"tokensToSell","type":"uint256"},{"internalType":"uint256","name":"totalSoldTokens","type":"uint256"},{"internalType":"uint256","name":"tokenPerUsdPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setPresaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"soldToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUsers","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":[{"internalType":"uint256","name":"_sold","type":"uint256"},{"internalType":"uint256","name":"_raised","type":"uint256"},{"internalType":"uint256","name":"_raisedInUsdt","type":"uint256"},{"internalType":"uint256","name":"_raisedInUsdc","type":"uint256"}],"name":"updateInfos","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract AggregatorV3Interface","name":"_priceFeed","type":"address"}],"name":"updatePriceFeed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_USDT","type":"address"},{"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":"_vestingDuration","type":"uint256"},{"internalType":"uint256","name":"_vestingPercentage","type":"uint256"}],"name":"updateVestingDetail","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"phaseId","type":"uint256"}],"name":"usdtToToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"native_balance","type":"uint256"},{"internalType":"uint256","name":"usdt_balance","type":"uint256"},{"internalType":"uint256","name":"usdc_balance","type":"uint256"},{"internalType":"uint256","name":"token_balance","type":"uint256"},{"internalType":"uint256","name":"claimed_tokens","type":"uint256"},{"internalType":"uint256","name":"last_claimed_at","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256[]","name":"_tokenAmount","type":"uint256[]"}],"name":"whitelistBSCAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405273dac17f958d2ee523a2206206994597c13d831ec7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550348015620000bb57600080fd5b5060405162004360380380620043608339818101604052810190620000e1919062000646565b62000101620000f56200030c60201b60201c565b6200031460201b60201c565b8151835114801562000114575080518251145b62000156576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200014d90620007b2565b60405180910390fd5b84600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735f4ec3df9cbd43714fe2740f5e3616155c5b8419600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b8351811015620002f85782818151811062000250576200024f620007d4565b5b60200260200101516005600083815260200190815260200160002060000181905550838181518110620002885762000287620007d4565b5b60200260200101516005600083815260200190815260200160002060010181905550818181518110620002c057620002bf620007d4565b5b602002602001015160056000838152602001908152602001600020600301819055508080620002ef9062000832565b91505062000230565b50825160068190555050505050506200087f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200041982620003ec565b9050919050565b60006200042d826200040c565b9050919050565b6200043f8162000420565b81146200044b57600080fd5b50565b6000815190506200045f8162000434565b92915050565b62000470816200040c565b81146200047c57600080fd5b50565b600081519050620004908162000465565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004e6826200049b565b810181811067ffffffffffffffff82111715620005085762000507620004ac565b5b80604052505050565b60006200051d620003d8565b90506200052b8282620004db565b919050565b600067ffffffffffffffff8211156200054e576200054d620004ac565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b620005798162000564565b81146200058557600080fd5b50565b60008151905062000599816200056e565b92915050565b6000620005b6620005b08462000530565b62000511565b90508083825260208201905060208402830185811115620005dc57620005db6200055f565b5b835b81811015620006095780620005f4888262000588565b845260208401935050602081019050620005de565b5050509392505050565b600082601f8301126200062b576200062a62000496565b5b81516200063d8482602086016200059f565b91505092915050565b600080600080600060a08688031215620006655762000664620003e2565b5b600062000675888289016200044e565b955050602062000688888289016200047f565b945050604086015167ffffffffffffffff811115620006ac57620006ab620003e7565b5b620006ba8882890162000613565b935050606086015167ffffffffffffffff811115620006de57620006dd620003e7565b5b620006ec8882890162000613565b925050608086015167ffffffffffffffff81111562000710576200070f620003e7565b5b6200071e8882890162000613565b9150509295509295909350565b600082825260208201905092915050565b7f746f6b656e7320616e64206475726174696f6e206c656e677468206d69736d6160008201527f7463680000000000000000000000000000000000000000000000000000000000602082015250565b60006200079a6023836200072b565b9150620007a7826200073c565b604082019050919050565b60006020820190508181036000830152620007cd816200078b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200083f8262000564565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000874576200087362000803565b5b600182019050919050565b613ad1806200088f6000396000f3fe60806040526004361061027d5760003560e01c80638e15f4731161014f578063bff1f9e1116100c1578063e00e06121161007a578063e00e061214610928578063e9238daf14610965578063f2fde38b146109a2578063f86a3529146109cb578063fa3d888e146109f6578063fb4aa0a114610a335761027d565b8063bff1f9e114610804578063c0dbc8001461082f578063c54e44eb14610858578063c8fa553b14610883578063cb33365d146108ae578063dec11f6e146108eb5761027d565b8063a87430ba11610113578063a87430ba146106f3578063acfb235514610735578063b5e75e1c14610760578063b97a2d6414610789578063bec3fa17146107b2578063bfd75268146107db5761027d565b80638e15f4731461065357806395877f781461067e578063a43be57b146106a7578063a4821719146106be578063a6a11bb1146106c85761027d565b806353a29ad2116101f35780637ad3def2116101ac5780637ad3def2146105555780637b3e5e7b1461057e5780637decf27f146105a95780638895283f146105d457806389a30271146105fd5780638da5cb5b146106285761027d565b806353a29ad21461046b5780635bf5d54c1461049457806361a31e00146104bf5780636769d1f9146104e8578063715018a614610513578063741bef1a1461052a5761027d565b80632e37eef6116102455780632e37eef61461036c578063317d71a5146103ac5780633fc15f15146103d5578063405fb9441461040057806342caa8401461042b57806348c54b9d146104545761027d565b8063106f3bbb146102825780631514617e146102ad5780631626bf01146102d85780632799d713146103035780632d2fbfd41461032c575b600080fd5b34801561028e57600080fd5b50610297610a5e565b6040516102a49190612b4b565b60405180910390f35b3480156102b957600080fd5b506102c2610a64565b6040516102cf9190612b4b565b60405180910390f35b3480156102e457600080fd5b506102ed610a6a565b6040516102fa9190612b4b565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190612ba6565b610a70565b005b34801561033857600080fd5b50610353600480360381019061034e9190612ba6565b610af6565b6040516103639493929190612bd3565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e9190612ba6565b610b6a565b6040516103a39493929190612bd3565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612ba6565b610b9a565b005b3480156103e157600080fd5b506103ea611005565b6040516103f79190612c97565b60405180910390f35b34801561040c57600080fd5b5061041561102b565b6040516104229190612b4b565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612d02565b611031565b005b34801561046057600080fd5b50610469611133565b005b34801561047757600080fd5b50610492600480360381019061048d9190612d6e565b611357565b005b3480156104a057600080fd5b506104a9611417565b6040516104b69190612b4b565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190612ba6565b61141d565b005b3480156104f457600080fd5b506104fd611505565b60405161050a9190612b4b565b60405180910390f35b34801561051f57600080fd5b5061052861150b565b005b34801561053657600080fd5b5061053f611593565b60405161054c9190612dbc565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612d6e565b6115b9565b005b34801561058a57600080fd5b50610593611679565b6040516105a09190612b4b565b60405180910390f35b3480156105b557600080fd5b506105be61167f565b6040516105cb9190612df2565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612e39565b611692565b005b34801561060957600080fd5b5061061261172b565b60405161061f9190612c97565b60405180910390f35b34801561063457600080fd5b5061063d611751565b60405161064a9190612e75565b60405180910390f35b34801561065f57600080fd5b5061066861177a565b6040516106759190612b4b565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612ece565b61181b565b005b3480156106b357600080fd5b506106bc6118db565b005b6106c661197b565b005b3480156106d457600080fd5b506106dd611dd6565b6040516106ea9190612b4b565b60405180910390f35b3480156106ff57600080fd5b5061071a60048036038101906107159190612d6e565b611ddc565b60405161072c96959493929190612efb565b60405180910390f35b34801561074157600080fd5b5061074a611e18565b6040516107579190612df2565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190612ba6565b611e2b565b005b34801561079557600080fd5b506107b060048036038101906107ab9190612f5c565b612296565b005b3480156107be57600080fd5b506107d960048036038101906107d49190612fc3565b612334565b005b3480156107e757600080fd5b5061080260048036038101906107fd919061321f565b612421565b005b34801561081057600080fd5b50610819612592565b6040516108269190612b4b565b60405180910390f35b34801561083b57600080fd5b5061085660048036038101906108519190613297565b612598565b005b34801561086457600080fd5b5061086d612626565b60405161087a9190612c97565b60405180910390f35b34801561088f57600080fd5b5061089861264c565b6040516108a59190612b4b565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613297565b6126db565b6040516108e29190612b4b565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190612d6e565b612746565b60405161091f9190612df2565b60405180910390f35b34801561093457600080fd5b5061094f600480360381019061094a9190612ba6565b612766565b60405161095c9190612e75565b60405180910390f35b34801561097157600080fd5b5061098c60048036038101906109879190613297565b6127a5565b6040516109999190612b4b565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190612d6e565b6127e9565b005b3480156109d757600080fd5b506109e06128e0565b6040516109ed9190612b4b565b60405180910390f35b348015610a0257600080fd5b50610a1d6004803603810190610a189190612d6e565b6128e6565b604051610a2a9190612b4b565b60405180910390f35b348015610a3f57600080fd5b50610a48612a40565b604051610a5591906132f8565b60405180910390f35b600f5481565b600e5481565b600c5481565b610a78612a66565b73ffffffffffffffffffffffffffffffffffffffff16610a96611751565b73ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae390613370565b60405180910390fd5b8060078190555050565b600080600080600060056000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60056020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b601060019054906101000a900460ff1615610bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be1906133dc565b60405180910390fd5b601060009054906101000a900460ff16610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c309061346e565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d0857600160086000828254610c9d91906134bd565b925050819055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610d8993929190613512565b600060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506000610dc561264c565b90506007548114610dd857806007819055505b6000610de483836127a5565b9050600560006007548152602001908152602001600020600101548160056000600754815260200190815260200160002060020154610e2391906134bd565b1115610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613595565b60405180910390fd5b80600954610e7291906134bd565b60098190555082600c54610e8691906134bd565b600c8190555082601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610ede91906134bd565b9250508190555080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154610f3391906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550806005600060075481526020019081526020016000206002016000828254610fa191906134bd565b925050819055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b611039612a66565b73ffffffffffffffffffffffffffffffffffffffff16611057611751565b73ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490613370565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601060019054906101000a900460ff16611182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117990613601565b60405180910390fd5b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600301541161120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061366d565b60405180910390fd5b6000611217336128e6565b90506000811161125c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611253906136d9565b60405180910390fd5b8082600401600082825461127091906134bd565b92505081905550428260050181905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016112dd9291906136f9565b600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b61135f612a66565b73ffffffffffffffffffffffffffffffffffffffff1661137d611751565b73ffffffffffffffffffffffffffffffffffffffff16146113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613370565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b611425612a66565b73ffffffffffffffffffffffffffffffffffffffff16611443611751565b73ffffffffffffffffffffffffffffffffffffffff1614611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090613370565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611501573d6000803e3d6000fd5b5050565b60095481565b611513612a66565b73ffffffffffffffffffffffffffffffffffffffff16611531611751565b73ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90613370565b60405180910390fd5b6115916000612a6e565b565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115c1612a66565b73ffffffffffffffffffffffffffffffffffffffff166115df611751565b73ffffffffffffffffffffffffffffffffffffffff1614611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90613370565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b601060019054906101000a900460ff1681565b61169a612a66565b73ffffffffffffffffffffffffffffffffffffffff166116b8611751565b73ffffffffffffffffffffffffffffffffffffffff161461170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170590613370565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156117ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e91906137af565b5050509150508091505090565b611823612a66565b73ffffffffffffffffffffffffffffffffffffffff16611841611751565b73ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e90613370565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e3612a66565b73ffffffffffffffffffffffffffffffffffffffff16611901611751565b73ffffffffffffffffffffffffffffffffffffffff1614611957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194e90613370565b60405180910390fd5b6001601060016101000a81548160ff02191690831515021790555042601181905550565b601060019054906101000a900460ff16156119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c2906133dc565b60405180910390fd5b601060009054906101000a900460ff16611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a119061346e565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ae957600160086000828254611a7e91906134bd565b925050819055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611b51573d6000803e3d6000fd5b506000611b5c61264c565b90506007548114611b6f57806007819055505b6000611b7b34836126db565b9050600560006007548152602001908152602001600020600101548160056000600754815260200190815260200160002060020154611bba91906134bd565b1115611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613595565b60405180910390fd5b80600954611c0991906134bd565b60098190555034600a54611c1d91906134bd565b600a8190555034601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611c7191906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154611d0591906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550806005600060075481526020019081526020016000206002016000828254611d7391906134bd565b925050819055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b60146020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b601060009054906101000a900460ff1681565b601060019054906101000a900460ff1615611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e72906133dc565b60405180910390fd5b601060009054906101000a900460ff16611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec19061346e565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f9957600160086000828254611f2e91906134bd565b925050819055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161201a93929190613512565b600060405180830381600087803b15801561203457600080fd5b505af1158015612048573d6000803e3d6000fd5b50505050600061205661264c565b9050600754811461206957806007819055505b600061207583836127a5565b90506005600060075481526020019081526020016000206001015481600560006007548152602001908152602001600020600201546120b491906134bd565b11156120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec90613595565b60405180910390fd5b8060095461210391906134bd565b60098190555082600b5461211791906134bd565b600b8190555082601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461216f91906134bd565b9250508190555080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546121c491906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555080600560006007548152602001908152602001600020600201600082825461223291906134bd565b925050819055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b61229e612a66565b73ffffffffffffffffffffffffffffffffffffffff166122bc611751565b73ffffffffffffffffffffffffffffffffffffffff1614612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613370565b60405180910390fd5b8360098190555082600a8190555081600b8190555080600c8190555050505050565b61233c612a66565b73ffffffffffffffffffffffffffffffffffffffff1661235a611751565b73ffffffffffffffffffffffffffffffffffffffff16146123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790613370565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016123eb9291906136f9565b600060405180830381600087803b15801561240557600080fd5b505af1158015612419573d6000803e3d6000fd5b505050505050565b612429612a66565b73ffffffffffffffffffffffffffffffffffffffff16612447611751565b73ffffffffffffffffffffffffffffffffffffffff161461249d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249490613370565b60405180910390fd5b80518251146124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d89061389c565b60405180910390fd5b60005b825181101561258d57818181518110612500576124ff6138bc565b5b60200260200101516014600085848151811061251f5761251e6138bc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461257391906134bd565b925050819055508080612585906138eb565b9150506124e4565b505050565b60085481565b6125a0612a66565b73ffffffffffffffffffffffffffffffffffffffff166125be611751565b73ffffffffffffffffffffffffffffffffffffffff1614612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90613370565b60405180910390fd5b81600e8190555080600f819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560006007548152602001908152602001600020600001544210156126c657600560006007548152602001908152602001600020600101546005600060075481526020019081526020016000206002015410156126b05760075490506126d8565b60016007546126bf91906134bd565b90506126d8565b60016007546126d591906134bd565b90505b90565b600080670de0b6b3a76400006126ef61177a565b856126fa9190613933565b61270491906139a4565b905060006305f5e10060056000868152602001908152602001600020600301548361272f9190613933565b61273991906139a4565b9050809250505092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b6012818154811061277657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080670de0b6b3a76400006005600085815260200190815260200160002060030154856127d39190613933565b6127dd91906139a4565b90508091505092915050565b6127f1612a66565b73ffffffffffffffffffffffffffffffffffffffff1661280f611751565b73ffffffffffffffffffffffffffffffffffffffff1614612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285c90613370565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cb90613a47565b60405180910390fd5b6128dd81612a6e565b50565b60065481565b600080601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509050806060015181608001511015612a35576000808260a0015114612998578160a0015161299c565b6011545b90506000600e5482426129af9190613a67565b6129b991906139a4565b905060006064600f5485606001516129d19190613933565b6129db91906139a4565b9050600082826129eb9190613933565b90508460600151818660800151612a0291906134bd565b1115612a285784608001518560600151612a1c9190613a67565b95505050505050612a3b565b8095505050505050612a3b565b60009150505b919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000819050919050565b612b4581612b32565b82525050565b6000602082019050612b606000830184612b3c565b92915050565b6000604051905090565b600080fd5b600080fd5b612b8381612b32565b8114612b8e57600080fd5b50565b600081359050612ba081612b7a565b92915050565b600060208284031215612bbc57612bbb612b70565b5b6000612bca84828501612b91565b91505092915050565b6000608082019050612be86000830187612b3c565b612bf56020830186612b3c565b612c026040830185612b3c565b612c0f6060830184612b3c565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612c5d612c58612c5384612c18565b612c38565b612c18565b9050919050565b6000612c6f82612c42565b9050919050565b6000612c8182612c64565b9050919050565b612c9181612c76565b82525050565b6000602082019050612cac6000830184612c88565b92915050565b6000612cbd82612c18565b9050919050565b6000612ccf82612cb2565b9050919050565b612cdf81612cc4565b8114612cea57600080fd5b50565b600081359050612cfc81612cd6565b92915050565b60008060408385031215612d1957612d18612b70565b5b6000612d2785828601612ced565b9250506020612d3885828601612ced565b9150509250929050565b612d4b81612cb2565b8114612d5657600080fd5b50565b600081359050612d6881612d42565b92915050565b600060208284031215612d8457612d83612b70565b5b6000612d9284828501612d59565b91505092915050565b6000612da682612c64565b9050919050565b612db681612d9b565b82525050565b6000602082019050612dd16000830184612dad565b92915050565b60008115159050919050565b612dec81612dd7565b82525050565b6000602082019050612e076000830184612de3565b92915050565b612e1681612dd7565b8114612e2157600080fd5b50565b600081359050612e3381612e0d565b92915050565b600060208284031215612e4f57612e4e612b70565b5b6000612e5d84828501612e24565b91505092915050565b612e6f81612cb2565b82525050565b6000602082019050612e8a6000830184612e66565b92915050565b6000612e9b82612cb2565b9050919050565b612eab81612e90565b8114612eb657600080fd5b50565b600081359050612ec881612ea2565b92915050565b600060208284031215612ee457612ee3612b70565b5b6000612ef284828501612eb9565b91505092915050565b600060c082019050612f106000830189612b3c565b612f1d6020830188612b3c565b612f2a6040830187612b3c565b612f376060830186612b3c565b612f446080830185612b3c565b612f5160a0830184612b3c565b979650505050505050565b60008060008060808587031215612f7657612f75612b70565b5b6000612f8487828801612b91565b9450506020612f9587828801612b91565b9350506040612fa687828801612b91565b9250506060612fb787828801612b91565b91505092959194509250565b60008060408385031215612fda57612fd9612b70565b5b6000612fe885828601612ced565b9250506020612ff985828601612b91565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61305182613008565b810181811067ffffffffffffffff821117156130705761306f613019565b5b80604052505050565b6000613083612b66565b905061308f8282613048565b919050565b600067ffffffffffffffff8211156130af576130ae613019565b5b602082029050602081019050919050565b600080fd5b60006130d86130d384613094565b613079565b905080838252602082019050602084028301858111156130fb576130fa6130c0565b5b835b8181101561312457806131108882612d59565b8452602084019350506020810190506130fd565b5050509392505050565b600082601f83011261314357613142613003565b5b81356131538482602086016130c5565b91505092915050565b600067ffffffffffffffff82111561317757613176613019565b5b602082029050602081019050919050565b600061319b6131968461315c565b613079565b905080838252602082019050602084028301858111156131be576131bd6130c0565b5b835b818110156131e757806131d38882612b91565b8452602084019350506020810190506131c0565b5050509392505050565b600082601f83011261320657613205613003565b5b8135613216848260208601613188565b91505092915050565b6000806040838503121561323657613235612b70565b5b600083013567ffffffffffffffff81111561325457613253612b75565b5b6132608582860161312e565b925050602083013567ffffffffffffffff81111561328157613280612b75565b5b61328d858286016131f1565b9150509250929050565b600080604083850312156132ae576132ad612b70565b5b60006132bc85828601612b91565b92505060206132cd85828601612b91565b9150509250929050565b60006132e282612c18565b9050919050565b6132f2816132d7565b82525050565b600060208201905061330d60008301846132e9565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061335a602083613313565b915061336582613324565b602082019050919050565b600060208201905081810360008301526133898161334d565b9050919050565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b60006133c6600e83613313565b91506133d182613390565b602082019050919050565b600060208201905081810360008301526133f5816133b9565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000613458602483613313565b9150613463826133fc565b604082019050919050565b600060208201905081810360008301526134878161344b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134c882612b32565b91506134d383612b32565b92508282019050808211156134eb576134ea61348e565b5b92915050565b60006134fc82612c64565b9050919050565b61350c816134f1565b82525050565b60006060820190506135276000830186612e66565b6135346020830185613503565b6135416040830184612b3c565b949350505050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b600061357f601383613313565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b60006135eb601983613313565b91506135f6826135b5565b602082019050919050565b6000602082019050818103600083015261361a816135de565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000613657601383613313565b915061366282613621565b602082019050919050565b600060208201905081810360008301526136868161364a565b9050919050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b60006136c3601283613313565b91506136ce8261368d565b602082019050919050565b600060208201905081810360008301526136f2816136b6565b9050919050565b600060408201905061370e6000830185612e66565b61371b6020830184612b3c565b9392505050565b600069ffffffffffffffffffff82169050919050565b61374181613722565b811461374c57600080fd5b50565b60008151905061375e81613738565b92915050565b6000819050919050565b61377781613764565b811461378257600080fd5b50565b6000815190506137948161376e565b92915050565b6000815190506137a981612b7a565b92915050565b600080600080600060a086880312156137cb576137ca612b70565b5b60006137d98882890161374f565b95505060206137ea88828901613785565b94505060406137fb8882890161379a565b935050606061380c8882890161379a565b925050608061381d8882890161374f565b9150509295509295909350565b7f41646472657373657320616e6420616d6f756e7473206d75737420626520657160008201527f75616c0000000000000000000000000000000000000000000000000000000000602082015250565b6000613886602383613313565b91506138918261382a565b604082019050919050565b600060208201905081810360008301526138b581613879565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006138f682612b32565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139285761392761348e565b5b600182019050919050565b600061393e82612b32565b915061394983612b32565b925082820261395781612b32565b9150828204841483151761396e5761396d61348e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139af82612b32565b91506139ba83612b32565b9250826139ca576139c9613975565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a31602683613313565b9150613a3c826139d5565b604082019050919050565b60006020820190508181036000830152613a6081613a24565b9050919050565b6000613a7282612b32565b9150613a7d83612b32565b9250828203905081811115613a9557613a9461348e565b5b9291505056fea2646970667358221220aebafb9ce4888e98a1b80ba388fdf2b9dbbb000a85e9dda4d1d3f2943329723a64736f6c63430008120033000000000000000000000000d4c8e80643711bea53f1930d2c85e4900f48ab11000000000000000000000000dd45e11f1540ac2100acc9fef292369b91df64e500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000084595161401484a0000000000000000000000000000000000000000000000000ee3a5f48a68b5520000000000000000000000000000000000000000000000001b929b9ee181f57c1500000000000000000000000000000000000000000000001d8acb4eca819a461b0000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000664f9230000000000000000000000000000000000000000000000000000000006658ccb0000000000000000000000000000000000000000000000000000000006662073000000000000000000000000000000000000000000000000000000000666b41b00000000000000000000000000000000000000000000000000000000066747c3000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000000000000000000000000000022b1c8c1227a00000000000000000000000000000000000000000000000000001ce8bf268fbc500000000000000000000000000000000000000000000000000018c7d07a130e90000

Deployed Bytecode

0x60806040526004361061027d5760003560e01c80638e15f4731161014f578063bff1f9e1116100c1578063e00e06121161007a578063e00e061214610928578063e9238daf14610965578063f2fde38b146109a2578063f86a3529146109cb578063fa3d888e146109f6578063fb4aa0a114610a335761027d565b8063bff1f9e114610804578063c0dbc8001461082f578063c54e44eb14610858578063c8fa553b14610883578063cb33365d146108ae578063dec11f6e146108eb5761027d565b8063a87430ba11610113578063a87430ba146106f3578063acfb235514610735578063b5e75e1c14610760578063b97a2d6414610789578063bec3fa17146107b2578063bfd75268146107db5761027d565b80638e15f4731461065357806395877f781461067e578063a43be57b146106a7578063a4821719146106be578063a6a11bb1146106c85761027d565b806353a29ad2116101f35780637ad3def2116101ac5780637ad3def2146105555780637b3e5e7b1461057e5780637decf27f146105a95780638895283f146105d457806389a30271146105fd5780638da5cb5b146106285761027d565b806353a29ad21461046b5780635bf5d54c1461049457806361a31e00146104bf5780636769d1f9146104e8578063715018a614610513578063741bef1a1461052a5761027d565b80632e37eef6116102455780632e37eef61461036c578063317d71a5146103ac5780633fc15f15146103d5578063405fb9441461040057806342caa8401461042b57806348c54b9d146104545761027d565b8063106f3bbb146102825780631514617e146102ad5780631626bf01146102d85780632799d713146103035780632d2fbfd41461032c575b600080fd5b34801561028e57600080fd5b50610297610a5e565b6040516102a49190612b4b565b60405180910390f35b3480156102b957600080fd5b506102c2610a64565b6040516102cf9190612b4b565b60405180910390f35b3480156102e457600080fd5b506102ed610a6a565b6040516102fa9190612b4b565b60405180910390f35b34801561030f57600080fd5b5061032a60048036038101906103259190612ba6565b610a70565b005b34801561033857600080fd5b50610353600480360381019061034e9190612ba6565b610af6565b6040516103639493929190612bd3565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e9190612ba6565b610b6a565b6040516103a39493929190612bd3565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612ba6565b610b9a565b005b3480156103e157600080fd5b506103ea611005565b6040516103f79190612c97565b60405180910390f35b34801561040c57600080fd5b5061041561102b565b6040516104229190612b4b565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612d02565b611031565b005b34801561046057600080fd5b50610469611133565b005b34801561047757600080fd5b50610492600480360381019061048d9190612d6e565b611357565b005b3480156104a057600080fd5b506104a9611417565b6040516104b69190612b4b565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190612ba6565b61141d565b005b3480156104f457600080fd5b506104fd611505565b60405161050a9190612b4b565b60405180910390f35b34801561051f57600080fd5b5061052861150b565b005b34801561053657600080fd5b5061053f611593565b60405161054c9190612dbc565b60405180910390f35b34801561056157600080fd5b5061057c60048036038101906105779190612d6e565b6115b9565b005b34801561058a57600080fd5b50610593611679565b6040516105a09190612b4b565b60405180910390f35b3480156105b557600080fd5b506105be61167f565b6040516105cb9190612df2565b60405180910390f35b3480156105e057600080fd5b506105fb60048036038101906105f69190612e39565b611692565b005b34801561060957600080fd5b5061061261172b565b60405161061f9190612c97565b60405180910390f35b34801561063457600080fd5b5061063d611751565b60405161064a9190612e75565b60405180910390f35b34801561065f57600080fd5b5061066861177a565b6040516106759190612b4b565b60405180910390f35b34801561068a57600080fd5b506106a560048036038101906106a09190612ece565b61181b565b005b3480156106b357600080fd5b506106bc6118db565b005b6106c661197b565b005b3480156106d457600080fd5b506106dd611dd6565b6040516106ea9190612b4b565b60405180910390f35b3480156106ff57600080fd5b5061071a60048036038101906107159190612d6e565b611ddc565b60405161072c96959493929190612efb565b60405180910390f35b34801561074157600080fd5b5061074a611e18565b6040516107579190612df2565b60405180910390f35b34801561076c57600080fd5b5061078760048036038101906107829190612ba6565b611e2b565b005b34801561079557600080fd5b506107b060048036038101906107ab9190612f5c565b612296565b005b3480156107be57600080fd5b506107d960048036038101906107d49190612fc3565b612334565b005b3480156107e757600080fd5b5061080260048036038101906107fd919061321f565b612421565b005b34801561081057600080fd5b50610819612592565b6040516108269190612b4b565b60405180910390f35b34801561083b57600080fd5b5061085660048036038101906108519190613297565b612598565b005b34801561086457600080fd5b5061086d612626565b60405161087a9190612c97565b60405180910390f35b34801561088f57600080fd5b5061089861264c565b6040516108a59190612b4b565b60405180910390f35b3480156108ba57600080fd5b506108d560048036038101906108d09190613297565b6126db565b6040516108e29190612b4b565b60405180910390f35b3480156108f757600080fd5b50610912600480360381019061090d9190612d6e565b612746565b60405161091f9190612df2565b60405180910390f35b34801561093457600080fd5b5061094f600480360381019061094a9190612ba6565b612766565b60405161095c9190612e75565b60405180910390f35b34801561097157600080fd5b5061098c60048036038101906109879190613297565b6127a5565b6040516109999190612b4b565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c49190612d6e565b6127e9565b005b3480156109d757600080fd5b506109e06128e0565b6040516109ed9190612b4b565b60405180910390f35b348015610a0257600080fd5b50610a1d6004803603810190610a189190612d6e565b6128e6565b604051610a2a9190612b4b565b60405180910390f35b348015610a3f57600080fd5b50610a48612a40565b604051610a5591906132f8565b60405180910390f35b600f5481565b600e5481565b600c5481565b610a78612a66565b73ffffffffffffffffffffffffffffffffffffffff16610a96611751565b73ffffffffffffffffffffffffffffffffffffffff1614610aec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae390613370565b60405180910390fd5b8060078190555050565b600080600080600060056000878152602001908152602001600020604051806080016040529081600082015481526020016001820154815260200160028201548152602001600382015481525050905080602001518160400151826060015183600001519450945094509450509193509193565b60056020528060005260406000206000915090508060000154908060010154908060020154908060030154905084565b601060019054906101000a900460ff1615610bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be1906133dc565b60405180910390fd5b601060009054906101000a900460ff16610c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c309061346e565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d0857600160086000828254610c9d91906134bd565b925050819055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b8152600401610d8993929190613512565b600060405180830381600087803b158015610da357600080fd5b505af1158015610db7573d6000803e3d6000fd5b505050506000610dc561264c565b90506007548114610dd857806007819055505b6000610de483836127a5565b9050600560006007548152602001908152602001600020600101548160056000600754815260200190815260200160002060020154610e2391906134bd565b1115610e64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5b90613595565b60405180910390fd5b80600954610e7291906134bd565b60098190555082600c54610e8691906134bd565b600c8190555082601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000828254610ede91906134bd565b9250508190555080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154610f3391906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550806005600060075481526020019081526020016000206002016000828254610fa191906134bd565b925050819055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b611039612a66565b73ffffffffffffffffffffffffffffffffffffffff16611057611751565b73ffffffffffffffffffffffffffffffffffffffff16146110ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a490613370565b60405180910390fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601060019054906101000a900460ff16611182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117990613601565b60405180910390fd5b6000601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600301541161120c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112039061366d565b60405180910390fd5b6000611217336128e6565b90506000811161125c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611253906136d9565b60405180910390fd5b8082600401600082825461127091906134bd565b92505081905550428260050181905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016112dd9291906136f9565b600060405180830381600087803b1580156112f757600080fd5b505af115801561130b573d6000803e3d6000fd5b50505050803373ffffffffffffffffffffffffffffffffffffffff167f5d425a3a6a3d5a60fbf147dc6659ce3dfeb701fc44fe90058c32783b8807c57460405160405180910390a35050565b61135f612a66565b73ffffffffffffffffffffffffffffffffffffffff1661137d611751565b73ffffffffffffffffffffffffffffffffffffffff16146113d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ca90613370565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b611425612a66565b73ffffffffffffffffffffffffffffffffffffffff16611443611751565b73ffffffffffffffffffffffffffffffffffffffff1614611499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149090613370565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611501573d6000803e3d6000fd5b5050565b60095481565b611513612a66565b73ffffffffffffffffffffffffffffffffffffffff16611531611751565b73ffffffffffffffffffffffffffffffffffffffff1614611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90613370565b60405180910390fd5b6115916000612a6e565b565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6115c1612a66565b73ffffffffffffffffffffffffffffffffffffffff166115df611751565b73ffffffffffffffffffffffffffffffffffffffff1614611635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162c90613370565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b601060019054906101000a900460ff1681565b61169a612a66565b73ffffffffffffffffffffffffffffffffffffffff166116b8611751565b73ffffffffffffffffffffffffffffffffffffffff161461170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170590613370565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156117ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180e91906137af565b5050509150508091505090565b611823612a66565b73ffffffffffffffffffffffffffffffffffffffff16611841611751565b73ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e90613370565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118e3612a66565b73ffffffffffffffffffffffffffffffffffffffff16611901611751565b73ffffffffffffffffffffffffffffffffffffffff1614611957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194e90613370565b60405180910390fd5b6001601060016101000a81548160ff02191690831515021790555042601181905550565b601060019054906101000a900460ff16156119cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c2906133dc565b60405180910390fd5b601060009054906101000a900460ff16611a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a119061346e565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611ae957600160086000828254611a7e91906134bd565b925050819055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611b51573d6000803e3d6000fd5b506000611b5c61264c565b90506007548114611b6f57806007819055505b6000611b7b34836126db565b9050600560006007548152602001908152602001600020600101548160056000600754815260200190815260200160002060020154611bba91906134bd565b1115611bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf290613595565b60405180910390fd5b80600954611c0991906134bd565b60098190555034600a54611c1d91906134bd565b600a8190555034601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611c7191906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154611d0591906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550806005600060075481526020019081526020016000206002016000828254611d7391906134bd565b925050819055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60115481565b60146020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154905086565b601060009054906101000a900460ff1681565b601060019054906101000a900460ff1615611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e72906133dc565b60405180910390fd5b601060009054906101000a900460ff16611eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec19061346e565b60405180910390fd5b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611f9957600160086000828254611f2e91906134bd565b925050819055506012339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161201a93929190613512565b600060405180830381600087803b15801561203457600080fd5b505af1158015612048573d6000803e3d6000fd5b50505050600061205661264c565b9050600754811461206957806007819055505b600061207583836127a5565b90506005600060075481526020019081526020016000206001015481600560006007548152602001908152602001600020600201546120b491906134bd565b11156120f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ec90613595565b60405180910390fd5b8060095461210391906134bd565b60098190555082600b5461211791906134bd565b600b8190555082601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825461216f91906134bd565b9250508190555080601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546121c491906134bd565b601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003018190555080600560006007548152602001908152602001600020600201600082825461223291906134bd565b925050819055506001601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b61229e612a66565b73ffffffffffffffffffffffffffffffffffffffff166122bc611751565b73ffffffffffffffffffffffffffffffffffffffff1614612312576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230990613370565b60405180910390fd5b8360098190555082600a8190555081600b8190555080600c8190555050505050565b61233c612a66565b73ffffffffffffffffffffffffffffffffffffffff1661235a611751565b73ffffffffffffffffffffffffffffffffffffffff16146123b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a790613370565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b81526004016123eb9291906136f9565b600060405180830381600087803b15801561240557600080fd5b505af1158015612419573d6000803e3d6000fd5b505050505050565b612429612a66565b73ffffffffffffffffffffffffffffffffffffffff16612447611751565b73ffffffffffffffffffffffffffffffffffffffff161461249d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249490613370565b60405180910390fd5b80518251146124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d89061389c565b60405180910390fd5b60005b825181101561258d57818181518110612500576124ff6138bc565b5b60200260200101516014600085848151811061251f5761251e6138bc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825461257391906134bd565b925050819055508080612585906138eb565b9150506124e4565b505050565b60085481565b6125a0612a66565b73ffffffffffffffffffffffffffffffffffffffff166125be611751565b73ffffffffffffffffffffffffffffffffffffffff1614612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90613370565b60405180910390fd5b81600e8190555080600f819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560006007548152602001908152602001600020600001544210156126c657600560006007548152602001908152602001600020600101546005600060075481526020019081526020016000206002015410156126b05760075490506126d8565b60016007546126bf91906134bd565b90506126d8565b60016007546126d591906134bd565b90505b90565b600080670de0b6b3a76400006126ef61177a565b856126fa9190613933565b61270491906139a4565b905060006305f5e10060056000868152602001908152602001600020600301548361272f9190613933565b61273991906139a4565b9050809250505092915050565b60136020528060005260406000206000915054906101000a900460ff1681565b6012818154811061277657600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080670de0b6b3a76400006005600085815260200190815260200160002060030154856127d39190613933565b6127dd91906139a4565b90508091505092915050565b6127f1612a66565b73ffffffffffffffffffffffffffffffffffffffff1661280f611751565b73ffffffffffffffffffffffffffffffffffffffff1614612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285c90613370565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cb90613a47565b60405180910390fd5b6128dd81612a6e565b50565b60065481565b600080601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815250509050806060015181608001511015612a35576000808260a0015114612998578160a0015161299c565b6011545b90506000600e5482426129af9190613a67565b6129b991906139a4565b905060006064600f5485606001516129d19190613933565b6129db91906139a4565b9050600082826129eb9190613933565b90508460600151818660800151612a0291906134bd565b1115612a285784608001518560600151612a1c9190613a67565b95505050505050612a3b565b8095505050505050612a3b565b60009150505b919050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000819050919050565b612b4581612b32565b82525050565b6000602082019050612b606000830184612b3c565b92915050565b6000604051905090565b600080fd5b600080fd5b612b8381612b32565b8114612b8e57600080fd5b50565b600081359050612ba081612b7a565b92915050565b600060208284031215612bbc57612bbb612b70565b5b6000612bca84828501612b91565b91505092915050565b6000608082019050612be86000830187612b3c565b612bf56020830186612b3c565b612c026040830185612b3c565b612c0f6060830184612b3c565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612c5d612c58612c5384612c18565b612c38565b612c18565b9050919050565b6000612c6f82612c42565b9050919050565b6000612c8182612c64565b9050919050565b612c9181612c76565b82525050565b6000602082019050612cac6000830184612c88565b92915050565b6000612cbd82612c18565b9050919050565b6000612ccf82612cb2565b9050919050565b612cdf81612cc4565b8114612cea57600080fd5b50565b600081359050612cfc81612cd6565b92915050565b60008060408385031215612d1957612d18612b70565b5b6000612d2785828601612ced565b9250506020612d3885828601612ced565b9150509250929050565b612d4b81612cb2565b8114612d5657600080fd5b50565b600081359050612d6881612d42565b92915050565b600060208284031215612d8457612d83612b70565b5b6000612d9284828501612d59565b91505092915050565b6000612da682612c64565b9050919050565b612db681612d9b565b82525050565b6000602082019050612dd16000830184612dad565b92915050565b60008115159050919050565b612dec81612dd7565b82525050565b6000602082019050612e076000830184612de3565b92915050565b612e1681612dd7565b8114612e2157600080fd5b50565b600081359050612e3381612e0d565b92915050565b600060208284031215612e4f57612e4e612b70565b5b6000612e5d84828501612e24565b91505092915050565b612e6f81612cb2565b82525050565b6000602082019050612e8a6000830184612e66565b92915050565b6000612e9b82612cb2565b9050919050565b612eab81612e90565b8114612eb657600080fd5b50565b600081359050612ec881612ea2565b92915050565b600060208284031215612ee457612ee3612b70565b5b6000612ef284828501612eb9565b91505092915050565b600060c082019050612f106000830189612b3c565b612f1d6020830188612b3c565b612f2a6040830187612b3c565b612f376060830186612b3c565b612f446080830185612b3c565b612f5160a0830184612b3c565b979650505050505050565b60008060008060808587031215612f7657612f75612b70565b5b6000612f8487828801612b91565b9450506020612f9587828801612b91565b9350506040612fa687828801612b91565b9250506060612fb787828801612b91565b91505092959194509250565b60008060408385031215612fda57612fd9612b70565b5b6000612fe885828601612ced565b9250506020612ff985828601612b91565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61305182613008565b810181811067ffffffffffffffff821117156130705761306f613019565b5b80604052505050565b6000613083612b66565b905061308f8282613048565b919050565b600067ffffffffffffffff8211156130af576130ae613019565b5b602082029050602081019050919050565b600080fd5b60006130d86130d384613094565b613079565b905080838252602082019050602084028301858111156130fb576130fa6130c0565b5b835b8181101561312457806131108882612d59565b8452602084019350506020810190506130fd565b5050509392505050565b600082601f83011261314357613142613003565b5b81356131538482602086016130c5565b91505092915050565b600067ffffffffffffffff82111561317757613176613019565b5b602082029050602081019050919050565b600061319b6131968461315c565b613079565b905080838252602082019050602084028301858111156131be576131bd6130c0565b5b835b818110156131e757806131d38882612b91565b8452602084019350506020810190506131c0565b5050509392505050565b600082601f83011261320657613205613003565b5b8135613216848260208601613188565b91505092915050565b6000806040838503121561323657613235612b70565b5b600083013567ffffffffffffffff81111561325457613253612b75565b5b6132608582860161312e565b925050602083013567ffffffffffffffff81111561328157613280612b75565b5b61328d858286016131f1565b9150509250929050565b600080604083850312156132ae576132ad612b70565b5b60006132bc85828601612b91565b92505060206132cd85828601612b91565b9150509250929050565b60006132e282612c18565b9050919050565b6132f2816132d7565b82525050565b600060208201905061330d60008301846132e9565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061335a602083613313565b915061336582613324565b602082019050919050565b600060208201905081810360008301526133898161334d565b9050919050565b7f50726573616c6520656e64656421000000000000000000000000000000000000600082015250565b60006133c6600e83613313565b91506133d182613390565b602082019050919050565b600060208201905081810360008301526133f5816133b9565b9050919050565b7f2050726573616c65206973205061757365642c20636865636b206261636b206c60008201527f6174657200000000000000000000000000000000000000000000000000000000602082015250565b6000613458602483613313565b9150613463826133fc565b604082019050919050565b600060208201905081810360008301526134878161344b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134c882612b32565b91506134d383612b32565b92508282019050808211156134eb576134ea61348e565b5b92915050565b60006134fc82612c64565b9050919050565b61350c816134f1565b82525050565b60006060820190506135276000830186612e66565b6135346020830185613503565b6135416040830184612b3c565b949350505050565b7f5068617365204c696d6974205265616368656400000000000000000000000000600082015250565b600061357f601383613313565b915061358a82613549565b602082019050919050565b600060208201905081810360008301526135ae81613572565b9050919050565b7f50726573616c6520686173206e6f7420656e6465642079657400000000000000600082015250565b60006135eb601983613313565b91506135f6826135b5565b602082019050919050565b6000602082019050818103600083015261361a816135de565b9050919050565b7f4e6f20746f6b656e732070757263686173656400000000000000000000000000600082015250565b6000613657601383613313565b915061366282613621565b602082019050919050565b600060208201905081810360008301526136868161364a565b9050919050565b7f4e6f20746f6b656e7320746f20636c61696d0000000000000000000000000000600082015250565b60006136c3601283613313565b91506136ce8261368d565b602082019050919050565b600060208201905081810360008301526136f2816136b6565b9050919050565b600060408201905061370e6000830185612e66565b61371b6020830184612b3c565b9392505050565b600069ffffffffffffffffffff82169050919050565b61374181613722565b811461374c57600080fd5b50565b60008151905061375e81613738565b92915050565b6000819050919050565b61377781613764565b811461378257600080fd5b50565b6000815190506137948161376e565b92915050565b6000815190506137a981612b7a565b92915050565b600080600080600060a086880312156137cb576137ca612b70565b5b60006137d98882890161374f565b95505060206137ea88828901613785565b94505060406137fb8882890161379a565b935050606061380c8882890161379a565b925050608061381d8882890161374f565b9150509295509295909350565b7f41646472657373657320616e6420616d6f756e7473206d75737420626520657160008201527f75616c0000000000000000000000000000000000000000000000000000000000602082015250565b6000613886602383613313565b91506138918261382a565b604082019050919050565b600060208201905081810360008301526138b581613879565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006138f682612b32565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036139285761392761348e565b5b600182019050919050565b600061393e82612b32565b915061394983612b32565b925082820261395781612b32565b9150828204841483151761396e5761396d61348e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139af82612b32565b91506139ba83612b32565b9250826139ca576139c9613975565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a31602683613313565b9150613a3c826139d5565b604082019050919050565b60006020820190508181036000830152613a6081613a24565b9050919050565b6000613a7282612b32565b9150613a7d83612b32565b9250828203905081811115613a9557613a9461348e565b5b9291505056fea2646970667358221220aebafb9ce4888e98a1b80ba388fdf2b9dbbb000a85e9dda4d1d3f2943329723a64736f6c63430008120033

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

000000000000000000000000d4c8e80643711bea53f1930d2c85e4900f48ab11000000000000000000000000dd45e11f1540ac2100acc9fef292369b91df64e500000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000084595161401484a000000000000000000000000000000000000000000000000084595161401484a0000000000000000000000000000000000000000000000000ee3a5f48a68b5520000000000000000000000000000000000000000000000001b929b9ee181f57c1500000000000000000000000000000000000000000000001d8acb4eca819a461b0000000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000664f9230000000000000000000000000000000000000000000000000000000006658ccb0000000000000000000000000000000000000000000000000000000006662073000000000000000000000000000000000000000000000000000000000666b41b00000000000000000000000000000000000000000000000000000000066747c3000000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000002b5e3af16b18800000000000000000000000000000000000000000000000000022b1c8c1227a00000000000000000000000000000000000000000000000000001ce8bf268fbc500000000000000000000000000000000000000000000000000018c7d07a130e90000

-----Decoded View---------------
Arg [0] : _token (address): 0xD4C8e80643711BEa53f1930d2C85E4900f48ab11
Arg [1] : _fundReceiver (address): 0xDd45e11F1540ac2100acC9fef292369b91dF64E5
Arg [2] : tokensToSell (uint256[]): 10000000000000000000000000,10000000000000000000000000,18000000000000000000000000,33333333330000000000000000,35714285710000000000000000
Arg [3] : endTimestamps (uint256[]): 1716490800,1717095600,1717700400,1718305200,1718910000
Arg [4] : tokenPerUsdPrice (uint256[]): 100000000000000000000,50000000000000000000,40000000000000000000,33330000000000000000,28570000000000000000

-----Encoded View---------------
23 Constructor Arguments found :
Arg [0] : 000000000000000000000000d4c8e80643711bea53f1930d2c85e4900f48ab11
Arg [1] : 000000000000000000000000dd45e11f1540ac2100acc9fef292369b91df64e5
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [6] : 000000000000000000000000000000000000000000084595161401484a000000
Arg [7] : 000000000000000000000000000000000000000000084595161401484a000000
Arg [8] : 0000000000000000000000000000000000000000000ee3a5f48a68b552000000
Arg [9] : 0000000000000000000000000000000000000000001b929b9ee181f57c150000
Arg [10] : 0000000000000000000000000000000000000000001d8acb4eca819a461b0000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [12] : 00000000000000000000000000000000000000000000000000000000664f9230
Arg [13] : 000000000000000000000000000000000000000000000000000000006658ccb0
Arg [14] : 0000000000000000000000000000000000000000000000000000000066620730
Arg [15] : 00000000000000000000000000000000000000000000000000000000666b41b0
Arg [16] : 0000000000000000000000000000000000000000000000000000000066747c30
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [18] : 0000000000000000000000000000000000000000000000056bc75e2d63100000
Arg [19] : 000000000000000000000000000000000000000000000002b5e3af16b1880000
Arg [20] : 0000000000000000000000000000000000000000000000022b1c8c1227a00000
Arg [21] : 000000000000000000000000000000000000000000000001ce8bf268fbc50000
Arg [22] : 0000000000000000000000000000000000000000000000018c7d07a130e90000


Deployed Bytecode Sourcemap

3532:11930:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4381:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4313:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4227:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13001:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10576:472;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3963:39;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;8900:1207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3575:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4189:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14662:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11056:563;;;;;;;;;;;;;:::i;:::-;;15012:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4058:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14855:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4124:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1052:103;;;;;;;;;;;;;:::i;:::-;;3763:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14287:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4155:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4498:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12892:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3683:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6063:159;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15159:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13120:124;;;;;;;;;;;;;:::i;:::-;;6298:1247;;;:::i;:::-;;4531:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4876:37;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;4466:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7620:1205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13941:316;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15333:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12465:419;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4092:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14396:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3605:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10115:453;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13299:326;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4607:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4567:31;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13681:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1310:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4025:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11627:830;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4267:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4381:32;;;;:::o;4313:30::-;;;;:::o;4227:31::-;;;;:::o;13001:111::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13091:13:::1;13076:12;:28;;;;13001:111:::0;:::o;10576:472::-;10698:19;10732:18;10765:16;10796;10840:18;10861:6;:16;10868:8;10861:16;;;;;;;;;;;10840:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10910:5;:18;;;10943:5;:21;;;10979:5;:22;;;11016:5;:13;;;10888:152;;;;;;;;;10576:472;;;;;:::o;3963:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8900:1207::-;8965:14;;;;;;;;;;;8964:15;8956:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;9017:13;;;;;;;;;;;9009:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9087:8;:20;9096:10;9087:20;;;;;;;;;;;;;;;;;;;;;;;;;9082:115;;9138:1;9124:10;;:15;;;;;;;:::i;:::-;;;;;;;;9154:14;9174:10;9154:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9082:115;9207:4;;;;;;;;;;;:17;;;9225:10;9237:12;;;;;;;;;;;9251:6;9207:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9300:19;9322:16;:14;:16::i;:::-;9300:38;;9368:12;;9353:11;:27;9349:86;;9412:11;9397:12;:26;;;;9349:86;9447:22;9497:32;9509:6;9517:11;9497;:32::i;:::-;9480:49;;9636:6;:20;9643:12;;9636:20;;;;;;;;;;;:33;;;9601:14;9562:6;:20;9569:12;;9562:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;9540:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;9751:14;9739:9;;:26;;;;:::i;:::-;9727:9;:38;;;;9814:6;9795:16;;:25;;;;:::i;:::-;9776:16;:44;;;;9867:6;9833:5;:17;9839:10;9833:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;9981:14;9933:5;:17;9939:10;9933:17;;;;;;;;;;;;;;;:31;;;:63;;;;:::i;:::-;9886:5;:17;9892:10;9886:17;;;;;;;;;;;;;;;:31;;:110;;;;10047:14;10007:6;:20;10014:12;;10007:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;10095:4;10072:8;:20;10081:10;10072:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;8945:1162;;8900:1207;:::o;3575:23::-;;;;;;;;;;;;;:::o;4189:31::-;;;;:::o;14662:145::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14762:5:::1;14748:4;;:20;;;;;;;;;;;;;;;;;;14793:5;14779:4;;:20;;;;;;;;;;;;;;;;;;14662:145:::0;;:::o;11056:563::-;11107:14;;;;;;;;;;;11099:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11162:17;11182:5;:17;11188:10;11182:17;;;;;;;;;;;;;;;11162:37;;11239:1;11218:4;:18;;;:22;11210:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11275:23;11301:36;11326:10;11301:24;:36::i;:::-;11275:62;;11374:1;11356:15;:19;11348:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11434:15;11411:4;:19;;;:38;;;;;;;:::i;:::-;;;;;;;;11483:15;11460:4;:20;;:38;;;;11509:9;;;;;;;;;;;:18;;;11528:10;11540:15;11509:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11595:15;11583:10;11572:39;;;;;;;;;;;;11088:531;;11056:563::o;15012:110::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15108:5:::1;15085:12;;:29;;;;;;;;;;;;;;;;;;15012:110:::0;:::o;4058:27::-;;;;:::o;14855:109::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14927:12:::1;;;;;;;;;;;:21;;:29;14949:6;14927:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14855:109:::0;:::o;4124:24::-;;;;:::o;1052:103::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:30:::1;1144:1;1117:18;:30::i;:::-;1052:103::o:0;3763:38::-;;;;;;;;;;;;;:::o;14287:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14373:6:::1;14354:9;;:26;;;;;;;;;;;;;;;;;;14287:101:::0;:::o;4155:27::-;;;;:::o;4498:26::-;;;;;;;;;;;;;:::o;12892:101::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12978:7:::1;12962:13;;:23;;;;;;;;;;;;;;;;;;12892:101:::0;:::o;3683:71::-;;;;;;;;;;;;;:::o;744:87::-;790:7;817:6;;;;;;;;;;;810:13;;744:87;:::o;6063:159::-;6110:7;6133:12;6155:9;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6130:52;;;;;;6208:5;6193:21;;;6063:159;:::o;15159:135::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15276:10:::1;15264:9;;:22;;;;;;;;;;;;;;;;;;15159:135:::0;:::o;13120:124::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13189:4:::1;13172:14;;:21;;;;;;;;;;;;;;;;;;13221:15;13204:14;:32;;;;13120:124::o:0;6298:1247::-;6353:14;;;;;;;;;;;6352:15;6344:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;6405:13;;;;;;;;;;;6397:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6475:8;:20;6484:10;6475:20;;;;;;;;;;;;;;;;;;;;;;;;;6470:115;;6526:1;6512:10;;:15;;;;;;;:::i;:::-;;;;;;;;6542:14;6562:10;6542:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6470:115;6595:12;;;;;;;;;;;:21;;:32;6617:9;6595:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6669:19;6691:16;:14;:16::i;:::-;6669:38;;6737:12;;6722:11;:27;6718:86;;6781:11;6766:12;:26;;;;6718:86;6816:22;6866:37;6880:9;6891:11;6866:13;:37::i;:::-;6849:54;;7010:6;:20;7017:12;;7010:20;;;;;;;;;;;:33;;;6975:14;6936:6;:20;6943:12;;6936:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;6914:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;7126:14;7113:9;;:28;;;;:::i;:::-;7101:9;:40;;;;7183:9;7167:12;;:26;;;;:::i;:::-;7152:12;:41;;;;7303:9;7254:5;:17;7260:10;7254:17;;;;;;;;;;;;;;;:32;;;:59;;;;:::i;:::-;7206:5;:17;7212:10;7206:17;;;;;;;;;;;;;;;:32;;:107;;;;7419:14;7371:5;:17;7377:10;7371:17;;;;;;;;;;;;;;;:31;;;:63;;;;:::i;:::-;7324:5;:17;7330:10;7324:17;;;;;;;;;;;;;;;:31;;:110;;;;7485:14;7445:6;:20;7452:12;;7445:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;7533:4;7510:8;:20;7519:10;7510:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;6333:1212;;6298:1247::o;4531:29::-;;;;:::o;4876:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4466:25::-;;;;;;;;;;;;;:::o;7620:1205::-;7685:14;;;;;;;;;;;7684:15;7676:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7737:13;;;;;;;;;;;7729:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7807:8;:20;7816:10;7807:20;;;;;;;;;;;;;;;;;;;;;;;;;7802:115;;7858:1;7844:10;;:15;;;;;;;:::i;:::-;;;;;;;;7874:14;7894:10;7874:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7802:115;7927:4;;;;;;;;;;;:17;;;7945:10;7957:12;;;;;;;;;;;7971:6;7927:51;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8020:19;8042:16;:14;:16::i;:::-;8020:38;;8088:12;;8073:11;:27;8069:86;;8132:11;8117:12;:26;;;;8069:86;8167:22;8217:32;8229:6;8237:11;8217;:32::i;:::-;8200:49;;8356:6;:20;8363:12;;8356:20;;;;;;;;;;;:33;;;8321:14;8282:6;:20;8289:12;;8282:20;;;;;;;;;;;:36;;;:53;;;;:::i;:::-;:107;;8260:176;;;;;;;;;;;;:::i;:::-;;;;;;;;;8471:14;8459:9;;:26;;;;:::i;:::-;8447:9;:38;;;;8534:6;8515:16;;:25;;;;:::i;:::-;8496:16;:44;;;;8587:6;8553:5;:17;8559:10;8553:17;;;;;;;;;;;;;;;:30;;;:40;;;;;;;:::i;:::-;;;;;;;;8700:14;8653:5;:17;8659:10;8653:17;;;;;;;;;;;;;;;:31;;;:61;;;;:::i;:::-;8606:5;:17;8612:10;8606:17;;;;;;;;;;;;;;;:31;;:108;;;;8765:14;8725:6;:20;8732:12;;8725:20;;;;;;;;;;;:36;;;:54;;;;;;;:::i;:::-;;;;;;;;8813:4;8790:8;:20;8799:10;8790:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;7665:1160;;7620:1205;:::o;13941:316::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14125:5:::1;14113:9;:17;;;;14156:7;14141:12;:22;;;;14193:13;14174:16;:32;;;;14236:13;14217:16;:32;;;;13941:316:::0;;;;:::o;15333:126::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15417:5:::1;:14;;;15432:10;15444:6;15417:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15333:126:::0;;:::o;12465:419::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12654:12:::1;:19;12633:10;:17;:40;12611:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;12754:9;12749:128;12773:10;:17;12769:1;:21;12749:128;;;12850:12;12863:1;12850:15;;;;;;;;:::i;:::-;;;;;;;;12812:5;:20;12818:10;12829:1;12818:13;;;;;;;;:::i;:::-;;;;;;;;12812:20;;;;;;;;;;;;;;;:34;;;:53;;;;;;;:::i;:::-;;;;;;;;12792:3;;;;;:::i;:::-;;;;12749:128;;;;12465:419:::0;;:::o;4092:25::-;;;;:::o;14396:229::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14552:16:::1;14534:15;:34;;;;14599:18;14579:17;:38;;;;14396:229:::0;;:::o;3605:71::-;;;;;;;;;;;;;:::o;10115:453::-;10162:7;10204:6;:20;10211:12;;10204:20;;;;;;;;;;;:28;;;10186:15;:46;10182:379;;;10327:6;:20;10334:12;;10327:20;;;;;;;;;;;:33;;;10271:6;:20;10278:12;;10271:20;;;;;;;;;;;:36;;;:89;10249:245;;;10402:12;;10395:19;;;;10249:245;10477:1;10462:12;;:16;;;;:::i;:::-;10455:23;;;;10182:379;10548:1;10533:12;;:16;;;;:::i;:::-;10526:23;;10115:453;;:::o;13299:326::-;13402:7;13422:16;13475:7;13453:16;:14;:16::i;:::-;13442:7;:28;;;;:::i;:::-;13441:42;;;;:::i;:::-;13422:61;;13494:22;13581:3;13531:6;:15;13538:7;13531:15;;;;;;;;;;;:32;;;13520:8;:43;;;;:::i;:::-;13519:66;;;;:::i;:::-;13494:91;;13603:14;13596:21;;;;13299:326;;;;:::o;4607:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;4567:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13681:252::-;13782:7;13802:22;13888:4;13838:6;:15;13845:7;13838:15;;;;;;;;;;;:32;;;13828:7;:42;;;;:::i;:::-;13827:66;;;;:::i;:::-;13802:91;;13911:14;13904:21;;;13681:252;;;;:::o;1310:238::-;975:12;:10;:12::i;:::-;964:23;;:7;:5;:7::i;:::-;:23;;;956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1433:1:::1;1413:22;;:8;:22;;::::0;1391:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1512:28;1531:8;1512:18;:28::i;:::-;1310:238:::0;:::o;4025:26::-;;;;:::o;11627:830::-;11712:7;11732:16;11751:5;:11;11757:4;11751:11;;;;;;;;;;;;;;;11732:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11799:4;:18;;;11777:4;:19;;;:40;11773:658;;;11834:21;11882:1;11858:4;:20;;;:25;:99;;11937:4;:20;;;11858:99;;;11903:14;;11858:99;11834:123;;11972:15;12043;;12009:13;11991:15;:31;;;;:::i;:::-;11990:68;;;;:::i;:::-;11972:86;;12073:20;12156:3;12118:17;;12097:4;:18;;;:38;;;;:::i;:::-;12096:63;;;;:::i;:::-;12073:86;;12174:23;12215:7;12200:12;:22;;;;:::i;:::-;12174:48;;12281:4;:18;;;12263:15;12241:4;:19;;;:37;;;;:::i;:::-;:58;12237:146;;;12348:4;:19;;;12327:4;:18;;;:40;;;;:::i;:::-;12320:47;;;;;;;;;12237:146;12404:15;12397:22;;;;;;;;;11773:658;12448:1;12441:8;;;11627:830;;;;:::o;4267:35::-;;;;;;;;;;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;1708:191::-;1782:16;1801:6;;;;;;;;;;;1782:25;;1827:8;1818:6;;:17;;;;;;;;;;;;;;;;;;1882:8;1851:40;;1872:8;1851:40;;;;;;;;;;;;1771:128;1708:191;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:329::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:53;1346:7;1337:6;1326:9;1322:22;1301:53;:::i;:::-;1291:63;;1247:117;1042:329;;;;:::o;1377:553::-;1554:4;1592:3;1581:9;1577:19;1569:27;;1606:71;1674:1;1663:9;1659:17;1650:6;1606:71;:::i;:::-;1687:72;1755:2;1744:9;1740:18;1731:6;1687:72;:::i;:::-;1769;1837:2;1826:9;1822:18;1813:6;1769:72;:::i;:::-;1851;1919:2;1908:9;1904:18;1895:6;1851:72;:::i;:::-;1377:553;;;;;;;:::o;1936:126::-;1973:7;2013:42;2006:5;2002:54;1991:65;;1936:126;;;:::o;2068:60::-;2096:3;2117:5;2110:12;;2068:60;;;:::o;2134:142::-;2184:9;2217:53;2235:34;2244:24;2262:5;2244:24;:::i;:::-;2235:34;:::i;:::-;2217:53;:::i;:::-;2204:66;;2134:142;;;:::o;2282:126::-;2332:9;2365:37;2396:5;2365:37;:::i;:::-;2352:50;;2282:126;;;:::o;2414:140::-;2478:9;2511:37;2542:5;2511:37;:::i;:::-;2498:50;;2414:140;;;:::o;2560:159::-;2661:51;2706:5;2661:51;:::i;:::-;2656:3;2649:64;2560:159;;:::o;2725:250::-;2832:4;2870:2;2859:9;2855:18;2847:26;;2883:85;2965:1;2954:9;2950:17;2941:6;2883:85;:::i;:::-;2725:250;;;;:::o;2981:96::-;3018:7;3047:24;3065:5;3047:24;:::i;:::-;3036:35;;2981:96;;;:::o;3083:110::-;3134:7;3163:24;3181:5;3163:24;:::i;:::-;3152:35;;3083:110;;;:::o;3199:150::-;3286:38;3318:5;3286:38;:::i;:::-;3279:5;3276:49;3266:77;;3339:1;3336;3329:12;3266:77;3199:150;:::o;3355:167::-;3415:5;3453:6;3440:20;3431:29;;3469:47;3510:5;3469:47;:::i;:::-;3355:167;;;;:::o;3528:530::-;3624:6;3632;3681:2;3669:9;3660:7;3656:23;3652:32;3649:119;;;3687:79;;:::i;:::-;3649:119;3807:1;3832:67;3891:7;3882:6;3871:9;3867:22;3832:67;:::i;:::-;3822:77;;3778:131;3948:2;3974:67;4033:7;4024:6;4013:9;4009:22;3974:67;:::i;:::-;3964:77;;3919:132;3528:530;;;;;:::o;4064:122::-;4137:24;4155:5;4137:24;:::i;:::-;4130:5;4127:35;4117:63;;4176:1;4173;4166:12;4117:63;4064:122;:::o;4192:139::-;4238:5;4276:6;4263:20;4254:29;;4292:33;4319:5;4292:33;:::i;:::-;4192:139;;;;:::o;4337:329::-;4396:6;4445:2;4433:9;4424:7;4420:23;4416:32;4413:119;;;4451:79;;:::i;:::-;4413:119;4571:1;4596:53;4641:7;4632:6;4621:9;4617:22;4596:53;:::i;:::-;4586:63;;4542:117;4337:329;;;;:::o;4672:155::-;4751:9;4784:37;4815:5;4784:37;:::i;:::-;4771:50;;4672:155;;;:::o;4833:189::-;4949:66;5009:5;4949:66;:::i;:::-;4944:3;4937:79;4833:189;;:::o;5028:280::-;5150:4;5188:2;5177:9;5173:18;5165:26;;5201:100;5298:1;5287:9;5283:17;5274:6;5201:100;:::i;:::-;5028:280;;;;:::o;5314:90::-;5348:7;5391:5;5384:13;5377:21;5366:32;;5314:90;;;:::o;5410:109::-;5491:21;5506:5;5491:21;:::i;:::-;5486:3;5479:34;5410:109;;:::o;5525:210::-;5612:4;5650:2;5639:9;5635:18;5627:26;;5663:65;5725:1;5714:9;5710:17;5701:6;5663:65;:::i;:::-;5525:210;;;;:::o;5741:116::-;5811:21;5826:5;5811:21;:::i;:::-;5804:5;5801:32;5791:60;;5847:1;5844;5837:12;5791:60;5741:116;:::o;5863:133::-;5906:5;5944:6;5931:20;5922:29;;5960:30;5984:5;5960:30;:::i;:::-;5863:133;;;;:::o;6002:323::-;6058:6;6107:2;6095:9;6086:7;6082:23;6078:32;6075:119;;;6113:79;;:::i;:::-;6075:119;6233:1;6258:50;6300:7;6291:6;6280:9;6276:22;6258:50;:::i;:::-;6248:60;;6204:114;6002:323;;;;:::o;6331:118::-;6418:24;6436:5;6418:24;:::i;:::-;6413:3;6406:37;6331:118;;:::o;6455:222::-;6548:4;6586:2;6575:9;6571:18;6563:26;;6599:71;6667:1;6656:9;6652:17;6643:6;6599:71;:::i;:::-;6455:222;;;;:::o;6683:125::-;6749:7;6778:24;6796:5;6778:24;:::i;:::-;6767:35;;6683:125;;;:::o;6814:180::-;6916:53;6963:5;6916:53;:::i;:::-;6909:5;6906:64;6896:92;;6984:1;6981;6974:12;6896:92;6814:180;:::o;7000:197::-;7075:5;7113:6;7100:20;7091:29;;7129:62;7185:5;7129:62;:::i;:::-;7000:197;;;;:::o;7203:387::-;7291:6;7340:2;7328:9;7319:7;7315:23;7311:32;7308:119;;;7346:79;;:::i;:::-;7308:119;7466:1;7491:82;7565:7;7556:6;7545:9;7541:22;7491:82;:::i;:::-;7481:92;;7437:146;7203:387;;;;:::o;7596:775::-;7829:4;7867:3;7856:9;7852:19;7844:27;;7881:71;7949:1;7938:9;7934:17;7925:6;7881:71;:::i;:::-;7962:72;8030:2;8019:9;8015:18;8006:6;7962:72;:::i;:::-;8044;8112:2;8101:9;8097:18;8088:6;8044:72;:::i;:::-;8126;8194:2;8183:9;8179:18;8170:6;8126:72;:::i;:::-;8208:73;8276:3;8265:9;8261:19;8252:6;8208:73;:::i;:::-;8291;8359:3;8348:9;8344:19;8335:6;8291:73;:::i;:::-;7596:775;;;;;;;;;:::o;8377:765::-;8463:6;8471;8479;8487;8536:3;8524:9;8515:7;8511:23;8507:33;8504:120;;;8543:79;;:::i;:::-;8504:120;8663:1;8688:53;8733:7;8724:6;8713:9;8709:22;8688:53;:::i;:::-;8678:63;;8634:117;8790:2;8816:53;8861:7;8852:6;8841:9;8837:22;8816:53;:::i;:::-;8806:63;;8761:118;8918:2;8944:53;8989:7;8980:6;8969:9;8965:22;8944:53;:::i;:::-;8934:63;;8889:118;9046:2;9072:53;9117:7;9108:6;9097:9;9093:22;9072:53;:::i;:::-;9062:63;;9017:118;8377:765;;;;;;;:::o;9148:502::-;9230:6;9238;9287:2;9275:9;9266:7;9262:23;9258:32;9255:119;;;9293:79;;:::i;:::-;9255:119;9413:1;9438:67;9497:7;9488:6;9477:9;9473:22;9438:67;:::i;:::-;9428:77;;9384:131;9554:2;9580:53;9625:7;9616:6;9605:9;9601:22;9580:53;:::i;:::-;9570:63;;9525:118;9148:502;;;;;:::o;9656:117::-;9765:1;9762;9755:12;9779:102;9820:6;9871:2;9867:7;9862:2;9855:5;9851:14;9847:28;9837:38;;9779:102;;;:::o;9887:180::-;9935:77;9932:1;9925:88;10032:4;10029:1;10022:15;10056:4;10053:1;10046:15;10073:281;10156:27;10178:4;10156:27;:::i;:::-;10148:6;10144:40;10286:6;10274:10;10271:22;10250:18;10238:10;10235:34;10232:62;10229:88;;;10297:18;;:::i;:::-;10229:88;10337:10;10333:2;10326:22;10116:238;10073:281;;:::o;10360:129::-;10394:6;10421:20;;:::i;:::-;10411:30;;10450:33;10478:4;10470:6;10450:33;:::i;:::-;10360:129;;;:::o;10495:311::-;10572:4;10662:18;10654:6;10651:30;10648:56;;;10684:18;;:::i;:::-;10648:56;10734:4;10726:6;10722:17;10714:25;;10794:4;10788;10784:15;10776:23;;10495:311;;;:::o;10812:117::-;10921:1;10918;10911:12;10952:710;11048:5;11073:81;11089:64;11146:6;11089:64;:::i;:::-;11073:81;:::i;:::-;11064:90;;11174:5;11203:6;11196:5;11189:21;11237:4;11230:5;11226:16;11219:23;;11290:4;11282:6;11278:17;11270:6;11266:30;11319:3;11311:6;11308:15;11305:122;;;11338:79;;:::i;:::-;11305:122;11453:6;11436:220;11470:6;11465:3;11462:15;11436:220;;;11545:3;11574:37;11607:3;11595:10;11574:37;:::i;:::-;11569:3;11562:50;11641:4;11636:3;11632:14;11625:21;;11512:144;11496:4;11491:3;11487:14;11480:21;;11436:220;;;11440:21;11054:608;;10952:710;;;;;:::o;11685:370::-;11756:5;11805:3;11798:4;11790:6;11786:17;11782:27;11772:122;;11813:79;;:::i;:::-;11772:122;11930:6;11917:20;11955:94;12045:3;12037:6;12030:4;12022:6;12018:17;11955:94;:::i;:::-;11946:103;;11762:293;11685:370;;;;:::o;12061:311::-;12138:4;12228:18;12220:6;12217:30;12214:56;;;12250:18;;:::i;:::-;12214:56;12300:4;12292:6;12288:17;12280:25;;12360:4;12354;12350:15;12342:23;;12061:311;;;:::o;12395:710::-;12491:5;12516:81;12532:64;12589:6;12532:64;:::i;:::-;12516:81;:::i;:::-;12507:90;;12617:5;12646:6;12639:5;12632:21;12680:4;12673:5;12669:16;12662:23;;12733:4;12725:6;12721:17;12713:6;12709:30;12762:3;12754:6;12751:15;12748:122;;;12781:79;;:::i;:::-;12748:122;12896:6;12879:220;12913:6;12908:3;12905:15;12879:220;;;12988:3;13017:37;13050:3;13038:10;13017:37;:::i;:::-;13012:3;13005:50;13084:4;13079:3;13075:14;13068:21;;12955:144;12939:4;12934:3;12930:14;12923:21;;12879:220;;;12883:21;12497:608;;12395:710;;;;;:::o;13128:370::-;13199:5;13248:3;13241:4;13233:6;13229:17;13225:27;13215:122;;13256:79;;:::i;:::-;13215:122;13373:6;13360:20;13398:94;13488:3;13480:6;13473:4;13465:6;13461:17;13398:94;:::i;:::-;13389:103;;13205:293;13128:370;;;;:::o;13504:894::-;13622:6;13630;13679:2;13667:9;13658:7;13654:23;13650:32;13647:119;;;13685:79;;:::i;:::-;13647:119;13833:1;13822:9;13818:17;13805:31;13863:18;13855:6;13852:30;13849:117;;;13885:79;;:::i;:::-;13849:117;13990:78;14060:7;14051:6;14040:9;14036:22;13990:78;:::i;:::-;13980:88;;13776:302;14145:2;14134:9;14130:18;14117:32;14176:18;14168:6;14165:30;14162:117;;;14198:79;;:::i;:::-;14162:117;14303:78;14373:7;14364:6;14353:9;14349:22;14303:78;:::i;:::-;14293:88;;14088:303;13504:894;;;;;:::o;14404:474::-;14472:6;14480;14529:2;14517:9;14508:7;14504:23;14500:32;14497:119;;;14535:79;;:::i;:::-;14497:119;14655:1;14680:53;14725:7;14716:6;14705:9;14701:22;14680:53;:::i;:::-;14670:63;;14626:117;14782:2;14808:53;14853:7;14844:6;14833:9;14829:22;14808:53;:::i;:::-;14798:63;;14753:118;14404:474;;;;;:::o;14884:104::-;14929:7;14958:24;14976:5;14958:24;:::i;:::-;14947:35;;14884:104;;;:::o;14994:142::-;15097:32;15123:5;15097:32;:::i;:::-;15092:3;15085:45;14994:142;;:::o;15142:254::-;15251:4;15289:2;15278:9;15274:18;15266:26;;15302:87;15386:1;15375:9;15371:17;15362:6;15302:87;:::i;:::-;15142:254;;;;:::o;15402:169::-;15486:11;15520:6;15515:3;15508:19;15560:4;15555:3;15551:14;15536:29;;15402:169;;;;:::o;15577:182::-;15717:34;15713:1;15705:6;15701:14;15694:58;15577:182;:::o;15765:366::-;15907:3;15928:67;15992:2;15987:3;15928:67;:::i;:::-;15921:74;;16004:93;16093:3;16004:93;:::i;:::-;16122:2;16117:3;16113:12;16106:19;;15765:366;;;:::o;16137:419::-;16303:4;16341:2;16330:9;16326:18;16318:26;;16390:9;16384:4;16380:20;16376:1;16365:9;16361:17;16354:47;16418:131;16544:4;16418:131;:::i;:::-;16410:139;;16137:419;;;:::o;16562:164::-;16702:16;16698:1;16690:6;16686:14;16679:40;16562:164;:::o;16732:366::-;16874:3;16895:67;16959:2;16954:3;16895:67;:::i;:::-;16888:74;;16971:93;17060:3;16971:93;:::i;:::-;17089:2;17084:3;17080:12;17073:19;;16732:366;;;:::o;17104:419::-;17270:4;17308:2;17297:9;17293:18;17285:26;;17357:9;17351:4;17347:20;17343:1;17332:9;17328:17;17321:47;17385:131;17511:4;17385:131;:::i;:::-;17377:139;;17104:419;;;:::o;17529:223::-;17669:34;17665:1;17657:6;17653:14;17646:58;17738:6;17733:2;17725:6;17721:15;17714:31;17529:223;:::o;17758:366::-;17900:3;17921:67;17985:2;17980:3;17921:67;:::i;:::-;17914:74;;17997:93;18086:3;17997:93;:::i;:::-;18115:2;18110:3;18106:12;18099:19;;17758:366;;;:::o;18130:419::-;18296:4;18334:2;18323:9;18319:18;18311:26;;18383:9;18377:4;18373:20;18369:1;18358:9;18354:17;18347:47;18411:131;18537:4;18411:131;:::i;:::-;18403:139;;18130:419;;;:::o;18555:180::-;18603:77;18600:1;18593:88;18700:4;18697:1;18690:15;18724:4;18721:1;18714:15;18741:191;18781:3;18800:20;18818:1;18800:20;:::i;:::-;18795:25;;18834:20;18852:1;18834:20;:::i;:::-;18829:25;;18877:1;18874;18870:9;18863:16;;18898:3;18895:1;18892:10;18889:36;;;18905:18;;:::i;:::-;18889:36;18741:191;;;;:::o;18938:134::-;18996:9;19029:37;19060:5;19029:37;:::i;:::-;19016:50;;18938:134;;;:::o;19078:147::-;19173:45;19212:5;19173:45;:::i;:::-;19168:3;19161:58;19078:147;;:::o;19231:458::-;19388:4;19426:2;19415:9;19411:18;19403:26;;19439:71;19507:1;19496:9;19492:17;19483:6;19439:71;:::i;:::-;19520:80;19596:2;19585:9;19581:18;19572:6;19520:80;:::i;:::-;19610:72;19678:2;19667:9;19663:18;19654:6;19610:72;:::i;:::-;19231:458;;;;;;:::o;19695:169::-;19835:21;19831:1;19823:6;19819:14;19812:45;19695:169;:::o;19870:366::-;20012:3;20033:67;20097:2;20092:3;20033:67;:::i;:::-;20026:74;;20109:93;20198:3;20109:93;:::i;:::-;20227:2;20222:3;20218:12;20211:19;;19870:366;;;:::o;20242:419::-;20408:4;20446:2;20435:9;20431:18;20423:26;;20495:9;20489:4;20485:20;20481:1;20470:9;20466:17;20459:47;20523:131;20649:4;20523:131;:::i;:::-;20515:139;;20242:419;;;:::o;20667:175::-;20807:27;20803:1;20795:6;20791:14;20784:51;20667:175;:::o;20848:366::-;20990:3;21011:67;21075:2;21070:3;21011:67;:::i;:::-;21004:74;;21087:93;21176:3;21087:93;:::i;:::-;21205:2;21200:3;21196:12;21189:19;;20848:366;;;:::o;21220:419::-;21386:4;21424:2;21413:9;21409:18;21401:26;;21473:9;21467:4;21463:20;21459:1;21448:9;21444:17;21437:47;21501:131;21627:4;21501:131;:::i;:::-;21493:139;;21220:419;;;:::o;21645:169::-;21785:21;21781:1;21773:6;21769:14;21762:45;21645:169;:::o;21820:366::-;21962:3;21983:67;22047:2;22042:3;21983:67;:::i;:::-;21976:74;;22059:93;22148:3;22059:93;:::i;:::-;22177:2;22172:3;22168:12;22161:19;;21820:366;;;:::o;22192:419::-;22358:4;22396:2;22385:9;22381:18;22373:26;;22445:9;22439:4;22435:20;22431:1;22420:9;22416:17;22409:47;22473:131;22599:4;22473:131;:::i;:::-;22465:139;;22192:419;;;:::o;22617:168::-;22757:20;22753:1;22745:6;22741:14;22734:44;22617:168;:::o;22791:366::-;22933:3;22954:67;23018:2;23013:3;22954:67;:::i;:::-;22947:74;;23030:93;23119:3;23030:93;:::i;:::-;23148:2;23143:3;23139:12;23132:19;;22791:366;;;:::o;23163:419::-;23329:4;23367:2;23356:9;23352:18;23344:26;;23416:9;23410:4;23406:20;23402:1;23391:9;23387:17;23380:47;23444:131;23570:4;23444:131;:::i;:::-;23436:139;;23163:419;;;:::o;23588:332::-;23709:4;23747:2;23736:9;23732:18;23724:26;;23760:71;23828:1;23817:9;23813:17;23804:6;23760:71;:::i;:::-;23841:72;23909:2;23898:9;23894:18;23885:6;23841:72;:::i;:::-;23588:332;;;;;:::o;23926:105::-;23962:7;24002:22;23995:5;23991:34;23980:45;;23926:105;;;:::o;24037:120::-;24109:23;24126:5;24109:23;:::i;:::-;24102:5;24099:34;24089:62;;24147:1;24144;24137:12;24089:62;24037:120;:::o;24163:141::-;24219:5;24250:6;24244:13;24235:22;;24266:32;24292:5;24266:32;:::i;:::-;24163:141;;;;:::o;24310:76::-;24346:7;24375:5;24364:16;;24310:76;;;:::o;24392:120::-;24464:23;24481:5;24464:23;:::i;:::-;24457:5;24454:34;24444:62;;24502:1;24499;24492:12;24444:62;24392:120;:::o;24518:141::-;24574:5;24605:6;24599:13;24590:22;;24621:32;24647:5;24621:32;:::i;:::-;24518:141;;;;:::o;24665:143::-;24722:5;24753:6;24747:13;24738:22;;24769:33;24796:5;24769:33;:::i;:::-;24665:143;;;;:::o;24814:971::-;24917:6;24925;24933;24941;24949;24998:3;24986:9;24977:7;24973:23;24969:33;24966:120;;;25005:79;;:::i;:::-;24966:120;25125:1;25150:63;25205:7;25196:6;25185:9;25181:22;25150:63;:::i;:::-;25140:73;;25096:127;25262:2;25288:63;25343:7;25334:6;25323:9;25319:22;25288:63;:::i;:::-;25278:73;;25233:128;25400:2;25426:64;25482:7;25473:6;25462:9;25458:22;25426:64;:::i;:::-;25416:74;;25371:129;25539:2;25565:64;25621:7;25612:6;25601:9;25597:22;25565:64;:::i;:::-;25555:74;;25510:129;25678:3;25705:63;25760:7;25751:6;25740:9;25736:22;25705:63;:::i;:::-;25695:73;;25649:129;24814:971;;;;;;;;:::o;25791:222::-;25931:34;25927:1;25919:6;25915:14;25908:58;26000:5;25995:2;25987:6;25983:15;25976:30;25791:222;:::o;26019:366::-;26161:3;26182:67;26246:2;26241:3;26182:67;:::i;:::-;26175:74;;26258:93;26347:3;26258:93;:::i;:::-;26376:2;26371:3;26367:12;26360:19;;26019:366;;;:::o;26391:419::-;26557:4;26595:2;26584:9;26580:18;26572:26;;26644:9;26638:4;26634:20;26630:1;26619:9;26615:17;26608:47;26672:131;26798:4;26672:131;:::i;:::-;26664:139;;26391:419;;;:::o;26816:180::-;26864:77;26861:1;26854:88;26961:4;26958:1;26951:15;26985:4;26982:1;26975:15;27002:233;27041:3;27064:24;27082:5;27064:24;:::i;:::-;27055:33;;27110:66;27103:5;27100:77;27097:103;;27180:18;;:::i;:::-;27097:103;27227:1;27220:5;27216:13;27209:20;;27002:233;;;:::o;27241:410::-;27281:7;27304:20;27322:1;27304:20;:::i;:::-;27299:25;;27338:20;27356:1;27338:20;:::i;:::-;27333:25;;27393:1;27390;27386:9;27415:30;27433:11;27415:30;:::i;:::-;27404:41;;27594:1;27585:7;27581:15;27578:1;27575:22;27555:1;27548:9;27528:83;27505:139;;27624:18;;:::i;:::-;27505:139;27289:362;27241:410;;;;:::o;27657:180::-;27705:77;27702:1;27695:88;27802:4;27799:1;27792:15;27826:4;27823:1;27816:15;27843:185;27883:1;27900:20;27918:1;27900:20;:::i;:::-;27895:25;;27934:20;27952:1;27934:20;:::i;:::-;27929:25;;27973:1;27963:35;;27978:18;;:::i;:::-;27963:35;28020:1;28017;28013:9;28008:14;;27843:185;;;;:::o;28034:225::-;28174:34;28170:1;28162:6;28158:14;28151:58;28243:8;28238:2;28230:6;28226:15;28219:33;28034:225;:::o;28265:366::-;28407:3;28428:67;28492:2;28487:3;28428:67;:::i;:::-;28421:74;;28504:93;28593:3;28504:93;:::i;:::-;28622:2;28617:3;28613:12;28606:19;;28265:366;;;:::o;28637:419::-;28803:4;28841:2;28830:9;28826:18;28818:26;;28890:9;28884:4;28880:20;28876:1;28865:9;28861:17;28854:47;28918:131;29044:4;28918:131;:::i;:::-;28910:139;;28637:419;;;:::o;29062:194::-;29102:4;29122:20;29140:1;29122:20;:::i;:::-;29117:25;;29156:20;29174:1;29156:20;:::i;:::-;29151:25;;29200:1;29197;29193:9;29185:17;;29224:1;29218:4;29215:11;29212:37;;;29229:18;;:::i;:::-;29212:37;29062:194;;;;:::o

Swarm Source

ipfs://aebafb9ce4888e98a1b80ba388fdf2b9dbbb000a85e9dda4d1d3f2943329723a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.