ETH Price: $2,484.07 (-1.18%)
Gas: 0.66 Gwei

Token

Lehman Bros (⎛ 📉 ⎞)
 

Overview

Max Total Supply

1,000,000,000 ⎛ 📉 ⎞

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,452,595.465892195 ⎛ 📉 ⎞

Value
$0.00
0xf46d6e90723cf72b2a6c534531e700ada0bf4ce9
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:
LehmanBros

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-03
*/

// SPDX-License-Identifier: Unlicensed

/**
 *   Twitter: https://twitter.com/nyse_leh
 */

pragma solidity 0.8.13;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        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;
    }
}

/**
 * ERC20 standard interface.
 */
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);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    /**
     * Function modifier to require caller to be contract owner
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    /**
     * Function modifier to require caller to be authorized
     */
    modifier authorized() {
        require(isAuthorized(msg.sender), "!AUTHORIZED"); _;
    }

    /**
     * Authorize address. Owner only
     */
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }

    /**
     * Remove address' authorization. Owner only
     */
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Return address' authorization status
     */
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }

    /**
     * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    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 swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

contract LehmanBros is IERC20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "Lehman Bros";
    string private constant _symbol = "\xE2\x8E\x9B\x20\xF0\x9F\x93\x89\x20\xE2\x8E\x9E";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);
    //max wallet holding of 2% 
    uint256 public _maxWalletToken = ( _totalSupply * 2 ) / 100;

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

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
            
    uint256 public buyFeeRate = 3;
    uint256 public sellFeeRate = 3;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x2d008aE0716FA494F9BF5Fe4E937EABc1b4c0759);

    IDEXRouter public router;
    address public pair;

    bool private tradingOpen;
    bool private buyLimitEnable = true;
    bool private maxWalletEnable = true;
    uint256 private maxBuy = ( _totalSupply * 1 ) / 100;
    uint256 public numTokensSellToAddToLiquidity = ( _totalSupply * 1 ) / 1000;
    
    bool private inSwap;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isTxLimitExempt[msg.sender] = true;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;       

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

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

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

    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(!authorizations[sender] && !authorizations[recipient]){ 
            require(tradingOpen, "Trading not yet enabled.");
        }
        
        // max wallet code
        if (maxWalletEnable && !authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != marketingWallet){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");
        }
        
        // Checks max transaction limit
        if(buyLimitEnable) checkTxLimit(sender, amount);

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(numTokensSellToAddToLiquidity); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    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 checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= maxBuy || isTxLimitExempt[sender], "TX Limit Exceeded");
    }
 
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 transferFeeRate = recipient == pair ? sellFeeRate : buyFeeRate;
        uint256 feeAmount;
        feeAmount = amount.mul(transferFeeRate).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

    function swapBack(uint256 amount) internal swapping {
        swapTokensForEth(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        
        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp
        );
    }

    function swapToken() public onlyOwner {

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ 
            swapTokensForEth(numTokensSellToAddToLiquidity);
         }
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }    
  
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _sellFeeRate, uint256 _buyFeeRate) external onlyOwner {
        sellFeeRate = _sellFeeRate;
        buyFeeRate = _buyFeeRate;
    }

    function setMaxBuy (uint256 _percent) external onlyOwner {
        maxBuy = ( _totalSupply * _percent ) / 100;
    }
  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 

    function removeLimit() external onlyOwner {
        buyLimitEnable = false;
        maxWalletEnable = false;
    }

    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 9;
    } 

    function setMaxWalletPercent(uint256 maxWallPercent) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent ) / 100;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

}

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":"address","name":"owner","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":"_maxWalletToken","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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"buyFeeRate","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":"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":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFeeRate","type":"uint256"},{"internalType":"uint256","name":"_buyFeeRate","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"setMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b031990811661dead17909155600480549091169055620000326009600a62000486565b6200004290633b9aca006200049e565b600555606460055460026200005891906200049e565b620000649190620004c0565b6006556003600b819055600c556064600d819055600e80546001600160a01b031916732d008ae0716fa494f9bf5fe4e937eabc1b4c07591790556010805461010160a81b61ffff60a81b19909116179055600554620000c59060016200049e565b620000d19190620004c0565b6011556103e86005546001620000e891906200049e565b620000f49190620004c0565b6012553480156200010457600080fd5b5060008054336001600160a01b031991821681178355825260016020818152604093849020805460ff1916909217909155600f8054737a250d5630b4cf539739df2c5dacb4c659f2488d93168317905582516315ab88c960e31b81529251919263ad5c464892600480830193928290030181865afa1580156200018b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b19190620004e3565b600280546001600160a01b0319166001600160a01b03928316179055600f546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000210573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002369190620004e3565b6002546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000288573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ae9190620004e3565b601080546001600160a01b0319166001600160a01b03928316179055306000908152600860209081526040808320600f54851684528252808320600019905533808452600a8352818420805460ff199081166001908117909255600985528386208054821683179055600e5490961685528285208054909616179094556005548484526007835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200050e565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003c8578160001904821115620003ac57620003ac62000371565b80851615620003ba57918102915b93841c93908002906200038c565b509250929050565b600082620003e15750600162000480565b81620003f05750600062000480565b8160018114620004095760028114620004145762000434565b600191505062000480565b60ff84111562000428576200042862000371565b50506001821b62000480565b5060208310610133831016604e8410600b841016171562000459575081810a62000480565b62000465838362000387565b80600019048211156200047c576200047c62000371565b0290505b92915050565b60006200049760ff841683620003d0565b9392505050565b6000816000190483118215151615620004bb57620004bb62000371565b500290565b600082620004de57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004f657600080fd5b81516001600160a01b03811681146200049757600080fd5b6119c3806200051e6000396000f3fe6080604052600436106102135760003560e01c806378109e5411610118578063dc73e49c116100a0578063f42938901161006f578063f42938901461063e578063f53bc83514610653578063f84ba65d14610673578063f887ea4014610693578063fe9fbb80146106b357600080fd5b8063dc73e49c146105a3578063dd62ed3e146105b8578063f0b37c04146105fe578063f2fde38b1461061e57600080fd5b8063a8aa1b31116100e7578063a8aa1b3114610518578063a9059cbb14610538578063b6a5d7de14610558578063c9567bf914610578578063d12a76881461058d57600080fd5b806378109e541461048f57806382bf293c146104a5578063893d20e8146104c557806395d89b41146104e357600080fd5b806352f7c9881161019b578063622565891161016a57806362256589146103ec578063658d4b7f146104015780636b1b49871461042157806370a082311461043757806375f0a8741461045757600080fd5b806352f7c98814610376578063571ac8b0146103965780635b149feb146103b65780635d098b38146103cc57600080fd5b806323b872dd116101e257806323b872dd146102d457806329e04b4a146102f45780632b112e49146103165780632f54bf6e1461032b578063313ce5671461035a57600080fd5b806306fdde031461021f578063095ea7b31461026557806318160ddd1461029557806323b63585146102b457600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600b81526a4c65686d616e2042726f7360a81b60208201525b60405161025c91906116c2565b60405180910390f35b34801561027157600080fd5b5061028561028036600461172f565b6106ec565b604051901515815260200161025c565b3480156102a157600080fd5b506005545b60405190815260200161025c565b3480156102c057600080fd5b506102856102cf36600461175b565b610759565b3480156102e057600080fd5b506102856102ef366004611774565b6107a5565b34801561030057600080fd5b5061031461030f36600461175b565b610867565b005b34801561032257600080fd5b506102a66108f4565b34801561033757600080fd5b506102856103463660046117b5565b6000546001600160a01b0391821691161490565b34801561036657600080fd5b506040516009815260200161025c565b34801561038257600080fd5b506103146103913660046117d2565b61093d565b3480156103a257600080fd5b506102856103b13660046117b5565b610972565b3480156103c257600080fd5b506102a6600c5481565b3480156103d857600080fd5b506103146103e73660046117b5565b610980565b3480156103f857600080fd5b506103146109cc565b34801561040d57600080fd5b5061031461041c3660046117f4565b610a06565b34801561042d57600080fd5b506102a6600b5481565b34801561044357600080fd5b506102a66104523660046117b5565b610a5b565b34801561046357600080fd5b50600e54610477906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561049b57600080fd5b506102a660065481565b3480156104b157600080fd5b506103146104c036600461175b565b610a76565b3480156104d157600080fd5b506000546001600160a01b0316610477565b3480156104ef57600080fd5b5060408051808201909152600c81526b71474d90784fc9c49071474f60a11b602082015261024f565b34801561052457600080fd5b50601054610477906001600160a01b031681565b34801561054457600080fd5b5061028561055336600461172f565b610ac0565b34801561056457600080fd5b506103146105733660046117b5565b610acd565b34801561058457600080fd5b50610314610b1e565b34801561059957600080fd5b506102a660125481565b3480156105af57600080fd5b50610314610b5d565b3480156105c457600080fd5b506102a66105d3366004611832565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561060a57600080fd5b506103146106193660046117b5565b610bcd565b34801561062a57600080fd5b506103146106393660046117b5565b610c18565b34801561064a57600080fd5b50610314610cae565b34801561065f57600080fd5b5061031461066e36600461175b565b610d16565b34801561067f57600080fd5b5061031461068e3660046117f4565b610d60565b34801561069f57600080fd5b50600f54610477906001600160a01b031681565b3480156106bf57600080fd5b506102856106ce3660046117b5565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107479086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b0316331461078d5760405162461bcd60e51b815260040161078490611860565b60405180910390fd5b6003546107539030906001600160a01b031684610dd8565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610852576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461082d918490610ebe565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61085d848484610ef8565b90505b9392505050565b6000546001600160a01b031633146108915760405162461bcd60e51b815260040161078490611860565b60055461089f906064611273565b8111156108e05760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610784565b6108ee81633b9aca00611896565b60125550565b60045460009061093890610910906001600160a01b0316610a5b565b60035461093290610929906001600160a01b0316610a5b565b600554906112b5565b906112b5565b905090565b6000546001600160a01b031633146109675760405162461bcd60e51b815260040161078490611860565b600c91909155600b55565b6000610753826000196106ec565b6000546001600160a01b031633146109aa5760405162461bcd60e51b815260040161078490611860565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109f65760405162461bcd60e51b815260040161078490611860565b6010805461ffff60a81b19169055565b6000546001600160a01b03163314610a305760405162461bcd60e51b815260040161078490611860565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526007602052604090205490565b6000546001600160a01b03163314610aa05760405162461bcd60e51b815260040161078490611860565b606481600554610ab09190611896565b610aba91906118b5565b60065550565b6000610860338484610ef8565b6000546001600160a01b03163314610af75760405162461bcd60e51b815260040161078490611860565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610b485760405162461bcd60e51b815260040161078490611860565b6010805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610b875760405162461bcd60e51b815260040161078490611860565b6000610b9230610a5b565b9050600060125482101590506000818015610bb557506000610bb330610a5b565b115b90508015610bc857610bc86012546112f7565b505050565b6000546001600160a01b03163314610bf75760405162461bcd60e51b815260040161078490611860565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610c425760405162461bcd60e51b815260040161078490611860565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6000546001600160a01b03163314610cd85760405162461bcd60e51b815260040161078490611860565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610d12573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610d405760405162461bcd60e51b815260040161078490611860565b606481600554610d509190611896565b610d5a91906118b5565b60115550565b3360009081526001602052604090205460ff16610dad5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610784565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e29918490610ebe565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610e5890836113df565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eac9086815260200190565b60405180910390a35060019392505050565b60008184841115610ee25760405162461bcd60e51b815260040161078491906116c2565b506000610eef84866118d7565b95945050505050565b6001600160a01b03831660009081526001602052604081205460ff16158015610f3a57506001600160a01b03831660009081526001602052604090205460ff16155b15610f9857601054600160a01b900460ff16610f985760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610784565b601054600160b01b900460ff168015610fca57506001600160a01b03841660009081526001602052604090205460ff16155b8015610fdf57506001600160a01b0383163014155b8015610ff957506003546001600160a01b03848116911614155b801561101357506010546001600160a01b03848116911614155b801561102d5750600e546001600160a01b03848116911614155b156110c357600061103d84610a5b565b60065490915061104d84836118ee565b11156110c15760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610784565b505b601054600160a81b900460ff16156110df576110df848361143e565b60135460ff16156110fc576110f5848484610dd8565b9050610860565b600061110730610a5b565b905060006012548210159050600081801561112f57506010546001600160a01b038781169116145b80156111435750600061114130610a5b565b115b90508015611156576111566012546114a7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600790915291909120546111a8918790610ebe565b6001600160a01b0388166000908152600760205260408120919091556111ce88886114ca565b6111d857856111e3565b6111e388888861153f565b6001600160a01b03881660009081526007602052604090205490915061120990826113df565b6001600160a01b0380891660008181526007602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061125d9085815260200190565b60405180910390a3506001979650505050505050565b600061086083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611612565b600061086083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ebe565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061132c5761132c611906565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061135d5761135d611906565b6001600160a01b039283166020918202929092010152600f54600e5460405163791ac94760e01b81529183169263791ac947926113a9928792600092889290911690429060040161191c565b600060405180830381600087803b1580156113c357600080fd5b505af11580156113d7573d6000803e3d6000fd5b505050505050565b6000806113ec83856118ee565b9050838110156108605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610784565b6011548111158061146757506001600160a01b0382166000908152600a602052604090205460ff165b610d125760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610784565b6013805460ff191660011790556114bd816112f7565b506013805460ff19169055565b6001600160a01b03821660009081526009602052604081205460ff168061150957506001600160a01b03821660009081526009602052604090205460ff165b15801561086057506010546001600160a01b03848116911614806108605750506010546001600160a01b03908116911614919050565b60105460009081906001600160a01b0385811691161461156157600b54611565565b600c545b90506000611588600d54611582848761164090919063ffffffff16565b90611273565b306000908152600760205260409020549091506115a590826113df565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f69085815260200190565b60405180910390a361160884826112b5565b9695505050505050565b600081836116335760405162461bcd60e51b815260040161078491906116c2565b506000610eef84866118b5565b60008260000361165257506000610753565b600061165e8385611896565b90508261166b85836118b5565b146108605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610784565b600060208083528351808285015260005b818110156116ef578581018301518582016040015282016116d3565b81811115611701576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461172c57600080fd5b50565b6000806040838503121561174257600080fd5b823561174d81611717565b946020939093013593505050565b60006020828403121561176d57600080fd5b5035919050565b60008060006060848603121561178957600080fd5b833561179481611717565b925060208401356117a481611717565b929592945050506040919091013590565b6000602082840312156117c757600080fd5b813561086081611717565b600080604083850312156117e557600080fd5b50508035926020909101359150565b6000806040838503121561180757600080fd5b823561181281611717565b91506020830135801515811461182757600080fd5b809150509250929050565b6000806040838503121561184557600080fd5b823561185081611717565b9150602083013561182781611717565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156118b0576118b0611880565b500290565b6000826118d257634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156118e9576118e9611880565b500390565b6000821982111561190157611901611880565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196c5784516001600160a01b031683529383019391830191600101611947565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122016021a390db596365904a58a9bf24da9832cbd89ae15741d05a72ae4dfb772ad64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806378109e5411610118578063dc73e49c116100a0578063f42938901161006f578063f42938901461063e578063f53bc83514610653578063f84ba65d14610673578063f887ea4014610693578063fe9fbb80146106b357600080fd5b8063dc73e49c146105a3578063dd62ed3e146105b8578063f0b37c04146105fe578063f2fde38b1461061e57600080fd5b8063a8aa1b31116100e7578063a8aa1b3114610518578063a9059cbb14610538578063b6a5d7de14610558578063c9567bf914610578578063d12a76881461058d57600080fd5b806378109e541461048f57806382bf293c146104a5578063893d20e8146104c557806395d89b41146104e357600080fd5b806352f7c9881161019b578063622565891161016a57806362256589146103ec578063658d4b7f146104015780636b1b49871461042157806370a082311461043757806375f0a8741461045757600080fd5b806352f7c98814610376578063571ac8b0146103965780635b149feb146103b65780635d098b38146103cc57600080fd5b806323b872dd116101e257806323b872dd146102d457806329e04b4a146102f45780632b112e49146103165780632f54bf6e1461032b578063313ce5671461035a57600080fd5b806306fdde031461021f578063095ea7b31461026557806318160ddd1461029557806323b63585146102b457600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b5060408051808201909152600b81526a4c65686d616e2042726f7360a81b60208201525b60405161025c91906116c2565b60405180910390f35b34801561027157600080fd5b5061028561028036600461172f565b6106ec565b604051901515815260200161025c565b3480156102a157600080fd5b506005545b60405190815260200161025c565b3480156102c057600080fd5b506102856102cf36600461175b565b610759565b3480156102e057600080fd5b506102856102ef366004611774565b6107a5565b34801561030057600080fd5b5061031461030f36600461175b565b610867565b005b34801561032257600080fd5b506102a66108f4565b34801561033757600080fd5b506102856103463660046117b5565b6000546001600160a01b0391821691161490565b34801561036657600080fd5b506040516009815260200161025c565b34801561038257600080fd5b506103146103913660046117d2565b61093d565b3480156103a257600080fd5b506102856103b13660046117b5565b610972565b3480156103c257600080fd5b506102a6600c5481565b3480156103d857600080fd5b506103146103e73660046117b5565b610980565b3480156103f857600080fd5b506103146109cc565b34801561040d57600080fd5b5061031461041c3660046117f4565b610a06565b34801561042d57600080fd5b506102a6600b5481565b34801561044357600080fd5b506102a66104523660046117b5565b610a5b565b34801561046357600080fd5b50600e54610477906001600160a01b031681565b6040516001600160a01b03909116815260200161025c565b34801561049b57600080fd5b506102a660065481565b3480156104b157600080fd5b506103146104c036600461175b565b610a76565b3480156104d157600080fd5b506000546001600160a01b0316610477565b3480156104ef57600080fd5b5060408051808201909152600c81526b71474d90784fc9c49071474f60a11b602082015261024f565b34801561052457600080fd5b50601054610477906001600160a01b031681565b34801561054457600080fd5b5061028561055336600461172f565b610ac0565b34801561056457600080fd5b506103146105733660046117b5565b610acd565b34801561058457600080fd5b50610314610b1e565b34801561059957600080fd5b506102a660125481565b3480156105af57600080fd5b50610314610b5d565b3480156105c457600080fd5b506102a66105d3366004611832565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561060a57600080fd5b506103146106193660046117b5565b610bcd565b34801561062a57600080fd5b506103146106393660046117b5565b610c18565b34801561064a57600080fd5b50610314610cae565b34801561065f57600080fd5b5061031461066e36600461175b565b610d16565b34801561067f57600080fd5b5061031461068e3660046117f4565b610d60565b34801561069f57600080fd5b50600f54610477906001600160a01b031681565b3480156106bf57600080fd5b506102856106ce3660046117b5565b6001600160a01b031660009081526001602052604090205460ff1690565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107479086815260200190565b60405180910390a35060015b92915050565b600080546001600160a01b0316331461078d5760405162461bcd60e51b815260040161078490611860565b60405180910390fd5b6003546107539030906001600160a01b031684610dd8565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610852576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260088252838120338252909152919091205461082d918490610ebe565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b61085d848484610ef8565b90505b9392505050565b6000546001600160a01b031633146108915760405162461bcd60e51b815260040161078490611860565b60055461089f906064611273565b8111156108e05760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b6044820152606401610784565b6108ee81633b9aca00611896565b60125550565b60045460009061093890610910906001600160a01b0316610a5b565b60035461093290610929906001600160a01b0316610a5b565b600554906112b5565b906112b5565b905090565b6000546001600160a01b031633146109675760405162461bcd60e51b815260040161078490611860565b600c91909155600b55565b6000610753826000196106ec565b6000546001600160a01b031633146109aa5760405162461bcd60e51b815260040161078490611860565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109f65760405162461bcd60e51b815260040161078490611860565b6010805461ffff60a81b19169055565b6000546001600160a01b03163314610a305760405162461bcd60e51b815260040161078490611860565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6001600160a01b031660009081526007602052604090205490565b6000546001600160a01b03163314610aa05760405162461bcd60e51b815260040161078490611860565b606481600554610ab09190611896565b610aba91906118b5565b60065550565b6000610860338484610ef8565b6000546001600160a01b03163314610af75760405162461bcd60e51b815260040161078490611860565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b03163314610b485760405162461bcd60e51b815260040161078490611860565b6010805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610b875760405162461bcd60e51b815260040161078490611860565b6000610b9230610a5b565b9050600060125482101590506000818015610bb557506000610bb330610a5b565b115b90508015610bc857610bc86012546112f7565b505050565b6000546001600160a01b03163314610bf75760405162461bcd60e51b815260040161078490611860565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610c425760405162461bcd60e51b815260040161078490611860565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b6000546001600160a01b03163314610cd85760405162461bcd60e51b815260040161078490611860565b600e5460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610d12573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610d405760405162461bcd60e51b815260040161078490611860565b606481600554610d509190611896565b610d5a91906118b5565b60115550565b3360009081526001602052604090205460ff16610dad5760405162461bcd60e51b815260206004820152600b60248201526a085055551213d49256915160aa1b6044820152606401610784565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610e29918490610ebe565b6001600160a01b038086166000908152600760205260408082209390935590851681522054610e5890836113df565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eac9086815260200190565b60405180910390a35060019392505050565b60008184841115610ee25760405162461bcd60e51b815260040161078491906116c2565b506000610eef84866118d7565b95945050505050565b6001600160a01b03831660009081526001602052604081205460ff16158015610f3a57506001600160a01b03831660009081526001602052604090205460ff16155b15610f9857601054600160a01b900460ff16610f985760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e00000000000000006044820152606401610784565b601054600160b01b900460ff168015610fca57506001600160a01b03841660009081526001602052604090205460ff16155b8015610fdf57506001600160a01b0383163014155b8015610ff957506003546001600160a01b03848116911614155b801561101357506010546001600160a01b03848116911614155b801561102d5750600e546001600160a01b03848116911614155b156110c357600061103d84610a5b565b60065490915061104d84836118ee565b11156110c15760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610784565b505b601054600160a81b900460ff16156110df576110df848361143e565b60135460ff16156110fc576110f5848484610dd8565b9050610860565b600061110730610a5b565b905060006012548210159050600081801561112f57506010546001600160a01b038781169116145b80156111435750600061114130610a5b565b115b90508015611156576111566012546114a7565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600790915291909120546111a8918790610ebe565b6001600160a01b0388166000908152600760205260408120919091556111ce88886114ca565b6111d857856111e3565b6111e388888861153f565b6001600160a01b03881660009081526007602052604090205490915061120990826113df565b6001600160a01b0380891660008181526007602052604090819020939093559151908a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061125d9085815260200190565b60405180910390a3506001979650505050505050565b600061086083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611612565b600061086083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ebe565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061132c5761132c611906565b6001600160a01b03928316602091820292909201015260025482519116908290600190811061135d5761135d611906565b6001600160a01b039283166020918202929092010152600f54600e5460405163791ac94760e01b81529183169263791ac947926113a9928792600092889290911690429060040161191c565b600060405180830381600087803b1580156113c357600080fd5b505af11580156113d7573d6000803e3d6000fd5b505050505050565b6000806113ec83856118ee565b9050838110156108605760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610784565b6011548111158061146757506001600160a01b0382166000908152600a602052604090205460ff165b610d125760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610784565b6013805460ff191660011790556114bd816112f7565b506013805460ff19169055565b6001600160a01b03821660009081526009602052604081205460ff168061150957506001600160a01b03821660009081526009602052604090205460ff165b15801561086057506010546001600160a01b03848116911614806108605750506010546001600160a01b03908116911614919050565b60105460009081906001600160a01b0385811691161461156157600b54611565565b600c545b90506000611588600d54611582848761164090919063ffffffff16565b90611273565b306000908152600760205260409020549091506115a590826113df565b30600081815260076020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115f69085815260200190565b60405180910390a361160884826112b5565b9695505050505050565b600081836116335760405162461bcd60e51b815260040161078491906116c2565b506000610eef84866118b5565b60008260000361165257506000610753565b600061165e8385611896565b90508261166b85836118b5565b146108605760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610784565b600060208083528351808285015260005b818110156116ef578581018301518582016040015282016116d3565b81811115611701576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461172c57600080fd5b50565b6000806040838503121561174257600080fd5b823561174d81611717565b946020939093013593505050565b60006020828403121561176d57600080fd5b5035919050565b60008060006060848603121561178957600080fd5b833561179481611717565b925060208401356117a481611717565b929592945050506040919091013590565b6000602082840312156117c757600080fd5b813561086081611717565b600080604083850312156117e557600080fd5b50508035926020909101359150565b6000806040838503121561180757600080fd5b823561181281611717565b91506020830135801515811461182757600080fd5b809150509250929050565b6000806040838503121561184557600080fd5b823561185081611717565b9150602083013561182781611717565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008160001904831182151516156118b0576118b0611880565b500290565b6000826118d257634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156118e9576118e9611880565b500390565b6000821982111561190157611901611880565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561196c5784516001600160a01b031683529383019391830191600101611947565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122016021a390db596365904a58a9bf24da9832cbd89ae15741d05a72ae4dfb772ad64736f6c634300080d0033

Deployed Bytecode Sourcemap

5595:9640:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:80;;;;;;;;;;-1:-1:-1;8062:5:0;;;;;;;;;;;;-1:-1:-1;;;8062:5:0;;;;7990:80;;;;;;;:::i;:::-;;;;;;;;8412:216;;;;;;;;;;-1:-1:-1;8412:216:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;8412:216:0;1072:187:1;7720:88:0;;;;;;;;;;-1:-1:-1;7793:12:0;;7720:88;;;1410:25:1;;;1398:2;1383:18;7720:88:0;1264:177:1;14160:139:0;;;;;;;;;;-1:-1:-1;14160:139:0;;;;;:::i;:::-;;:::i;8930:370::-;;;;;;;;;;-1:-1:-1;8930:370:0;;;;;:::i;:::-;;:::i;14730:206::-;;;;;;;;;;-1:-1:-1;14730:206:0;;;;;:::i;:::-;;:::i;:::-;;14311:142;;;;;;;;;;;;;:::i;3490:103::-;;;;;;;;;;-1:-1:-1;3490:103:0;;;;;:::i;:::-;3545:4;3580:5;-1:-1:-1;;;;;3569:16:0;;;3580:5;;3569:16;;3490:103;7814:80;;;;;;;;;;-1:-1:-1;7814:80:0;;6025:1;2486:36:1;;2474:2;2459:18;7814:80:0;2344:184:1;13683:159:0;;;;;;;;;;-1:-1:-1;13683:159:0;;;;;:::i;:::-;;:::i;8636:122::-;;;;;;;;;;-1:-1:-1;8636:122:0;;;;;:::i;:::-;;:::i;6488:30::-;;;;;;;;;;;;;;;;14461:135;;;;;;;;;;-1:-1:-1;14461:135:0;;;;;:::i;:::-;;:::i;14605:117::-;;;;;;;;;;;;;:::i;13556:119::-;;;;;;;;;;-1:-1:-1;13556:119:0;;;;;:::i;:::-;;:::i;6452:29::-;;;;;;;;;;;;;;;;8160:105;;;;;;;;;;-1:-1:-1;8160:105:0;;;;;:::i;:::-;;:::i;6570:92::-;;;;;;;;;;-1:-1:-1;6570:92:0;;;;-1:-1:-1;;;;;6570:92:0;;;;;;-1:-1:-1;;;;;3387:32:1;;;3369:51;;3357:2;3342:18;6570:92:0;3207:219:1;6139:59:0;;;;;;;;;;;;;;;;14945:149;;;;;;;;;;-1:-1:-1;14945:149:0;;;;;:::i;:::-;;:::i;8076:78::-;;;;;;;;;;-1:-1:-1;8128:7:0;8146:5;-1:-1:-1;;;;;8146:5:0;8076:78;;7900:84;;;;;;;;;;-1:-1:-1;7974:7:0;;;;;;;;;;;;-1:-1:-1;;;7974:7:0;;;;7900:84;;6702:19;;;;;;;;;;-1:-1:-1;6702:19:0;;;;-1:-1:-1;;;;;6702:19:0;;;8766:156;;;;;;;;;;-1:-1:-1;8766:156:0;;;;;:::i;:::-;;:::i;3163:94::-;;;;;;;;;;-1:-1:-1;3163:94:0;;;;;:::i;:::-;;:::i;13463:79::-;;;;;;;;;;;;;:::i;6902:74::-;;;;;;;;;;;;;;;;13052:403;;;;;;;;;;;;;:::i;8271:133::-;;;;;;;;;;-1:-1:-1;8271:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8373:19:0;;;8355:7;8373:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8271:133;3333:97;;;;;;;;;;-1:-1:-1;3333:97:0;;;;;:::i;:::-;;:::i;3890:173::-;;;;;;;;;;-1:-1:-1;3890:173:0;;;;;:::i;:::-;;:::i;13978:174::-;;;;;;;;;;;;;:::i;13850:118::-;;;;;;;;;;-1:-1:-1;13850:118:0;;;;;:::i;:::-;;:::i;15102:128::-;;;;;;;;;;-1:-1:-1;15102:128:0;;;;;:::i;:::-;;:::i;6671:24::-;;;;;;;;;;-1:-1:-1;6671:24:0;;;;-1:-1:-1;;;;;6671:24:0;;;3664:107;;;;;;;;;;-1:-1:-1;3664:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;3744:19:0;3720:4;3744:19;;;:14;:19;;;;;;;;;3664:107;8412:216;8516:10;8487:4;8504:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8504:32:0;;;;;;;;;;:41;;;8561:37;8487:4;;8504:32;;8561:37;;;;8539:6;1410:25:1;;1398:2;1383:18;;1264:177;8561:37:0;;;;;;;;-1:-1:-1;8616:4:0;8412:216;;;;;:::o;14160:139::-;14224:4;3580:5;;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;;;;;;;;;14278:4:::1;::::0;14248:43:::1;::::0;14271:4:::1;::::0;-1:-1:-1;;;;;14278:4:0::1;14284:6:::0;14248:14:::1;:43::i;8930:370::-:0;-1:-1:-1;;;;;9050:19:0;;9030:4;9050:19;;;:11;:19;;;;;;;;9070:10;9050:31;;;;;;;;-1:-1:-1;;9050:52:0;9047:186;;9152:69;;;;;;;;;;;-1:-1:-1;;;9152:69:0;;;;;;;;-1:-1:-1;;;;;9152:19:0;;-1:-1:-1;9152:19:0;;;:11;:19;;;;;9172:10;9152:31;;;;;;;;;;:69;;9188:6;;9152:35;:69::i;:::-;-1:-1:-1;;;;;9118:19:0;;;;;;:11;:19;;;;;;;;9138:10;9118:31;;;;;;;:103;9047:186;9252:40;9266:6;9274:9;9285:6;9252:13;:40::i;:::-;9245:47;;8930:370;;;;;;:::o;14730:206::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;14828:12:::1;::::0;:21:::1;::::0;14845:3:::1;14828:16;:21::i;:::-;14818:6;:31;;14809:60;;;::::0;-1:-1:-1;;;14809:60:0;;5054:2:1;14809:60:0::1;::::0;::::1;5036:21:1::0;5093:2;5073:18;;;5066:30;-1:-1:-1;;;5112:18:1;;;5105:45;5167:18;;14809:60:0::1;4852:339:1::0;14809:60:0::1;14912:16;:6:::0;14921:7:::1;14912:16;:::i;:::-;14880:29;:48:::0;-1:-1:-1;14730:206:0:o;14311:142::-;14439:4;;14364:7;;14391:54;;14429:15;;-1:-1:-1;;;;;14439:4:0;14429:9;:15::i;:::-;14418:4;;14391:33;;14408:15;;-1:-1:-1;;;;;14418:4:0;14408:9;:15::i;:::-;14391:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;14384:61;;14311:142;:::o;13683:159::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;13773:11:::1;:26:::0;;;;13810:10:::1;:24:::0;13683:159::o;8636:122::-;8691:4;8715:35;8723:7;-1:-1:-1;;8715:7:0;:35::i;14461:135::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;14545:15:::1;:43:::0;;-1:-1:-1;;;;;;14545:43:0::1;-1:-1:-1::0;;;;;14545:43:0;;;::::1;::::0;;;::::1;::::0;;14461:135::o;14605:117::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;14658:14:::1;:22:::0;;-1:-1:-1;;;;14691:23:0;;;14605:117::o;13556:119::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13639:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;13639:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13556:119::o;8160:105::-;-1:-1:-1;;;;;8244:18:0;8226:7;8244:18;;;:9;:18;;;;;;;8160:105::o;14945:149::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;15083:3:::1;15064:14;15049:12;;:29;;;;:::i;:::-;15048:38;;;;:::i;:::-;15030:15;:56:::0;-1:-1:-1;14945:149:0:o;8766:156::-;8846:4;8870:44;8884:10;8896:9;8907:6;8870:13;:44::i;3163:94::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3223:19:0::1;;::::0;;;3245:4:::1;3223:19;::::0;;;;;;;:26;;-1:-1:-1;;3223:26:0::1;::::0;;::::1;::::0;;3163:94::o;13463:79::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;13516:11:::1;:18:::0;;-1:-1:-1;;;;13516:18:0::1;-1:-1:-1::0;;;13516:18:0::1;::::0;;13463:79::o;13052:403::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;13103:28:::1;13134:24;13152:4;13134:9;:24::i;:::-;13103:55;;13171:24;13222:29;;13198:20;:53;;13171:80;;13268:19;13291;:51;;;;;13341:1;13314:24;13332:4;13314:9;:24::i;:::-;:28;13291:51;13268:75;;13357:14;13354:94;;;13388:47;13405:29;;13388:16;:47::i;:::-;13090:365;;;13052:403::o:0;3333:97::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3395:19:0::1;3417:5;3395:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3395:27:0::1;::::0;;3333:97::o;3890:173::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;3966:5:::1;:11:::0;;-1:-1:-1;;;;;;3966:11:0::1;-1:-1:-1::0;;;;;3966:11:0;::::1;::::0;;::::1;::::0;;3988:19;;;-1:-1:-1;3988:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3988:26:0::1;::::0;;::::1;::::0;;;4030:25;;3369:51:1;;;4030:25:0::1;::::0;3342:18:1;4030:25:0::1;;;;;;;3890:173:::0;:::o;13978:174::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;14099:15:::1;::::0;14091:53:::1;::::0;14059:21:::1;::::0;-1:-1:-1;;;;;14099:15:0::1;::::0;14091:53;::::1;;;::::0;14059:21;;14030:26:::1;14091:53:::0;14030:26;14091:53;14059:21;14099:15;14091:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14019:133;13978:174::o:0;13850:118::-;3545:4;3580:5;-1:-1:-1;;;;;3580:5:0;2887:10;3569:16;2871:38;;;;-1:-1:-1;;;2871:38:0;;;;;;;:::i;:::-;13957:3:::1;13944:8;13929:12;;:23;;;;:::i;:::-;13927:33;;;;:::i;:::-;13918:6;:42:::0;-1:-1:-1;13850:118:0:o;15102:128::-;3061:10;3720:4;3744:19;;;:14;:19;;;;;;;;3040:48;;;;-1:-1:-1;;;3040:48:0;;6141:2:1;3040:48:0;;;6123:21:1;6180:2;6160:18;;;6153:30;-1:-1:-1;;;6199:18:1;;;6192:41;6250:18;;3040:48:0;5939:335:1;3040:48:0;-1:-1:-1;;;;;15190:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;15190:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15102:128::o;10878:330::-;11008:53;;;;;;;;;;;-1:-1:-1;;;11008:53:0;;;;;;;;-1:-1:-1;;;;;11008:17:0;;10971:4;11008:17;;;:9;:17;;;;;;;:53;;11030:6;;11008:21;:53::i;:::-;-1:-1:-1;;;;;10988:17:0;;;;;;;:9;:17;;;;;;:73;;;;11095:20;;;;;;;:32;;11120:6;11095:24;:32::i;:::-;-1:-1:-1;;;;;11072:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11143:35;;;;;;;;;;11171:6;1410:25:1;;1398:2;1383:18;;1264:177;11143:35:0;;;;;;;;-1:-1:-1;11196:4:0;10878:330;;;;;:::o;549:192::-;635:7;671:12;663:6;;;;655:29;;;;-1:-1:-1;;;655:29:0;;;;;;;;:::i;:::-;-1:-1:-1;695:9:0;707:5;711:1;707;:5;:::i;:::-;695:17;549:192;-1:-1:-1;;;;;549:192:0:o;9308:1558::-;-1:-1:-1;;;;;9421:22:0;;9400:4;9421:22;;;:14;:22;;;;;;;;9420:23;:53;;;;-1:-1:-1;;;;;;9448:25:0;;;;;;:14;:25;;;;;;;;9447:26;9420:53;9417:133;;;9498:11;;-1:-1:-1;;;9498:11:0;;;;9490:48;;;;-1:-1:-1;;;9490:48:0;;6611:2:1;9490:48:0;;;6593:21:1;6650:2;6630:18;;;6623:30;6689:26;6669:18;;;6662:54;6733:18;;9490:48:0;6409:348:1;9490:48:0;9602:15;;-1:-1:-1;;;9602:15:0;;;;:42;;;;-1:-1:-1;;;;;;9622:22:0;;;;;;:14;:22;;;;;;;;9621:23;9602:42;:72;;;;-1:-1:-1;;;;;;9648:26:0;;9669:4;9648:26;;9602:72;:103;;;;-1:-1:-1;9700:4:0;;-1:-1:-1;;;;;9679:26:0;;;9700:4;;9679:26;;9602:103;:124;;;;-1:-1:-1;9722:4:0;;-1:-1:-1;;;;;9709:17:0;;;9722:4;;9709:17;;9602:124;:156;;;;-1:-1:-1;9743:15:0;;-1:-1:-1;;;;;9730:28:0;;;9743:15;;9730:28;;9602:156;9598:358;;;9774:18;9795:20;9805:9;9795;:20::i;:::-;9863:15;;9774:41;;-1:-1:-1;9839:19:0;9852:6;9774:41;9839:19;:::i;:::-;9838:40;;9830:114;;;;-1:-1:-1;;;9830:114:0;;7097:2:1;9830:114:0;;;7079:21:1;7136:2;7116:18;;;7109:30;7175:34;7155:18;;;7148:62;7246:32;7226:18;;;7219:60;7296:19;;9830:114:0;6895:426:1;9830:114:0;9759:197;9598:358;10020:14;;-1:-1:-1;;;10020:14:0;;;;10017:47;;;10036:28;10049:6;10057;10036:12;:28::i;:::-;10080:6;;;;10077:63;;;10096:41;10111:6;10119:9;10130:6;10096:14;:41::i;:::-;10089:48;;;;10077:63;10158:28;10189:24;10207:4;10189:9;:24::i;:::-;10158:55;;10226:24;10277:29;;10253:20;:53;;10226:80;;10323:19;10346;:38;;;;-1:-1:-1;10380:4:0;;-1:-1:-1;;;;;10369:15:0;;;10380:4;;10369:15;10346:38;:70;;;;;10415:1;10388:24;10406:4;10388:9;:24::i;:::-;:28;10346:70;10323:94;;10431:14;10428:62;;;10448:39;10457:29;;10448:8;:39::i;:::-;10522:53;;;;;;;;;;;-1:-1:-1;;;10522:53:0;;;;;;;;-1:-1:-1;;;;;10522:17:0;;-1:-1:-1;10522:17:0;;;:9;:17;;;;;;;;:53;;10544:6;;10522:21;:53::i;:::-;-1:-1:-1;;;;;10502:17:0;;;;;;:9;:17;;;;;:73;;;;10613:32;10512:6;10635:9;10613:13;:32::i;:::-;:78;;10685:6;10613:78;;;10648:34;10656:6;10664:9;10675:6;10648:7;:34::i;:::-;-1:-1:-1;;;;;10735:20:0;;;;;;:9;:20;;;;;;10588:103;;-1:-1:-1;10735:40:0;;10588:103;10735:24;:40::i;:::-;-1:-1:-1;;;;;10712:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10793:43;;;;;;;;;;10821:14;1410:25:1;;1398:2;1383:18;;1264:177;10793:43:0;;;;;;;;-1:-1:-1;10854:4:0;;9308:1558;-1:-1:-1;;;;;;;9308:1558:0:o;1003:132::-;1061:7;1088:39;1092:1;1095;1088:39;;;;;;;;;;;;;;;;;:3;:39::i;407:136::-;465:7;492:43;496:1;499;492:43;;;;;;;;;;;;;;;;;:3;:43::i;12175:491::-;12327:16;;;12341:1;12327:16;;;;;;;;12303:21;;12327:16;;;;;;;;;;-1:-1:-1;12327:16:0;12303:40;;12372:4;12354;12359:1;12354:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12354:23:0;;;:7;;;;;;;;;:23;12398:4;;12388:7;;12398:4;;;12388;;12398;;12388:7;;;;;;:::i;:::-;-1:-1:-1;;;;;12388:14:0;;;:7;;;;;;;;;:14;12441:6;;12602:15;;12441:217;;-1:-1:-1;;;12441:217:0;;:6;;;;:57;;:217;;12513:11;;12441:6;;12583:4;;12602:15;;;;12632;;12441:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12230:436;12175:491;:::o;220:181::-;278:7;;310:5;314:1;310;:5;:::i;:::-;298:17;;339:1;334;:6;;326:46;;;;-1:-1:-1;;;326:46:0;;8785:2:1;326:46:0;;;8767:21:1;8824:2;8804:18;;;8797:30;8863:29;8843:18;;;8836:57;8910:18;;326:46:0;8583:351:1;11216:160:0;11313:6;;11303;:16;;:43;;;-1:-1:-1;;;;;;11323:23:0;;;;;;:15;:23;;;;;;;;11303:43;11295:73;;;;-1:-1:-1;;;11295:73:0;;9141:2:1;11295:73:0;;;9123:21:1;9180:2;9160:18;;;9153:30;-1:-1:-1;;;9199:18:1;;;9192:47;9256:18;;11295:73:0;8939:341:1;12068:95:0;7039:6;:13;;-1:-1:-1;;7039:13:0;7048:4;7039:13;;;12131:24:::1;12148:6:::0;12131:16:::1;:24::i;:::-;-1:-1:-1::0;7057:6:0;:14;;-1:-1:-1;;7057:14:0;;;12068:95::o;11385:206::-;-1:-1:-1;;;;;11494:19:0;;11466:4;11494:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;11517:22:0;;;;;;:11;:22;;;;;;;;11494:45;11492:48;:90;;;;-1:-1:-1;11556:4:0;;-1:-1:-1;;;;;11546:14:0;;;11556:4;;11546:14;;:35;;-1:-1:-1;;11577:4:0;;-1:-1:-1;;;;;11577:4:0;;;11564:17;;;;11385:206;-1:-1:-1;11385:206:0:o;11599:461::-;11744:4;;11685:7;;;;-1:-1:-1;;;;;11731:17:0;;;11744:4;;11731:17;:44;;11765:10;;11731:44;;;11751:11;;11731:44;11705:70;;11786:17;11826:47;11858:14;;11826:27;11837:15;11826:6;:10;;:27;;;;:::i;:::-;:31;;:47::i;:::-;11929:4;11911:24;;;;:9;:24;;;;;;11814:59;;-1:-1:-1;11911:39:0;;11814:59;11911:28;:39::i;:::-;11902:4;11884:24;;;;:9;:24;;;;;;;:66;;;;11966:42;;-1:-1:-1;;;;;11966:42:0;;;;;;;11998:9;1410:25:1;;1398:2;1383:18;;1264:177;11966:42:0;;;;;;;;12031:21;:6;12042:9;12031:10;:21::i;:::-;12024:28;11599:461;-1:-1:-1;;;;;;11599:461:0:o;1141:345::-;1227:7;1329:12;1322:5;1314:28;;;;-1:-1:-1;;;1314:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1353:9:0;1365:5;1369:1;1365;:5;:::i;747:250::-;805:7;829:1;834;829:6;825:47;;-1:-1:-1;859:1:0;852:8;;825:47;884:9;896:5;900:1;896;:5;:::i;:::-;884:17;-1:-1:-1;929:1:0;920:5;924:1;884:17;920:5;:::i;:::-;:10;912:56;;;;-1:-1:-1;;;912:56:0;;9487:2:1;912:56:0;;;9469:21:1;9526:2;9506:18;;;9499:30;9565:34;9545:18;;;9538:62;-1:-1:-1;;;9616:18:1;;;9609:31;9657:19;;912:56:0;9285:397:1;14:597;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:180::-;1505:6;1558:2;1546:9;1537:7;1533:23;1529:32;1526:52;;;1574:1;1571;1564:12;1526:52;-1:-1:-1;1597:23:1;;1446:180;-1:-1:-1;1446:180:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2092:247::-;2151:6;2204:2;2192:9;2183:7;2179:23;2175:32;2172:52;;;2220:1;2217;2210:12;2172:52;2259:9;2246:23;2278:31;2303:5;2278:31;:::i;2533:248::-;2601:6;2609;2662:2;2650:9;2641:7;2637:23;2633:32;2630:52;;;2678:1;2675;2668:12;2630:52;-1:-1:-1;;2701:23:1;;;2771:2;2756:18;;;2743:32;;-1:-1:-1;2533:248:1:o;2786:416::-;2851:6;2859;2912:2;2900:9;2891:7;2887:23;2883:32;2880:52;;;2928:1;2925;2918:12;2880:52;2967:9;2954:23;2986:31;3011:5;2986:31;:::i;:::-;3036:5;-1:-1:-1;3093:2:1;3078:18;;3065:32;3135:15;;3128:23;3116:36;;3106:64;;3166:1;3163;3156:12;3106:64;3189:7;3179:17;;;2786:416;;;;;:::o;3639:388::-;3707:6;3715;3768:2;3756:9;3747:7;3743:23;3739:32;3736:52;;;3784:1;3781;3774:12;3736:52;3823:9;3810:23;3842:31;3867:5;3842:31;:::i;:::-;3892:5;-1:-1:-1;3949:2:1;3934:18;;3921:32;3962:33;3921:32;3962:33;:::i;4518:329::-;4720:2;4702:21;;;4759:1;4739:18;;;4732:29;-1:-1:-1;;;4792:2:1;4777:18;;4770:36;4838:2;4823:18;;4518:329::o;5196:127::-;5257:10;5252:3;5248:20;5245:1;5238:31;5288:4;5285:1;5278:15;5312:4;5309:1;5302:15;5328:168;5368:7;5434:1;5430;5426:6;5422:14;5419:1;5416:21;5411:1;5404:9;5397:17;5393:45;5390:71;;;5441:18;;:::i;:::-;-1:-1:-1;5481:9:1;;5328:168::o;5501:217::-;5541:1;5567;5557:132;;5611:10;5606:3;5602:20;5599:1;5592:31;5646:4;5643:1;5636:15;5674:4;5671:1;5664:15;5557:132;-1:-1:-1;5703:9:1;;5501:217::o;6279:125::-;6319:4;6347:1;6344;6341:8;6338:34;;;6352:18;;:::i;:::-;-1:-1:-1;6389:9:1;;6279:125::o;6762:128::-;6802:3;6833:1;6829:6;6826:1;6823:13;6820:39;;;6839:18;;:::i;:::-;-1:-1:-1;6875:9:1;;6762:128::o;7458:127::-;7519:10;7514:3;7510:20;7507:1;7500:31;7550:4;7547:1;7540:15;7574:4;7571:1;7564:15;7590:988;7860:4;7908:3;7897:9;7893:19;7939:6;7928:9;7921:25;7965:2;8003:6;7998:2;7987:9;7983:18;7976:34;8046:3;8041:2;8030:9;8026:18;8019:31;8070:6;8105;8099:13;8136:6;8128;8121:22;8174:3;8163:9;8159:19;8152:26;;8213:2;8205:6;8201:15;8187:29;;8234:1;8244:195;8258:6;8255:1;8252:13;8244:195;;;8323:13;;-1:-1:-1;;;;;8319:39:1;8307:52;;8414:15;;;;8379:12;;;;8355:1;8273:9;8244:195;;;-1:-1:-1;;;;;;;8495:32:1;;;;8490:2;8475:18;;8468:60;-1:-1:-1;;;8559:3:1;8544:19;8537:35;8456:3;7590:988;-1:-1:-1;;;7590:988:1:o

Swarm Source

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