ETH Price: $3,417.43 (+3.67%)

Token

Stacker AI (STACK)
 

Overview

Max Total Supply

1,000,000,000 STACK

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
yeee.eth
Balance
15,307,220.016641873 STACK

Value
$0.00
0x450a6049e00c72c8205424a1f3d752ad06382fb9
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:
STACK

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-23
*/

// SPDX-License-Identifier: Unlicensed
/**
Stacker AI is an autonomous AI trading system that identifies profitable opportunities and manages your positions for you.
Website: https://www.stackerai.org
Telegram: https://t.me/aistacker_erc
Twitter: https://twitter.com/aistacker_erc
App: https://app.stackerai.org
*/
pragma solidity 0.8.21;
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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
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);
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
contract OwnerLib is Context {
    address private _owner;
    address private _previousOwner;
    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(), "OwnerLib: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "OwnerLib: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
interface IUniswapFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}
interface IUniswapRouter {
    
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract STACK is Context, IERC20, OwnerLib {
    
    using SafeMath for uint256;
    
    string private _name = "Stacker AI";
    string private _symbol = "STACK";
    mapping (address => bool) public isExcludedFromFees;
    mapping (address => bool) public isExcludedFromMaxWallet;
    mapping (address => bool) public isExcludedFromMaxTxn;
    mapping (address => bool) public uniPairs;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 1_000_000_000 * 10**9;
    uint256 public maxTxSize = _totalSupply;
    uint256 public maxWalletSize = _totalSupply * 20 / 1000;
    uint256 private swapFeeThreshold = _totalSupply/100000; 
    uint256 public lpBuyFee = 0;
    uint256 public lpSellFee = 0;
    uint256 public marketingBuyFee = 20;
    uint256 public marketingSellFee = 20;
    uint256 public devBuyFee = 0;
    uint256 public devSellFee = 0;
    uint256 public totalBuyFee = 20;
    uint256 public totalSellFee = 20;
    
    bool inswap;
    bool public feeSwapEnabled = false;
    bool public hasFeeSwapLimit = false;
    bool public hasMaxWalletLimit = true;
    address payable private devAddress;
    address public immutable DEAD = 0x000000000000000000000000000000000000dEaD;
    IUniswapRouter public uniswapV2Router;
    address public uniswapPair;
    
    modifier lockTheSwap {
        inswap = true;
        _;
        inswap = false;
    }
    
    constructor () {
        IUniswapRouter _uniswapV2Router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        devAddress = payable(0xAd5a94d7A0AB0F12295731EF4035473d6F0D0D82);
        uniswapPair = IUniswapFactory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;
        isExcludedFromFees[owner()] = true;
        isExcludedFromFees[devAddress] = true;
        isExcludedFromMaxWallet[owner()] = true;
        isExcludedFromMaxWallet[devAddress] = true;
        isExcludedFromMaxWallet[address(uniswapPair)] = true;
        isExcludedFromMaxWallet[address(this)] = true;
        
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[devAddress] = true;
        isExcludedFromMaxTxn[address(this)] = true;
        uniPairs[address(uniswapPair)] = true;
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }
    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
        
    function sendETHToFee(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }
    
    function setBuyFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        lpBuyFee = newLiquidityTax;
        marketingBuyFee = newMarketingTax;
        devBuyFee = newDevelopmentTax;
        totalBuyFee = lpBuyFee.add(marketingBuyFee).add(devBuyFee);
        require (totalBuyFee <= 10);
    }
    function setSellFee(uint256 newLiquidityTax, uint256 newMarketingTax, uint256 newDevelopmentTax) external onlyOwner() {
        lpSellFee = newLiquidityTax;
        marketingSellFee = newMarketingTax;
        devSellFee = newDevelopmentTax;
        totalSellFee = lpSellFee.add(marketingSellFee).add(devSellFee);
        require (totalSellFee <= 20);
    }
    function setWalletLimit(uint256 newLimit) external onlyOwner {
        maxWalletSize  = newLimit;
    }
    
    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        feeSwapEnabled = _enabled;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        if(inswap)
        { 
            return _transferBasic(sender, recipient, amount); 
        }
        else
        {
            if(!isExcludedFromMaxTxn[sender] && !isExcludedFromMaxTxn[recipient]) {
                require(amount <= maxTxSize, "Transfer amount exceeds the maxTxSize.");
            }            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= swapFeeThreshold;
            
            if (overMinimumTokenBalance && !inswap && !isExcludedFromFees[sender] && uniPairs[recipient] && feeSwapEnabled && amount > swapFeeThreshold) 
            {
                if(hasFeeSwapLimit)
                    contractTokenBalance = swapFeeThreshold;
                swapTokensForFee(contractTokenBalance);    
            }
            (uint256 finalAmount, uint256 feeAmount) = getFinalAmount(sender, recipient, amount);
            address feeAddre = feeAmount == amount ? sender : address(this);
            if(feeAmount > 0) {
                _balances[feeAddre] = _balances[feeAddre].add(feeAmount);
                emit Transfer(sender, feeAddre, feeAmount);
            }
            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            if(hasMaxWalletLimit && !isExcludedFromMaxWallet[recipient])
                require(balanceOf(recipient).add(finalAmount) <= maxWalletSize);
            _balances[recipient] = _balances[recipient].add(finalAmount);
            emit Transfer(sender, recipient, finalAmount);
            return true;
        }
    }    
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
        
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
        
    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }
    
    function getFinalAmount(address sender, address recipient, uint256 amount) internal view returns (uint256, uint256) {
        
        uint256 feeAmount = amount;
        if (isExcludedFromFees[sender] && feeSwapEnabled) return (amount, feeAmount);
        if(uniPairs[sender]) {
            feeAmount = amount.mul(totalBuyFee).div(100);
        }
        else if(uniPairs[recipient]) {
            feeAmount = amount.mul(totalSellFee).div(100);
        }
        if (isExcludedFromFees[sender]) {
            return (amount, 0);
        }
        return (amount.sub(feeAmount), feeAmount);
    }
    
    function adjustMaxTxAmount(uint256 maxTxAmount_) external onlyOwner() {
        require(maxTxAmount_ >= _totalSupply/100, "Max wallet should be more or equal to 1%");
        maxTxSize = maxTxAmount_;
    }
    
    function swapTokensForFee(uint256 tAmount) private lockTheSwap {
        swapTokensForEth(tAmount);
        uint256 amountETHMarketing = address(this).balance;
        sendETHToFee(devAddress, amountETHMarketing);
    }
    function _transferBasic(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;
    }
    
    receive() external payable {}
}

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":"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":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount_","type":"uint256"}],"name":"adjustMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasFeeSwapLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasMaxWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"},{"internalType":"uint256","name":"newDevelopmentTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"uniPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e0604052600a60a090815269537461636b657220414960b01b60c0526002906200002b9082620005aa565b50604080518082019091526005815264535441434b60d81b6020820152600390620000579082620005aa565b50600a805460ff19166009179055670de0b6b3a7640000600b819055600c8190556103e8906200008990601462000672565b6200009591906200069c565b600d55620186a0600b54620000ab91906200069c565b600e555f600f8190556010819055601460118190556012819055601382905590815560158190556016556017805463ffffff001916630100000017905561dead608052348015620000fa575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060178054600160201b600160c01b03191677ad5a94d7a0ab0f12295731ef4035473d6f0d0d82000000001790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa158015620001ba573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e09190620006bc565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002529190620006bc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200029d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c39190620006bc565b601980546001600160a01b039283166001600160a01b031991821617909155601880549284169290911682179055600b54305f90815260096020908152604080832094835293905291822055600190600490620003275f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790556017546401000000009004909116815260049092528120805490921660019081179092556005906200038d5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560175464010000000090048216815260059093528183208054851660019081179091556019549091168352818320805485168217905530835290822080549093168117909255600690620004155f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560175464010000000090048216815260068452828120805486166001908117909155308252838220805487168217905560195490921681526007909352908220805490931617909155600b54906008906200049a3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b54604051620004fb91815260200190565b60405180910390a350620006eb565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200053357607f821691505b6020821081036200055257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620005a5575f81815260208120601f850160051c81016020861015620005805750805b601f850160051c820191505b81811015620005a1578281556001016200058c565b5050505b505050565b81516001600160401b03811115620005c657620005c66200050a565b620005de81620005d784546200051e565b8462000558565b602080601f83116001811462000614575f8415620005fc5750858301515b5f19600386901b1c1916600185901b178555620005a1565b5f85815260208120601f198616915b82811015620006445788860151825594840194600190910190840162000623565b50858210156200066257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200069657634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620006b757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006cd575f80fd5b81516001600160a01b0381168114620006e4575f80fd5b9392505050565b608051611964620007045f395f61025901526119645ff3fe608060405260043610610215575f3560e01c806372ad20b91161011e5780639d9241ec116100a8578063c816841b1161006d578063c816841b14610628578063dd62ed3e14610647578063e7f444b31461068b578063f1d5f517146106a0578063f2fde38b146106bf575f80fd5b80639d9241ec146105ab578063a9059cbb146105c0578063b45e83f8146105df578063c119ecb2146105f4578063c49b9a8014610609575f80fd5b80638f03aad5116100ee5780638f03aad5146105215780638f3fa86014610540578063914eb66a1461055557806395d89b411461056957806399b102b51461057d575f80fd5b806372ad20b9146104ad5780637e150d66146104db5780638c81f0d3146104f05780638da5cb5b14610505575f80fd5b806325519cf21161019f578063680789521161016f57806368078952146103f7578063680a630c1461040c57806368448ce51461042b5780636dd3d39f1461044b57806370a0823114610479575f80fd5b806325519cf214610374578063313ce567146103935780634fbee193146103b457806359b107b9146103e2575f80fd5b8063095ea7b3116101e5578063095ea7b3146102e25780631694505e1461030157806318160ddd146103205780631d865c301461033457806323b872dd14610355575f80fd5b806301143fea1461022057806303fd2a451461024857806304866b801461029357806306fdde03146102c1575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560135481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5061027b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b34801561029e575f80fd5b506017546102b190610100900460ff1681565b604051901515815260200161023f565b3480156102cc575f80fd5b506102d56106de565b60405161023f9190611604565b3480156102ed575f80fd5b506102b16102fc366004611666565b61076e565b34801561030c575f80fd5b5060185461027b906001600160a01b031681565b34801561032b575f80fd5b50600b54610235565b34801561033f575f80fd5b5061035361034e366004611690565b610784565b005b348015610360575f80fd5b506102b161036f3660046116b9565b6107ef565b34801561037f575f80fd5b5061035361038e366004611690565b610858565b34801561039e575f80fd5b50600a5460405160ff909116815260200161023f565b3480156103bf575f80fd5b506102b16103ce3660046116f7565b60046020525f908152604090205460ff1681565b3480156103ed575f80fd5b5061023560155481565b348015610402575f80fd5b5061023560115481565b348015610417575f80fd5b506017546102b19062010000900460ff1681565b348015610436575f80fd5b506017546102b1906301000000900460ff1681565b348015610456575f80fd5b506102b16104653660046116f7565b60056020525f908152604090205460ff1681565b348015610484575f80fd5b506102356104933660046116f7565b6001600160a01b03165f9081526008602052604090205490565b3480156104b8575f80fd5b506102b16104c73660046116f7565b60076020525f908152604090205460ff1681565b3480156104e6575f80fd5b50610235600c5481565b3480156104fb575f80fd5b5061023560105481565b348015610510575f80fd5b505f546001600160a01b031661027b565b34801561052c575f80fd5b5061035361053b366004611712565b6108af565b34801561054b575f80fd5b50610235600d5481565b348015610560575f80fd5b5061035361094c565b348015610574575f80fd5b506102d56109bd565b348015610588575f80fd5b506102b16105973660046116f7565b60066020525f908152604090205460ff1681565b3480156105b6575f80fd5b5061023560165481565b3480156105cb575f80fd5b506102b16105da366004611666565b6109cc565b3480156105ea575f80fd5b5061023560145481565b3480156105ff575f80fd5b50610235600f5481565b348015610614575f80fd5b50610353610623366004611729565b6109d8565b348015610633575f80fd5b5060195461027b906001600160a01b031681565b348015610652575f80fd5b50610235610661366004611748565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610696575f80fd5b5061023560125481565b3480156106ab575f80fd5b506103536106ba366004611712565b610a1b565b3480156106ca575f80fd5b506103536106d93660046116f7565b610a49565b6060600280546106ed9061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546107199061177f565b80156107645780601f1061073b57610100808354040283529160200191610764565b820191905f5260205f20905b81548152906001019060200180831161074757829003601f168201915b5050505050905090565b5f61077a338484610b31565b5060015b92915050565b5f546001600160a01b031633146107b65760405162461bcd60e51b81526004016107ad906117b7565b60405180910390fd5b6010839055601282905560148190556107d9816107d38585610c54565b90610c54565b6016819055601410156107ea575f80fd5b505050565b5f6107fb848484610cb2565b5061084d843361084885604051806060016040528060288152602001611907602891396001600160a01b038a165f90815260096020908152604080832033845290915290205491906110ee565b610b31565b5060015b9392505050565b5f546001600160a01b031633146108815760405162461bcd60e51b81526004016107ad906117b7565b600f8390556011829055601381905561089e816107d38585610c54565b6015819055600a10156107ea575f80fd5b5f546001600160a01b031633146108d85760405162461bcd60e51b81526004016107ad906117b7565b6064600b546108e7919061180c565b8110156109475760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b60648201526084016107ad565b600c55565b5f546001600160a01b031633146109755760405162461bcd60e51b81526004016107ad906117b7565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600380546106ed9061177f565b5f61084d338484610cb2565b5f546001600160a01b03163314610a015760405162461bcd60e51b81526004016107ad906117b7565b601780549115156101000261ff0019909216919091179055565b5f546001600160a01b03163314610a445760405162461bcd60e51b81526004016107ad906117b7565b600d55565b5f546001600160a01b03163314610a725760405162461bcd60e51b81526004016107ad906117b7565b6001600160a01b038116610ad85760405162461bcd60e51b815260206004820152602760248201527f4f776e65724c69623a206e6577206f776e657220697320746865207a65726f206044820152666164647265737360c81b60648201526084016107ad565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ad565b6001600160a01b038216610bf45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ad565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80610c60838561182b565b9050838110156108515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ad565b5f6001600160a01b038416610d175760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ad565b6001600160a01b038316610d795760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ad565b60175460ff1615610d9657610d8f848484611126565b9050610851565b6001600160a01b0384165f9081526006602052604090205460ff16158015610dd657506001600160a01b0383165f9081526006602052604090205460ff16155b15610e3c57600c54821115610e3c5760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152653c29b4bd329760d11b60648201526084016107ad565b305f90815260086020526040902054600e5481108015908190610e62575060175460ff16155b8015610e8657506001600160a01b0386165f9081526004602052604090205460ff16155b8015610ea957506001600160a01b0385165f9081526007602052604090205460ff165b8015610ebc5750601754610100900460ff165b8015610ec95750600e5484115b15610eee5760175462010000900460ff1615610ee557600e5491505b610eee82611209565b5f80610efb88888861124d565b915091505f868214610f0d5730610f0f565b885b90508115610f95576001600160a01b0381165f90815260086020526040902054610f399083610c54565b6001600160a01b038083165f8181526008602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8c9086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f90815260089091529190912054610fe69189906110ee565b6001600160a01b038a165f908152600860205260409020556017546301000000900460ff16801561102f57506001600160a01b0388165f9081526005602052604090205460ff16155b1561106357600d54611059846107d38b6001600160a01b03165f9081526008602052604090205490565b1115611063575f80fd5b6001600160a01b0388165f908152600860205260409020546110859084610c54565b6001600160a01b03808a165f8181526008602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d89087815260200190565b60405180910390a3600195505050505050610851565b5f81848411156111115760405162461bcd60e51b81526004016107ad9190611604565b505f61111d848661183e565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546111769184906110ee565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546111a49083610c54565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f79086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905561121f81611355565b601754479061123f9064010000000090046001600160a01b0316826114a5565b50506017805460ff19169055565b6001600160a01b0383165f908152600460205260408120548190839060ff16801561127f5750601754610100900460ff165b1561128e57839250905061134d565b6001600160a01b0386165f9081526007602052604090205460ff16156112d5576112ce60646112c8601554876114d890919063ffffffff16565b90611556565b9050611312565b6001600160a01b0385165f9081526007602052604090205460ff16156113125761130f60646112c8601654876114d890919063ffffffff16565b90505b6001600160a01b0386165f9081526004602052604090205460ff161561133e57835f925092505061134d565b6113488482611597565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061138857611388611851565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114039190611865565b8160018151811061141657611416611851565b6001600160a01b03928316602091820292909201015260185461143c9130911684610b31565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906114749085905f90869030904290600401611880565b5f604051808303815f87803b15801561148b575f80fd5b505af115801561149d573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156107ea573d5f803e3d5ffd5b5f825f036114e757505f61077e565b5f6114f283856118ef565b9050826114ff858361180c565b146108515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ad565b5f61085183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d8565b5f61085183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ee565b5f81836115f85760405162461bcd60e51b81526004016107ad9190611604565b505f61111d848661180c565b5f6020808352835180828501525f5b8181101561162f57858101830151858201604001528201611613565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611663575f80fd5b50565b5f8060408385031215611677575f80fd5b82356116828161164f565b946020939093013593505050565b5f805f606084860312156116a2575f80fd5b505081359360208301359350604090920135919050565b5f805f606084860312156116cb575f80fd5b83356116d68161164f565b925060208401356116e68161164f565b929592945050506040919091013590565b5f60208284031215611707575f80fd5b81356108518161164f565b5f60208284031215611722575f80fd5b5035919050565b5f60208284031215611739575f80fd5b81358015158114610851575f80fd5b5f8060408385031215611759575f80fd5b82356117648161164f565b915060208301356117748161164f565b809150509250929050565b600181811c9082168061179357607f821691505b6020821081036117b157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526021908201527f4f776e65724c69623a2063616c6c6572206973206e6f7420746865206f776e656040820152603960f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b5f8261182657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561077e5761077e6117f8565b8181038181111561077e5761077e6117f8565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611875575f80fd5b81516108518161164f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118ce5784516001600160a01b0316835293830193918301916001016118a9565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761077e5761077e6117f856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fe5666f79e3af1ad17ef39d4d0a97e8e7b9e64ecda272a1c3f68208317ba45d864736f6c63430008150033

Deployed Bytecode

0x608060405260043610610215575f3560e01c806372ad20b91161011e5780639d9241ec116100a8578063c816841b1161006d578063c816841b14610628578063dd62ed3e14610647578063e7f444b31461068b578063f1d5f517146106a0578063f2fde38b146106bf575f80fd5b80639d9241ec146105ab578063a9059cbb146105c0578063b45e83f8146105df578063c119ecb2146105f4578063c49b9a8014610609575f80fd5b80638f03aad5116100ee5780638f03aad5146105215780638f3fa86014610540578063914eb66a1461055557806395d89b411461056957806399b102b51461057d575f80fd5b806372ad20b9146104ad5780637e150d66146104db5780638c81f0d3146104f05780638da5cb5b14610505575f80fd5b806325519cf21161019f578063680789521161016f57806368078952146103f7578063680a630c1461040c57806368448ce51461042b5780636dd3d39f1461044b57806370a0823114610479575f80fd5b806325519cf214610374578063313ce567146103935780634fbee193146103b457806359b107b9146103e2575f80fd5b8063095ea7b3116101e5578063095ea7b3146102e25780631694505e1461030157806318160ddd146103205780631d865c301461033457806323b872dd14610355575f80fd5b806301143fea1461022057806303fd2a451461024857806304866b801461029357806306fdde03146102c1575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560135481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5061027b7f000000000000000000000000000000000000000000000000000000000000dead81565b6040516001600160a01b03909116815260200161023f565b34801561029e575f80fd5b506017546102b190610100900460ff1681565b604051901515815260200161023f565b3480156102cc575f80fd5b506102d56106de565b60405161023f9190611604565b3480156102ed575f80fd5b506102b16102fc366004611666565b61076e565b34801561030c575f80fd5b5060185461027b906001600160a01b031681565b34801561032b575f80fd5b50600b54610235565b34801561033f575f80fd5b5061035361034e366004611690565b610784565b005b348015610360575f80fd5b506102b161036f3660046116b9565b6107ef565b34801561037f575f80fd5b5061035361038e366004611690565b610858565b34801561039e575f80fd5b50600a5460405160ff909116815260200161023f565b3480156103bf575f80fd5b506102b16103ce3660046116f7565b60046020525f908152604090205460ff1681565b3480156103ed575f80fd5b5061023560155481565b348015610402575f80fd5b5061023560115481565b348015610417575f80fd5b506017546102b19062010000900460ff1681565b348015610436575f80fd5b506017546102b1906301000000900460ff1681565b348015610456575f80fd5b506102b16104653660046116f7565b60056020525f908152604090205460ff1681565b348015610484575f80fd5b506102356104933660046116f7565b6001600160a01b03165f9081526008602052604090205490565b3480156104b8575f80fd5b506102b16104c73660046116f7565b60076020525f908152604090205460ff1681565b3480156104e6575f80fd5b50610235600c5481565b3480156104fb575f80fd5b5061023560105481565b348015610510575f80fd5b505f546001600160a01b031661027b565b34801561052c575f80fd5b5061035361053b366004611712565b6108af565b34801561054b575f80fd5b50610235600d5481565b348015610560575f80fd5b5061035361094c565b348015610574575f80fd5b506102d56109bd565b348015610588575f80fd5b506102b16105973660046116f7565b60066020525f908152604090205460ff1681565b3480156105b6575f80fd5b5061023560165481565b3480156105cb575f80fd5b506102b16105da366004611666565b6109cc565b3480156105ea575f80fd5b5061023560145481565b3480156105ff575f80fd5b50610235600f5481565b348015610614575f80fd5b50610353610623366004611729565b6109d8565b348015610633575f80fd5b5060195461027b906001600160a01b031681565b348015610652575f80fd5b50610235610661366004611748565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b348015610696575f80fd5b5061023560125481565b3480156106ab575f80fd5b506103536106ba366004611712565b610a1b565b3480156106ca575f80fd5b506103536106d93660046116f7565b610a49565b6060600280546106ed9061177f565b80601f01602080910402602001604051908101604052809291908181526020018280546107199061177f565b80156107645780601f1061073b57610100808354040283529160200191610764565b820191905f5260205f20905b81548152906001019060200180831161074757829003601f168201915b5050505050905090565b5f61077a338484610b31565b5060015b92915050565b5f546001600160a01b031633146107b65760405162461bcd60e51b81526004016107ad906117b7565b60405180910390fd5b6010839055601282905560148190556107d9816107d38585610c54565b90610c54565b6016819055601410156107ea575f80fd5b505050565b5f6107fb848484610cb2565b5061084d843361084885604051806060016040528060288152602001611907602891396001600160a01b038a165f90815260096020908152604080832033845290915290205491906110ee565b610b31565b5060015b9392505050565b5f546001600160a01b031633146108815760405162461bcd60e51b81526004016107ad906117b7565b600f8390556011829055601381905561089e816107d38585610c54565b6015819055600a10156107ea575f80fd5b5f546001600160a01b031633146108d85760405162461bcd60e51b81526004016107ad906117b7565b6064600b546108e7919061180c565b8110156109475760405162461bcd60e51b815260206004820152602860248201527f4d61782077616c6c65742073686f756c64206265206d6f7265206f7220657175604482015267616c20746f20312560c01b60648201526084016107ad565b600c55565b5f546001600160a01b031633146109755760405162461bcd60e51b81526004016107ad906117b7565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6060600380546106ed9061177f565b5f61084d338484610cb2565b5f546001600160a01b03163314610a015760405162461bcd60e51b81526004016107ad906117b7565b601780549115156101000261ff0019909216919091179055565b5f546001600160a01b03163314610a445760405162461bcd60e51b81526004016107ad906117b7565b600d55565b5f546001600160a01b03163314610a725760405162461bcd60e51b81526004016107ad906117b7565b6001600160a01b038116610ad85760405162461bcd60e51b815260206004820152602760248201527f4f776e65724c69623a206e6577206f776e657220697320746865207a65726f206044820152666164647265737360c81b60648201526084016107ad565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ad565b6001600160a01b038216610bf45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ad565b6001600160a01b038381165f8181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f80610c60838561182b565b9050838110156108515760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107ad565b5f6001600160a01b038416610d175760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ad565b6001600160a01b038316610d795760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ad565b60175460ff1615610d9657610d8f848484611126565b9050610851565b6001600160a01b0384165f9081526006602052604090205460ff16158015610dd657506001600160a01b0383165f9081526006602052604090205460ff16155b15610e3c57600c54821115610e3c5760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152653c29b4bd329760d11b60648201526084016107ad565b305f90815260086020526040902054600e5481108015908190610e62575060175460ff16155b8015610e8657506001600160a01b0386165f9081526004602052604090205460ff16155b8015610ea957506001600160a01b0385165f9081526007602052604090205460ff165b8015610ebc5750601754610100900460ff165b8015610ec95750600e5484115b15610eee5760175462010000900460ff1615610ee557600e5491505b610eee82611209565b5f80610efb88888861124d565b915091505f868214610f0d5730610f0f565b885b90508115610f95576001600160a01b0381165f90815260086020526040902054610f399083610c54565b6001600160a01b038083165f8181526008602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f8c9086815260200190565b60405180910390a35b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038c165f90815260089091529190912054610fe69189906110ee565b6001600160a01b038a165f908152600860205260409020556017546301000000900460ff16801561102f57506001600160a01b0388165f9081526005602052604090205460ff16155b1561106357600d54611059846107d38b6001600160a01b03165f9081526008602052604090205490565b1115611063575f80fd5b6001600160a01b0388165f908152600860205260409020546110859084610c54565b6001600160a01b03808a165f8181526008602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d89087815260200190565b60405180910390a3600195505050505050610851565b5f81848411156111115760405162461bcd60e51b81526004016107ad9190611604565b505f61111d848661183e565b95945050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526008909152918220546111769184906110ee565b6001600160a01b038086165f9081526008602052604080822093909355908516815220546111a49083610c54565b6001600160a01b038085165f8181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111f79086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905561121f81611355565b601754479061123f9064010000000090046001600160a01b0316826114a5565b50506017805460ff19169055565b6001600160a01b0383165f908152600460205260408120548190839060ff16801561127f5750601754610100900460ff165b1561128e57839250905061134d565b6001600160a01b0386165f9081526007602052604090205460ff16156112d5576112ce60646112c8601554876114d890919063ffffffff16565b90611556565b9050611312565b6001600160a01b0385165f9081526007602052604090205460ff16156113125761130f60646112c8601654876114d890919063ffffffff16565b90505b6001600160a01b0386165f9081526004602052604090205460ff161561133e57835f925092505061134d565b6113488482611597565b925090505b935093915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061138857611388611851565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114039190611865565b8160018151811061141657611416611851565b6001600160a01b03928316602091820292909201015260185461143c9130911684610b31565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906114749085905f90869030904290600401611880565b5f604051808303815f87803b15801561148b575f80fd5b505af115801561149d573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f193505050501580156107ea573d5f803e3d5ffd5b5f825f036114e757505f61077e565b5f6114f283856118ef565b9050826114ff858361180c565b146108515760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107ad565b5f61085183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115d8565b5f61085183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110ee565b5f81836115f85760405162461bcd60e51b81526004016107ad9190611604565b505f61111d848661180c565b5f6020808352835180828501525f5b8181101561162f57858101830151858201604001528201611613565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611663575f80fd5b50565b5f8060408385031215611677575f80fd5b82356116828161164f565b946020939093013593505050565b5f805f606084860312156116a2575f80fd5b505081359360208301359350604090920135919050565b5f805f606084860312156116cb575f80fd5b83356116d68161164f565b925060208401356116e68161164f565b929592945050506040919091013590565b5f60208284031215611707575f80fd5b81356108518161164f565b5f60208284031215611722575f80fd5b5035919050565b5f60208284031215611739575f80fd5b81358015158114610851575f80fd5b5f8060408385031215611759575f80fd5b82356117648161164f565b915060208301356117748161164f565b809150509250929050565b600181811c9082168061179357607f821691505b6020821081036117b157634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526021908201527f4f776e65724c69623a2063616c6c6572206973206e6f7420746865206f776e656040820152603960f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b5f8261182657634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561077e5761077e6117f8565b8181038181111561077e5761077e6117f8565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611875575f80fd5b81516108518161164f565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118ce5784516001600160a01b0316835293830193918301916001016118a9565b50506001600160a01b03969096166060850152505050608001529392505050565b808202811582820484141761077e5761077e6117f856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fe5666f79e3af1ad17ef39d4d0a97e8e7b9e64ecda272a1c3f68208317ba45d864736f6c63430008150033

Deployed Bytecode Sourcemap

5938:9324:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6882:28;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6882:28:0;;;;;;;;7221:74;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;360:32:1;;;342:51;;330:2;315:18;7221:74:0;196:203:1;7054:34:0;;;;;;;;;;-1:-1:-1;7054:34:0;;;;;;;;;;;;;;569:14:1;;562:22;544:41;;532:2;517:18;7054:34:0;404:187:1;8587:83:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13086:161::-;;;;;;;;;;-1:-1:-1;13086:161:0;;;;;:::i;:::-;;:::i;7302:37::-;;;;;;;;;;-1:-1:-1;7302:37:0;;;;-1:-1:-1;;;;;7302:37:0;;;8858:100;;;;;;;;;;-1:-1:-1;8938:12:0;;8858:100;;9737:362;;;;;;;;;;-1:-1:-1;9737:362:0;;;;;:::i;:::-;;:::i;:::-;;10511:313;;;;;;;;;;-1:-1:-1;10511:313:0;;;;;:::i;:::-;;:::i;9378:353::-;;;;;;;;;;-1:-1:-1;9378:353:0;;;;;:::i;:::-;;:::i;8769:83::-;;;;;;;;;;-1:-1:-1;8835:9:0;;8769:83;;8835:9;;;;2759:36:1;;2747:2;2732:18;8769:83:0;2617:184:1;6115:51:0;;;;;;;;;;-1:-1:-1;6115:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6953:31;;;;;;;;;;;;;;;;6797:35;;;;;;;;;;;;;;;;7095;;;;;;;;;;-1:-1:-1;7095:35:0;;;;;;;;;;;7137:36;;;;;;;;;;-1:-1:-1;7137:36:0;;;;;;;;;;;6173:56;;;;;;;;;;-1:-1:-1;6173:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8964:119;;;;;;;;;;-1:-1:-1;8964:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9057:18:0;9030:7;9057:18;;;:9;:18;;;;;;;8964:119;6296:41;;;;;;;;;;-1:-1:-1;6296:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6558:39;;;;;;;;;;;;;;;;6762:28;;;;;;;;;;;;;;;;3293:79;;;;;;;;;;-1:-1:-1;3331:7:0;3358:6;-1:-1:-1;;;;;3358:6:0;3293:79;;14438:209;;;;;;;;;;-1:-1:-1;14438:209:0;;;;;:::i;:::-;;:::i;6604:55::-;;;;;;;;;;;;;;;;3519:145;;;;;;;;;;;;;:::i;8676:87::-;;;;;;;;;;;;;:::i;6236:53::-;;;;;;;;;;-1:-1:-1;6236:53:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6991:32;;;;;;;;;;;;;;;;10338:167;;;;;;;;;;-1:-1:-1;10338:167:0;;;;;:::i;:::-;;:::i;6917:29::-;;;;;;;;;;;;;;;;6728:27;;;;;;;;;;;;;;;;10222:110;;;;;;;;;;-1:-1:-1;10222:110:0;;;;;:::i;:::-;;:::i;7346:26::-;;;;;;;;;;-1:-1:-1;7346:26:0;;;;-1:-1:-1;;;;;7346:26:0;;;9089:143;;;;;;;;;;-1:-1:-1;9089:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9197:18:0;;;9170:7;9197:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9089:143;6839:36;;;;;;;;;;;;;;;;10105:105;;;;;;;;;;-1:-1:-1;10105:105:0;;;;;:::i;:::-;;:::i;3670:245::-;;;;;;;;;;-1:-1:-1;3670:245:0;;;;;:::i;:::-;;:::i;8587:83::-;8624:13;8657:5;8650:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8587:83;:::o;13086:161::-;13161:4;13178:39;2678:10;13201:7;13210:6;13178:8;:39::i;:::-;-1:-1:-1;13235:4:0;13086:161;;;;;:::o;9737:362::-;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;;;;;;;;;9866:9:::1;:27:::0;;;9904:16:::1;:34:::0;;;9949:10:::1;:30:::0;;;10005:47:::1;9962:17:::0;10005:31:::1;9878:15:::0;9923;10005:13:::1;:31::i;:::-;:35:::0;::::1;:47::i;:::-;9990:12;:62:::0;;;10088:2:::1;-1:-1:-1::0;10072:18:0::1;10063:28;;;::::0;::::1;;9737:362:::0;;;:::o;10511:313::-;10609:4;10626:36;10636:6;10644:9;10655:6;10626:9;:36::i;:::-;-1:-1:-1;10673:121:0;10682:6;2678:10;10704:89;10742:6;10704:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10704:19:0;;;;;;:11;:19;;;;;;;;2678:10;10704:33;;;;;;;;;;:37;:89::i;:::-;10673:8;:121::i;:::-;-1:-1:-1;10812:4:0;10511:313;;;;;;:::o;9378:353::-;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;9506:8:::1;:26:::0;;;9543:15:::1;:33:::0;;;9587:9:::1;:29:::0;;;9641:44:::1;9599:17:::0;9641:29:::1;9517:15:::0;9561;9641:12:::1;:29::i;:44::-;9627:11;:58:::0;;;9720:2:::1;-1:-1:-1::0;9705:17:0::1;9696:27;;;::::0;::::1;14438:209:::0;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;14556:3:::1;14543:12;;:16;;;;:::i;:::-;14527:12;:32;;14519:85;;;::::0;-1:-1:-1;;;14519:85:0;;5257:2:1;14519:85:0::1;::::0;::::1;5239:21:1::0;5296:2;5276:18;;;5269:30;5335:34;5315:18;;;5308:62;-1:-1:-1;;;5386:18:1;;;5379:38;5434:19;;14519:85:0::1;5055:404:1::0;14519:85:0::1;14615:9;:24:::0;14438:209::o;3519:145::-;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;3623:1:::1;3607:6:::0;;3586:40:::1;::::0;-1:-1:-1;;;;;3607:6:0;;::::1;::::0;3586:40:::1;::::0;3623:1;;3586:40:::1;3654:1;3637:19:::0;;-1:-1:-1;;;;;;3637:19:0::1;::::0;;3519:145::o;8676:87::-;8715:13;8748:7;8741:14;;;;;:::i;10338:167::-;10416:4;10433:42;2678:10;10457:9;10468:6;10433:9;:42::i;10222:110::-;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;10299:14:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;10299:25:0;;::::1;::::0;;;::::1;::::0;;10222:110::o;10105:105::-;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;10177:13:::1;:25:::0;10105:105::o;3670:245::-;3427:6;;-1:-1:-1;;;;;3427:6:0;2678:10;3427:22;3419:68;;;;-1:-1:-1;;;3419:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3759:22:0;::::1;3751:74;;;::::0;-1:-1:-1;;;3751:74:0;;5666:2:1;3751:74:0::1;::::0;::::1;5648:21:1::0;5705:2;5685:18;;;5678:30;5744:34;5724:18;;;5717:62;-1:-1:-1;;;5795:18:1;;;5788:37;5842:19;;3751:74:0::1;5464:403:1::0;3751:74:0::1;3862:6;::::0;;3841:38:::1;::::0;-1:-1:-1;;;;;3841:38:0;;::::1;::::0;3862:6;::::1;::::0;3841:38:::1;::::0;::::1;3890:6;:17:::0;;-1:-1:-1;;;;;;3890:17:0::1;-1:-1:-1::0;;;;;3890:17:0;;;::::1;::::0;;;::::1;::::0;;3670:245::o;12735:335::-;-1:-1:-1;;;;;12828:19:0;;12820:68;;;;-1:-1:-1;;;12820:68:0;;6074:2:1;12820:68:0;;;6056:21:1;6113:2;6093:18;;;6086:30;6152:34;6132:18;;;6125:62;-1:-1:-1;;;6203:18:1;;;6196:34;6247:19;;12820:68:0;5872:400:1;12820:68:0;-1:-1:-1;;;;;12907:21:0;;12899:68;;;;-1:-1:-1;;;12899:68:0;;6479:2:1;12899:68:0;;;6461:21:1;6518:2;6498:18;;;6491:30;6557:34;6537:18;;;6530:62;-1:-1:-1;;;6608:18:1;;;6601:32;6650:19;;12899:68:0;6277:398:1;12899:68:0;-1:-1:-1;;;;;12978:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13030:32;;160:25:1;;;13030:32:0;;133:18:1;13030:32:0;;;;;;;12735:335;;;:::o;372:179::-;430:7;;462:5;466:1;462;:5;:::i;:::-;450:17;;491:1;486;:6;;478:46;;;;-1:-1:-1;;;478:46:0;;7012:2:1;478:46:0;;;6994:21:1;7051:2;7031:18;;;7024:30;7090:29;7070:18;;;7063:57;7137:18;;478:46:0;6810:351:1;10830:1889:0;10917:4;-1:-1:-1;;;;;10942:20:0;;10934:70;;;;-1:-1:-1;;;10934:70:0;;7368:2:1;10934:70:0;;;7350:21:1;7407:2;7387:18;;;7380:30;7446:34;7426:18;;;7419:62;-1:-1:-1;;;7497:18:1;;;7490:35;7542:19;;10934:70:0;7166:401:1;10934:70:0;-1:-1:-1;;;;;11023:23:0;;11015:71;;;;-1:-1:-1;;;11015:71:0;;7774:2:1;11015:71:0;;;7756:21:1;7813:2;7793:18;;;7786:30;7852:34;7832:18;;;7825:62;-1:-1:-1;;;7903:18:1;;;7896:33;7946:19;;11015:71:0;7572:399:1;11015:71:0;11100:6;;;;11097:1615;;;11140:41;11155:6;11163:9;11174:6;11140:14;:41::i;:::-;11133:48;;;;11097:1615;-1:-1:-1;;;;;11237:28:0;;;;;;:20;:28;;;;;;;;11236:29;:65;;;;-1:-1:-1;;;;;;11270:31:0;;;;;;:20;:31;;;;;;;;11269:32;11236:65;11233:175;;;11340:9;;11330:6;:19;;11322:70;;;;-1:-1:-1;;;11322:70:0;;8178:2:1;11322:70:0;;;8160:21:1;8217:2;8197:18;;;8190:30;8256:34;8236:18;;;8229:62;-1:-1:-1;;;8307:18:1;;;8300:36;8353:19;;11322:70:0;7976:402:1;11322:70:0;11483:4;11434:28;9057:18;;;:9;:18;;;;;;11559:16;;11535:40;;;;;;;11608:34;;-1:-1:-1;11636:6:0;;;;11635:7;11608:34;:65;;;;-1:-1:-1;;;;;;11647:26:0;;;;;;:18;:26;;;;;;;;11646:27;11608:65;:88;;;;-1:-1:-1;;;;;;11677:19:0;;;;;;:8;:19;;;;;;;;11608:88;:106;;;;-1:-1:-1;11700:14:0;;;;;;;11608:106;:135;;;;;11727:16;;11718:6;:25;11608:135;11604:331;;;11781:15;;;;;;;11778:80;;;11842:16;;11819:39;;11778:80;11877:38;11894:20;11877:16;:38::i;:::-;11950:19;11971:17;11992:41;12007:6;12015:9;12026:6;11992:14;:41::i;:::-;11949:84;;;;12048:16;12080:6;12067:9;:19;:44;;12106:4;12067:44;;;12089:6;12067:44;12048:63;-1:-1:-1;12129:13:0;;12126:170;;-1:-1:-1;;;;;12185:19:0;;;;;;:9;:19;;;;;;:34;;12209:9;12185:23;:34::i;:::-;-1:-1:-1;;;;;12163:19:0;;;;;;;:9;:19;;;;;;;:56;;;;12243:37;;;;;;;;;;12270:9;160:25:1;;148:2;133:18;;14:177;12243:37:0;;;;;;;;12126:170;12330:53;;;;;;;;;;;-1:-1:-1;;;12330:53:0;;;;;;;;-1:-1:-1;;;;;12330:17:0;;-1:-1:-1;12330:17:0;;;:9;:17;;;;;;;;:53;;12352:6;;12330:21;:53::i;:::-;-1:-1:-1;;;;;12310:17:0;;;;;;:9;:17;;;;;:73;12401:17;;;;;;;:56;;;;-1:-1:-1;;;;;;12423:34:0;;;;;;:23;:34;;;;;;;;12422:35;12401:56;12398:141;;;12525:13;;12484:37;12509:11;12484:20;12494:9;-1:-1:-1;;;;;9057:18:0;9030:7;9057:18;;;:9;:18;;;;;;;8964:119;12484:37;:54;;12476:63;;;;;;-1:-1:-1;;;;;12577:20:0;;;;;;:9;:20;;;;;;:37;;12602:11;12577:24;:37::i;:::-;-1:-1:-1;;;;;12554:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12634:40;;;;;;;;;;12662:11;160:25:1;;148:2;133:18;;14:177;12634:40:0;;;;;;;;12696:4;12689:11;;;;;;;;;699:190;785:7;821:12;813:6;;;;805:29;;;;-1:-1:-1;;;805:29:0;;;;;;;;:::i;:::-;-1:-1:-1;845:9:0;857:5;861:1;857;:5;:::i;:::-;845:17;699:190;-1:-1:-1;;;;;699:190:0:o;14888:330::-;15018:53;;;;;;;;;;;-1:-1:-1;;;15018:53:0;;;;;;;;-1:-1:-1;;;;;15018:17:0;;14981:4;15018:17;;;:9;:17;;;;;;;:53;;15040:6;;15018:21;:53::i;:::-;-1:-1:-1;;;;;14998:17:0;;;;;;;:9;:17;;;;;;:73;;;;15105:20;;;;;;;:32;;15130:6;15105:24;:32::i;:::-;-1:-1:-1;;;;;15082:20:0;;;;;;;:9;:20;;;;;;;:55;;;;15153:35;;;;;;;;;;15181:6;160:25:1;;148:2;133:18;;14:177;15153:35:0;;;;;;;;-1:-1:-1;15206:4:0;14888:330;;;;;:::o;14659:223::-;7417:6;:13;;-1:-1:-1;;7417:13:0;7426:4;7417:13;;;14733:25:::1;14750:7:::0;14733:16:::1;:25::i;:::-;14843:10;::::0;14798:21:::1;::::0;14830:44:::1;::::0;14843:10;;::::1;-1:-1:-1::0;;;;;14843:10:0::1;14798:21:::0;14830:12:::1;:44::i;:::-;-1:-1:-1::0;;7453:6:0;:14;;-1:-1:-1;;7453:14:0;;;14659:223::o;13816:610::-;-1:-1:-1;;;;;13994:26:0;;13914:7;13994:26;;;:18;:26;;;;;;13914:7;;13973:6;;13994:26;;:44;;;;-1:-1:-1;14024:14:0;;;;;;;13994:44;13990:76;;;14048:6;;-1:-1:-1;14056:9:0;-1:-1:-1;14040:26:0;;13990:76;-1:-1:-1;;;;;14080:16:0;;;;;;:8;:16;;;;;;;;14077:203;;;14125:32;14153:3;14125:23;14136:11;;14125:6;:10;;:23;;;;:::i;:::-;:27;;:32::i;:::-;14113:44;;14077:203;;;-1:-1:-1;;;;;14187:19:0;;;;;;:8;:19;;;;;;;;14184:96;;;14235:33;14264:3;14235:24;14246:12;;14235:6;:10;;:24;;;;:::i;:33::-;14223:45;;14184:96;-1:-1:-1;;;;;14294:26:0;;;;;;:18;:26;;;;;;;;14290:77;;;14345:6;14353:1;14337:18;;;;;;;14290:77;14385:21;:6;14396:9;14385:10;:21::i;:::-;14377:41;-1:-1:-1;14408:9:0;-1:-1:-1;13816:610:0;;;;;;;:::o;13263:541::-;13353:16;;;13367:1;13353:16;;;;;;;;13329:21;;13353:16;;;;;;;;;;-1:-1:-1;13353:16:0;13329:40;;13398:4;13380;13385:1;13380:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13380:23:0;;;:7;;;;;;;;;;:23;;;;13424:15;;:22;;;-1:-1:-1;;;13424:22:0;;;;:15;;;;;:20;;:22;;;;;13380:7;;13424:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13414:4;13419:1;13414:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13414:32:0;;;:7;;;;;;;;;:32;13489:15;;13457:62;;13474:4;;13489:15;13507:11;13457:8;:62::i;:::-;13556:15;;:240;;-1:-1:-1;;;13556:240:0;;-1:-1:-1;;;;;13556:15:0;;;;:66;;:240;;13637:11;;13556:15;;13707:4;;13734;;13770:15;;13556:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13318:486;13263:541;:::o;9248:118::-;9332:26;;-1:-1:-1;;;;;9332:18:0;;;:26;;;;;9351:6;;9332:26;;;;9351:6;9332:18;:26;;;;;;;;;;;;;;;;;;;895:246;953:7;977:1;982;977:6;973:47;;-1:-1:-1;1007:1:0;1000:8;;973:47;1030:9;1042:5;1046:1;1042;:5;:::i;:::-;1030:17;-1:-1:-1;1075:1:0;1066:5;1070:1;1030:17;1066:5;:::i;:::-;:10;1058:56;;;;-1:-1:-1;;;1058:56:0;;10396:2:1;1058:56:0;;;10378:21:1;10435:2;10415:18;;;10408:30;10474:34;10454:18;;;10447:62;-1:-1:-1;;;10525:18:1;;;10518:31;10566:19;;1058:56:0;10194:397:1;1147:132:0;1205:7;1232:39;1236:1;1239;1232:39;;;;;;;;;;;;;;;;;:3;:39::i;557:136::-;615:7;642:43;646:1;649;642:43;;;;;;;;;;;;;;;;;:3;:43::i;1285:276::-;1371:7;1406:12;1399:5;1391:28;;;;-1:-1:-1;;;1391:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1430:9:0;1442:5;1446:1;1442;:5;:::i;596:548:1:-;708:4;737:2;766;755:9;748:21;798:6;792:13;841:6;836:2;825:9;821:18;814:34;866:1;876:140;890:6;887:1;884:13;876:140;;;985:14;;;981:23;;975:30;951:17;;;970:2;947:26;940:66;905:10;;876:140;;;880:3;1065:1;1060:2;1051:6;1040:9;1036:22;1032:31;1025:42;1135:2;1128;1124:7;1119:2;1111:6;1107:15;1103:29;1092:9;1088:45;1084:54;1076:62;;;;596:548;;;;:::o;1149:131::-;-1:-1:-1;;;;;1224:31:1;;1214:42;;1204:70;;1270:1;1267;1260:12;1204:70;1149:131;:::o;1285:315::-;1353:6;1361;1414:2;1402:9;1393:7;1389:23;1385:32;1382:52;;;1430:1;1427;1420:12;1382:52;1469:9;1456:23;1488:31;1513:5;1488:31;:::i;:::-;1538:5;1590:2;1575:18;;;;1562:32;;-1:-1:-1;;;1285:315:1:o;1835:316::-;1912:6;1920;1928;1981:2;1969:9;1960:7;1956:23;1952:32;1949:52;;;1997:1;1994;1987:12;1949:52;-1:-1:-1;;2020:23:1;;;2090:2;2075:18;;2062:32;;-1:-1:-1;2141:2:1;2126:18;;;2113:32;;1835:316;-1:-1:-1;1835:316:1:o;2156:456::-;2233:6;2241;2249;2302:2;2290:9;2281:7;2277:23;2273:32;2270:52;;;2318:1;2315;2308:12;2270:52;2357:9;2344:23;2376:31;2401:5;2376:31;:::i;:::-;2426:5;-1:-1:-1;2483:2:1;2468:18;;2455:32;2496:33;2455:32;2496:33;:::i;:::-;2156:456;;2548:7;;-1:-1:-1;;;2602:2:1;2587:18;;;;2574:32;;2156:456::o;2806:247::-;2865:6;2918:2;2906:9;2897:7;2893:23;2889:32;2886:52;;;2934:1;2931;2924:12;2886:52;2973:9;2960:23;2992:31;3017:5;2992:31;:::i;3058:180::-;3117:6;3170:2;3158:9;3149:7;3145:23;3141:32;3138:52;;;3186:1;3183;3176:12;3138:52;-1:-1:-1;3209:23:1;;3058:180;-1:-1:-1;3058:180:1:o;3243:273::-;3299:6;3352:2;3340:9;3331:7;3327:23;3323:32;3320:52;;;3368:1;3365;3358:12;3320:52;3407:9;3394:23;3460:5;3453:13;3446:21;3439:5;3436:32;3426:60;;3482:1;3479;3472:12;3521:388;3589:6;3597;3650:2;3638:9;3629:7;3625:23;3621:32;3618:52;;;3666:1;3663;3656:12;3618:52;3705:9;3692:23;3724:31;3749:5;3724:31;:::i;:::-;3774:5;-1:-1:-1;3831:2:1;3816:18;;3803:32;3844:33;3803:32;3844:33;:::i;:::-;3896:7;3886:17;;;3521:388;;;;;:::o;3914:380::-;3993:1;3989:12;;;;4036;;;4057:61;;4111:4;4103:6;4099:17;4089:27;;4057:61;4164:2;4156:6;4153:14;4133:18;4130:38;4127:161;;4210:10;4205:3;4201:20;4198:1;4191:31;4245:4;4242:1;4235:15;4273:4;4270:1;4263:15;4127:161;;3914:380;;;:::o;4299:397::-;4501:2;4483:21;;;4540:2;4520:18;;;4513:30;4579:34;4574:2;4559:18;;4552:62;-1:-1:-1;;;4645:2:1;4630:18;;4623:31;4686:3;4671:19;;4299:397::o;4701:127::-;4762:10;4757:3;4753:20;4750:1;4743:31;4793:4;4790:1;4783:15;4817:4;4814:1;4807:15;4833:217;4873:1;4899;4889:132;;4943:10;4938:3;4934:20;4931:1;4924:31;4978:4;4975:1;4968:15;5006:4;5003:1;4996:15;4889:132;-1:-1:-1;5035:9:1;;4833:217::o;6680:125::-;6745:9;;;6766:10;;;6763:36;;;6779:18;;:::i;8383:128::-;8450:9;;;8471:11;;;8468:37;;;8485:18;;:::i;8648:127::-;8709:10;8704:3;8700:20;8697:1;8690:31;8740:4;8737:1;8730:15;8764:4;8761:1;8754:15;8780:251;8850:6;8903:2;8891:9;8882:7;8878:23;8874:32;8871:52;;;8919:1;8916;8909:12;8871:52;8951:9;8945:16;8970:31;8995:5;8970:31;:::i;9036:980::-;9298:4;9346:3;9335:9;9331:19;9377:6;9366:9;9359:25;9403:2;9441:6;9436:2;9425:9;9421:18;9414:34;9484:3;9479:2;9468:9;9464:18;9457:31;9508:6;9543;9537:13;9574:6;9566;9559:22;9612:3;9601:9;9597:19;9590:26;;9651:2;9643:6;9639:15;9625:29;;9672:1;9682:195;9696:6;9693:1;9690:13;9682:195;;;9761:13;;-1:-1:-1;;;;;9757:39:1;9745:52;;9852:15;;;;9817:12;;;;9793:1;9711:9;9682:195;;;-1:-1:-1;;;;;;;9933:32:1;;;;9928:2;9913:18;;9906:60;-1:-1:-1;;;9997:3:1;9982:19;9975:35;9894:3;9036:980;-1:-1:-1;;;9036:980:1:o;10021:168::-;10094:9;;;10125;;10142:15;;;10136:22;;10122:37;10112:71;;10163:18;;:::i

Swarm Source

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