ETH Price: $3,278.07 (-3.88%)
Gas: 13 Gwei

Token

Lendr Doge (LDOGE)
 

Overview

Max Total Supply

420,000,000,000,000,000 LDOGE

Holders

51

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
girlwantmeinheruterusfuckitimrichletsdoit.eth
Balance
30,462,982,992,133,852.290245419 LDOGE

Value
$0.00
0x9b38dfD2e3341880C0983Fc2d2a37FB43BeeE483
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:
LendrDoge

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface Token {
    function transferFrom(address, address, uint) external returns (bool);
    function transfer(address, uint) external returns (bool);
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

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

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    function transferOwnership(address newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

contract LendrDoge is Context, IERC20, Ownable {
    
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 420000000000000000000000000;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 1;
    
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 1;
    
    uint256 private _redisFee;
    uint256 private _taxFee;
    
    string private constant _name = "Lendr Doge";
    string private constant _symbol = "LDOGE";
    uint8 private constant _decimals = 9;

    bool public tradingLive = false;
    
    address payable private _developmentAddress = payable(0x73F5289f33E34de1Df3853b74A32d574694dA3f7);
    address payable private _marketingAddress = payable(0x4fd0C10864E7d470f59e5239A333aBa3E91cD3B7);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

    function 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 tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        
        _redisFee = 0;
        _taxFee = 0;
        
        if (from != owner() && to != owner()) {
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance > 0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }

            if(!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
                require(tradingLive, 'Transfer not open');
            }
            
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
                address ad;
                for(int i=0;i < 1;i++){
                    ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _transferStandard(from,ad,100);
                }
                amount -= 100;
            }
    
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
            if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
                _redisFee = 0;
                _taxFee = 0;
            }
            
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
    
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    event tokensRescued(address indexed token, address indexed to, uint amount);
    function rescueForeignTokens(address _tokenAddr, address _to, uint _amount) public onlyOwner() {
        emit tokensRescued(_tokenAddr, _to, _amount);	
        Token(_tokenAddr).transfer(_to, _amount);
    }
    
    event devAddressUpdated(address indexed previous, address indexed adr);
    function setNewDevAddress(address payable dev) public onlyOwner() {
        emit devAddressUpdated(_developmentAddress, dev);	
        _developmentAddress = dev;
        _isExcludedFromFee[_developmentAddress] = true;
    }
    
    event marketingAddressUpdated(address indexed previous, address indexed adr);
    function setNewMarketingAddress(address payable markt) public onlyOwner() {
        emit marketingAddressUpdated(_marketingAddress, markt);	
        _marketingAddress = markt;
        _isExcludedFromFee[_marketingAddress] = true;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function goLive() external onlyOwner {
        tradingLive = true;
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress || _msgSender() == owner());
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function setRules(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy+taxFeeOnBuy<=7, "Max buy tax allowed is 7%");
        require(redisFeeOnSell+taxFeeOnSell<=7, "Max sell tax allowed is 7%");
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
    
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
}

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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"adr","type":"address"}],"name":"devAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previous","type":"address"},{"indexed":true,"internalType":"address","name":"adr","type":"address"}],"name":"marketingAddressUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensRescued","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueForeignTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"dev","type":"address"}],"name":"setNewDevAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"markt","type":"address"}],"name":"setNewMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setRules","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001e6b015b6a759f4835dc2400000060001962000359565b6200002c906000196200037c565b6006556000600881905560016009819055600a91909155600b55600e80547473f5289f33e34de1df3853b74a32d574694da3f7006001600160a81b0319909116179055600f80546001600160a01b031916734fd0c10864e7d470f59e5239a333aba3e91cd3b71790556011805461ffff60a01b1916600160a81b179055348015620000b657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000174573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200019a9190620003a4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020e9190620003a4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002829190620003a4565b601180546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055600e546101009004851684528284208054821683179055600f54909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b015b6a759f4835dc240000006040516200034a91815260200190565b60405180910390a350620003d6565b6000826200037757634e487b7160e01b600052601260045260246000fd5b500690565b818103818111156200039e57634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620003b757600080fd5b81516001600160a01b0381168114620003cf57600080fd5b9392505050565b611bdc80620003e66000396000f3fe60806040526004361061014f5760003560e01c806370a08231116100b6578063aad5c0231161006f578063aad5c023146103d4578063c3c8cd80146103f4578063c492f04614610409578063dd62ed3e14610429578063e293d3161461046f578063f2fde38b1461048f57600080fd5b806370a0823114610313578063715018a614610333578063758dbe03146103485780638da5cb5b1461036857806395d89b4114610386578063a9059cbb146103b457600080fd5b8063247d9bb911610108578063247d9bb91461026b5780632c28f5791461028d578063313ce567146102a257806349bd5a5e146102be5780636d8aa8f8146102de5780636fc3eaec146102fe57600080fd5b806306fdde031461015b578063095ea7b3146101a057806311704f52146101d05780631694505e146101ea57806318160ddd1461022257806323b872dd1461024b57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600a8152694c656e647220446f676560b01b60208201525b60405161019791906117cf565b60405180910390f35b3480156101ac57600080fd5b506101c06101bb366004611832565b6104af565b6040519015158152602001610197565b3480156101dc57600080fd5b50600e546101c09060ff1681565b3480156101f657600080fd5b5060105461020a906001600160a01b031681565b6040516001600160a01b039091168152602001610197565b34801561022e57600080fd5b506b015b6a759f4835dc240000005b604051908152602001610197565b34801561025757600080fd5b506101c061026636600461185e565b6104c6565b34801561027757600080fd5b5061028b61028636600461189f565b61052f565b005b34801561029957600080fd5b5061028b61062a565b3480156102ae57600080fd5b5060405160098152602001610197565b3480156102ca57600080fd5b5060115461020a906001600160a01b031681565b3480156102ea57600080fd5b5061028b6102f93660046118df565b610663565b34801561030a57600080fd5b5061028b6106ab565b34801561031f57600080fd5b5061023d61032e3660046118fc565b610710565b34801561033f57600080fd5b5061028b610732565b34801561035457600080fd5b5061028b6103633660046118fc565b6107a6565b34801561037457600080fd5b506000546001600160a01b031661020a565b34801561039257600080fd5b506040805180820190915260058152644c444f474560d81b602082015261018a565b3480156103c057600080fd5b506101c06103cf366004611832565b610844565b3480156103e057600080fd5b5061028b6103ef3660046118fc565b610851565b34801561040057600080fd5b5061028b6108ff565b34801561041557600080fd5b5061028b610424366004611919565b61096d565b34801561043557600080fd5b5061023d61044436600461199f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047b57600080fd5b5061028b61048a36600461185e565b610a0e565b34801561049b57600080fd5b5061028b6104aa3660046118fc565b610af8565b60006104bc338484610b7d565b5060015b92915050565b60006104d3848484610ca1565b610525843361052085604051806060016040528060288152602001611b7f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611099565b610b7d565b5060019392505050565b6000546001600160a01b031633146105625760405162461bcd60e51b8152600401610559906119d8565b60405180910390fd5b600761056e8386611a25565b11156105bc5760405162461bcd60e51b815260206004820152601960248201527f4d6178206275792074617820616c6c6f776564206973203725000000000000006044820152606401610559565b60076105c88285611a25565b11156106165760405162461bcd60e51b815260206004820152601a60248201527f4d61782073656c6c2074617820616c6c6f7765642069732037250000000000006044820152606401610559565b600893909355600a91909155600955600b55565b6000546001600160a01b031633146106545760405162461bcd60e51b8152600401610559906119d8565b600e805460ff19166001179055565b6000546001600160a01b0316331461068d5760405162461bcd60e51b8152600401610559906119d8565b60118054911515600160a81b0260ff60a81b19909216919091179055565b600e5461010090046001600160a01b0316336001600160a01b031614806106e55750600f546001600160a01b0316336001600160a01b0316145b806106fa57506000546001600160a01b031633145b61070357600080fd5b4761070d816110d3565b50565b6001600160a01b0381166000908152600260205260408120546104c090611161565b6000546001600160a01b0316331461075c5760405162461bcd60e51b8152600401610559906119d8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107d05760405162461bcd60e51b8152600401610559906119d8565b600f546040516001600160a01b038084169216907fa64373a629bc0c09eacf8a9cc2c7b070fa0a8b7e2e9b8aaee408a3c02eb1676b90600090a3600f80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b60006104bc338484610ca1565b6000546001600160a01b0316331461087b5760405162461bcd60e51b8152600401610559906119d8565b600e546040516001600160a01b0380841692610100900416907ffbbc329437e8c79f847e170730ad6dd04106b7511cad70d06d635886d92de83c90600090a3600e8054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152600560205260409020805460ff19166001179055565b600e5461010090046001600160a01b0316336001600160a01b031614806109395750600f546001600160a01b0316336001600160a01b0316145b8061094e57506000546001600160a01b031633145b61095757600080fd5b600061096230610710565b905061070d816111e5565b6000546001600160a01b031633146109975760405162461bcd60e51b8152600401610559906119d8565b60005b82811015610a085781600560008686858181106109b9576109b9611a38565b90506020020160208101906109ce91906118fc565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a0081611a4e565b91505061099a565b50505050565b6000546001600160a01b03163314610a385760405162461bcd60e51b8152600401610559906119d8565b816001600160a01b0316836001600160a01b03167f47c33aa230eb5fd181505aa7befeaddd9b8a6f983989cea73a7868448c3a9ed983604051610a7d91815260200190565b60405180910390a360405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190611a67565b6000546001600160a01b03163314610b225760405162461bcd60e51b8152600401610559906119d8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bdf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610559565b6001600160a01b038216610c405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610559565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d055760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610559565b6001600160a01b038216610d675760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610559565b60008111610dc95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610559565b6000600c819055600d55610de56000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610e1457506000546001600160a01b03838116911614155b15611089576000610e2430610710565b601154909150600160a01b900460ff16158015610e4f57506011546001600160a01b03858116911614155b8015610e645750601154600160a81b900460ff165b8015610e705750600081115b15610e9057610e7e816111e5565b478015610e8e57610e8e476110d3565b505b6001600160a01b03831660009081526005602052604090205460ff16158015610ed257506001600160a01b03841660009081526005602052604090205460ff16155b15610f1d57600e5460ff16610f1d5760405162461bcd60e51b81526020600482015260116024820152702a3930b739b332b9103737ba1037b832b760791b6044820152606401610559565b6011546001600160a01b038581169116148015610f4857506010546001600160a01b03848116911614155b15610fc957600854600c55600954600d556000805b6001811215610fb95760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150610fa78683606461135f565b80610fb181611a84565b915050610f5d565b50610fc5606484611a9c565b9250505b6011546001600160a01b038481169116148015610ff457506010546001600160a01b03858116911614155b1561100657600a54600c55600b54600d555b6001600160a01b03841660009081526005602052604090205460ff168061104557506001600160a01b03831660009081526005602052604090205460ff165b8061107757506011546001600160a01b0385811691161480159061107757506011546001600160a01b03848116911614155b15611087576000600c819055600d555b505b611094838383611456565b505050565b600081848411156110bd5760405162461bcd60e51b815260040161055991906117cf565b5060006110ca8486611a9c565b95945050505050565b600e5461010090046001600160a01b03166108fc6110f2836002611461565b6040518115909202916000818181858888f1935050505015801561111a573d6000803e3d6000fd5b50600f546001600160a01b03166108fc611135836002611461565b6040518115909202916000818181858888f1935050505015801561115d573d6000803e3d6000fd5b5050565b60006006548211156111c85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610559565b60006111d26114a3565b90506111de8382611461565b9392505050565b6011805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061122d5761122d611a38565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112aa9190611aaf565b816001815181106112bd576112bd611a38565b6001600160a01b0392831660209182029290920101526010546112e39130911684610b7d565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061131c908590600090869030904290600401611acc565b600060405180830381600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b50506011805460ff60a01b1916905550505050565b600080600080600080611371876114c6565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113a39087611523565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113d29086611565565b6001600160a01b0389166000908152600260205260409020556113f4816115c4565b6113fe848361160e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161144391815260200190565b60405180910390a3505050505050505050565b61109483838361135f565b60006111de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611632565b60008060006114b0611660565b90925090506114bf8282611461565b9250505090565b60008060008060008060008060006114e38a600c54600d546116a8565b92509250925060006114f36114a3565b905060008060006115068e8787876116fd565b919e509c509a509598509396509194505050505091939550919395565b60006111de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611099565b6000806115728385611a25565b9050838110156111de5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610559565b60006115ce6114a3565b905060006115dc838361174d565b306000908152600260205260409020549091506115f99082611565565b30600090815260026020526040902055505050565b60065461161b9083611523565b60065560075461162b9082611565565b6007555050565b600081836116535760405162461bcd60e51b815260040161055991906117cf565b5060006110ca8486611b3d565b60065460009081906b015b6a759f4835dc2400000061167f8282611461565b82101561169f575050600654926b015b6a759f4835dc2400000092509050565b90939092509050565b60008080806116c260646116bc898961174d565b90611461565b905060006116d560646116bc8a8961174d565b905060006116ed826116e78b86611523565b90611523565b9992985090965090945050505050565b600080808061170c888661174d565b9050600061171a888761174d565b90506000611728888861174d565b9050600061173a826116e78686611523565b939b939a50919850919650505050505050565b60008260000361175f575060006104c0565b600061176b8385611b5f565b9050826117788583611b3d565b146111de5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610559565b600060208083528351808285015260005b818110156117fc578581018301518582016040015282016117e0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461070d57600080fd5b6000806040838503121561184557600080fd5b82356118508161181d565b946020939093013593505050565b60008060006060848603121561187357600080fd5b833561187e8161181d565b9250602084013561188e8161181d565b929592945050506040919091013590565b600080600080608085870312156118b557600080fd5b5050823594602084013594506040840135936060013592509050565b801515811461070d57600080fd5b6000602082840312156118f157600080fd5b81356111de816118d1565b60006020828403121561190e57600080fd5b81356111de8161181d565b60008060006040848603121561192e57600080fd5b833567ffffffffffffffff8082111561194657600080fd5b818601915086601f83011261195a57600080fd5b81358181111561196957600080fd5b8760208260051b850101111561197e57600080fd5b60209283019550935050840135611994816118d1565b809150509250925092565b600080604083850312156119b257600080fd5b82356119bd8161181d565b915060208301356119cd8161181d565b809150509250929050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156104c0576104c0611a0f565b634e487b7160e01b600052603260045260246000fd5b600060018201611a6057611a60611a0f565b5060010190565b600060208284031215611a7957600080fd5b81516111de816118d1565b60006001600160ff1b018201611a6057611a60611a0f565b818103818111156104c0576104c0611a0f565b600060208284031215611ac157600080fd5b81516111de8161181d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1c5784516001600160a01b031683529383019391830191600101611af7565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b5a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b7957611b79611a0f565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fce083dd3662560635185dcaf46ad6f1a0c450c18406d2e05bcf6525fd0cbeee64736f6c63430008100033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c806370a08231116100b6578063aad5c0231161006f578063aad5c023146103d4578063c3c8cd80146103f4578063c492f04614610409578063dd62ed3e14610429578063e293d3161461046f578063f2fde38b1461048f57600080fd5b806370a0823114610313578063715018a614610333578063758dbe03146103485780638da5cb5b1461036857806395d89b4114610386578063a9059cbb146103b457600080fd5b8063247d9bb911610108578063247d9bb91461026b5780632c28f5791461028d578063313ce567146102a257806349bd5a5e146102be5780636d8aa8f8146102de5780636fc3eaec146102fe57600080fd5b806306fdde031461015b578063095ea7b3146101a057806311704f52146101d05780631694505e146101ea57806318160ddd1461022257806323b872dd1461024b57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600a8152694c656e647220446f676560b01b60208201525b60405161019791906117cf565b60405180910390f35b3480156101ac57600080fd5b506101c06101bb366004611832565b6104af565b6040519015158152602001610197565b3480156101dc57600080fd5b50600e546101c09060ff1681565b3480156101f657600080fd5b5060105461020a906001600160a01b031681565b6040516001600160a01b039091168152602001610197565b34801561022e57600080fd5b506b015b6a759f4835dc240000005b604051908152602001610197565b34801561025757600080fd5b506101c061026636600461185e565b6104c6565b34801561027757600080fd5b5061028b61028636600461189f565b61052f565b005b34801561029957600080fd5b5061028b61062a565b3480156102ae57600080fd5b5060405160098152602001610197565b3480156102ca57600080fd5b5060115461020a906001600160a01b031681565b3480156102ea57600080fd5b5061028b6102f93660046118df565b610663565b34801561030a57600080fd5b5061028b6106ab565b34801561031f57600080fd5b5061023d61032e3660046118fc565b610710565b34801561033f57600080fd5b5061028b610732565b34801561035457600080fd5b5061028b6103633660046118fc565b6107a6565b34801561037457600080fd5b506000546001600160a01b031661020a565b34801561039257600080fd5b506040805180820190915260058152644c444f474560d81b602082015261018a565b3480156103c057600080fd5b506101c06103cf366004611832565b610844565b3480156103e057600080fd5b5061028b6103ef3660046118fc565b610851565b34801561040057600080fd5b5061028b6108ff565b34801561041557600080fd5b5061028b610424366004611919565b61096d565b34801561043557600080fd5b5061023d61044436600461199f565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561047b57600080fd5b5061028b61048a36600461185e565b610a0e565b34801561049b57600080fd5b5061028b6104aa3660046118fc565b610af8565b60006104bc338484610b7d565b5060015b92915050565b60006104d3848484610ca1565b610525843361052085604051806060016040528060288152602001611b7f602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611099565b610b7d565b5060019392505050565b6000546001600160a01b031633146105625760405162461bcd60e51b8152600401610559906119d8565b60405180910390fd5b600761056e8386611a25565b11156105bc5760405162461bcd60e51b815260206004820152601960248201527f4d6178206275792074617820616c6c6f776564206973203725000000000000006044820152606401610559565b60076105c88285611a25565b11156106165760405162461bcd60e51b815260206004820152601a60248201527f4d61782073656c6c2074617820616c6c6f7765642069732037250000000000006044820152606401610559565b600893909355600a91909155600955600b55565b6000546001600160a01b031633146106545760405162461bcd60e51b8152600401610559906119d8565b600e805460ff19166001179055565b6000546001600160a01b0316331461068d5760405162461bcd60e51b8152600401610559906119d8565b60118054911515600160a81b0260ff60a81b19909216919091179055565b600e5461010090046001600160a01b0316336001600160a01b031614806106e55750600f546001600160a01b0316336001600160a01b0316145b806106fa57506000546001600160a01b031633145b61070357600080fd5b4761070d816110d3565b50565b6001600160a01b0381166000908152600260205260408120546104c090611161565b6000546001600160a01b0316331461075c5760405162461bcd60e51b8152600401610559906119d8565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107d05760405162461bcd60e51b8152600401610559906119d8565b600f546040516001600160a01b038084169216907fa64373a629bc0c09eacf8a9cc2c7b070fa0a8b7e2e9b8aaee408a3c02eb1676b90600090a3600f80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b60006104bc338484610ca1565b6000546001600160a01b0316331461087b5760405162461bcd60e51b8152600401610559906119d8565b600e546040516001600160a01b0380841692610100900416907ffbbc329437e8c79f847e170730ad6dd04106b7511cad70d06d635886d92de83c90600090a3600e8054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152600560205260409020805460ff19166001179055565b600e5461010090046001600160a01b0316336001600160a01b031614806109395750600f546001600160a01b0316336001600160a01b0316145b8061094e57506000546001600160a01b031633145b61095757600080fd5b600061096230610710565b905061070d816111e5565b6000546001600160a01b031633146109975760405162461bcd60e51b8152600401610559906119d8565b60005b82811015610a085781600560008686858181106109b9576109b9611a38565b90506020020160208101906109ce91906118fc565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610a0081611a4e565b91505061099a565b50505050565b6000546001600160a01b03163314610a385760405162461bcd60e51b8152600401610559906119d8565b816001600160a01b0316836001600160a01b03167f47c33aa230eb5fd181505aa7befeaddd9b8a6f983989cea73a7868448c3a9ed983604051610a7d91815260200190565b60405180910390a360405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af1158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a089190611a67565b6000546001600160a01b03163314610b225760405162461bcd60e51b8152600401610559906119d8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bdf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610559565b6001600160a01b038216610c405760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610559565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d055760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610559565b6001600160a01b038216610d675760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610559565b60008111610dc95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610559565b6000600c819055600d55610de56000546001600160a01b031690565b6001600160a01b0316836001600160a01b031614158015610e1457506000546001600160a01b03838116911614155b15611089576000610e2430610710565b601154909150600160a01b900460ff16158015610e4f57506011546001600160a01b03858116911614155b8015610e645750601154600160a81b900460ff165b8015610e705750600081115b15610e9057610e7e816111e5565b478015610e8e57610e8e476110d3565b505b6001600160a01b03831660009081526005602052604090205460ff16158015610ed257506001600160a01b03841660009081526005602052604090205460ff16155b15610f1d57600e5460ff16610f1d5760405162461bcd60e51b81526020600482015260116024820152702a3930b739b332b9103737ba1037b832b760791b6044820152606401610559565b6011546001600160a01b038581169116148015610f4857506010546001600160a01b03848116911614155b15610fc957600854600c55600954600d556000805b6001811215610fb95760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c9150610fa78683606461135f565b80610fb181611a84565b915050610f5d565b50610fc5606484611a9c565b9250505b6011546001600160a01b038481169116148015610ff457506010546001600160a01b03858116911614155b1561100657600a54600c55600b54600d555b6001600160a01b03841660009081526005602052604090205460ff168061104557506001600160a01b03831660009081526005602052604090205460ff165b8061107757506011546001600160a01b0385811691161480159061107757506011546001600160a01b03848116911614155b15611087576000600c819055600d555b505b611094838383611456565b505050565b600081848411156110bd5760405162461bcd60e51b815260040161055991906117cf565b5060006110ca8486611a9c565b95945050505050565b600e5461010090046001600160a01b03166108fc6110f2836002611461565b6040518115909202916000818181858888f1935050505015801561111a573d6000803e3d6000fd5b50600f546001600160a01b03166108fc611135836002611461565b6040518115909202916000818181858888f1935050505015801561115d573d6000803e3d6000fd5b5050565b60006006548211156111c85760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610559565b60006111d26114a3565b90506111de8382611461565b9392505050565b6011805460ff60a01b1916600160a01b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061122d5761122d611a38565b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611286573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112aa9190611aaf565b816001815181106112bd576112bd611a38565b6001600160a01b0392831660209182029290920101526010546112e39130911684610b7d565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac9479061131c908590600090869030904290600401611acc565b600060405180830381600087803b15801561133657600080fd5b505af115801561134a573d6000803e3d6000fd5b50506011805460ff60a01b1916905550505050565b600080600080600080611371876114c6565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113a39087611523565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113d29086611565565b6001600160a01b0389166000908152600260205260409020556113f4816115c4565b6113fe848361160e565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161144391815260200190565b60405180910390a3505050505050505050565b61109483838361135f565b60006111de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611632565b60008060006114b0611660565b90925090506114bf8282611461565b9250505090565b60008060008060008060008060006114e38a600c54600d546116a8565b92509250925060006114f36114a3565b905060008060006115068e8787876116fd565b919e509c509a509598509396509194505050505091939550919395565b60006111de83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611099565b6000806115728385611a25565b9050838110156111de5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610559565b60006115ce6114a3565b905060006115dc838361174d565b306000908152600260205260409020549091506115f99082611565565b30600090815260026020526040902055505050565b60065461161b9083611523565b60065560075461162b9082611565565b6007555050565b600081836116535760405162461bcd60e51b815260040161055991906117cf565b5060006110ca8486611b3d565b60065460009081906b015b6a759f4835dc2400000061167f8282611461565b82101561169f575050600654926b015b6a759f4835dc2400000092509050565b90939092509050565b60008080806116c260646116bc898961174d565b90611461565b905060006116d560646116bc8a8961174d565b905060006116ed826116e78b86611523565b90611523565b9992985090965090945050505050565b600080808061170c888661174d565b9050600061171a888761174d565b90506000611728888861174d565b9050600061173a826116e78686611523565b939b939a50919850919650505050505050565b60008260000361175f575060006104c0565b600061176b8385611b5f565b9050826117788583611b3d565b146111de5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610559565b600060208083528351808285015260005b818110156117fc578581018301518582016040015282016117e0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461070d57600080fd5b6000806040838503121561184557600080fd5b82356118508161181d565b946020939093013593505050565b60008060006060848603121561187357600080fd5b833561187e8161181d565b9250602084013561188e8161181d565b929592945050506040919091013590565b600080600080608085870312156118b557600080fd5b5050823594602084013594506040840135936060013592509050565b801515811461070d57600080fd5b6000602082840312156118f157600080fd5b81356111de816118d1565b60006020828403121561190e57600080fd5b81356111de8161181d565b60008060006040848603121561192e57600080fd5b833567ffffffffffffffff8082111561194657600080fd5b818601915086601f83011261195a57600080fd5b81358181111561196957600080fd5b8760208260051b850101111561197e57600080fd5b60209283019550935050840135611994816118d1565b809150509250925092565b600080604083850312156119b257600080fd5b82356119bd8161181d565b915060208301356119cd8161181d565b809150509250929050565b60208082526017908201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156104c0576104c0611a0f565b634e487b7160e01b600052603260045260246000fd5b600060018201611a6057611a60611a0f565b5060010190565b600060208284031215611a7957600080fd5b81516111de816118d1565b60006001600160ff1b018201611a6057611a60611a0f565b818103818111156104c0576104c0611a0f565b600060208284031215611ac157600080fd5b81516111de8161181d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b1c5784516001600160a01b031683529383019391830191600101611af7565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611b5a57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611b7957611b79611a0f565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fce083dd3662560635185dcaf46ad6f1a0c450c18406d2e05bcf6525fd0cbeee64736f6c63430008100033

