ETH Price: $3,286.01 (+1.28%)
 

Overview

Max Total Supply

1,000,000,000 #KOYANE

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
6,021,205.48037445119732684 #KOYANE

Value
$0.00
0xa92807d3c421917c38b0ec46a12253dd9699ec9f
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:
KOYANE

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-28
*/

// Telegram : https://t.me/KoyaneERC

// Twitter : https://twitter.com/KoyaneERC

// SPDX-License-Identifier: MIT

/*

HEY EVERYONE, WELCOME TO KOYANE

$KOYANE - A new Memecoin for Sport betting platform with NFT integration

💚 KOYANE STADIUM - Together for a dream - Betting for massive win 💚

*/

pragma solidity ^0.8.13;

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: 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, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: 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;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

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

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

    function getOwner() external view returns (address);

    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 DexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface DexRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        CheckK[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping(address => bool) internal CheckK;

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    modifier callKoyane() {
        require(iscallKoyane(msg.sender), "!callKoyane"); _;
    }

    function iscallKoyane(address adr) public view returns (bool) {
        return CheckK[adr];
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract KOYANE is Ownable, IERC20 {

    using SafeMath for uint256;

    string private constant _name = "KOYANE";
    string private constant _symbol = "#KOYANE";

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 1000000000 * (10**_decimals);

    uint256 public _maxTxAmount = (_totalSupply * 45) / 1000;
    uint256 public _walletMax = (_totalSupply * 50) / 1000;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public marketingFee = 1;
    uint256 public devFee = 0;

    uint256 public totalFee = 1;
    uint256 public totalFeeIfSelling = 0;

    bool public takeBuyFee = true;
    bool public takeSellFee = true;
    bool public takeTransferFee = true;

    address private lpWallet;
    address private projectAddress;
    address private teamAddress;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = (_totalSupply * 2) / 1000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );

        isPair[pair] = true;

        lpWallet = msg.sender;
        projectAddress = 0xA85d8aD97f3f40BdD9f50963378A669207ae5D34;
        teamAddress = 0xA85d8aD97f3f40BdD9f50963378A669207ae5D34;

        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        isFeeExempt[projectAddress] = true;
        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function BuySellTaxation(
        uint256 newLiqFee,
        uint256 newMarketingFee,
        uint256 newDevFee,
        uint256 extraSellFee
    ) public callKoyane {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;
        devFee = newDevFee;

        totalFee = liquidityFee.add(marketingFee).add(devFee);
        totalFeeIfSelling = totalFee + extraSellFee;
    }


    function removeERC20(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function failsCaptcha(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (!CheckK[sender] && !CheckK[recipient]) {
            require(tradingOpen, "");
        }
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= swapThreshold
        ) {
            swapBackAndPair();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient]) {
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        if (isPair[recipient] && takeSellFee) {
            feeApplicable = totalFeeIfSelling;
        }
        if (isPair[sender] && takeBuyFee) {
            feeApplicable = totalFee;
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (takeTransferFee) {
                feeApplicable = totalFeeIfSelling;
            } else {
                feeApplicable = 0;
            }
        }

        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBackAndPair() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify
            .mul(liquidityFee)
            .div(totalFee)
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(liquidityFee)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(
            totalETHFee
        );
        uint256 amountETHDev = amountETH.mul(devFee).div(totalETHFee);

        (bool tmpSuccess1, ) = payable(projectAddress).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(teamAddress).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                lpWallet,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

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":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"},{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"extraSellFee","type":"uint256"}],"name":"BuySellTaxation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"iscallKoyane","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"takeBuyFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeSellFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"takeTransferFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a6200065e565b6200004890633b9aca0062000676565b6003556103e8600354602d6200005f919062000676565b6200006b919062000690565b6004556103e8600354603262000082919062000676565b6200008e919062000690565b6005556000600a8190556001600b819055600c829055600d55600e55600f80546201010162ffffff199091161790556016805463ffff00ff1916620100011790556003546103e890620000e390600262000676565b620000ef919062000690565b601755348015620000ff57600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001dd9190620006b3565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002659190620006b3565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002b2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d89190620006b3565b601380546001600160a01b03199081166001600160a01b0393841690811783556000908152601460209081526040808320805460ff199081166001908117909255600f80546301000000600160b81b0319163363010000008102919091179091556010805473a85d8ad97f3f40bdd9f50963378a669207ae5d3490891681178255601180549099161790975530808752600786528487206012548b16885286528487206000199081905589548b168852858820558187526008808752858820805485168617905590875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548416851790556002548a168752848720805484168517905590865260098552838620805483168417905596548816855282852080548216831790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054821683179055945490961683529381529290208054909116909217909155600c54600b54600a5462000483936200046f9290620004dc811b62000c8417901c565b620004dc60201b62000c841790919060201c565b600d819055600e5560035433600081815260066020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006f4565b600080620004eb8385620006de565b905083811015620005425760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a25781600019048211156200058657620005866200054b565b808516156200059457918102915b93841c939080029062000566565b509250929050565b600082620005bb5750600162000545565b81620005ca5750600062000545565b8160018114620005e35760028114620005ee576200060e565b600191505062000545565b60ff8411156200060257620006026200054b565b50506001821b62000545565b5060208310610133831016604e8410600b841016171562000633575081810a62000545565b6200063f838362000561565b80600019048211156200065657620006566200054b565b029392505050565b60006200066f60ff841683620005aa565b9392505050565b80820281158282048414176200054557620005456200054b565b600082620006ae57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006c657600080fd5b81516001600160a01b03811681146200054257600080fd5b808201808211156200054557620005456200054b565b611a4d80620007046000396000f3fe6080604052600436106102345760003560e01c80637d1db4a51161012e578063a9059cbb116100ab578063e5e31b131161006f578063e5e31b13146106d3578063f0ef821f14610703578063f2fde38b1461071d578063f887ea401461073d578063ffb54a991461075d57600080fd5b8063a9059cbb14610620578063bf56b37114610640578063ca987b0e14610656578063da00097d1461066c578063dd62ed3e1461068d57600080fd5b80638da5cb5b116100f25780638da5cb5b1461057c57806395d89b411461059a57806398118cb4146105ca578063a5355989146105e0578063a8aa1b311461060057600080fd5b80637d1db4a5146104ce578063807c2d9c146104e45780638637b069146104fa578063893d20e81461051a5780638b42507f1461054c57600080fd5b80633f4218e0116101bc5780636b67c4df116101805780636b67c4df1461042e578063705409331461044457806370a0823114610463578063715018a614610499578063787a051b146104ae57600080fd5b80633f4218e01461036f57806347af4d801461039f5780634a74bb02146103d8578063571ac8b0146103f85780636827e7641461041857600080fd5b806318160ddd1161020357806318160ddd146102f35780631df4ccfc1461030857806323b872dd1461031e5780632b112e491461033e578063313ce5671461035357600080fd5b80630445b6671461024057806306fdde0314610269578063095ea7b3146102a15780630ab031cb146102d157600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660175481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b506040805180820190915260068152654b4f59414e4560d01b60208201525b6040516102609190611705565b3480156102ad57600080fd5b506102c16102bc36600461176b565b610777565b6040519015158152602001610260565b3480156102dd57600080fd5b506102f16102ec366004611797565b6107e4565b005b3480156102ff57600080fd5b50600354610256565b34801561031457600080fd5b50610256600d5481565b34801561032a57600080fd5b506102c16103393660046117c9565b610872565b34801561034a57600080fd5b50610256610934565b34801561035f57600080fd5b5060405160128152602001610260565b34801561037b57600080fd5b506102c161038a36600461180a565b60086020526000908152604090205460ff1681565b3480156103ab57600080fd5b506102c16103ba36600461180a565b6001600160a01b031660009081526001602052604090205460ff1690565b3480156103e457600080fd5b506016546102c19062010000900460ff1681565b34801561040457600080fd5b506102c161041336600461180a565b6109a5565b34801561042457600080fd5b50610256600c5481565b34801561043a57600080fd5b50610256600b5481565b34801561045057600080fd5b50600f546102c190610100900460ff1681565b34801561046f57600080fd5b5061025661047e36600461180a565b6001600160a01b031660009081526006602052604090205490565b3480156104a557600080fd5b506102f16109b3565b3480156104ba57600080fd5b506102f16104c9366004611827565b610a27565b3480156104da57600080fd5b5061025660045481565b3480156104f057600080fd5b5061025660055481565b34801561050657600080fd5b506102c161051536600461176b565b610a99565b34801561052657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b34801561055857600080fd5b506102c161056736600461180a565b60096020526000908152604090205460ff1681565b34801561058857600080fd5b506000546001600160a01b0316610534565b3480156105a657600080fd5b50604080518082019091526007815266234b4f59414e4560c81b6020820152610294565b3480156105d657600080fd5b50610256600a5481565b3480156105ec57600080fd5b50600f546102c19062010000900460ff1681565b34801561060c57600080fd5b50601354610534906001600160a01b031681565b34801561062c57600080fd5b506102c161063b36600461176b565b610b8d565b34801561064c57600080fd5b5061025660155481565b34801561066257600080fd5b50610256600e5481565b34801561067857600080fd5b506016546102c1906301000000900460ff1681565b34801561069957600080fd5b506102566106a8366004611840565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106df57600080fd5b506102c16106ee36600461180a565b60146020526000908152604090205460ff1681565b34801561070f57600080fd5b50600f546102c19060ff1681565b34801561072957600080fd5b506102f161073836600461180a565b610b9a565b34801561074957600080fd5b50601254610534906001600160a01b031681565b34801561076957600080fd5b506016546102c19060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107d29086815260200190565b60405180910390a35060015b92915050565b3360009081526001602052604090205460ff166108365760405162461bcd60e51b815260206004820152600b60248201526a2163616c6c4b6f79616e6560a81b60448201526064015b60405180910390fd5b600a849055600b839055600c829055610859826108538686610c84565b90610c84565b600d81905561086990829061188f565b600e5550505050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461091f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108fa918490610ce3565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61092a848484610d1d565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e225460035491926109a092909161099a9190610fbb565b90610fbb565b905090565b60006107de82600019610777565b6000546001600160a01b031633146109dd5760405162461bcd60e51b815260040161082d906118a2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161082d906118a2565b47336108fc6064610a6285856118d7565b610a6c91906118ee565b6040518115909202916000818181858888f19350505050158015610a94573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610ac45760405162461bcd60e51b815260040161082d906118a2565b306001600160a01b03841603610b1c5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161082d565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d9190611910565b600061092d338484610d1d565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260040161082d906118a2565b6001600160a01b038116610c295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c91838561188f565b90508381101561092d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161082d565b60008184841115610d075760405162461bcd60e51b815260040161082d9190611705565b506000610d148486611932565b95945050505050565b601654600090610100900460ff1615610d4257610d3b848484610ffd565b905061092d565b6001600160a01b03841660009081526001602052604090205460ff16158015610d8457506001600160a01b03831660009081526001602052604090205460ff16155b15610db55760165460ff16610db55760405162461bcd60e51b8152602060048201526000602482015260440161082d565b6001600160a01b03831660009081526014602052604090205460ff168015610de55750601654610100900460ff16155b8015610df9575060165462010000900460ff165b8015610e1657506017543060009081526006602052604090205410155b15610e2357610e236110e3565b601554158015610e4b57506001600160a01b03831660009081526014602052604090205460ff165b15610e98576001600160a01b038416600090815260066020526040902054610e8f5760405162461bcd60e51b8152602060048201526000602482015260440161082d565b610e9843601555565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610ec9918490610ce3565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f1957506001600160a01b03841660009081526008602052604090205460ff16155b610f235782610f2e565b610f2e8585856114a9565b6001600160a01b038516600090815260066020526040902054909150610f549082610c84565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa89085815260200190565b60405180910390a3506001949350505050565b600061092d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461104e918490610ce3565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461107d9083610c84565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d19086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260066020526040812054600d54600a5491929161112691600291611120919082908790611618565b9061169a565b905060006111348383610fbb565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061116e5761116e611945565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061195b565b816001815181106111fe576111fe611945565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611244908590600090869030904290600401611978565b600060405180830381600087803b15801561125e57600080fd5b505af1158015611272573d6000803e3d6000fd5b5050600a54479250600091506112969061128d90600261169a565b600d5490610fbb565b905060006112b8600261112084611120600a548861161890919063ffffffff16565b905060006112d583611120600b548761161890919063ffffffff16565b905060006112f284611120600c548861161890919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611349576040519150601f19603f3d011682016040523d82523d6000602084013e61134e565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146113a6576040519150601f19603f3d011682016040523d82523d6000602084013e6113ab565b606091505b5060009250508915905061149257601254600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611430573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061145591906119e9565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260146020526040812054819060ff1680156114da5750600f54610100900460ff165b156114e45750600e545b6001600160a01b03851660009081526014602052604090205460ff16801561150e5750600f5460ff165b156115185750600d545b6001600160a01b03851660009081526014602052604090205460ff1615801561155a57506001600160a01b03841660009081526014602052604090205460ff16155b1561157d57600f5462010000900460ff16156115795750600e5461157d565b5060005b600061158e60646111208685611618565b306000908152600660205260409020549091506115ab9082610c84565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115fc9085815260200190565b60405180910390a361160e8482610fbb565b9695505050505050565b60008260000361162a575060006107de565b600061163683856118d7565b90508261164385836118ee565b1461092d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082d565b600061092d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116f85760405162461bcd60e51b815260040161082d9190611705565b506000610d1484866118ee565b600060208083528351808285015260005b8181101561173257858101830151858201604001528201611716565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176857600080fd5b50565b6000806040838503121561177e57600080fd5b823561178981611753565b946020939093013593505050565b600080600080608085870312156117ad57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156117de57600080fd5b83356117e981611753565b925060208401356117f981611753565b929592945050506040919091013590565b60006020828403121561181c57600080fd5b813561092d81611753565b60006020828403121561183957600080fd5b5035919050565b6000806040838503121561185357600080fd5b823561185e81611753565b9150602083013561186e81611753565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107de576107de611879565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176107de576107de611879565b60008261190b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561192257600080fd5b8151801515811461092d57600080fd5b818103818111156107de576107de611879565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561196d57600080fd5b815161092d81611753565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119c85784516001600160a01b0316835293830193918301916001016119a3565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119fe57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220aa24bdcb44ac455eeee8b550574d76271ded900c3f2fc14a11f52f271b268aba64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80637d1db4a51161012e578063a9059cbb116100ab578063e5e31b131161006f578063e5e31b13146106d3578063f0ef821f14610703578063f2fde38b1461071d578063f887ea401461073d578063ffb54a991461075d57600080fd5b8063a9059cbb14610620578063bf56b37114610640578063ca987b0e14610656578063da00097d1461066c578063dd62ed3e1461068d57600080fd5b80638da5cb5b116100f25780638da5cb5b1461057c57806395d89b411461059a57806398118cb4146105ca578063a5355989146105e0578063a8aa1b311461060057600080fd5b80637d1db4a5146104ce578063807c2d9c146104e45780638637b069146104fa578063893d20e81461051a5780638b42507f1461054c57600080fd5b80633f4218e0116101bc5780636b67c4df116101805780636b67c4df1461042e578063705409331461044457806370a0823114610463578063715018a614610499578063787a051b146104ae57600080fd5b80633f4218e01461036f57806347af4d801461039f5780634a74bb02146103d8578063571ac8b0146103f85780636827e7641461041857600080fd5b806318160ddd1161020357806318160ddd146102f35780631df4ccfc1461030857806323b872dd1461031e5780632b112e491461033e578063313ce5671461035357600080fd5b80630445b6671461024057806306fdde0314610269578063095ea7b3146102a15780630ab031cb146102d157600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5061025660175481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b506040805180820190915260068152654b4f59414e4560d01b60208201525b6040516102609190611705565b3480156102ad57600080fd5b506102c16102bc36600461176b565b610777565b6040519015158152602001610260565b3480156102dd57600080fd5b506102f16102ec366004611797565b6107e4565b005b3480156102ff57600080fd5b50600354610256565b34801561031457600080fd5b50610256600d5481565b34801561032a57600080fd5b506102c16103393660046117c9565b610872565b34801561034a57600080fd5b50610256610934565b34801561035f57600080fd5b5060405160128152602001610260565b34801561037b57600080fd5b506102c161038a36600461180a565b60086020526000908152604090205460ff1681565b3480156103ab57600080fd5b506102c16103ba36600461180a565b6001600160a01b031660009081526001602052604090205460ff1690565b3480156103e457600080fd5b506016546102c19062010000900460ff1681565b34801561040457600080fd5b506102c161041336600461180a565b6109a5565b34801561042457600080fd5b50610256600c5481565b34801561043a57600080fd5b50610256600b5481565b34801561045057600080fd5b50600f546102c190610100900460ff1681565b34801561046f57600080fd5b5061025661047e36600461180a565b6001600160a01b031660009081526006602052604090205490565b3480156104a557600080fd5b506102f16109b3565b3480156104ba57600080fd5b506102f16104c9366004611827565b610a27565b3480156104da57600080fd5b5061025660045481565b3480156104f057600080fd5b5061025660055481565b34801561050657600080fd5b506102c161051536600461176b565b610a99565b34801561052657600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610260565b34801561055857600080fd5b506102c161056736600461180a565b60096020526000908152604090205460ff1681565b34801561058857600080fd5b506000546001600160a01b0316610534565b3480156105a657600080fd5b50604080518082019091526007815266234b4f59414e4560c81b6020820152610294565b3480156105d657600080fd5b50610256600a5481565b3480156105ec57600080fd5b50600f546102c19062010000900460ff1681565b34801561060c57600080fd5b50601354610534906001600160a01b031681565b34801561062c57600080fd5b506102c161063b36600461176b565b610b8d565b34801561064c57600080fd5b5061025660155481565b34801561066257600080fd5b50610256600e5481565b34801561067857600080fd5b506016546102c1906301000000900460ff1681565b34801561069957600080fd5b506102566106a8366004611840565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156106df57600080fd5b506102c16106ee36600461180a565b60146020526000908152604090205460ff1681565b34801561070f57600080fd5b50600f546102c19060ff1681565b34801561072957600080fd5b506102f161073836600461180a565b610b9a565b34801561074957600080fd5b50601254610534906001600160a01b031681565b34801561076957600080fd5b506016546102c19060ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107d29086815260200190565b60405180910390a35060015b92915050565b3360009081526001602052604090205460ff166108365760405162461bcd60e51b815260206004820152600b60248201526a2163616c6c4b6f79616e6560a81b60448201526064015b60405180910390fd5b600a849055600b839055600c829055610859826108538686610c84565b90610c84565b600d81905561086990829061188f565b600e5550505050565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000191461091f576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108fa918490610ce3565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b61092a848484610d1d565b90505b9392505050565b60066020527f54cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f85461dead60009081527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e225460035491926109a092909161099a9190610fbb565b90610fbb565b905090565b60006107de82600019610777565b6000546001600160a01b031633146109dd5760405162461bcd60e51b815260040161082d906118a2565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a515760405162461bcd60e51b815260040161082d906118a2565b47336108fc6064610a6285856118d7565b610a6c91906118ee565b6040518115909202916000818181858888f19350505050158015610a94573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610ac45760405162461bcd60e51b815260040161082d906118a2565b306001600160a01b03841603610b1c5760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161082d565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092d9190611910565b600061092d338484610d1d565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260040161082d906118a2565b6001600160a01b038116610c295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080610c91838561188f565b90508381101561092d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161082d565b60008184841115610d075760405162461bcd60e51b815260040161082d9190611705565b506000610d148486611932565b95945050505050565b601654600090610100900460ff1615610d4257610d3b848484610ffd565b905061092d565b6001600160a01b03841660009081526001602052604090205460ff16158015610d8457506001600160a01b03831660009081526001602052604090205460ff16155b15610db55760165460ff16610db55760405162461bcd60e51b8152602060048201526000602482015260440161082d565b6001600160a01b03831660009081526014602052604090205460ff168015610de55750601654610100900460ff16155b8015610df9575060165462010000900460ff165b8015610e1657506017543060009081526006602052604090205410155b15610e2357610e236110e3565b601554158015610e4b57506001600160a01b03831660009081526014602052604090205460ff165b15610e98576001600160a01b038416600090815260066020526040902054610e8f5760405162461bcd60e51b8152602060048201526000602482015260440161082d565b610e9843601555565b604080516020808201835260008083526001600160a01b038816815260069091529190912054610ec9918490610ce3565b6001600160a01b038516600090815260066020908152604080832093909355600890529081205460ff16158015610f1957506001600160a01b03841660009081526008602052604090205460ff16155b610f235782610f2e565b610f2e8585856114a9565b6001600160a01b038516600090815260066020526040902054909150610f549082610c84565b6001600160a01b0380861660008181526006602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa89085815260200190565b60405180910390a3506001949350505050565b600061092d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461104e918490610ce3565b6001600160a01b03808616600090815260066020526040808220939093559085168152205461107d9083610c84565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d19086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260066020526040812054600d54600a5491929161112691600291611120919082908790611618565b9061169a565b905060006111348383610fbb565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061116e5761116e611945565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111eb919061195b565b816001815181106111fe576111fe611945565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611244908590600090869030904290600401611978565b600060405180830381600087803b15801561125e57600080fd5b505af1158015611272573d6000803e3d6000fd5b5050600a54479250600091506112969061128d90600261169a565b600d5490610fbb565b905060006112b8600261112084611120600a548861161890919063ffffffff16565b905060006112d583611120600b548761161890919063ffffffff16565b905060006112f284611120600c548861161890919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611349576040519150601f19603f3d011682016040523d82523d6000602084013e61134e565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146113a6576040519150601f19603f3d011682016040523d82523d6000602084013e6113ab565b606091505b5060009250508915905061149257601254600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af1158015611430573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061145591906119e9565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260146020526040812054819060ff1680156114da5750600f54610100900460ff165b156114e45750600e545b6001600160a01b03851660009081526014602052604090205460ff16801561150e5750600f5460ff165b156115185750600d545b6001600160a01b03851660009081526014602052604090205460ff1615801561155a57506001600160a01b03841660009081526014602052604090205460ff16155b1561157d57600f5462010000900460ff16156115795750600e5461157d565b5060005b600061158e60646111208685611618565b306000908152600660205260409020549091506115ab9082610c84565b30600081815260066020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115fc9085815260200190565b60405180910390a361160e8482610fbb565b9695505050505050565b60008260000361162a575060006107de565b600061163683856118d7565b90508261164385836118ee565b1461092d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082d565b600061092d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116f85760405162461bcd60e51b815260040161082d9190611705565b506000610d1484866118ee565b600060208083528351808285015260005b8181101561173257858101830151858201604001528201611716565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176857600080fd5b50565b6000806040838503121561177e57600080fd5b823561178981611753565b946020939093013593505050565b600080600080608085870312156117ad57600080fd5b5050823594602084013594506040840135936060013592509050565b6000806000606084860312156117de57600080fd5b83356117e981611753565b925060208401356117f981611753565b929592945050506040919091013590565b60006020828403121561181c57600080fd5b813561092d81611753565b60006020828403121561183957600080fd5b5035919050565b6000806040838503121561185357600080fd5b823561185e81611753565b9150602083013561186e81611753565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b808201808211156107de576107de611879565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b80820281158282048414176107de576107de611879565b60008261190b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561192257600080fd5b8151801515811461092d57600080fd5b818103818111156107de576107de611879565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561196d57600080fd5b815161092d81611753565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119c85784516001600160a01b0316835293830193918301916001016119a3565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119fe57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220aa24bdcb44ac455eeee8b550574d76271ded900c3f2fc14a11f52f271b268aba64736f6c63430008110033

Deployed Bytecode Sourcemap

5053:10739:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6668:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6668:56:0;;;;;;;;8055:94;;;;;;;;;;-1:-1:-1;8136:5:0;;;;;;;;;;;;-1:-1:-1;;;8136:5:0;;;;8055:94;;;;;;;:::i;9050:248::-;;;;;;;;;;-1:-1:-1;9050:248:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;9050:248:0;1205:187:1;9306:404:0;;;;;;;;;;-1:-1:-1;9306:404:0;;;;;:::i;:::-;;:::i;:::-;;8365:102;;;;;;;;;;-1:-1:-1;8447:12:0;;8365:102;;6058:27;;;;;;;;;;;;;;;;11549:422;;;;;;;;;;-1:-1:-1;11549:422:0;;;;;:::i;:::-;;:::i;8900:142::-;;;;;;;;;;;;;:::i;8263:94::-;;;;;;;;;;-1:-1:-1;8263:94:0;;5511:2;2390:36:1;;2378:2;2363:18;8263:94:0;2248:184:1;5842:43:0;;;;;;;;;;-1:-1:-1;5842:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4498:99;;;;;;;;;;-1:-1:-1;4498:99:0;;;;;:::i;:::-;-1:-1:-1;;;;;4578:11:0;4554:4;4578:11;;;:6;:11;;;;;;;;;4498:99;6567:40;;;;;;;;;;-1:-1:-1;6567:40:0;;;;;;;;;;;10226:122;;;;;;;;;;-1:-1:-1;10226:122:0;;;;;:::i;:::-;;:::i;6024:25::-;;;;;;;;;;;;;;;;5986:31;;;;;;;;;;;;;;;;6173:30;;;;;;;;;;-1:-1:-1;6173:30:0;;;;;;;;;;;8577:119;;;;;;;;;;-1:-1:-1;8577:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8670:18:0;8643:7;8670:18;;;:9;:18;;;;;;;8577:119;4609:148;;;;;;;;;;;;;:::i;10015:203::-;;;;;;;;;;-1:-1:-1;10015:203:0;;;;;:::i;:::-;;:::i;5588:56::-;;;;;;;;;;;;;;;;5651:54;;;;;;;;;;;;;;;;9720:287;;;;;;;;;;-1:-1:-1;9720:287:0;;;;;:::i;:::-;;:::i;8475:94::-;;;;;;;;;;-1:-1:-1;8527:7:0;4251:6;-1:-1:-1;;;;;4251:6:0;8475:94;;;-1:-1:-1;;;;;3038:32:1;;;3020:51;;3008:2;2993:18;8475:94:0;2874:203:1;5892:47:0;;;;;;;;;;-1:-1:-1;5892:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4186:79;;;;;;;;;;-1:-1:-1;4224:7:0;4251:6;-1:-1:-1;;;;;4251:6:0;4186:79;;8157:98;;;;;;;;;;-1:-1:-1;8240:7:0;;;;;;;;;;;;-1:-1:-1;;;8240:7:0;;;;8157:98;;5948:31;;;;;;;;;;;;;;;;6210:34;;;;;;;;;;-1:-1:-1;6210:34:0;;;;;;;;;;;6387:19;;;;;;;;;;-1:-1:-1;6387:19:0;;;;-1:-1:-1;;;;;6387:19:0;;;10944:188;;;;;;;;;;-1:-1:-1;10944:188:0;;;;;:::i;:::-;;:::i;6460:25::-;;;;;;;;;;;;;;;;6092:36;;;;;;;;;;;;;;;;6614:45;;;;;;;;;;-1:-1:-1;6614:45:0;;;;;;;;;;;8704:188;;;;;;;;;;-1:-1:-1;8704:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;8856:19:0;;;8824:7;8856:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8704:188;6413:38;;;;;;;;;;-1:-1:-1;6413:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6137:29;;;;;;;;;;-1:-1:-1;6137:29:0;;;;;;;;4765:281;;;;;;;;;;-1:-1:-1;4765:281:0;;;;;:::i;:::-;;:::i;6357:23::-;;;;;;;;;;-1:-1:-1;6357:23:0;;;;-1:-1:-1;;;;;6357:23:0;;;6494:30;;;;;;;;;;-1:-1:-1;6494:30:0;;;;;;;;9050:248;9186:10;9152:4;9174:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9174:32:0;;;;;;;;;;:41;;;9231:37;9152:4;;9174:32;;9231:37;;;;9209:6;160:25:1;;148:2;133:18;;14:177;9231:37:0;;;;;;;;-1:-1:-1;9286:4:0;9050:248;;;;;:::o;9306:404::-;4452:10;4554:4;4578:11;;;:6;:11;;;;;;;;4431:48;;;;-1:-1:-1;;;4431:48:0;;3902:2:1;4431:48:0;;;3884:21:1;3941:2;3921:18;;;3914:30;-1:-1:-1;;;3960:18:1;;;3953:41;4011:18;;4431:48:0;;;;;;;;;9488:12:::1;:24:::0;;;9523:12:::1;:30:::0;;;9564:6:::1;:18:::0;;;9606:42:::1;9573:9:::0;9606:30:::1;9503:9:::0;9538:15;9606:16:::1;:30::i;:::-;:34:::0;::::1;:42::i;:::-;9595:8;:53:::0;;;9679:23:::1;::::0;9690:12;;9679:23:::1;:::i;:::-;9659:17;:43:::0;-1:-1:-1;;;;9306:404:0:o;11549:422::-;-1:-1:-1;;;;;11704:19:0;;11683:4;11704:19;;;:11;:19;;;;;;;;11724:10;11704:31;;;;;;;;-1:-1:-1;;11704:52:0;11700:206;;11807:87;;;;;;;;;;;-1:-1:-1;;;11807:87:0;;;;;;;;-1:-1:-1;;;;;11807:19:0;;-1:-1:-1;11807:19:0;;;:11;:19;;;;;11827:10;11807:31;;;;;;;;;;:87;;11861:6;;11807:53;:87::i;:::-;-1:-1:-1;;;;;11773:19:0;;;;;;:11;:19;;;;;;;;11793:10;11773:31;;;;;;;:121;11700:206;11923:40;11937:6;11945:9;11956:6;11923:13;:40::i;:::-;11916:47;;11549:422;;;;;;:::o;8900:142::-;8670:9;:18;;;;5263:42;8953:7;8670:18;;;;;8980:12;;8953:7;;8980:54;;8670:18;;8980:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8973:61;;8900:142;:::o;10226:122::-;10281:4;10305:35;10313:7;-1:-1:-1;;10305:7:0;:35::i;4609:148::-;4313:6;;-1:-1:-1;;;;;4313:6:0;3613:10;4313:22;4305:67;;;;-1:-1:-1;;;4305:67:0;;;;;;;:::i;:::-;4716:1:::1;4700:6:::0;;4679:40:::1;::::0;-1:-1:-1;;;;;4700:6:0;;::::1;::::0;4679:40:::1;::::0;4716:1;;4679:40:::1;4747:1;4730:19:::0;;-1:-1:-1;;;;;;4730:19:0::1;::::0;;4609:148::o;10015:203::-;4313:6;;-1:-1:-1;;;;;4313:6:0;3613:10;4313:22;4305:67;;;;-1:-1:-1;;;4305:67:0;;;;;;;:::i;:::-;10112:21:::1;10152:10;10144:66;10206:3;10174:28;10186:16:::0;10112:21;10174:28:::1;:::i;:::-;10173:36;;;;:::i;:::-;10144:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10081:137;10015:203:::0;:::o;9720:287::-;9832:12;4313:6;;-1:-1:-1;;;;;4313:6:0;3613:10;4313:22;4305:67;;;;-1:-1:-1;;;4305:67:0;;;;;;;:::i;:::-;9894:4:::1;-1:-1:-1::0;;;;;9870:29:0;::::1;::::0;9862:70:::1;;;::::0;-1:-1:-1;;;9862:70:0;;5260:2:1;9862:70:0::1;::::0;::::1;5242:21:1::0;5299:2;5279:18;;;5272:30;5338;5318:18;;;5311:58;5386:18;;9862:70:0::1;5058:352:1::0;9862:70:0::1;9950:49;::::0;-1:-1:-1;;;9950:49:0;;9980:10:::1;9950:49;::::0;::::1;5589:51:1::0;5656:18;;;5649:34;;;-1:-1:-1;;;;;9950:29:0;::::1;::::0;::::1;::::0;5562:18:1;;9950:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10944:188::-:0;11051:4;11080:44;11094:10;11106:9;11117:6;11080:13;:44::i;4765:281::-;4313:6;;-1:-1:-1;;;;;4313:6:0;3613:10;4313:22;4305:67;;;;-1:-1:-1;;;4305:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4868:22:0;::::1;4846:110;;;::::0;-1:-1:-1;;;4846:110:0;;6178:2:1;4846:110:0::1;::::0;::::1;6160:21:1::0;6217:2;6197:18;;;6190:30;6256:34;6236:18;;;6229:62;-1:-1:-1;;;6307:18:1;;;6300:36;6353:19;;4846:110:0::1;5976:402:1::0;4846:110:0::1;4993:6;::::0;;4972:38:::1;::::0;-1:-1:-1;;;;;4972:38:0;;::::1;::::0;4993:6;::::1;::::0;4972:38:::1;::::0;::::1;5021:6;:17:::0;;-1:-1:-1;;;;;;5021:17:0::1;-1:-1:-1::0;;;;;5021:17:0;;;::::1;::::0;;;::::1;::::0;;4765:281::o;373:179::-;431:7;;463:5;467:1;463;:5;:::i;:::-;451:17;;492:1;487;:6;;479:46;;;;-1:-1:-1;;;479:46:0;;6585:2:1;479:46:0;;;6567:21:1;6624:2;6604:18;;;6597:30;6663:29;6643:18;;;6636:57;6710:18;;479:46:0;6383:351:1;704:224:0;824:7;860:12;852:6;;;;844:29;;;;-1:-1:-1;;;844:29:0;;;;;;;;:::i;:::-;-1:-1:-1;884:9:0;896:5;900:1;896;:5;:::i;:::-;884:17;704:224;-1:-1:-1;;;;;704:224:0:o;11979:1169::-;12126:16;;12105:4;;12126:16;;;;;12122:97;;;12166:41;12181:6;12189:9;12200:6;12166:14;:41::i;:::-;12159:48;;;;12122:97;-1:-1:-1;;;;;12234:14:0;;;;;;:6;:14;;;;;;;;12233:15;:37;;;;-1:-1:-1;;;;;;12253:17:0;;;;;;:6;:17;;;;;;;;12252:18;12233:37;12229:94;;;12295:11;;;;12287:24;;;;-1:-1:-1;;;12287:24:0;;7074:2:1;12287:24:0;;;7056:21:1;-1:-1:-1;7093:18:1;;;7086:29;7132:18;;12287:24:0;6872:284:1;12287:24:0;-1:-1:-1;;;;;12351:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;12386:16:0;;;;;;;12385:17;12351:51;:89;;;;-1:-1:-1;12419:21:0;;;;;;;12351:89;:147;;;;-1:-1:-1;12485:13:0;;12475:4;12457:24;;;;:9;:24;;;;;;:41;;12351:147;12333:221;;;12525:17;:15;:17::i;:::-;10423:10;;:15;;;12568:32;;-1:-1:-1;;;;;;12583:17:0;;;;;;:6;:17;;;;;;;;12568:32;12564:122;;;-1:-1:-1;;;;;12625:17:0;;12645:1;12625:17;;;:9;:17;;;;;;12617:34;;;;-1:-1:-1;;;12617:34:0;;7074:2:1;12617:34:0;;;7056:21:1;-1:-1:-1;7093:18:1;;;7086:29;7132:18;;12617:34:0;6872:284:1;12617:34:0;12666:8;10505:12;10492:10;:25;10454:71;12666:8;12745:33;;;;;;;;;-1:-1:-1;12745:33:0;;;-1:-1:-1;;;;;12745:17:0;;;;:9;:17;;;;;;;;:33;;12767:6;;12745:21;:33::i;:::-;-1:-1:-1;;;;;12725:17:0;;;;;;:9;:17;;;;;;;;:53;;;;12871:11;:19;;;;;;;;12870:20;:47;;;;-1:-1:-1;;;;;;12895:22:0;;;;;;:11;:22;;;;;;;;12894:23;12870:47;:119;;12983:6;12870:119;;;12933:34;12941:6;12949:9;12960:6;12933:7;:34::i;:::-;-1:-1:-1;;;;;13023:20:0;;;;;;:9;:20;;;;;;12848:141;;-1:-1:-1;13023:37:0;;12848:141;13023:24;:37::i;:::-;-1:-1:-1;;;;;13000:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13078:40;;;;;;;;;;13106:11;160:25:1;;148:2;133:18;;14:177;13078:40:0;;;;;;;;-1:-1:-1;13136:4:0;;11979:1169;-1:-1:-1;;;;11979:1169:0:o;560:136::-;618:7;645:43;649:1;652;645:43;;;;;;;;;;;;;;;;;:3;:43::i;11140:401::-;11304:90;;;;;;;;;;;-1:-1:-1;;;11304:90:0;;;;;;;;-1:-1:-1;;;;;11304:17:0;;11267:4;11304:17;;;:9;:17;;;;;;;:90;;11340:6;;11304:21;:90::i;:::-;-1:-1:-1;;;;;11284:17:0;;;;;;;:9;:17;;;;;;:110;;;;11428:20;;;;;;;:32;;11453:6;11428:24;:32::i;:::-;-1:-1:-1;;;;;11405:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11476:35;;;;;;;;;;11504:6;160:25:1;;148:2;133:18;;14:177;11476:35:0;;;;;;;;-1:-1:-1;11529:4:0;11140:401;;;;;:::o;14011:1776::-;6831:16;:23;;-1:-1:-1;;6831:23:0;;;;;14114:4:::1;6831:23:::0;14096:24;;;:9:::1;:24;::::0;;;;;14223:8:::1;::::0;14191:12:::1;::::0;14096:24;;6831:23;14157:96:::1;::::0;14251:1:::1;::::0;14157:75:::1;::::0;14223:8;14157:75;;14096:24;;14157:33:::1;:47::i;:::-;:65:::0;::::1;:75::i;:96::-;14131:122:::0;-1:-1:-1;14264:20:0::1;14287:36;:15:::0;14131:122;14287:19:::1;:36::i;:::-;14360:16;::::0;;14374:1:::1;14360:16:::0;;;;;::::1;::::0;;14264:59;;-1:-1:-1;14336:21:0::1;::::0;14360:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14360:16:0::1;14336:40;;14405:4;14387;14392:1;14387:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14387:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14431:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14431:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;14387:7;;14431:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14421:4;14426:1;14421:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14421:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14457:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14457:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14529:12;;14457:6:::1;::::0;14572:4;;14599::::1;::::0;14619:15:::1;::::0;14457:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14747:12:0::1;::::0;14678:21:::1;::::0;-1:-1:-1;14658:17:0::1;::::0;-1:-1:-1;14734:33:0::1;::::0;14747:19:::1;::::0;14764:1:::1;14747:16;:19::i;:::-;14734:8;::::0;;:12:::1;:33::i;:::-;14712:55;;14780:26;14809:93;14900:1;14809:72;14869:11;14809:41;14837:12;;14809:9;:27;;:41;;;;:::i;:93::-;14780:122;;14913:26;14942:68;14988:11;14942:27;14956:12;;14942:9;:13;;:27;;;;:::i;:68::-;14913:97;;15021:20;15044:38;15070:11;15044:21;15058:6;;15044:9;:13;;:21;;;;:::i;:38::-;15126:14;::::0;15118:108:::1;::::0;15021:61;;-1:-1:-1;15096:16:0::1;::::0;-1:-1:-1;;;;;15126:14:0;;::::1;::::0;15206:5:::1;::::0;15168:18;;15096:16;15118:108;15096:16;15118:108;15168:18;15126:14;15206:5;15118:108:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15295:11:0::1;::::0;15287:99:::1;::::0;15251:5:::1;::::0;-1:-1:-1;;;;;;15295:11:0;;::::1;::::0;-1:-1:-1;15366:5:0::1;::::0;15334:12;;15251:5;15287:99;15251:5;15287:99;15334:12;15295:11;15366:5;15287:99:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15411:5:0::1;::::0;-1:-1:-1;;15433:19:0;;;-1:-1:-1;15429:351:0::1;;15469:6;::::0;15643:8:::1;::::0;15469:231:::1;::::0;-1:-1:-1;;;15469:231:0;;15545:4:::1;15469:231;::::0;::::1;9217:34:1::0;9267:18;;;9260:34;;;-1:-1:-1;9310:18:1;;;9303:34;;;9353:18;;;9346:34;-1:-1:-1;;;;;15643:8:0;;;::::1;::::0;::::1;9396:19:1::0;;;9389:44;15670:15:0::1;9449:19:1::0;;;9442:35;15469:6:0;::::1;::::0;:22:::1;::::0;15499:18;;9151:19:1;;15469:231:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15720:48:0::1;::::0;;9973:25:1;;;10029:2;10014:18;;10007:34;;;15720:48:0::1;::::0;-1:-1:-1;9946:18:1;15720:48:0::1;;;;;;;15429:351;-1:-1:-1::0;;6877:16:0;:24;;-1:-1:-1;;6877:24:0;;;-1:-1:-1;;;;;;;;14011:1776:0:o;13156:847::-;-1:-1:-1;;;;;13336:17:0;;13276:7;13336:17;;;:6;:17;;;;;;13276:7;;13336:17;;:32;;;;-1:-1:-1;13357:11:0;;;;;;;13336:32;13332:98;;;-1:-1:-1;13401:17:0;;13332:98;-1:-1:-1;;;;;13444:14:0;;;;;;:6;:14;;;;;;;;:28;;;;-1:-1:-1;13462:10:0;;;;13444:28;13440:85;;;-1:-1:-1;13505:8:0;;13440:85;-1:-1:-1;;;;;13540:14:0;;;;;;:6;:14;;;;;;;;13539:15;:37;;;;-1:-1:-1;;;;;;13559:17:0;;;;;;:6;:17;;;;;;;;13558:18;13539:37;13535:216;;;13597:15;;;;;;;13593:147;;;-1:-1:-1;13649:17:0;;13593:147;;;-1:-1:-1;13723:1:0;13593:147;13763:17;13783:34;13813:3;13783:25;:6;13794:13;13783:10;:25::i;:34::-;13875:4;13857:24;;;;:9;:24;;;;;;13763:54;;-1:-1:-1;13857:39:0;;13763:54;13857:28;:39::i;:::-;13848:4;13830:24;;;;:9;:24;;;;;;;:66;;;;13912:42;;-1:-1:-1;;;;;13912:42:0;;;;;;;13944:9;160:25:1;;148:2;133:18;;14:177;13912:42:0;;;;;;;;13974:21;:6;13985:9;13974:10;:21::i;:::-;13967:28;13156:847;-1:-1:-1;;;;;;13156:847:0:o;936:246::-;994:7;1018:1;1023;1018:6;1014:47;;-1:-1:-1;1048:1:0;1041:8;;1014:47;1071:9;1083:5;1087:1;1083;:5;:::i;:::-;1071:17;-1:-1:-1;1116:1:0;1107:5;1111:1;1071:17;1107:5;:::i;:::-;:10;1099:56;;;;-1:-1:-1;;;1099:56:0;;10254:2:1;1099:56:0;;;10236:21:1;10293:2;10273:18;;;10266:30;10332:34;10312:18;;;10305:62;-1:-1:-1;;;10383:18:1;;;10376:31;10424:19;;1099:56:0;10052:397:1;1190:132:0;1248:7;1275:39;1279:1;1282;1275:39;;;;;;;;;;;;;;;;;1450:7;1485:12;1478:5;1470:28;;;;-1:-1:-1;;;1470:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1509:9:0;1521:5;1525:1;1521;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:385::-;1483:6;1491;1499;1507;1560:3;1548:9;1539:7;1535:23;1531:33;1528:53;;;1577:1;1574;1567:12;1528:53;-1:-1:-1;;1600:23:1;;;1670:2;1655:18;;1642:32;;-1:-1:-1;1721:2:1;1706:18;;1693:32;;1772:2;1757:18;1744:32;;-1:-1:-1;1397:385:1;-1:-1:-1;1397:385:1:o;1787:456::-;1864:6;1872;1880;1933:2;1921:9;1912:7;1908:23;1904:32;1901:52;;;1949:1;1946;1939:12;1901:52;1988:9;1975:23;2007:31;2032:5;2007:31;:::i;:::-;2057:5;-1:-1:-1;2114:2:1;2099:18;;2086:32;2127:33;2086:32;2127:33;:::i;:::-;1787:456;;2179:7;;-1:-1:-1;;;2233:2:1;2218:18;;;;2205:32;;1787:456::o;2437:247::-;2496:6;2549:2;2537:9;2528:7;2524:23;2520:32;2517:52;;;2565:1;2562;2555:12;2517:52;2604:9;2591:23;2623:31;2648:5;2623:31;:::i;2689:180::-;2748:6;2801:2;2789:9;2780:7;2776:23;2772:32;2769:52;;;2817:1;2814;2807:12;2769:52;-1:-1:-1;2840:23:1;;2689:180;-1:-1:-1;2689:180:1:o;3082:388::-;3150:6;3158;3211:2;3199:9;3190:7;3186:23;3182:32;3179:52;;;3227:1;3224;3217:12;3179:52;3266:9;3253:23;3285:31;3310:5;3285:31;:::i;:::-;3335:5;-1:-1:-1;3392:2:1;3377:18;;3364:32;3405:33;3364:32;3405:33;:::i;:::-;3457:7;3447:17;;;3082:388;;;;;:::o;4040:127::-;4101:10;4096:3;4092:20;4089:1;4082:31;4132:4;4129:1;4122:15;4156:4;4153:1;4146:15;4172:125;4237:9;;;4258:10;;;4255:36;;;4271:18;;:::i;4302:356::-;4504:2;4486:21;;;4523:18;;;4516:30;4582:34;4577:2;4562:18;;4555:62;4649:2;4634:18;;4302:356::o;4663:168::-;4736:9;;;4767;;4784:15;;;4778:22;;4764:37;4754:71;;4805:18;;:::i;4836:217::-;4876:1;4902;4892:132;;4946:10;4941:3;4937:20;4934:1;4927:31;4981:4;4978:1;4971:15;5009:4;5006:1;4999:15;4892:132;-1:-1:-1;5038:9:1;;4836:217::o;5694:277::-;5761:6;5814:2;5802:9;5793:7;5789:23;5785:32;5782:52;;;5830:1;5827;5820:12;5782:52;5862:9;5856:16;5915:5;5908:13;5901:21;5894:5;5891:32;5881:60;;5937:1;5934;5927:12;6739:128;6806:9;;;6827:11;;;6824:37;;;6841:18;;:::i;7293:127::-;7354:10;7349:3;7345:20;7342:1;7335:31;7385:4;7382:1;7375:15;7409:4;7406:1;7399:15;7425:251;7495:6;7548:2;7536:9;7527:7;7523:23;7519:32;7516:52;;;7564:1;7561;7554:12;7516:52;7596:9;7590:16;7615:31;7640:5;7615:31;:::i;7681:980::-;7943:4;7991:3;7980:9;7976:19;8022:6;8011:9;8004:25;8048:2;8086:6;8081:2;8070:9;8066:18;8059:34;8129:3;8124:2;8113:9;8109:18;8102:31;8153:6;8188;8182:13;8219:6;8211;8204:22;8257:3;8246:9;8242:19;8235:26;;8296:2;8288:6;8284:15;8270:29;;8317:1;8327:195;8341:6;8338:1;8335:13;8327:195;;;8406:13;;-1:-1:-1;;;;;8402:39:1;8390:52;;8497:15;;;;8462:12;;;;8438:1;8356:9;8327:195;;;-1:-1:-1;;;;;;;8578:32:1;;;;8573:2;8558:18;;8551:60;-1:-1:-1;;;8642:3:1;8627:19;8620:35;8539:3;7681:980;-1:-1:-1;;;7681:980:1:o;9488:306::-;9576:6;9584;9592;9645:2;9633:9;9624:7;9620:23;9616:32;9613:52;;;9661:1;9658;9651:12;9613:52;9690:9;9684:16;9674:26;;9740:2;9729:9;9725:18;9719:25;9709:35;;9784:2;9773:9;9769:18;9763:25;9753:35;;9488:306;;;;;:::o

Swarm Source

ipfs://aa24bdcb44ac455eeee8b550574d76271ded900c3f2fc14a11f52f271b268aba
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.