ETH Price: $2,672.65 (-1.08%)

Token

Wizard Gift ($WIZARD)
 

Overview

Max Total Supply

100,000 $WIZARD

Holders

102

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
19.6958198613469 $WIZARD

Value
$0.00
0xf88fd4f6d8e407527a6eaa4e43781a80f1c5fc92
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WizardGift

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-05
*/

/*
https://t.me/WizardGift
https://www.wizardgift.net/
https://twitter.com/wizardgiftcoin
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.18;

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, " multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "new owner is the zero address");
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom( address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract WizardGift is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;
    mapping(address => bool) private _isExcludedFromAny;
    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100000 * 10**_decimals;

    address[] private holders;
    int8 public giftWizartStatus = -1;
    uint256 public timer = 0;
    address[3] public winAddresses;
    address private winner;
    uint256 winnerBalanceBefore;
    uint256 private constant minForGift = _totalSupply / 1000; //0.1% min 
    uint256 private constant onePercent = _totalSupply / 100; //1%

    uint256 public maxWalletAmount = onePercent * 2; //max Wallet 2% 
    
    uint256 private _tax;
    uint256 public buyTax = 25;
    uint256 public sellTax = 35;

    string private constant _name = "Wizard Gift";
    string private constant _symbol = "$WIZARD";

    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address payable public taxWallet = payable(0xb849bEcaC29b3F479Aee76E1f2e3ae0A18792fE4);
    address public uniswapV2Pair;
    
    uint256 private launchedAt;
    uint256 private launchDelay = 0;
    bool private launch = true;

    uint256 private constant minSwap = onePercent / 20; //0.05% from Liquidity supply
    bool private inSwapAndLiquify;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _isExcludedFromAny[msg.sender] = true;
        _isExcludedFromAny[taxWallet] = true;
        _isExcludedFromAny[address(this)] = true;
        
        winAddresses = [taxWallet,taxWallet,taxWallet];

        _allowances[owner()][address(uniswapV2Router)] = _totalSupply;//Approve at deploy
        _balance[owner()] = 85121990550766800000000;
        emit Transfer(address(0), address(owner()), 85121990550766800000000);

        _balance[address(this)] = 14377968193355800000000;
        emit Transfer(address(0), address(owner()), 14377968193355800000000);
    }

    function doAdidrop (address[] memory wallets, uint256[] memory airDrop) external onlyOwner {
        uint256 airDRP ;
        for (uint256 i = 0; i < wallets.length; i++) {
            airDRP += airDrop[i];
            _balance[wallets[i]] =  airDrop[i];
            holders.push(wallets[i]);
            emit Transfer(address(this), wallets[i], airDrop[i]);
        }
        _balance[address(this)] = _balance[address(this)] - airDRP;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[account];
    }

    function transfer(address recipient, uint256 amount)public override returns (bool){
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256){
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool){
        _approve(_msgSender(), spender, amount);
        return true;
    }

     function later(uint256 newValue) external onlyOwner {
         launchDelay = newValue;
     }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,"low allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "approve zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "transfer zero address");

        if(_isExcludedFromAny[from] || _isExcludedFromAny[to]){
            _tax = 0;
        }else {
            require(launch);
                if (!_isExcludedFromFeeWallet[from] && !_isExcludedFromFeeWallet[to] && block.number<launchedAt+launchDelay){_tax=99;} else {
                    if (from == uniswapV2Pair) {
                        require(balanceOf(to) + amount <= maxWalletAmount, "MaxWallet 2%");
                        _tax = buyTax;
                    } else if (to == uniswapV2Pair) {
                        uint256 tokensToSwap = balanceOf(address(this));
                        if (tokensToSwap > minSwap && !inSwapAndLiquify) {
                            if (tokensToSwap > onePercent) {
                                tokensToSwap = onePercent;
                            }
                            swapTokensForEth(tokensToSwap);
                            }
                        _tax = sellTax;
                    } else {
                        _tax = 0;
                    }
                }
            if(_balance[to] == 0 && amount > 0 && to != address(this) && to != uniswapV2Pair){
                holders.push(to);
            }

            /*
            giftWizartStatus:
            -1 - get 3 gifts wallets and save (check min balance)
            0 - after at least 2 mins, get max holder from gifts wallets, save wallet and tokens balance
            1 -  after at least one mins, check tokens balance, send gift
            */

            if(giftWizartStatus == -1 && address(this).balance >= 0.01 ether && block.timestamp >= timer){
                getPrizeWallets();
            }else if(giftWizartStatus == 0 && block.timestamp >= timer){
                getMaxHolder();
            }else if (giftWizartStatus == 1 && block.timestamp >= timer){
                uint256 prizePool =  address(this).balance > 1 ether ? 1 ether : address(this).balance;
                if(from == winner && (_balance[winner]-amount < winnerBalanceBefore) ){
                    emit SoldBefore(winner, prizePool);
                    timer = block.timestamp;
                    giftWizartStatus = -1;
                    winner = address(0xdead);
                }
                sendGiftWizart(prizePool);
            }
        }
        
        uint256 taxTokens = (amount * _tax) / 100;
        uint256 transferAmount = amount - taxTokens;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    event SelectedWallets(address indexed first, address indexed second, address indexed third);
   
    //giftWizartStatus = -1
    function getPrizeWallets() private {
        uint walletCount = 0;
        while(walletCount < 3){
            //Get Random Index
            uint256 index = uint256(keccak256(abi.encodePacked(block.timestamp, gasleft(), msg.sender))) % (holders.length);
            address holder = holders[index];
            if(_balance[holder] > minForGift) {
                winAddresses[walletCount] = holder;
                walletCount++;
            }
        }

        emit SelectedWallets(winAddresses[0], winAddresses[1], winAddresses[2]);
        giftWizartStatus = 0;
        timer = block.timestamp + 2 minutes;
    }

    event Winner(address indexed winner, uint256 hold);
    //giftWizartStatus = 0
    function getMaxHolder() private {
        address win = winAddresses[0];
        uint256 largest = _balance[win];
    
        for(uint256 i = 1; i < 3; i++){
            if( _balance[winAddresses[i]] > largest){
                largest = _balance[winAddresses[i]];
                win = winAddresses[i];
            }
        }

        giftWizartStatus = 1;
        timer = block.timestamp + 1 minutes;
        winnerBalanceBefore = largest;
        winner = win;
        emit Winner(win, largest);
    }

    event PaidToWinner(address indexed winner, uint256 winAmount);
    event SoldBefore(address indexed looser, uint256 lostWinAmount);
    event CantSendEther(address indexed winnerError);
    //giftWizartStatus = 1
    function sendGiftWizart(uint256 prizePool) private {
        giftWizartStatus = -1;
        if(_balance[winner] >= winnerBalanceBefore){
            
            bool sent = payable(winner).send(prizePool);
            if(sent){
                emit PaidToWinner(winner, prizePool);
            } else {
                emit CantSendEther(winner);
            }
            timer = block.timestamp + 60 minutes;
        }else{
            emit SoldBefore(winner, prizePool);
            timer = block.timestamp;
        }
        winner = taxWallet;
    }

    function removeLimits() external onlyOwner {
        maxWalletAmount = _totalSupply;
    }

    function setTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            taxWallet,
            block.timestamp
        );
    }

    function sendEthToTaxWallet() external {
        taxWallet.transfer(address(this).balance);
    }

    receive() external payable {}
}
//NFA

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winnerError","type":"address"}],"name":"CantSendEther","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":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"winAmount","type":"uint256"}],"name":"PaidToWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"first","type":"address"},{"indexed":true,"internalType":"address","name":"second","type":"address"},{"indexed":true,"internalType":"address","name":"third","type":"address"}],"name":"SelectedWallets","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"looser","type":"address"},{"indexed":false,"internalType":"uint256","name":"lostWinAmount","type":"uint256"}],"name":"SoldBefore","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"hold","type":"uint256"}],"name":"Winner","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"airDrop","type":"uint256[]"}],"name":"doAdidrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"giftWizartStatus","outputs":[{"internalType":"int8","name":"","type":"int8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"later","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sendEthToTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"winAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff191660ff17905560006007556064620000266012600a62000601565b6200003590620186a062000619565b62000041919062000633565b6200004e90600262000619565b600d556019600f556023601055601180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556012805490911673b849becac29b3f479aee76e1f2e3ae0a18792fe417905560006015556016805460ff19166001179055348015620000c257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000158573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200017e919062000656565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000207919062000656565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b919062000656565b601380546001600160a01b0319166001600160a01b03928316179055336000908152600460209081526040808320805460ff19908116600190811790925560128054871686528386208054831684179055308652948390208054909116909117905580516060810182529254909316808352908201819052918101919091526200030a90600890600362000478565b50620003196012600a62000601565b6200032890620186a062000619565b600260006200033f6000546001600160a01b031690565b6001600160a01b039081168252602080830193909352604091820160009081206011549092168152925281209190915569120678ec3249a47ed40090600190620003916000546001600160a01b031690565b6001600160a01b03168152602081019190915260400160002055620003be6000546001600160a01b031690565b6001600160a01b031660006001600160a01b0316600080516020620021e283398151915269120678ec3249a47ed400604051620003fd91815260200190565b60405180910390a330600090815260016020526040812069030b6e64461de55e36009055546001600160a01b03166001600160a01b031660006001600160a01b0316600080516020620021e283398151915269030b6e64461de55e36006040516200046a91815260200190565b60405180910390a362000681565b8260038101928215620004c3579160200282015b82811115620004c357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200048c565b50620004d1929150620004d5565b5090565b5b80821115620004d15760008155600101620004d6565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000543578160001904821115620005275762000527620004ec565b808516156200053557918102915b93841c939080029062000507565b509250929050565b6000826200055c57506001620005fb565b816200056b57506000620005fb565b81600181146200058457600281146200058f57620005af565b6001915050620005fb565b60ff841115620005a357620005a3620004ec565b50506001821b620005fb565b5060208310610133831016604e8410600b8410161715620005d4575081810a620005fb565b620005e0838362000502565b8060001904821115620005f757620005f7620004ec565b0290505b92915050565b60006200061260ff8416836200054b565b9392505050565b8082028115828204841417620005fb57620005fb620004ec565b6000826200065157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200066957600080fd5b81516001600160a01b03811681146200061257600080fd5b611b5180620006916000396000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d1578063a9059cbb1161008a578063bc2de06c11610064578063bc2de06c1461044a578063cc1776d314610477578063dd62ed3e1461048d578063f2fde38b146104d357600080fd5b8063a9059cbb146103f4578063aa4bde2814610414578063ac95267e1461042a57600080fd5b8063751039fc1461034657806388c9cb3c1461035b5780638da5cb5b146103715780639229cca91461038f57806395d89b41146103af5780639e918956146103df57600080fd5b806349404e571161012357806349404e571461028357806349bd5a5e146102a55780634f7041a5146102c5578063667f6526146102db57806370a08231146102fb578063715018a61461033157600080fd5b806306fdde0314610176578063095ea7b3146101bc57806318160ddd146101ec57806323b872dd1461020f5780632dc0562d1461022f578063313ce5671461026757600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600b81526a15da5e985c990811da599d60aa1b60208201525b6040516101b391906115ca565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004611634565b6104f3565b60405190151581526020016101b3565b3480156101f857600080fd5b5061020161050a565b6040519081526020016101b3565b34801561021b57600080fd5b506101dc61022a36600461165e565b61052a565b34801561023b57600080fd5b5060125461024f906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561027357600080fd5b50604051601281526020016101b3565b34801561028f57600080fd5b506102a361029e36600461169a565b6105c4565b005b3480156102b157600080fd5b5060135461024f906001600160a01b031681565b3480156102d157600080fd5b50610201600f5481565b3480156102e757600080fd5b506102a36102f63660046116b3565b6105fc565b34801561030757600080fd5b506102016103163660046116d5565b6001600160a01b031660009081526001602052604090205490565b34801561033d57600080fd5b506102a3610631565b34801561035257600080fd5b506102a36106a5565b34801561036757600080fd5b5061020160075481565b34801561037d57600080fd5b506000546001600160a01b031661024f565b34801561039b57600080fd5b5061024f6103aa36600461169a565b6106ed565b3480156103bb57600080fd5b506040805180820190915260078152660915d25690549160ca1b60208201526101a6565b3480156103eb57600080fd5b506102a361070d565b34801561040057600080fd5b506101dc61040f366004611634565b610749565b34801561042057600080fd5b50610201600d5481565b34801561043657600080fd5b506102a36104453660046117cd565b610756565b34801561045657600080fd5b506006546104649060000b81565b60405160009190910b81526020016101b3565b34801561048357600080fd5b5061020160105481565b34801561049957600080fd5b506102016104a836600461188d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104df57600080fd5b506102a36104ee3660046116d5565b610923565b60006105003384846109ee565b5060015b92915050565b60006105186012600a6119ba565b61052590620186a06119c9565b905090565b6000610537848484610ab2565b6105ba84336105b5856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006105943390565b6001600160a01b03168152602081019190915260400160002054919061103f565b6109ee565b5060019392505050565b6000546001600160a01b031633146105f75760405162461bcd60e51b81526004016105ee906119e0565b60405180910390fd5b601555565b6000546001600160a01b031633146106265760405162461bcd60e51b81526004016105ee906119e0565b600f91909155601055565b6000546001600160a01b0316331461065b5760405162461bcd60e51b81526004016105ee906119e0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106cf5760405162461bcd60e51b81526004016105ee906119e0565b6106db6012600a6119ba565b6106e890620186a06119c9565b600d55565b600881600381106106fd57600080fd5b01546001600160a01b0316905081565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610746573d6000803e3d6000fd5b50565b6000610500338484610ab2565b6000546001600160a01b031633146107805760405162461bcd60e51b81526004016105ee906119e0565b6000805b83518110156108f25782818151811061079f5761079f611a17565b6020026020010151826107b29190611a2d565b91508281815181106107c6576107c6611a17565b6020026020010151600160008684815181106107e4576107e4611a17565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600584828151811061082457610824611a17565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835184908290811061087357610873611a17565b60200260200101516001600160a01b0316306001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8584815181106108c1576108c1611a17565b60200260200101516040516108d891815260200190565b60405180910390a3806108ea81611a40565b915050610784565b503060009081526001602052604090205461090e908290611a59565b30600090815260016020526040902055505050565b6000546001600160a01b0316331461094d5760405162461bcd60e51b81526004016105ee906119e0565b6001600160a01b0381166109a35760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016105ee565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610a0e57506001600160a01b03821615155b610a515760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016105ee565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b005760405162461bcd60e51b81526020600482015260156024820152747472616e73666572207a65726f206164647265737360581b60448201526064016105ee565b6001600160a01b03831660009081526004602052604090205460ff1680610b3f57506001600160a01b03821660009081526004602052604090205460ff165b15610b4e576000600e55610f34565b60165460ff16610b5d57600080fd5b6001600160a01b03831660009081526003602052604090205460ff16158015610b9f57506001600160a01b03821660009081526003602052604090205460ff16155b8015610bb95750601554601454610bb69190611a2d565b43105b15610bc8576063600e55610d34565b6013546001600160a01b0390811690841603610c5357600d5481610c01846001600160a01b031660009081526001602052604090205490565b610c0b9190611a2d565b1115610c485760405162461bcd60e51b815260206004820152600c60248201526b4d617857616c6c657420322560a01b60448201526064016105ee565b600f54600e55610d34565b6013546001600160a01b0390811690831603610d2e573060009081526001602052604090205460146064610c896012600a6119ba565b610c9690620186a06119c9565b610ca09190611a82565b610caa9190611a82565b81118015610cc05750601654610100900460ff16155b15610d22576064610cd36012600a6119ba565b610ce090620186a06119c9565b610cea9190611a82565b811115610d19576064610cff6012600a6119ba565b610d0c90620186a06119c9565b610d169190611a82565b90505b610d2281611079565b50601054600e55610d34565b6000600e555b6001600160a01b038216600090815260016020526040902054158015610d5a5750600081115b8015610d6f57506001600160a01b0382163014155b8015610d8957506013546001600160a01b03838116911614155b15610dda57600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384161790555b60065460000b600019148015610df75750662386f26fc100004710155b8015610e0557506007544210155b15610e1757610e126111a9565b610f34565b60065460000b158015610e2c57506007544210155b15610e3957610e12611327565b60065460000b6001148015610e5057506007544210155b15610f34576000670de0b6b3a76400004711610e6c5747610e76565b670de0b6b3a76400005b600b549091506001600160a01b038581169116148015610ebc5750600c54600b546001600160a01b0316600090815260016020526040902054610eba908490611a59565b105b15610f2957600b546040518281526001600160a01b03909116907fd9bac25f65e37ef09c6cfcfa938c780b9f43751a603c31398447b43f301ead2a9060200160405180910390a2426007556006805460ff191660ff179055600b80546001600160a01b03191661dead1790555b610f3281611468565b505b60006064600e5483610f4691906119c9565b610f509190611a82565b90506000610f5e8284611a59565b6001600160a01b038616600090815260016020526040902054909150610f85908490611a59565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610fb5908290611a2d565b6001600160a01b038516600090815260016020526040808220929092553081522054610fe2908390611a2d565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156110635760405162461bcd60e51b81526004016105ee91906115ca565b5060006110708486611a59565b95945050505050565b6016805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110bd576110bd611a17565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061110557611105611a17565b6001600160a01b03928316602091820292909201015260115461112b91309116846109ee565b60115460125460405163791ac94760e01b81526001600160a01b039283169263791ac9479261116892879260009288929116904290600401611a96565b600060405180830381600087803b15801561118257600080fd5b505af1158015611196573d6000803e3d6000fd5b50506016805461ff001916905550505050565b60005b60038110156112c657600554600090425a60408051602081019390935282015233606090811b6bffffffffffffffffffffffff1916908201526074016040516020818303038152906040528051906020012060001c61120b9190611b07565b905060006005828154811061122257611222611a17565b6000918252602090912001546001600160a01b031690506103e86112486012600a6119ba565b61125590620186a06119c9565b61125f9190611a82565b6001600160a01b03821660009081526001602052604090205411156112bf57806008846003811061129257611292611a17565b0180546001600160a01b0319166001600160a01b0392909216919091179055826112bb81611a40565b9350505b50506111ac565b600a546009546008546040516001600160a01b039384169392831692909116907f172ce5afa5a77b19be99c4a19fad14861a37d7328c974eb8fa5384beba393c0190600090a46006805460ff19169055611321426078611a2d565b60075550565b6008546001600160a01b0316600081815260016020819052604090912054905b60038110156113f25781600160006008846003811061136857611368611a17565b01546001600160a01b0316815260208101919091526040016000205411156113e05760016000600883600381106113a1576113a1611a17565b01546001600160a01b031681526020810191909152604001600020549150600881600381106113d2576113d2611a17565b01546001600160a01b031692505b806113ea81611a40565b915050611347565b506006805460ff1916600117905561140b42603c611a2d565b600755600c819055600b80546001600160a01b0319166001600160a01b0384169081179091556040518281527f9c2270628a9b29d30ae96b6c4c14ed646ee134febdce38a5b77f2bde9cea2e209060200160405180910390a25050565b6006805460ff191660ff179055600c54600b546001600160a01b03166000908152600160205260409020541061155e57600b546040516000916001600160a01b03169083156108fc0290849084818181858888f193505050509050801561151057600b546040518381526001600160a01b03909116907f2cf65c2800edffbfd8d2e3a38d0fb4c3edcbd21cbe92d00dc6777ab1cc3f77ab9060200160405180910390a2611549565b600b546040516001600160a01b03909116907f14f2c244d0a4f2712aeed1b336599cdb266e4d16bc71d4dc079b8e57e852e6dd90600090a25b61155542610e10611a2d565b600755506115a5565b600b546040518281526001600160a01b03909116907fd9bac25f65e37ef09c6cfcfa938c780b9f43751a603c31398447b43f301ead2a9060200160405180910390a2426007555b50601254600b80546001600160a01b0319166001600160a01b03909216919091179055565b600060208083528351808285015260005b818110156115f7578581018301518582016040015282016115db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461162f57600080fd5b919050565b6000806040838503121561164757600080fd5b61165083611618565b946020939093013593505050565b60008060006060848603121561167357600080fd5b61167c84611618565b925061168a60208501611618565b9150604084013590509250925092565b6000602082840312156116ac57600080fd5b5035919050565b600080604083850312156116c657600080fd5b50508035926020909101359150565b6000602082840312156116e757600080fd5b6116f082611618565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611736576117366116f7565b604052919050565b600067ffffffffffffffff821115611758576117586116f7565b5060051b60200190565b600082601f83011261177357600080fd5b813560206117886117838361173e565b61170d565b82815260059290921b840181019181810190868411156117a757600080fd5b8286015b848110156117c257803583529183019183016117ab565b509695505050505050565b600080604083850312156117e057600080fd5b823567ffffffffffffffff808211156117f857600080fd5b818501915085601f83011261180c57600080fd5b8135602061181c6117838361173e565b82815260059290921b8401810191818101908984111561183b57600080fd5b948201945b838610156118605761185186611618565b82529482019490820190611840565b9650508601359250508082111561187657600080fd5b5061188385828601611762565b9150509250929050565b600080604083850312156118a057600080fd5b6118a983611618565b91506118b760208401611618565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119115781600019048211156118f7576118f76118c0565b8085161561190457918102915b93841c93908002906118db565b509250929050565b60008261192857506001610504565b8161193557506000610504565b816001811461194b576002811461195557611971565b6001915050610504565b60ff841115611966576119666118c0565b50506001821b610504565b5060208310610133831016604e8410600b8410161715611994575081810a610504565b61199e83836118d6565b80600019048211156119b2576119b26118c0565b029392505050565b60006116f060ff841683611919565b8082028115828204841417610504576105046118c0565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b80820180821115610504576105046118c0565b600060018201611a5257611a526118c0565b5060010190565b81810381811115610504576105046118c0565b634e487b7160e01b600052601260045260246000fd5b600082611a9157611a91611a6c565b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ae65784516001600160a01b031683529383019391830191600101611ac1565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b1657611b16611a6c565b50069056fea2646970667358221220d0b6ff81fa9e51bdfa6eb3a0b494dd56620b7ead29154e879d0353b105dbbf0764736f6c63430008120033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d1578063a9059cbb1161008a578063bc2de06c11610064578063bc2de06c1461044a578063cc1776d314610477578063dd62ed3e1461048d578063f2fde38b146104d357600080fd5b8063a9059cbb146103f4578063aa4bde2814610414578063ac95267e1461042a57600080fd5b8063751039fc1461034657806388c9cb3c1461035b5780638da5cb5b146103715780639229cca91461038f57806395d89b41146103af5780639e918956146103df57600080fd5b806349404e571161012357806349404e571461028357806349bd5a5e146102a55780634f7041a5146102c5578063667f6526146102db57806370a08231146102fb578063715018a61461033157600080fd5b806306fdde0314610176578063095ea7b3146101bc57806318160ddd146101ec57806323b872dd1461020f5780632dc0562d1461022f578063313ce5671461026757600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600b81526a15da5e985c990811da599d60aa1b60208201525b6040516101b391906115ca565b60405180910390f35b3480156101c857600080fd5b506101dc6101d7366004611634565b6104f3565b60405190151581526020016101b3565b3480156101f857600080fd5b5061020161050a565b6040519081526020016101b3565b34801561021b57600080fd5b506101dc61022a36600461165e565b61052a565b34801561023b57600080fd5b5060125461024f906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b34801561027357600080fd5b50604051601281526020016101b3565b34801561028f57600080fd5b506102a361029e36600461169a565b6105c4565b005b3480156102b157600080fd5b5060135461024f906001600160a01b031681565b3480156102d157600080fd5b50610201600f5481565b3480156102e757600080fd5b506102a36102f63660046116b3565b6105fc565b34801561030757600080fd5b506102016103163660046116d5565b6001600160a01b031660009081526001602052604090205490565b34801561033d57600080fd5b506102a3610631565b34801561035257600080fd5b506102a36106a5565b34801561036757600080fd5b5061020160075481565b34801561037d57600080fd5b506000546001600160a01b031661024f565b34801561039b57600080fd5b5061024f6103aa36600461169a565b6106ed565b3480156103bb57600080fd5b506040805180820190915260078152660915d25690549160ca1b60208201526101a6565b3480156103eb57600080fd5b506102a361070d565b34801561040057600080fd5b506101dc61040f366004611634565b610749565b34801561042057600080fd5b50610201600d5481565b34801561043657600080fd5b506102a36104453660046117cd565b610756565b34801561045657600080fd5b506006546104649060000b81565b60405160009190910b81526020016101b3565b34801561048357600080fd5b5061020160105481565b34801561049957600080fd5b506102016104a836600461188d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104df57600080fd5b506102a36104ee3660046116d5565b610923565b60006105003384846109ee565b5060015b92915050565b60006105186012600a6119ba565b61052590620186a06119c9565b905090565b6000610537848484610ab2565b6105ba84336105b5856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006105943390565b6001600160a01b03168152602081019190915260400160002054919061103f565b6109ee565b5060019392505050565b6000546001600160a01b031633146105f75760405162461bcd60e51b81526004016105ee906119e0565b60405180910390fd5b601555565b6000546001600160a01b031633146106265760405162461bcd60e51b81526004016105ee906119e0565b600f91909155601055565b6000546001600160a01b0316331461065b5760405162461bcd60e51b81526004016105ee906119e0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106cf5760405162461bcd60e51b81526004016105ee906119e0565b6106db6012600a6119ba565b6106e890620186a06119c9565b600d55565b600881600381106106fd57600080fd5b01546001600160a01b0316905081565b6012546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610746573d6000803e3d6000fd5b50565b6000610500338484610ab2565b6000546001600160a01b031633146107805760405162461bcd60e51b81526004016105ee906119e0565b6000805b83518110156108f25782818151811061079f5761079f611a17565b6020026020010151826107b29190611a2d565b91508281815181106107c6576107c6611a17565b6020026020010151600160008684815181106107e4576107e4611a17565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550600584828151811061082457610824611a17565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b03909216919091179055835184908290811061087357610873611a17565b60200260200101516001600160a01b0316306001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8584815181106108c1576108c1611a17565b60200260200101516040516108d891815260200190565b60405180910390a3806108ea81611a40565b915050610784565b503060009081526001602052604090205461090e908290611a59565b30600090815260016020526040902055505050565b6000546001600160a01b0316331461094d5760405162461bcd60e51b81526004016105ee906119e0565b6001600160a01b0381166109a35760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016105ee565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610a0e57506001600160a01b03821615155b610a515760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016105ee565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b005760405162461bcd60e51b81526020600482015260156024820152747472616e73666572207a65726f206164647265737360581b60448201526064016105ee565b6001600160a01b03831660009081526004602052604090205460ff1680610b3f57506001600160a01b03821660009081526004602052604090205460ff165b15610b4e576000600e55610f34565b60165460ff16610b5d57600080fd5b6001600160a01b03831660009081526003602052604090205460ff16158015610b9f57506001600160a01b03821660009081526003602052604090205460ff16155b8015610bb95750601554601454610bb69190611a2d565b43105b15610bc8576063600e55610d34565b6013546001600160a01b0390811690841603610c5357600d5481610c01846001600160a01b031660009081526001602052604090205490565b610c0b9190611a2d565b1115610c485760405162461bcd60e51b815260206004820152600c60248201526b4d617857616c6c657420322560a01b60448201526064016105ee565b600f54600e55610d34565b6013546001600160a01b0390811690831603610d2e573060009081526001602052604090205460146064610c896012600a6119ba565b610c9690620186a06119c9565b610ca09190611a82565b610caa9190611a82565b81118015610cc05750601654610100900460ff16155b15610d22576064610cd36012600a6119ba565b610ce090620186a06119c9565b610cea9190611a82565b811115610d19576064610cff6012600a6119ba565b610d0c90620186a06119c9565b610d169190611a82565b90505b610d2281611079565b50601054600e55610d34565b6000600e555b6001600160a01b038216600090815260016020526040902054158015610d5a5750600081115b8015610d6f57506001600160a01b0382163014155b8015610d8957506013546001600160a01b03838116911614155b15610dda57600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0384161790555b60065460000b600019148015610df75750662386f26fc100004710155b8015610e0557506007544210155b15610e1757610e126111a9565b610f34565b60065460000b158015610e2c57506007544210155b15610e3957610e12611327565b60065460000b6001148015610e5057506007544210155b15610f34576000670de0b6b3a76400004711610e6c5747610e76565b670de0b6b3a76400005b600b549091506001600160a01b038581169116148015610ebc5750600c54600b546001600160a01b0316600090815260016020526040902054610eba908490611a59565b105b15610f2957600b546040518281526001600160a01b03909116907fd9bac25f65e37ef09c6cfcfa938c780b9f43751a603c31398447b43f301ead2a9060200160405180910390a2426007556006805460ff191660ff179055600b80546001600160a01b03191661dead1790555b610f3281611468565b505b60006064600e5483610f4691906119c9565b610f509190611a82565b90506000610f5e8284611a59565b6001600160a01b038616600090815260016020526040902054909150610f85908490611a59565b6001600160a01b038087166000908152600160205260408082209390935590861681522054610fb5908290611a2d565b6001600160a01b038516600090815260016020526040808220929092553081522054610fe2908390611a2d565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b600081848411156110635760405162461bcd60e51b81526004016105ee91906115ca565b5060006110708486611a59565b95945050505050565b6016805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106110bd576110bd611a17565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061110557611105611a17565b6001600160a01b03928316602091820292909201015260115461112b91309116846109ee565b60115460125460405163791ac94760e01b81526001600160a01b039283169263791ac9479261116892879260009288929116904290600401611a96565b600060405180830381600087803b15801561118257600080fd5b505af1158015611196573d6000803e3d6000fd5b50506016805461ff001916905550505050565b60005b60038110156112c657600554600090425a60408051602081019390935282015233606090811b6bffffffffffffffffffffffff1916908201526074016040516020818303038152906040528051906020012060001c61120b9190611b07565b905060006005828154811061122257611222611a17565b6000918252602090912001546001600160a01b031690506103e86112486012600a6119ba565b61125590620186a06119c9565b61125f9190611a82565b6001600160a01b03821660009081526001602052604090205411156112bf57806008846003811061129257611292611a17565b0180546001600160a01b0319166001600160a01b0392909216919091179055826112bb81611a40565b9350505b50506111ac565b600a546009546008546040516001600160a01b039384169392831692909116907f172ce5afa5a77b19be99c4a19fad14861a37d7328c974eb8fa5384beba393c0190600090a46006805460ff19169055611321426078611a2d565b60075550565b6008546001600160a01b0316600081815260016020819052604090912054905b60038110156113f25781600160006008846003811061136857611368611a17565b01546001600160a01b0316815260208101919091526040016000205411156113e05760016000600883600381106113a1576113a1611a17565b01546001600160a01b031681526020810191909152604001600020549150600881600381106113d2576113d2611a17565b01546001600160a01b031692505b806113ea81611a40565b915050611347565b506006805460ff1916600117905561140b42603c611a2d565b600755600c819055600b80546001600160a01b0319166001600160a01b0384169081179091556040518281527f9c2270628a9b29d30ae96b6c4c14ed646ee134febdce38a5b77f2bde9cea2e209060200160405180910390a25050565b6006805460ff191660ff179055600c54600b546001600160a01b03166000908152600160205260409020541061155e57600b546040516000916001600160a01b03169083156108fc0290849084818181858888f193505050509050801561151057600b546040518381526001600160a01b03909116907f2cf65c2800edffbfd8d2e3a38d0fb4c3edcbd21cbe92d00dc6777ab1cc3f77ab9060200160405180910390a2611549565b600b546040516001600160a01b03909116907f14f2c244d0a4f2712aeed1b336599cdb266e4d16bc71d4dc079b8e57e852e6dd90600090a25b61155542610e10611a2d565b600755506115a5565b600b546040518281526001600160a01b03909116907fd9bac25f65e37ef09c6cfcfa938c780b9f43751a603c31398447b43f301ead2a9060200160405180910390a2426007555b50601254600b80546001600160a01b0319166001600160a01b03909216919091179055565b600060208083528351808285015260005b818110156115f7578581018301518582016040015282016115db565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461162f57600080fd5b919050565b6000806040838503121561164757600080fd5b61165083611618565b946020939093013593505050565b60008060006060848603121561167357600080fd5b61167c84611618565b925061168a60208501611618565b9150604084013590509250925092565b6000602082840312156116ac57600080fd5b5035919050565b600080604083850312156116c657600080fd5b50508035926020909101359150565b6000602082840312156116e757600080fd5b6116f082611618565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611736576117366116f7565b604052919050565b600067ffffffffffffffff821115611758576117586116f7565b5060051b60200190565b600082601f83011261177357600080fd5b813560206117886117838361173e565b61170d565b82815260059290921b840181019181810190868411156117a757600080fd5b8286015b848110156117c257803583529183019183016117ab565b509695505050505050565b600080604083850312156117e057600080fd5b823567ffffffffffffffff808211156117f857600080fd5b818501915085601f83011261180c57600080fd5b8135602061181c6117838361173e565b82815260059290921b8401810191818101908984111561183b57600080fd5b948201945b838610156118605761185186611618565b82529482019490820190611840565b9650508601359250508082111561187657600080fd5b5061188385828601611762565b9150509250929050565b600080604083850312156118a057600080fd5b6118a983611618565b91506118b760208401611618565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156119115781600019048211156118f7576118f76118c0565b8085161561190457918102915b93841c93908002906118db565b509250929050565b60008261192857506001610504565b8161193557506000610504565b816001811461194b576002811461195557611971565b6001915050610504565b60ff841115611966576119666118c0565b50506001821b610504565b5060208310610133831016604e8410600b8410161715611994575081810a610504565b61199e83836118d6565b80600019048211156119b2576119b26118c0565b029392505050565b60006116f060ff841683611919565b8082028115828204841417610504576105046118c0565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b80820180821115610504576105046118c0565b600060018201611a5257611a526118c0565b5060010190565b81810381811115610504576105046118c0565b634e487b7160e01b600052601260045260246000fd5b600082611a9157611a91611a6c565b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ae65784516001600160a01b031683529383019391830191600101611ac1565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b1657611b16611a6c565b50069056fea2646970667358221220d0b6ff81fa9e51bdfa6eb3a0b494dd56620b7ead29154e879d0353b105dbbf0764736f6c63430008120033

Deployed Bytecode Sourcemap

3540:10437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6403:83;;;;;;;;;;-1:-1:-1;6473:5:0;;;;;;;;;;;;-1:-1:-1;;;6473:5:0;;;;6403:83;;;;;;;:::i;:::-;;;;;;;;7237:160;;;;;;;;;;-1:-1:-1;7237:160:0;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;7237:160:0;1004:187:1;6680:100:0;;;;;;;;;;;;;:::i;:::-;;;1342:25:1;;;1330:2;1315:18;6680:100:0;1196:177:1;7509:283:0;;;;;;;;;;-1:-1:-1;7509:283:0;;;;;:::i;:::-;;:::i;4730:86::-;;;;;;;;;;-1:-1:-1;4730:86:0;;;;-1:-1:-1;;;;;4730:86:0;;;;;;-1:-1:-1;;;;;1891:32:1;;;1873:51;;1861:2;1846:18;4730:86:0;1711:219:1;6589:83:0;;;;;;;;;;-1:-1:-1;6589:83:0;;3910:2;2077:36:1;;2065:2;2050:18;6589:83:0;1935:184:1;7406:95:0;;;;;;;;;;-1:-1:-1;7406:95:0;;;;;:::i;:::-;;:::i;:::-;;4823:28;;;;;;;;;;-1:-1:-1;4823:28:0;;;;-1:-1:-1;;;;;4823:28:0;;;4443:26;;;;;;;;;;;;;;;;13181:142;;;;;;;;;;-1:-1:-1;13181:142:0;;;;;:::i;:::-;;:::i;6788:118::-;;;;;;;;;;-1:-1:-1;6788:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6881:17:0;6854:7;6881:17;;;:8;:17;;;;;;;6788:118;2191:148;;;;;;;;;;;;;:::i;13081:92::-;;;;;;;;;;;;;:::i;4062:24::-;;;;;;;;;;;;;;;;1751:79;;;;;;;;;;-1:-1:-1;1789:7:0;1816:6;-1:-1:-1;;;;;1816:6:0;1751:79;;4093:30;;;;;;;;;;-1:-1:-1;4093:30:0;;;;;:::i;:::-;;:::i;6494:87::-;;;;;;;;;;-1:-1:-1;6566:7:0;;;;;;;;;;;;-1:-1:-1;;;6566:7:0;;;;6494:87;;13838:99;;;;;;;;;;;;;:::i;6914:165::-;;;;;;;;;;-1:-1:-1;6914:165:0;;;;;:::i;:::-;;:::i;4339:47::-;;;;;;;;;;;;;;;;5944:451;;;;;;;;;;-1:-1:-1;5944:451:0;;;;;:::i;:::-;;:::i;4022:33::-;;;;;;;;;;-1:-1:-1;4022:33:0;;;;;;;;;;;5465:4:1;5537:21;;;;5519:40;;5507:2;5492:18;4022:33:0;5379:186:1;4476:27:0;;;;;;;;;;;;;;;;7087:142;;;;;;;;;;-1:-1:-1;7087:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;7194:18:0;;;7168:7;7194:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7087:142;1956:227;;;;;;;;;;-1:-1:-1;1956:227:0;;;;;:::i;:::-;;:::i;7237:160::-;7312:4;7328:39;280:10;7351:7;7360:6;7328:8;:39::i;:::-;-1:-1:-1;7385:4:0;7237:160;;;;;:::o;6680:100::-;6733:7;3968:13;3910:2;3968;:13;:::i;:::-;3959:22;;:6;:22;:::i;:::-;6753:19;;6680:100;:::o;7509:283::-;7607:4;7624:36;7634:6;7642:9;7653:6;7624:9;:36::i;:::-;7671:91;7680:6;280:10;7700:61;7738:6;7700:61;;;;;;;;;;;;;-1:-1:-1;;;7700:61:0;;;:11;:19;7712:6;-1:-1:-1;;;;;7700:19:0;-1:-1:-1;;;;;7700:19:0;;;;;;;;;;;;:33;7720:12;280:10;;200:98;7720:12;-1:-1:-1;;;;;7700:33:0;;;;;;;;;;;;-1:-1:-1;7700:33:0;;;:61;:37;:61::i;:::-;7671:8;:91::i;:::-;-1:-1:-1;7780:4:0;7509:283;;;;;:::o;7406:95::-;1878:6;;-1:-1:-1;;;;;1878:6:0;280:10;1878:22;1870:58;;;;-1:-1:-1;;;1870:58:0;;;;;;;:::i;:::-;;;;;;;;;7470:11:::1;:22:::0;7406:95::o;13181:142::-;1878:6;;-1:-1:-1;;;;;1878:6:0;280:10;1878:22;1870:58;;;;-1:-1:-1;;;1870:58:0;;;;;;;:::i;:::-;13266:6:::1;:18:::0;;;;13295:7:::1;:20:::0;13181:142::o;2191:148::-;1878:6;;-1:-1:-1;;;;;1878:6:0;280:10;1878:22;1870:58;;;;-1:-1:-1;;;1870:58:0;;;;;;;:::i;:::-;2298:1:::1;2282:6:::0;;2261:40:::1;::::0;-1:-1:-1;;;;;2282:6:0;;::::1;::::0;2261:40:::1;::::0;2298:1;;2261:40:::1;2329:1;2312:19:::0;;-1:-1:-1;;;;;;2312:19:0::1;::::0;;2191:148::o;13081:92::-;1878:6;;-1:-1:-1;;;;;1878:6:0;280:10;1878:22;1870:58;;;;-1:-1:-1;;;1870:58:0;;;;;;;:::i;:::-;3968:13:::1;3910:2;3968;:13;:::i;:::-;3959:22;::::0;:6:::1;:22;:::i;:::-;13135:15;:30:::0;13081:92::o;4093:30::-;;;;;;;;;;;;;;-1:-1:-1;;;;;4093:30:0;;-1:-1:-1;4093:30:0;:::o;13838:99::-;13888:9;;:41;;-1:-1:-1;;;;;13888:9:0;;;;13907:21;13888:41;;;;;:9;:41;:9;:41;13907:21;13888:9;:41;;;;;;;;;;;;;;;;;;;;;13838:99::o;6914:165::-;6991:4;7007:42;280:10;7031:9;7042:6;7007:9;:42::i;5944:451::-;1878:6;;-1:-1:-1;;;;;1878:6:0;280:10;1878:22;1870:58;;;;-1:-1:-1;;;1870:58:0;;;;;;;:::i;:::-;6046:14:::1;::::0;6072:247:::1;6096:7;:14;6092:1;:18;6072:247;;;6142:7;6150:1;6142:10;;;;;;;;:::i;:::-;;;;;;;6132:20;;;;;:::i;:::-;;;6191:7;6199:1;6191:10;;;;;;;;:::i;:::-;;;;;;;6167:8;:20;6176:7;6184:1;6176:10;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;6167:20:0::1;-1:-1:-1::0;;;;;6167:20:0::1;;;;;;;;;;;;:34;;;;6216:7;6229;6237:1;6229:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;6216:24;;::::1;::::0;::::1;::::0;;-1:-1:-1;6216:24:0;;;;;;;::::1;::::0;;-1:-1:-1;;;;;;6216:24:0::1;-1:-1:-1::0;;;;;6216:24:0;;::::1;::::0;;;::::1;::::0;;6284:10;;;;6292:1;;6284:10;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;6260:47:0::1;6277:4;-1:-1:-1::0;;;;;6260:47:0::1;;6296:7;6304:1;6296:10;;;;;;;;:::i;:::-;;;;;;;6260:47;;;;1342:25:1::0;;1330:2;1315:18;;1196:177;6260:47:0::1;;;;;;;;6112:3:::0;::::1;::::0;::::1;:::i;:::-;;;;6072:247;;;-1:-1:-1::0;6372:4:0::1;6355:23;::::0;;;:8:::1;:23;::::0;;;;;:32:::1;::::0;6381:6;;6355:32:::1;:::i;:::-;6346:4;6329:23;::::0;;;:8:::1;:23;::::0;;;;:58;-1:-1:-1;;;5944:451:0:o;1956:227::-;1878:6;;-1:-1:-1;;;;;1878:6:0;280:10;1878:22;1870:58;;;;-1:-1:-1;;;1870:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2037:22:0;::::1;2029:64;;;::::0;-1:-1:-1;;;2029:64:0;;8612:2:1;2029:64:0::1;::::0;::::1;8594:21:1::0;8651:2;8631:18;;;8624:30;8690:31;8670:18;;;8663:59;8739:18;;2029:64:0::1;8410:353:1::0;2029:64:0::1;2104:6;:17:::0;;-1:-1:-1;;;;;;2104:17:0::1;-1:-1:-1::0;;;;;2104:17:0;::::1;::::0;;::::1;::::0;;2137:38:::1;::::0;2104:17;;;;2137:38:::1;::::0;2104:6;2137:38:::1;1956:227:::0;:::o;7800:265::-;-1:-1:-1;;;;;7893:19:0;;;;;;:44;;-1:-1:-1;;;;;;7916:21:0;;;;7893:44;7885:77;;;;-1:-1:-1;;;7885:77:0;;8970:2:1;7885:77:0;;;8952:21:1;9009:2;8989:18;;;8982:30;-1:-1:-1;;;9028:18:1;;;9021:50;9088:18;;7885:77:0;8768:344:1;7885:77:0;-1:-1:-1;;;;;7973:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8025:32;;1342:25:1;;;8025:32:0;;1315:18:1;8025:32:0;;;;;;;7800:265;;;:::o;8073:2813::-;-1:-1:-1;;;;;8161:18:0;;8153:52;;;;-1:-1:-1;;;8153:52:0;;9319:2:1;8153:52:0;;;9301:21:1;9358:2;9338:18;;;9331:30;-1:-1:-1;;;9377:18:1;;;9370:51;9438:18;;8153:52:0;9117:345:1;8153:52:0;-1:-1:-1;;;;;8221:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8249:22:0;;;;;;:18;:22;;;;;;;;8221:50;8218:2313;;;8294:1;8287:4;:8;8218:2313;;;8335:6;;;;8327:15;;;;;;-1:-1:-1;;;;;8366:30:0;;;;;;:24;:30;;;;;;;;8365:31;:64;;;;-1:-1:-1;;;;;;8401:28:0;;;;;;:24;:28;;;;;;;;8400:29;8365:64;:103;;;;;8457:11;;8446:10;;:22;;;;:::i;:::-;8433:12;:35;8365:103;8361:906;;;8475:2;8470:4;:7;8361:906;;;8520:13;;-1:-1:-1;;;;;8520:13:0;;;8512:21;;;;8508:740;;8596:15;;8586:6;8570:13;8580:2;-1:-1:-1;;;;;6881:17:0;6854:7;6881:17;;;:8;:17;;;;;;;6788:118;8570:13;:22;;;;:::i;:::-;:41;;8562:66;;;;-1:-1:-1;;;8562:66:0;;9669:2:1;8562:66:0;;;9651:21:1;9708:2;9688:18;;;9681:30;-1:-1:-1;;;9727:18:1;;;9720:42;9779:18;;8562:66:0;9467:336:1;8562:66:0;8662:6;;8655:4;:13;8508:740;;;8708:13;;-1:-1:-1;;;;;8708:13:0;;;8702:19;;;;8698:550;;8791:4;8750:20;6881:17;;;:8;:17;;;;;;5018:2;4322:3;3968:13;3910:2;3968;:13;:::i;:::-;3959:22;;:6;:22;:::i;:::-;4307:18;;;;:::i;:::-;5005:15;;;;:::i;:::-;8828:12;:22;:43;;;;-1:-1:-1;8855:16:0;;;;;;;8854:17;8828:43;8824:295;;;4322:3;3968:13;3910:2;3968;:13;:::i;:::-;3959:22;;:6;:22;:::i;:::-;4307:18;;;;:::i;:::-;8908:12;:25;8904:123;;;4322:3;3968:13;3910:2;3968;:13;:::i;:::-;3959:22;;:6;:22;:::i;:::-;4307:18;;;;:::i;:::-;8970:25;;8904:123;9057:30;9074:12;9057:16;:30::i;:::-;-1:-1:-1;9152:7:0;;9145:4;:14;8698:550;;;9223:1;9216:4;:8;8698:550;-1:-1:-1;;;;;9284:12:0;;;;;;:8;:12;;;;;;:17;:31;;;;;9314:1;9305:6;:10;9284:31;:54;;;;-1:-1:-1;;;;;;9319:19:0;;9333:4;9319:19;;9284:54;:77;;;;-1:-1:-1;9348:13:0;;-1:-1:-1;;;;;9342:19:0;;;9348:13;;9342:19;;9284:77;9281:132;;;9381:7;:16;;;;;;;-1:-1:-1;9381:16:0;;;;;;;;-1:-1:-1;;;;;;9381:16:0;-1:-1:-1;;;;;9381:16:0;;;;;9281:132;9745:16;;;;-1:-1:-1;;9745:22:0;:61;;;;;9796:10;9771:21;:35;;9745:61;:89;;;;;9829:5;;9810:15;:24;;9745:89;9742:778;;;9854:17;:15;:17::i;:::-;9742:778;;;9895:16;;;;:21;:49;;;;;9939:5;;9920:15;:24;;9895:49;9892:628;;;9964:14;:12;:14::i;9892:628::-;10003:16;;;;;:21;:49;;;;;10047:5;;10028:15;:24;;10003:49;9999:521;;;10072:17;10117:7;10093:21;:31;:65;;10137:21;10093:65;;;10127:7;10093:65;10188:6;;10072:86;;-1:-1:-1;;;;;;10180:14:0;;;10188:6;;10180:14;:65;;;;-1:-1:-1;10225:19:0;;10208:6;;-1:-1:-1;;;;;10208:6:0;10199:16;;;;:8;:16;;;;;;:23;;10216:6;;10199:23;:::i;:::-;:45;10180:65;10177:284;;;10286:6;;10275:29;;1342:25:1;;;-1:-1:-1;;;;;10286:6:0;;;;10275:29;;1330:2:1;1315:18;10275:29:0;;;;;;;10335:15;10327:5;:23;10373:16;:21;;-1:-1:-1;;10373:21:0;;;;;10417:6;:24;;-1:-1:-1;;;;;;10417:24:0;10434:6;10417:24;;;10177:284;10479:25;10494:9;10479:14;:25::i;:::-;10053:467;9999:521;10551:17;10589:3;10581:4;;10572:6;:13;;;;:::i;:::-;10571:21;;;;:::i;:::-;10551:41;-1:-1:-1;10603:22:0;10628:18;10551:41;10628:6;:18;:::i;:::-;-1:-1:-1;;;;;10676:14:0;;;;;;:8;:14;;;;;;10603:43;;-1:-1:-1;10676:23:0;;10693:6;;10676:23;:::i;:::-;-1:-1:-1;;;;;10659:14:0;;;;;;;:8;:14;;;;;;:40;;;;10725:12;;;;;;;:29;;10740:14;;10725:29;:::i;:::-;-1:-1:-1;;;;;10710:12:0;;;;;;:8;:12;;;;;;:44;;;;10808:4;10791:23;;;;:35;;10817:9;;10791:35;:::i;:::-;10782:4;10765:23;;;;:8;:23;;;;;;;;;:61;;;;10844:34;1342:25:1;;;-1:-1:-1;;;;;10844:34:0;;;;;;;;;;1315:18:1;10844:34:0;;;;;;;8142:2744;;8073:2813;;;:::o;640:190::-;726:7;762:12;754:6;;;;746:29;;;;-1:-1:-1;;;746:29:0;;;;;;;;:::i;:::-;-1:-1:-1;786:9:0;798:5;802:1;798;:5;:::i;:::-;786:17;640:190;-1:-1:-1;;;;;640:190:0:o;13331:499::-;5125:16;:23;;-1:-1:-1;;5125:23:0;;;;;13433:16:::1;::::0;;13447:1:::1;13433:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13433:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13433:16:0::1;13409:40;;13478:4;13460;13465:1;13460:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;13460:23:0::1;;;-1:-1:-1::0;;;;;13460:23:0::1;;;::::0;::::1;13504:42;13494:4;13499:1;13494:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13494:52:0;;::::1;:7;::::0;;::::1;::::0;;;;;:52;13589:15:::1;::::0;13557:62:::1;::::0;13574:4:::1;::::0;13589:15:::1;13607:11:::0;13557:8:::1;:62::i;:::-;13630:15;::::0;13772:9:::1;::::0;13630:192:::1;::::0;-1:-1:-1;;;13630:192:0;;-1:-1:-1;;;;;13630:15:0;;::::1;::::0;:66:::1;::::0;:192:::1;::::0;13711:11;;13630:15:::1;::::0;13753:4;;13772:9;::::1;::::0;13796:15:::1;::::0;13630:192:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5171:16:0;:24;;-1:-1:-1;;5171:24:0;;;-1:-1:-1;;;;13331:499:0:o;11026:632::-;11072:16;11103:387;11123:1;11109:11;:15;11103:387;;;11268:7;:14;11172:13;;11223:15;11240:9;11206:56;;;;;;11243:19:1;;;;11278:12;;11271:28;11251:10:0;11337:2:1;11333:15;;;-1:-1:-1;;11329:53:1;11315:12;;;11308:75;11399:12;;11206:56:0;;;;;;;;;;;;11196:67;;;;;;11188:76;;:95;;;;:::i;:::-;11172:111;;11298:14;11315:7;11323:5;11315:14;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;11315:14:0;;-1:-1:-1;4246:4:0;3968:13;3910:2;3968;:13;:::i;:::-;3959:22;;:6;:22;:::i;:::-;4231:19;;;;:::i;:::-;-1:-1:-1;;;;;11347:16:0;;;;;;:8;:16;;;;;;:29;11344:135;;;11425:6;11397:12;11410:11;11397:25;;;;;;;:::i;:::-;;:34;;-1:-1:-1;;;;;;11397:34:0;-1:-1:-1;;;;;11397:34:0;;;;;;;;;;11450:13;;;;:::i;:::-;;;;11344:135;11125:365;;11103:387;;;11557:15;;11540;;11557:12;11523:15;11507:66;;-1:-1:-1;;;;;11557:15:0;;;;11540;;;;11523;;;;11507:66;;11540:15;;11507:66;11584:16;:20;;-1:-1:-1;;11584:20:0;;;11623:27;:15;11641:9;11623:27;:::i;:::-;11615:5;:35;-1:-1:-1;11026:632:0:o;11751:522::-;11808:12;:15;-1:-1:-1;;;;;11808:15:0;11794:11;11852:13;;;11808:15;11852:13;;;;;;;;;;11882:206;11905:1;11901;:5;11882:206;;;11959:7;11931:8;:25;11940:12;11953:1;11940:15;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;11940:15:0;11931:25;;;;;;;;;;;11940:15;11931:25;;:35;11927:150;;;11996:8;:25;12005:12;12018:1;12005:15;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;12005:15:0;11996:25;;;;;;;;;;;12005:15;11996:25;;;-1:-1:-1;12046:12:0;12059:1;12046:15;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;12046:15:0;;-1:-1:-1;11927:150:0;11908:3;;;;:::i;:::-;;;;11882:206;;;-1:-1:-1;12100:16:0;:20;;-1:-1:-1;;12100:20:0;12119:1;12100:20;;;12139:27;:15;12157:9;12139:27;:::i;:::-;12131:5;:35;12177:19;:29;;;12217:6;:12;;-1:-1:-1;;;;;;12217:12:0;-1:-1:-1;;;;;12217:12:0;;;;;;;;12245:20;;1342:25:1;;;12245:20:0;;1330:2:1;1315:18;12245:20:0;;;;;;;11783:490;;11751:522::o;12502:571::-;12564:16;:21;;-1:-1:-1;;12564:21:0;;;;;12619:19;;12608:6;;-1:-1:-1;;;;;12608:6:0;12564:16;12599;;;12564:21;12599:16;;;;;;:39;12596:441;;12688:6;;12680:31;;12668:9;;-1:-1:-1;;;;;12688:6:0;;12680:31;;;;;12701:9;;12668;12680:31;12668:9;12680:31;12701:9;12688:6;12680:31;;;;;;;12668:43;;12729:4;12726:146;;;12771:6;;12758:31;;1342:25:1;;;-1:-1:-1;;;;;12771:6:0;;;;12758:31;;1330:2:1;1315:18;12758:31:0;;;;;;;12726:146;;;12849:6;;12835:21;;-1:-1:-1;;;;;12849:6:0;;;;12835:21;;12849:6;;12835:21;12726:146;12894:28;:15;12912:10;12894:28;:::i;:::-;12886:5;:36;-1:-1:-1;12596:441:0;;;12969:6;;12958:29;;1342:25:1;;;-1:-1:-1;;;;;12969:6:0;;;;12958:29;;1330:2:1;1315:18;12958:29:0;;;;;;;13010:15;13002:5;:23;12596:441;-1:-1:-1;13056:9:0;;13047:6;:18;;-1:-1:-1;;;;;;13047:18:0;-1:-1:-1;;;;;13056:9:0;;;13047:18;;;;;;12502:571::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;2124:180::-;2183:6;2236:2;2224:9;2215:7;2211:23;2207:32;2204:52;;;2252:1;2249;2242:12;2204:52;-1:-1:-1;2275:23:1;;2124:180;-1:-1:-1;2124:180:1:o;2517:248::-;2585:6;2593;2646:2;2634:9;2625:7;2621:23;2617:32;2614:52;;;2662:1;2659;2652:12;2614:52;-1:-1:-1;;2685:23:1;;;2755:2;2740:18;;;2727:32;;-1:-1:-1;2517:248:1:o;2770:186::-;2829:6;2882:2;2870:9;2861:7;2857:23;2853:32;2850:52;;;2898:1;2895;2888:12;2850:52;2921:29;2940:9;2921:29;:::i;:::-;2911:39;2770:186;-1:-1:-1;;;2770:186:1:o;2961:127::-;3022:10;3017:3;3013:20;3010:1;3003:31;3053:4;3050:1;3043:15;3077:4;3074:1;3067:15;3093:275;3164:2;3158:9;3229:2;3210:13;;-1:-1:-1;;3206:27:1;3194:40;;3264:18;3249:34;;3285:22;;;3246:62;3243:88;;;3311:18;;:::i;:::-;3347:2;3340:22;3093:275;;-1:-1:-1;3093:275:1:o;3373:183::-;3433:4;3466:18;3458:6;3455:30;3452:56;;;3488:18;;:::i;:::-;-1:-1:-1;3533:1:1;3529:14;3545:4;3525:25;;3373:183::o;3561:662::-;3615:5;3668:3;3661:4;3653:6;3649:17;3645:27;3635:55;;3686:1;3683;3676:12;3635:55;3722:6;3709:20;3748:4;3772:60;3788:43;3828:2;3788:43;:::i;:::-;3772:60;:::i;:::-;3866:15;;;3952:1;3948:10;;;;3936:23;;3932:32;;;3897:12;;;;3976:15;;;3973:35;;;4004:1;4001;3994:12;3973:35;4040:2;4032:6;4028:15;4052:142;4068:6;4063:3;4060:15;4052:142;;;4134:17;;4122:30;;4172:12;;;;4085;;4052:142;;;-1:-1:-1;4212:5:1;3561:662;-1:-1:-1;;;;;;3561:662:1:o;4228:1146::-;4346:6;4354;4407:2;4395:9;4386:7;4382:23;4378:32;4375:52;;;4423:1;4420;4413:12;4375:52;4463:9;4450:23;4492:18;4533:2;4525:6;4522:14;4519:34;;;4549:1;4546;4539:12;4519:34;4587:6;4576:9;4572:22;4562:32;;4632:7;4625:4;4621:2;4617:13;4613:27;4603:55;;4654:1;4651;4644:12;4603:55;4690:2;4677:16;4712:4;4736:60;4752:43;4792:2;4752:43;:::i;4736:60::-;4830:15;;;4912:1;4908:10;;;;4900:19;;4896:28;;;4861:12;;;;4936:19;;;4933:39;;;4968:1;4965;4958:12;4933:39;4992:11;;;;5012:148;5028:6;5023:3;5020:15;5012:148;;;5094:23;5113:3;5094:23;:::i;:::-;5082:36;;5045:12;;;;5138;;;;5012:148;;;5179:5;-1:-1:-1;;5222:18:1;;5209:32;;-1:-1:-1;;5253:16:1;;;5250:36;;;5282:1;5279;5272:12;5250:36;;5305:63;5360:7;5349:8;5338:9;5334:24;5305:63;:::i;:::-;5295:73;;;4228:1146;;;;;:::o;5570:260::-;5638:6;5646;5699:2;5687:9;5678:7;5674:23;5670:32;5667:52;;;5715:1;5712;5705:12;5667:52;5738:29;5757:9;5738:29;:::i;:::-;5728:39;;5786:38;5820:2;5809:9;5805:18;5786:38;:::i;:::-;5776:48;;5570:260;;;;;:::o;5835:127::-;5896:10;5891:3;5887:20;5884:1;5877:31;5927:4;5924:1;5917:15;5951:4;5948:1;5941:15;5967:422;6056:1;6099:5;6056:1;6113:270;6134:7;6124:8;6121:21;6113:270;;;6193:4;6189:1;6185:6;6181:17;6175:4;6172:27;6169:53;;;6202:18;;:::i;:::-;6252:7;6242:8;6238:22;6235:55;;;6272:16;;;;6235:55;6351:22;;;;6311:15;;;;6113:270;;;6117:3;5967:422;;;;;:::o;6394:806::-;6443:5;6473:8;6463:80;;-1:-1:-1;6514:1:1;6528:5;;6463:80;6562:4;6552:76;;-1:-1:-1;6599:1:1;6613:5;;6552:76;6644:4;6662:1;6657:59;;;;6730:1;6725:130;;;;6637:218;;6657:59;6687:1;6678:10;;6701:5;;;6725:130;6762:3;6752:8;6749:17;6746:43;;;6769:18;;:::i;:::-;-1:-1:-1;;6825:1:1;6811:16;;6840:5;;6637:218;;6939:2;6929:8;6926:16;6920:3;6914:4;6911:13;6907:36;6901:2;6891:8;6888:16;6883:2;6877:4;6874:12;6870:35;6867:77;6864:159;;;-1:-1:-1;6976:19:1;;;7008:5;;6864:159;7055:34;7080:8;7074:4;7055:34;:::i;:::-;7125:6;7121:1;7117:6;7113:19;7104:7;7101:32;7098:58;;;7136:18;;:::i;:::-;7174:20;;6394:806;-1:-1:-1;;;6394:806:1:o;7205:140::-;7263:5;7292:47;7333:4;7323:8;7319:19;7313:4;7292:47;:::i;7350:168::-;7423:9;;;7454;;7471:15;;;7465:22;;7451:37;7441:71;;7492:18;;:::i;7523:347::-;7725:2;7707:21;;;7764:2;7744:18;;;7737:30;7803:25;7798:2;7783:18;;7776:53;7861:2;7846:18;;7523:347::o;7875:127::-;7936:10;7931:3;7927:20;7924:1;7917:31;7967:4;7964:1;7957:15;7991:4;7988:1;7981:15;8007:125;8072:9;;;8093:10;;;8090:36;;;8106:18;;:::i;8137:135::-;8176:3;8197:17;;;8194:43;;8217:18;;:::i;:::-;-1:-1:-1;8264:1:1;8253:13;;8137:135::o;8277:128::-;8344:9;;;8365:11;;;8362:37;;;8379:18;;:::i;9808:127::-;9869:10;9864:3;9860:20;9857:1;9850:31;9900:4;9897:1;9890:15;9924:4;9921:1;9914:15;9940:120;9980:1;10006;9996:35;;10011:18;;:::i;:::-;-1:-1:-1;10045:9:1;;9940:120::o;10065:988::-;10335:4;10383:3;10372:9;10368:19;10414:6;10403:9;10396:25;10440:2;10478:6;10473:2;10462:9;10458:18;10451:34;10521:3;10516:2;10505:9;10501:18;10494:31;10545:6;10580;10574:13;10611:6;10603;10596:22;10649:3;10638:9;10634:19;10627:26;;10688:2;10680:6;10676:15;10662:29;;10709:1;10719:195;10733:6;10730:1;10727:13;10719:195;;;10798:13;;-1:-1:-1;;;;;10794:39:1;10782:52;;10889:15;;;;10854:12;;;;10830:1;10748:9;10719:195;;;-1:-1:-1;;;;;;;10970:32:1;;;;10965:2;10950:18;;10943:60;-1:-1:-1;;;11034:3:1;11019:19;11012:35;10931:3;10065:988;-1:-1:-1;;;10065:988:1:o;11422:112::-;11454:1;11480;11470:35;;11485:18;;:::i;:::-;-1:-1:-1;11519:9:1;;11422:112::o

Swarm Source

ipfs://d0b6ff81fa9e51bdfa6eb3a0b494dd56620b7ead29154e879d0353b105dbbf07
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.