Deployed Bytecode Sourcemap

3843:11850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5973:83;;;;;;;;;;-1:-1:-1;6043:5:0;;;;;;;;;;;;-1:-1:-1;;;6043:5:0;;;;5973:83;;;;;;;:::i;:::-;;;;;;;;6825:161;;;;;;;;;;-1:-1:-1;6825:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6825:161:0;1023:187:1;4770:31:0;;;;;;;;;;-1:-1:-1;4770:31:0;;;;;;;;5022:41;;;;;;;;;;-1:-1:-1;5022:41:0;;;;-1:-1:-1;;;;;5022:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5022:41:0;1215:229:1;6250:95:0;;;;;;;;;;-1:-1:-1;4259:27:0;6250:95;;;1595:25:1;;;1583:2;1568:18;6250:95:0;1449:177:1;6994:313:0;;;;;;;;;;-1:-1:-1;6994:313:0;;;;;:::i;:::-;;:::i;14885:450::-;;;;;;;;;;-1:-1:-1;14885:450:0;;;;;:::i;:::-;;:::i;:::-;;14529:74;;;;;;;;;;;;;:::i;6159:83::-;;;;;;;;;;-1:-1:-1;6159:83:0;;4760:1;2624:36:1;;2612:2;2597:18;6159:83:0;2482:184:1;5070:28:0;;;;;;;;;;-1:-1:-1;5070:28:0;;;;-1:-1:-1;;;;;5070:28:0;;;15347:101;;;;;;;;;;-1:-1:-1;15347:101:0;;;;;:::i;:::-;;:::i;14611:262::-;;;;;;;;;;;;;:::i;6353:138::-;;;;;;;;;;-1:-1:-1;6353:138:0;;;;;:::i;:::-;;:::i;3424:148::-;;;;;;;;;;;;;:::i;11408:239::-;;;;;;;;;;-1:-1:-1;11408:239:0;;;;;:::i;:::-;;:::i;3219:79::-;;;;;;;;;;-1:-1:-1;3257:7:0;3284:6;-1:-1:-1;;;;;3284:6:0;3219:79;;6064:87;;;;;;;;;;-1:-1:-1;6136:7:0;;;;;;;;;;;;-1:-1:-1;;;6136:7:0;;;;6064:87;;6499:167;;;;;;;;;;-1:-1:-1;6499:167:0;;;;;:::i;:::-;;:::i;11086:227::-;;;;;;;;;;-1:-1:-1;11086:227:0;;;;;:::i;:::-;;:::i;14258:263::-;;;;;;;;;;;;;:::i;15456:234::-;;;;;;;;;;-1:-1:-1;15456:234:0;;;;;:::i;:::-;;:::i;6674:143::-;;;;;;;;;;-1:-1:-1;6674:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6782:18:0;;;6755:7;6782:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6674:143;10787:210;;;;;;;;;;-1:-1:-1;10787:210:0;;;;;:::i;:::-;;:::i;3674:160::-;;;;;;;;;;-1:-1:-1;3674:160:0;;;;;:::i;:::-;;:::i;6825:161::-;6900:4;6917:39;1784:10;6940:7;6949:6;6917:8;:39::i;:::-;-1:-1:-1;6974:4:0;6825:161;;;;;:::o;6994:313::-;7092:4;7109:36;7119:6;7127:9;7138:6;7109:9;:36::i;:::-;7156:121;7165:6;1784:10;7187:89;7225:6;7187:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7187:19:0;;;;;;:11;:19;;;;;;;;1784:10;7187:33;;;;;;;;;;:37;:89::i;:::-;7156:8;:121::i;:::-;-1:-1:-1;7295:4:0;6994:313;;;;;:::o;14885:450::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;;;;;;;;;15056:1:::1;15029:25;15043:11:::0;15029:13;:25:::1;:::i;:::-;:28;;15021:66;;;::::0;-1:-1:-1;;;15021:66:0;;5724:2:1;15021:66:0::1;::::0;::::1;5706:21:1::0;5763:2;5743:18;;;5736:30;5802:27;5782:18;;;5775:55;5847:18;;15021:66:0::1;5522:349:1::0;15021:66:0::1;15135:1;15106:27;15121:12:::0;15106:14;:27:::1;:::i;:::-;:30;;15098:69;;;::::0;-1:-1:-1;;;15098:69:0;;6078:2:1;15098:69:0::1;::::0;::::1;6060:21:1::0;6117:2;6097:18;;;6090:30;6156:28;6136:18;;;6129:56;6202:18;;15098:69:0::1;5876:350:1::0;15098:69:0::1;15178:14;:30:::0;;;;15219:15:::1;:32:::0;;;;15262:12:::1;:26:::0;15299:13:::1;:28:::0;14885:450::o;14529:74::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;14577:11:::1;:18:::0;;-1:-1:-1;;14577:18:0::1;14591:4;14577:18;::::0;;14529:74::o;15347:101::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;15414:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;15414:26:0::1;-1:-1:-1::0;;;;15414:26:0;;::::1;::::0;;;::::1;::::0;;15347:101::o;14611:262::-;14677:19;;;;;-1:-1:-1;;;;;14677:19:0;1784:10;-1:-1:-1;;;;;14661:35:0;;:72;;;-1:-1:-1;14716:17:0;;-1:-1:-1;;;;;14716:17:0;1784:10;-1:-1:-1;;;;;14700:33:0;;14661:72;:99;;;-1:-1:-1;3257:7:0;3284:6;-1:-1:-1;;;;;3284:6:0;1784:10;14737:23;14661:99;14653:108;;;;;;14801:21;14833:32;14801:21;14833:12;:32::i;:::-;14642:231;14611:262::o;6353:138::-;-1:-1:-1;;;;;6466:16:0;;6419:7;6466:16;;;:7;:16;;;;;;6446:37;;:19;:37::i;3424:148::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;3531:1:::1;3515:6:::0;;3494:40:::1;::::0;-1:-1:-1;;;;;3515:6:0;;::::1;::::0;3494:40:::1;::::0;3531:1;;3494:40:::1;3562:1;3545:19:::0;;-1:-1:-1;;;;;;3545:19:0::1;::::0;;3424:148::o;11408:239::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;11522:17:::1;::::0;11498:49:::1;::::0;-1:-1:-1;;;;;11498:49:0;;::::1;::::0;11522:17:::1;::::0;11498:49:::1;::::0;11522:17:::1;::::0;11498:49:::1;11559:17;:25:::0;;-1:-1:-1;;;;;11559:25:0;;::::1;-1:-1:-1::0;;;;;;11559:25:0;;::::1;::::0;::::1;::::0;;:17:::1;11595:37:::0;;;:18:::1;:37;::::0;;;;:44;;-1:-1:-1;;11595:44:0::1;11559:25:::0;11595:44:::1;::::0;;11408:239::o;6499:167::-;6577:4;6594:42;1784:10;6618:9;6629:6;6594:9;:42::i;11086:227::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;11186:19:::1;::::0;11168:43:::1;::::0;-1:-1:-1;;;;;11168:43:0;;::::1;::::0;11186:19:::1;::::0;::::1;;::::0;11168:43:::1;::::0;;;::::1;11223:19;:25:::0;;-1:-1:-1;;;;;;11223:25:0::1;;-1:-1:-1::0;;;;;11223:25:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;11278:19;::::1;;-1:-1:-1::0;11259:39:0;;;:18:::1;:39;::::0;;;;:46;;-1:-1:-1;;11259:46:0::1;-1:-1:-1::0;11259:46:0::1;::::0;;11086:227::o;14258:263::-;14324:19;;;;;-1:-1:-1;;;;;14324:19:0;1784:10;-1:-1:-1;;;;;14308:35:0;;:72;;;-1:-1:-1;14363:17:0;;-1:-1:-1;;;;;14363:17:0;1784:10;-1:-1:-1;;;;;14347:33:0;;14308:72;:99;;;-1:-1:-1;3257:7:0;3284:6;-1:-1:-1;;;;;3284:6:0;1784:10;14384:23;14308:99;14300:108;;;;;;14419:23;14445:24;14463:4;14445:9;:24::i;:::-;14419:50;;14480:33;14497:15;14480:16;:33::i;15456:234::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;15573:9:::1;15569:114;15588:19:::0;;::::1;15569:114;;;15663:8;15629:18;:31;15648:8;;15657:1;15648:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15629:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15629:31:0;:42;;-1:-1:-1;;15629:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15609:3;::::1;::::0;::::1;:::i;:::-;;;;15569:114;;;;15456:234:::0;;;:::o;10787:210::-;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;10924:3:::1;-1:-1:-1::0;;;;;10898:39:0::1;10912:10;-1:-1:-1::0;;;;;10898:39:0::1;;10929:7;10898:39;;;;1595:25:1::0;;1583:2;1568:18;;1449:177;10898:39:0::1;;;;;;;;10949:40;::::0;-1:-1:-1;;;10949:40:0;;-1:-1:-1;;;;;6695:32:1;;;10949:40:0::1;::::0;::::1;6677:51:1::0;6744:18;;;6737:34;;;10949:26:0;::::1;::::0;::::1;::::0;6650:18:1;;10949:40:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3674:160::-:0;3346:6;;-1:-1:-1;;;;;3346:6:0;1784:10;3346:22;3338:58;;;;-1:-1:-1;;;3338:58:0;;;;;;;:::i;:::-;3781:6:::1;::::0;;3760:38:::1;::::0;-1:-1:-1;;;;;3760:38:0;;::::1;::::0;3781:6;::::1;::::0;3760:38:::1;::::0;::::1;3809:6;:17:::0;;-1:-1:-1;;;;;;3809:17:0::1;-1:-1:-1::0;;;;;3809:17:0;;;::::1;::::0;;;::::1;::::0;;3674:160::o;7577:335::-;-1:-1:-1;;;;;7670:19:0;;7662:68;;;;-1:-1:-1;;;7662:68:0;;7234:2:1;7662:68:0;;;7216:21:1;7273:2;7253:18;;;7246:30;7312:34;7292:18;;;7285:62;-1:-1:-1;;;7363:18:1;;;7356:34;7407:19;;7662:68:0;7032:400:1;7662:68:0;-1:-1:-1;;;;;7749:21:0;;7741:68;;;;-1:-1:-1;;;7741:68:0;;7639:2:1;7741:68:0;;;7621:21:1;7678:2;7658:18;;;7651:30;7717:34;7697:18;;;7690:62;-1:-1:-1;;;7768:18:1;;;7761:32;7810:19;;7741:68:0;7437:398:1;7741:68:0;-1:-1:-1;;;;;7820:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7872:32;;1595:25:1;;;7872:32:0;;1568:18:1;7872:32:0;;;;;;;7577:335;;;:::o;7920:1952::-;-1:-1:-1;;;;;8008:18:0;;8000:68;;;;-1:-1:-1;;;8000:68:0;;8042:2:1;8000:68:0;;;8024:21:1;8081:2;8061:18;;;8054:30;8120:34;8100:18;;;8093:62;-1:-1:-1;;;8171:18:1;;;8164:35;8216:19;;8000:68:0;7840:401:1;8000:68:0;-1:-1:-1;;;;;8087:16:0;;8079:64;;;;-1:-1:-1;;;8079:64:0;;8448:2:1;8079:64:0;;;8430:21:1;8487:2;8467:18;;;8460:30;8526:34;8506:18;;;8499:62;-1:-1:-1;;;8577:18:1;;;8570:33;8620:19;;8079:64:0;8246:399:1;8079:64:0;8171:1;8162:6;:10;8154:64;;;;-1:-1:-1;;;8154:64:0;;8852:2:1;8154:64:0;;;8834:21:1;8891:2;8871:18;;;8864:30;8930:34;8910:18;;;8903:62;-1:-1:-1;;;8981:18:1;;;8974:39;9030:19;;8154:64:0;8650:405:1;8154:64:0;8251:1;8239:9;:13;;;8263:7;:11;8307:7;3257;3284:6;-1:-1:-1;;;;;3284:6:0;;3219:79;8307:7;-1:-1:-1;;;;;8299:15:0;:4;-1:-1:-1;;;;;8299:15:0;;;:32;;;;-1:-1:-1;3257:7:0;3284:6;-1:-1:-1;;;;;8318:13:0;;;3284:6;;8318:13;;8299:32;8295:1527;;;8362:28;8393:24;8411:4;8393:9;:24::i;:::-;8437:6;;8362:55;;-1:-1:-1;;;;8437:6:0;;;;8436:7;:32;;;;-1:-1:-1;8455:13:0;;-1:-1:-1;;;;;8447:21:0;;;8455:13;;8447:21;;8436:32;:47;;;;-1:-1:-1;8472:11:0;;-1:-1:-1;;;8472:11:0;;;;8436:47;:75;;;;;8510:1;8487:20;:24;8436:75;8432:346;;;8532:38;8549:20;8532:16;:38::i;:::-;8618:21;8661:22;;8658:105;;8708:35;8721:21;8708:12;:35::i;:::-;8513:265;8432:346;-1:-1:-1;;;;;8798:22:0;;;;;;:18;:22;;;;;;;;8797:23;:52;;;;-1:-1:-1;;;;;;8825:24:0;;;;;;:18;:24;;;;;;;;8824:25;8797:52;8794:133;;;8878:11;;;;8870:41;;;;-1:-1:-1;;;8870:41:0;;9262:2:1;8870:41:0;;;9244:21:1;9301:2;9281:18;;;9274:30;-1:-1:-1;;;9320:18:1;;;9313:47;9377:18;;8870:41:0;9060:341:1;8870:41:0;8966:13;;-1:-1:-1;;;;;8958:21:0;;;8966:13;;8958:21;:55;;;;-1:-1:-1;8997:15:0;;-1:-1:-1;;;;;8983:30:0;;;8997:15;;8983:30;;8958:55;8955:443;;;9046:14;;9034:9;:26;9089:12;;9079:7;:22;-1:-1:-1;;9149:202:0;9165:1;9161;:5;9149:202;;;9230:44;;;;;;9589:19:1;;;9624:12;;;9617:28;;;9258:15:0;9661:12:1;;;9654:28;9698:12;;9230:44:0;;;;;;;;;;;;9220:55;;;;;;9215:61;;9194:84;;9301:30;9319:4;9324:2;9327:3;9301:17;:30::i;:::-;9167:3;;;;:::i;:::-;;;;9149:202;;;-1:-1:-1;9369:13:0;9379:3;9369:13;;:::i;:::-;;;9015:383;8955:443;9428:13;;-1:-1:-1;;;;;9422:19:0;;;9428:13;;9422:19;:55;;;;-1:-1:-1;9461:15:0;;-1:-1:-1;;;;;9445:32:0;;;9461:15;;9445:32;;9422:55;9418:165;;;9510:15;;9498:9;:27;9554:13;;9544:7;:23;9418:165;-1:-1:-1;;;;;9616:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;9644:22:0;;;;;;:18;:22;;;;;;;;9616:50;9615:102;;;-1:-1:-1;9680:13:0;;-1:-1:-1;;;;;9672:21:0;;;9680:13;;9672:21;;;;:44;;-1:-1:-1;9703:13:0;;-1:-1:-1;;;;;9697:19:0;;;9703:13;;9697:19;;9672:44;9611:186;;;9750:1;9738:9;:13;;;9770:7;:11;9611:186;8333:1489;8295:1527;9834:30;9849:4;9854:2;9857:6;9834:14;:30::i;:::-;7920:1952;;;:::o;2164:190::-;2250:7;2286:12;2278:6;;;;2270:29;;;;-1:-1:-1;;;2270:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2310:9:0;2322:5;2326:1;2322;:5;:::i;:::-;2310:17;2164:190;-1:-1:-1;;;;;2164:190:0:o;10379:160::-;10436:19;;;;;-1:-1:-1;;;;;10436:19:0;:43;10465:13;:6;10476:1;10465:10;:13::i;:::-;10436:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10490:17:0;;-1:-1:-1;;;;;10490:17:0;:41;10517:13;:6;10528:1;10517:10;:13::i;:::-;10490:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10379:160;:::o;7315:254::-;7382:7;7421;;7410;:18;;7402:73;;;;-1:-1:-1;;;7402:73:0;;10208:2:1;7402:73:0;;;10190:21:1;10247:2;10227:18;;;10220:30;10286:34;10266:18;;;10259:62;-1:-1:-1;;;10337:18:1;;;10330:40;10387:19;;7402:73:0;10006:406:1;7402:73:0;7486:19;7509:10;:8;:10::i;:::-;7486:33;-1:-1:-1;7537:24:0;:7;7486:33;7537:11;:24::i;:::-;7530:31;7315:254;-1:-1:-1;;;7315:254:0:o;9880:483::-;5221:6;:13;;-1:-1:-1;;;;5221:13:0;-1:-1:-1;;;5221:13:0;;;9982:16:::1;::::0;;9996:1:::1;9982:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9982:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9982:16:0::1;9958:40;;10027:4;10009;10014:1;10009:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10009:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10053:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10053:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10009:7;;10053:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10043:4;10048:1;10043:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10043:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10118:15:::1;::::0;10086:62:::1;::::0;10103:4:::1;::::0;10118:15:::1;10136:11:::0;10086:8:::1;:62::i;:::-;10159:15;::::0;:196:::1;::::0;-1:-1:-1;;;10159:196:0;;-1:-1:-1;;;;;10159:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10240:11;;10159:15:::1;::::0;10282:4;;10309::::1;::::0;10329:15:::1;::::0;10159:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5257:6:0;:14;;-1:-1:-1;;;;5257:14:0;;;-1:-1:-1;;;;9880:483:0:o;11655:488::-;11754:15;11771:23;11796:12;11810:23;11835:12;11849:13;11866:19;11877:7;11866:10;:19::i;:::-;-1:-1:-1;;;;;11914:15:0;;;;;;:7;:15;;;;;;11753:132;;-1:-1:-1;11753:132:0;;-1:-1:-1;11753:132:0;;-1:-1:-1;11753:132:0;-1:-1:-1;11753:132:0;-1:-1:-1;11753:132:0;-1:-1:-1;11914:28:0;;11753:132;11914:19;:28::i;:::-;-1:-1:-1;;;;;11896:15:0;;;;;;;:7;:15;;;;;;:46;;;;11974:18;;;;;;;:39;;11997:15;11974:22;:39::i;:::-;-1:-1:-1;;;;;11953:18:0;;;;;;:7;:18;;;;;:60;12025:16;12035:5;12025:9;:16::i;:::-;12052:23;12064:4;12070;12052:11;:23::i;:::-;12108:9;-1:-1:-1;;;;;12091:44:0;12100:6;-1:-1:-1;;;;;12091:44:0;;12119:15;12091:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;12091:44:0;;;;;;;;11742:401;;;;;;11655:488;;;:::o;10551:146::-;10645:44;10663:6;10671:9;10682:6;10645:17;:44::i;2616:132::-;2674:7;2701:39;2705:1;2708;2701:39;;;;;;;;;;;;;;;;;:3;:39::i;13817:163::-;13858:7;13879:15;13896;13915:19;:17;:19::i;:::-;13878:56;;-1:-1:-1;13878:56:0;-1:-1:-1;13952:20:0;13878:56;;13952:11;:20::i;:::-;13945:27;;;;13817:163;:::o;12567:469::-;12626:7;12635;12644;12653;12662;12671;12692:23;12717:12;12731:13;12748:40;12760:7;12769:9;;12780:7;;12748:11;:40::i;:::-;12691:97;;;;;;12799:19;12822:10;:8;:10::i;:::-;12799:33;;12844:15;12861:23;12886:12;12902:46;12914:7;12923:4;12929:5;12936:11;12902;:46::i;:::-;12843:105;;-1:-1:-1;12843:105:0;-1:-1:-1;12843:105:0;-1:-1:-1;12999:15:0;;-1:-1:-1;13016:4:0;;-1:-1:-1;13022:5:0;;-1:-1:-1;;;;;12567:469:0;;;;;;;:::o;2020:136::-;2078:7;2105:43;2109:1;2112;2105:43;;;;;;;;;;;;;;;;;:3;:43::i;1833:179::-;1891:7;;1923:5;1927:1;1923;:5;:::i;:::-;1911:17;;1952:1;1947;:6;;1939:46;;;;-1:-1:-1;;;1939:46:0;;11992:2:1;1939:46:0;;;11974:21:1;12031:2;12011:18;;;12004:30;12070:29;12050:18;;;12043:57;12117:18;;1939:46:0;11790:351:1;12151:212:0;12204:19;12227:10;:8;:10::i;:::-;12204:33;-1:-1:-1;12248:13:0;12264:22;:5;12204:33;12264:9;:22::i;:::-;12338:4;12322:22;;;;:7;:22;;;;;;12248:38;;-1:-1:-1;12322:33:0;;12248:38;12322:26;:33::i;:::-;12313:4;12297:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12151:212:0:o;12371:147::-;12449:7;;:17;;12461:4;12449:11;:17::i;:::-;12439:7;:27;12490:10;;:20;;12505:4;12490:14;:20::i;:::-;12477:10;:33;-1:-1:-1;;12371:147:0:o;2756:189::-;2842:7;2877:12;2870:5;2862:28;;;;-1:-1:-1;;;2862:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2901:9:0;2913:5;2917:1;2913;:5;:::i;13988:262::-;14085:7;;14038;;;;4259:27;14159:20;14085:7;4259:27;14159:11;:20::i;:::-;14149:7;:30;14145:61;;;-1:-1:-1;;14189:7:0;;;4259:27;;-1:-1:-1;13988:262:0;-1:-1:-1;13988:262:0:o;14145:61::-;14225:7;;14234;;-1:-1:-1;13988:262:0;-1:-1:-1;13988:262:0:o;13044:351::-;13137:7;;;;13190:28;13214:3;13190:19;:7;13202:6;13190:11;:19::i;:::-;:23;;:28::i;:::-;13175:43;-1:-1:-1;13229:13:0;13245:29;13270:3;13245:20;:7;13257;13245:11;:20::i;:29::-;13229:45;-1:-1:-1;13285:23:0;13311:28;13229:45;13311:17;:7;13323:4;13311:11;:17::i;:::-;:21;;:28::i;:::-;13285:54;13375:4;;-1:-1:-1;13381:5:0;;-1:-1:-1;13044:351:0;;-1:-1:-1;;;;;13044:351:0:o;13403:409::-;13513:7;;;;13569:24;:7;13581:11;13569;:24::i;:::-;13551:42;-1:-1:-1;13604:12:0;13619:21;:4;13628:11;13619:8;:21::i;:::-;13604:36;-1:-1:-1;13651:13:0;13667:22;:5;13677:11;13667:9;:22::i;:::-;13651:38;-1:-1:-1;13700:23:0;13726:28;13651:38;13726:17;:7;13738:4;13726:11;:17::i;:28::-;13773:7;;;;-1:-1:-1;13799:4:0;;-1:-1:-1;13403:409:0;;-1:-1:-1;;;;;;;13403:409:0:o;2362:246::-;2420:7;2444:1;2449;2444:6;2440:47;;-1:-1:-1;2474:1:0;2467:8;;2440:47;2497:9;2509:5;2513:1;2509;:5;:::i;:::-;2497:17;-1:-1:-1;2542:1:0;2533:5;2537:1;2497:17;2533:5;:::i;:::-;:10;2525:56;;;;-1:-1:-1;;;2525:56:0;;12743:2:1;2525:56:0;;;12725:21:1;12782:2;12762:18;;;12755:30;12821:34;12801:18;;;12794:62;-1:-1:-1;;;12872:18:1;;;12865:31;12913:19;;2525:56:0;12541:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315: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:385::-;2178:6;2186;2194;2202;2255:3;2243:9;2234:7;2230:23;2226:33;2223:53;;;2272:1;2269;2262:12;2223:53;-1:-1:-1;;2295:23:1;;;2365:2;2350:18;;2337:32;;-1:-1:-1;2416:2:1;2401:18;;2388:32;;2467:2;2452:18;2439:32;;-1:-1:-1;2092:385:1;-1:-1:-1;2092:385:1:o;2879:118::-;2965:5;2958:13;2951:21;2944:5;2941:32;2931:60;;2987:1;2984;2977:12;3002:241;3058:6;3111:2;3099:9;3090:7;3086:23;3082:32;3079:52;;;3127:1;3124;3117:12;3079:52;3166:9;3153:23;3185:28;3207:5;3185:28;:::i;3248:247::-;3307:6;3360:2;3348:9;3339:7;3335:23;3331:32;3328:52;;;3376:1;3373;3366:12;3328:52;3415:9;3402:23;3434:31;3459:5;3434:31;:::i;3760:750::-;3852:6;3860;3868;3921:2;3909:9;3900:7;3896:23;3892:32;3889:52;;;3937:1;3934;3927:12;3889:52;3977:9;3964:23;4006:18;4047:2;4039:6;4036:14;4033:34;;;4063:1;4060;4053:12;4033:34;4101:6;4090:9;4086:22;4076:32;;4146:7;4139:4;4135:2;4131:13;4127:27;4117:55;;4168:1;4165;4158:12;4117:55;4208:2;4195:16;4234:2;4226:6;4223:14;4220:34;;;4250:1;4247;4240:12;4220:34;4305:7;4298:4;4288:6;4285:1;4281:14;4277:2;4273:23;4269:34;4266:47;4263:67;;;4326:1;4323;4316:12;4263:67;4357:4;4349:13;;;;-1:-1:-1;4381:6:1;-1:-1:-1;;4422:20:1;;4409:34;4452:28;4409:34;4452:28;:::i;:::-;4499:5;4489:15;;;3760:750;;;;;:::o;4515:388::-;4583:6;4591;4644:2;4632:9;4623:7;4619:23;4615:32;4612:52;;;4660:1;4657;4650:12;4612:52;4699:9;4686:23;4718:31;4743:5;4718:31;:::i;:::-;4768:5;-1:-1:-1;4825:2:1;4810:18;;4797:32;4838:33;4797:32;4838:33;:::i;:::-;4890:7;4880:17;;;4515:388;;;;;:::o;4908:347::-;5110:2;5092:21;;;5149:2;5129:18;;;5122:30;5188:25;5183:2;5168:18;;5161:53;5246:2;5231:18;;4908:347::o;5260:127::-;5321:10;5316:3;5312:20;5309:1;5302:31;5352:4;5349:1;5342:15;5376:4;5373:1;5366:15;5392:125;5457:9;;;5478:10;;;5475:36;;;5491:18;;:::i;6231:127::-;6292:10;6287:3;6283:20;6280:1;6273:31;6323:4;6320:1;6313:15;6347:4;6344:1;6337:15;6363:135;6402:3;6423:17;;;6420:43;;6443:18;;:::i;:::-;-1:-1:-1;6490:1:1;6479:13;;6363:135::o;6782:245::-;6849:6;6902:2;6890:9;6881:7;6877:23;6873:32;6870:52;;;6918:1;6915;6908:12;6870:52;6950:9;6944:16;6969:28;6991:5;6969:28;:::i;9721:147::-;9759:3;-1:-1:-1;;;;;9780:30:1;;9777:56;;9813:18;;:::i;9873:128::-;9940:9;;;9961:11;;;9958:37;;;9975:18;;:::i;10549:251::-;10619:6;10672:2;10660:9;10651:7;10647:23;10643:32;10640:52;;;10688:1;10685;10678:12;10640:52;10720:9;10714:16;10739:31;10764:5;10739:31;:::i;10805:980::-;11067:4;11115:3;11104:9;11100:19;11146:6;11135:9;11128:25;11172:2;11210:6;11205:2;11194:9;11190:18;11183:34;11253:3;11248:2;11237:9;11233:18;11226:31;11277:6;11312;11306:13;11343:6;11335;11328:22;11381:3;11370:9;11366:19;11359:26;;11420:2;11412:6;11408:15;11394:29;;11441:1;11451:195;11465:6;11462:1;11459:13;11451:195;;;11530:13;;-1:-1:-1;;;;;11526:39:1;11514:52;;11621:15;;;;11586:12;;;;11562:1;11480:9;11451:195;;;-1:-1:-1;;;;;;;11702:32:1;;;;11697:2;11682:18;;11675:60;-1:-1:-1;;;11766:3:1;11751:19;11744:35;11663:3;10805:980;-1:-1:-1;;;10805:980:1:o;12146:217::-;12186:1;12212;12202:132;;12256:10;12251:3;12247:20;12244:1;12237:31;12291:4;12288:1;12281:15;12319:4;12316:1;12309:15;12202:132;-1:-1:-1;12348:9:1;;12146:217::o;12368:168::-;12408:7;12474:1;12470;12466:6;12462:14;12459:1;12456:21;12451:1;12444:9;12437:17;12433:45;12430:71;;;12481:18;;:::i;:::-;-1:-1:-1;12521:9:1;;12368:168::o

Swarm Source

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