ETH Price: $3,299.58 (-3.29%)
Gas: 20 Gwei

Token

Django (DJANGO)
 

Overview

Max Total Supply

10,000,000,000,000 DJANGO

Holders

49

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
33,729,140,161.246468318 DJANGO

Value
$0.00
0x7768fbc67afecf2b4caee9d1841ad14637d13652
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:
Django

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-29
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

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);
}

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;
    }
}

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
} 

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

contract Django is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Django";
    string private constant _symbol = "DJANGO";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant totalTokens = 100 * 1e11 * 1e9; 
    uint256 public _maxWalletAmount = 3 * 1e11 * 1e9;
    uint256 public thresholdSwap = 1 * 1e11 * 1e9;
    uint256 public _maxTxAmount = 3 * 1e11 * 1e9;
    uint256 public liqBuys = 0; 
    uint256 public taxBuy = 6; 
    uint256 public liqSells = 6; 
    uint256 public taxSell = 0; 
    uint256 private _previousLiqFee = liqFee;
    uint256 private _previousProjectFee = projectTax;
    uint256 private liqFee;
    uint256 private projectTax;

    struct FeeBreakdown {
        uint256 tLiquidity;
        uint256 tMarketing;
        uint256 tAmount;
    }

    mapping(address => bool) private bots;
    address payable private ProjectWallet = payable(0x24c9500c8da6c935827bc99ddcfC9e12b75881c2);
    address payable private deployWallet = payable(0x69a6235D0b6617BC4EEdaeaF4162F2C8Ce638125);
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private inSwap = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), totalTokens);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
        _balances[_msgSender()] = totalTokens;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[ProjectWallet] = true;
        _isExcludedFromFee[deployWallet] = true;
        _isExcludedFromFee[address(this)] = true;
        emit Transfer(address(0), _msgSender(), totalTokens);
    }

    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() external pure override returns (uint256) {
        return totalTokens;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

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

    function removeAllFee() private {
        if (projectTax == 0 && liqFee == 0) return;
        _previousProjectFee = projectTax;
        _previousLiqFee = liqFee;
        projectTax = 0;
        liqFee = 0;
    }
    
    function restoreAllFee() private {
        liqFee = _previousLiqFee;
        projectTax = _previousProjectFee;
    }

    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");

        bool takeFee = !inSwap;

        if(from != owner() && to != owner() && ! _isExcludedFromFee[to] && ! _isExcludedFromFee[from]){
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(balanceOf(to).add(amount) <= _maxWalletAmount, "wallet balance after transfer must be less than max wallet amount");  
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                liqFee = liqBuys;
                projectTax = taxBuy;
            }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                require(!bots[from] && !bots[to]);
                liqFee = liqSells;
                projectTax = taxSell;
            }
            
            if (!inSwap && from != uniswapV2Pair) {

                uint256 contractTokenBalance = balanceOf(address(this));

                if (contractTokenBalance > thresholdSwap) {
                    swapAndLiquify(contractTokenBalance);
                }

                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                    
            }
        }

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }
        
        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee();
    }

    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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            deployWallet,
              block.timestamp
          );
    }
  
    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        uint256 autoLPamount = liqFee.mul(contractTokenBalance).div(projectTax.add(liqFee));
        uint256 half =  autoLPamount.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);
        uint256 initialBalance = address(this).balance;
        swapTokensForEth(otherHalf);
        uint256 newBalance = ((address(this).balance.sub(initialBalance)).mul(half)).div(otherHalf);
        addLiquidity(half, newBalance);
    }

    function setSwappingThreshold(uint256 _thresholdSwap) external {
        require(_msgSender() == deployWallet);
        thresholdSwap = _thresholdSwap;
    }

    function sendETHToFee(uint256 amount) private {
        ProjectWallet.transfer(amount);
    }

    function manualSwap() external {
        require(_msgSender() == deployWallet);
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance > 0) {
            swapTokensForEth(contractBalance);
        }
    }

    function manualSend() external {
        require(_msgSender() == deployWallet);
        uint256 contractETHBalance = address(this).balance;
        if (contractETHBalance > 0) {
            sendETHToFee(contractETHBalance);
        }
    }

    function blacklist(address _address) external onlyOwner() {
        bots[_address] = true;
    }
    
    function removeFromBlacklist(address _address) external onlyOwner() {
        bots[_address] = false;
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) { 
                removeAllFee();
        }
        _transferStandard(sender, recipient, amount);
        restoreAllFee();
    }

    function MaxTxAmount(uint256 maxTxAmount) external {
        require(_msgSender() == deployWallet);
        require(maxTxAmount > 1 * 1e11 * 1e9);
        _maxTxAmount = maxTxAmount;
    }

    function _transferStandard(address sender, address recipient, uint256 amount) private {
        FeeBreakdown memory fees;
        fees.tMarketing = amount.mul(projectTax).div(100);
        fees.tLiquidity = amount.mul(liqFee).div(100);
        fees.tAmount = amount.sub(fees.tMarketing).sub(fees.tLiquidity);
        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(fees.tAmount);
        _balances[address(this)] = _balances[address(this)].add(fees.tMarketing.add(fees.tLiquidity));
        emit Transfer(sender, recipient, fees.tAmount);
    }
    
    receive() external payable {}

    function setMaxWalletAmount(uint256 maxWalletAmount) external {
        require(_msgSender() == deployWallet);
        require(maxWalletAmount > totalTokens.div(200), "Amount must be greater than 0.5% of supply");
        require(maxWalletAmount <= totalTokens, "Amount must be less than or equal to totalSupply");
        _maxWalletAmount = maxWalletAmount;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"MaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liqBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_thresholdSwap","type":"uint256"}],"name":"setSwappingThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052681043561a8829300000600481905568056bc75e2d631000006005556006908155600060078190556008829055600991909155600a55600d54600b55600e54600c55601080546001600160a01b03199081167324c9500c8da6c935827bc99ddcfc9e12b75881c217909155601180549091167369a6235d0b6617bc4eedaeaf4162f2c8ce6381251790556013805460ff60a01b19169055348015620000a857600080fd5b50620000b43362000415565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620000f4308269021e19e0c9bab240000062000465565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012e57600080fd5b505afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000169919062000591565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001b257600080fd5b505afa158015620001c7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ed919062000591565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200023657600080fd5b505af11580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000271919062000591565b601380546001600160a01b0319166001600160a01b0392831690811790915560125460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b390604401602060405180830381600087803b158015620002d457600080fd5b505af1158015620002e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030f9190620005c3565b50336000908152600160208190526040822069021e19e0c9bab2400000905590600390620003456000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556010548216815260039093528183208054851660019081179091556011549091168352818320805485168217905530835291208054909216179055620003b63390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69021e19e0c9bab24000006040516200040691815260200190565b60405180910390a350620005e7565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004cd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620005305760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004c4565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600060208284031215620005a457600080fd5b81516001600160a01b0381168114620005bc57600080fd5b9392505050565b600060208284031215620005d657600080fd5b81518015158114620005bc57600080fd5b61195580620005f76000396000f3fe6080604052600436106101a05760003560e01c806362290a93116100ec578063a9059cbb1161008a578063f2fde38b11610064578063f2fde38b146104c7578063f4293890146104e7578063f9f92be4146104fc578063fcd4fa1f1461051c57600080fd5b8063a9059cbb1461044b578063dd62ed3e1461046b578063ed7ab56b146104b157600080fd5b8063715018a6116100c6578063715018a6146103d35780637d1db4a5146103e85780638da5cb5b146103fe57806395d89b411461041c57600080fd5b806362290a93146103715780636c0a24eb1461038757806370a082311461039d57600080fd5b8063313ce5671161015957806341a95db11161013357806341a95db1146102ee57806349bd5a5e1461030457806351bc3c851461033c578063537df3b61461035157600080fd5b8063313ce567146102a657806339fba650146102c25780633cb7ab53146102d857600080fd5b806306fdde03146101ac578063095ea7b3146101ed5780630a08c5241461021d57806318160ddd1461023f57806323b872dd1461026657806327a14fc21461028657600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b50604080518082019091526006815265446a616e676f60d01b60208201525b6040516101e49190611624565b60405180910390f35b3480156101f957600080fd5b5061020d61020836600461168e565b61053c565b60405190151581526020016101e4565b34801561022957600080fd5b5061023d6102383660046116ba565b610553565b005b34801561024b57600080fd5b5069021e19e0c9bab24000005b6040519081526020016101e4565b34801561027257600080fd5b5061020d6102813660046116d3565b610578565b34801561029257600080fd5b5061023d6102a13660046116ba565b6105e1565b3480156102b257600080fd5b50604051600981526020016101e4565b3480156102ce57600080fd5b50610258600a5481565b3480156102e457600080fd5b5061025860055481565b3480156102fa57600080fd5b5061025860075481565b34801561031057600080fd5b50601354610324906001600160a01b031681565b6040516001600160a01b0390911681526020016101e4565b34801561034857600080fd5b5061023d6106f4565b34801561035d57600080fd5b5061023d61036c366004611714565b610736565b34801561037d57600080fd5b5061025860085481565b34801561039357600080fd5b5061025860045481565b3480156103a957600080fd5b506102586103b8366004611714565b6001600160a01b031660009081526001602052604090205490565b3480156103df57600080fd5b5061023d610781565b3480156103f457600080fd5b5061025860065481565b34801561040a57600080fd5b506000546001600160a01b0316610324565b34801561042857600080fd5b50604080518082019091526006815265444a414e474f60d01b60208201526101d7565b34801561045757600080fd5b5061020d61046636600461168e565b6107b7565b34801561047757600080fd5b50610258610486366004611731565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104bd57600080fd5b5061025860095481565b3480156104d357600080fd5b5061023d6104e2366004611714565b6107c4565b3480156104f357600080fd5b5061023d61085c565b34801561050857600080fd5b5061023d610517366004611714565b61088c565b34801561052857600080fd5b5061023d6105373660046116ba565b6108da565b6000610549338484610914565b5060015b92915050565b6011546001600160a01b0316336001600160a01b03161461057357600080fd5b600555565b6000610585848484610a38565b6105d784336105d2856040518060600160405280602881526020016118f8602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f2a565b610914565b5060019392505050565b6011546001600160a01b0316336001600160a01b03161461060157600080fd5b61061669021e19e0c9bab240000060c8610f64565b811161067c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3525604482015269206f6620737570706c7960b01b60648201526084015b60405180910390fd5b69021e19e0c9bab24000008111156106ef5760405162461bcd60e51b815260206004820152603060248201527f416d6f756e74206d757374206265206c657373207468616e206f72206571756160448201526f6c20746f20746f74616c537570706c7960801b6064820152608401610673565b600455565b6011546001600160a01b0316336001600160a01b03161461071457600080fd5b3060009081526001602052604090205480156107335761073381610fad565b50565b6000546001600160a01b031633146107605760405162461bcd60e51b81526004016106739061176a565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b031633146107ab5760405162461bcd60e51b81526004016106739061176a565b6107b56000611136565b565b6000610549338484610a38565b6000546001600160a01b031633146107ee5760405162461bcd60e51b81526004016106739061176a565b6001600160a01b0381166108535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610673565b61073381611136565b6011546001600160a01b0316336001600160a01b03161461087c57600080fd5b4780156107335761073381611186565b6000546001600160a01b031633146108b65760405162461bcd60e51b81526004016106739061176a565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6011546001600160a01b0316336001600160a01b0316146108fa57600080fd5b68056bc75e2d63100000811161090f57600080fd5b600655565b6001600160a01b0383166109765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610673565b6001600160a01b0382166109d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610673565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a9c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610673565b6001600160a01b038216610afe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610673565b60008111610b605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610673565b60135460ff600160a01b9091041615610b816000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610bb057506000546001600160a01b03848116911614155b8015610bd557506001600160a01b03831660009081526003602052604090205460ff16155b8015610bfa57506001600160a01b03841660009081526003602052604090205460ff16155b15610c6257600654821115610c625760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610673565b6000546001600160a01b03858116911614801590610c8e57506000546001600160a01b03848116911614155b8015610ca357506001600160a01b0384163014155b8015610cb857506001600160a01b0383163014155b15610ebf576013546001600160a01b038581169116148015610ce857506012546001600160a01b03848116911614155b15610d9757600454610d1983610d13866001600160a01b031660009081526001602052604090205490565b906111c4565b1115610d975760405162461bcd60e51b815260206004820152604160248201527f77616c6c65742062616c616e6365206166746572207472616e73666572206d7560448201527f7374206265206c657373207468616e206d61782077616c6c657420616d6f756e6064820152601d60fa1b608482015260a401610673565b6013546001600160a01b038581169116148015610dc257506012546001600160a01b03848116911614155b15610dd457600754600d55600854600e555b6013546001600160a01b038481169116148015610dff57506012546001600160a01b03858116911614155b15610e5c576001600160a01b0384166000908152600f602052604090205460ff16158015610e4657506001600160a01b0383166000908152600f602052604090205460ff16155b610e4f57600080fd5b600954600d55600a54600e555b601354600160a01b900460ff16158015610e8457506013546001600160a01b03858116911614155b15610ebf5730600090815260016020526040902054600554811115610eac57610eac81611223565b478015610ebc57610ebc47611186565b50505b6001600160a01b03841660009081526003602052604090205460ff1680610efe57506001600160a01b03831660009081526003602052604090205460ff165b15610f07575060005b610f13848484846112ae565b610f24600b54600d55600c54600e55565b50505050565b60008184841115610f4e5760405162461bcd60e51b81526004016106739190611624565b506000610f5b84866117b5565b95945050505050565b6000610fa683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112c6565b9392505050565b6013805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ff557610ff56117cc565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561104957600080fd5b505afa15801561105d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108191906117e2565b81600181518110611094576110946117cc565b6001600160a01b0392831660209182029290920101526012546110ba9130911684610914565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906110f39085906000908690309042906004016117ff565b600060405180830381600087803b15801561110d57600080fd5b505af1158015611121573d6000803e3d6000fd5b50506013805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111c0573d6000803e3d6000fd5b5050565b6000806111d18385611870565b905083811015610fa65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610673565b6013805460ff60a01b1916600160a01b179055600d54600e5460009161125f9161124c916111c4565b600d5461125990856112f4565b90610f64565b9050600061126e826002610f64565b9050600061127c8483611373565b90504761128882610fad565b60006112a2836112598661129c4787611373565b906112f4565b905061112184826113b5565b806112bb576112bb611478565b610f138484846114a6565b600081836112e75760405162461bcd60e51b81526004016106739190611624565b506000610f5b8486611888565b6000826113035750600061054d565b600061130f83856118aa565b90508261131c8583611888565b14610fa65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610673565b6000610fa683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f2a565b6012546113cd9030906001600160a01b031684610914565b60125460115460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561143857600080fd5b505af115801561144c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061147191906118c9565b5050505050565b600e541580156114885750600d54155b1561148f57565b600e8054600c55600d8054600b5560009182905555565b6114ca60405180606001604052806000815260200160008152602001600081525090565b6114e46064611259600e54856112f490919063ffffffff16565b6020820152600d546114fe906064906112599085906112f4565b808252602082015161151c9190611516908590611373565b90611373565b6040808301919091526001600160a01b0385166000908152600160205220546115459083611373565b6001600160a01b0380861660009081526001602052604080822093909355838301519186168152919091205461157a916111c4565b6001600160a01b0384166000908152600160209081526040909120919091558151908201516115c3916115ad91906111c4565b30600090815260016020526040902054906111c4565b30600090815260016020908152604091829020929092558281015190519081526001600160a01b0385811692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b600060208083528351808285015260005b8181101561165157858101830151858201604001528201611635565b81811115611663576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461073357600080fd5b600080604083850312156116a157600080fd5b82356116ac81611679565b946020939093013593505050565b6000602082840312156116cc57600080fd5b5035919050565b6000806000606084860312156116e857600080fd5b83356116f381611679565b9250602084013561170381611679565b929592945050506040919091013590565b60006020828403121561172657600080fd5b8135610fa681611679565b6000806040838503121561174457600080fd5b823561174f81611679565b9150602083013561175f81611679565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156117c7576117c761179f565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117f457600080fd5b8151610fa681611679565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561184f5784516001600160a01b03168352938301939183019160010161182a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118835761188361179f565b500190565b6000826118a557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118c4576118c461179f565b500290565b6000806000606084860312156118de57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203bcc98738792e06c38604e59b95fc8c6a649d6140d80ceaa9c0d7699bde83e6964736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c806362290a93116100ec578063a9059cbb1161008a578063f2fde38b11610064578063f2fde38b146104c7578063f4293890146104e7578063f9f92be4146104fc578063fcd4fa1f1461051c57600080fd5b8063a9059cbb1461044b578063dd62ed3e1461046b578063ed7ab56b146104b157600080fd5b8063715018a6116100c6578063715018a6146103d35780637d1db4a5146103e85780638da5cb5b146103fe57806395d89b411461041c57600080fd5b806362290a93146103715780636c0a24eb1461038757806370a082311461039d57600080fd5b8063313ce5671161015957806341a95db11161013357806341a95db1146102ee57806349bd5a5e1461030457806351bc3c851461033c578063537df3b61461035157600080fd5b8063313ce567146102a657806339fba650146102c25780633cb7ab53146102d857600080fd5b806306fdde03146101ac578063095ea7b3146101ed5780630a08c5241461021d57806318160ddd1461023f57806323b872dd1461026657806327a14fc21461028657600080fd5b366101a757005b600080fd5b3480156101b857600080fd5b50604080518082019091526006815265446a616e676f60d01b60208201525b6040516101e49190611624565b60405180910390f35b3480156101f957600080fd5b5061020d61020836600461168e565b61053c565b60405190151581526020016101e4565b34801561022957600080fd5b5061023d6102383660046116ba565b610553565b005b34801561024b57600080fd5b5069021e19e0c9bab24000005b6040519081526020016101e4565b34801561027257600080fd5b5061020d6102813660046116d3565b610578565b34801561029257600080fd5b5061023d6102a13660046116ba565b6105e1565b3480156102b257600080fd5b50604051600981526020016101e4565b3480156102ce57600080fd5b50610258600a5481565b3480156102e457600080fd5b5061025860055481565b3480156102fa57600080fd5b5061025860075481565b34801561031057600080fd5b50601354610324906001600160a01b031681565b6040516001600160a01b0390911681526020016101e4565b34801561034857600080fd5b5061023d6106f4565b34801561035d57600080fd5b5061023d61036c366004611714565b610736565b34801561037d57600080fd5b5061025860085481565b34801561039357600080fd5b5061025860045481565b3480156103a957600080fd5b506102586103b8366004611714565b6001600160a01b031660009081526001602052604090205490565b3480156103df57600080fd5b5061023d610781565b3480156103f457600080fd5b5061025860065481565b34801561040a57600080fd5b506000546001600160a01b0316610324565b34801561042857600080fd5b50604080518082019091526006815265444a414e474f60d01b60208201526101d7565b34801561045757600080fd5b5061020d61046636600461168e565b6107b7565b34801561047757600080fd5b50610258610486366004611731565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104bd57600080fd5b5061025860095481565b3480156104d357600080fd5b5061023d6104e2366004611714565b6107c4565b3480156104f357600080fd5b5061023d61085c565b34801561050857600080fd5b5061023d610517366004611714565b61088c565b34801561052857600080fd5b5061023d6105373660046116ba565b6108da565b6000610549338484610914565b5060015b92915050565b6011546001600160a01b0316336001600160a01b03161461057357600080fd5b600555565b6000610585848484610a38565b6105d784336105d2856040518060600160405280602881526020016118f8602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f2a565b610914565b5060019392505050565b6011546001600160a01b0316336001600160a01b03161461060157600080fd5b61061669021e19e0c9bab240000060c8610f64565b811161067c5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d7573742062652067726561746572207468616e20302e3525604482015269206f6620737570706c7960b01b60648201526084015b60405180910390fd5b69021e19e0c9bab24000008111156106ef5760405162461bcd60e51b815260206004820152603060248201527f416d6f756e74206d757374206265206c657373207468616e206f72206571756160448201526f6c20746f20746f74616c537570706c7960801b6064820152608401610673565b600455565b6011546001600160a01b0316336001600160a01b03161461071457600080fd5b3060009081526001602052604090205480156107335761073381610fad565b50565b6000546001600160a01b031633146107605760405162461bcd60e51b81526004016106739061176a565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b031633146107ab5760405162461bcd60e51b81526004016106739061176a565b6107b56000611136565b565b6000610549338484610a38565b6000546001600160a01b031633146107ee5760405162461bcd60e51b81526004016106739061176a565b6001600160a01b0381166108535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610673565b61073381611136565b6011546001600160a01b0316336001600160a01b03161461087c57600080fd5b4780156107335761073381611186565b6000546001600160a01b031633146108b65760405162461bcd60e51b81526004016106739061176a565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6011546001600160a01b0316336001600160a01b0316146108fa57600080fd5b68056bc75e2d63100000811161090f57600080fd5b600655565b6001600160a01b0383166109765760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610673565b6001600160a01b0382166109d75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610673565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610a9c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610673565b6001600160a01b038216610afe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610673565b60008111610b605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610673565b60135460ff600160a01b9091041615610b816000546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610bb057506000546001600160a01b03848116911614155b8015610bd557506001600160a01b03831660009081526003602052604090205460ff16155b8015610bfa57506001600160a01b03841660009081526003602052604090205460ff16155b15610c6257600654821115610c625760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610673565b6000546001600160a01b03858116911614801590610c8e57506000546001600160a01b03848116911614155b8015610ca357506001600160a01b0384163014155b8015610cb857506001600160a01b0383163014155b15610ebf576013546001600160a01b038581169116148015610ce857506012546001600160a01b03848116911614155b15610d9757600454610d1983610d13866001600160a01b031660009081526001602052604090205490565b906111c4565b1115610d975760405162461bcd60e51b815260206004820152604160248201527f77616c6c65742062616c616e6365206166746572207472616e73666572206d7560448201527f7374206265206c657373207468616e206d61782077616c6c657420616d6f756e6064820152601d60fa1b608482015260a401610673565b6013546001600160a01b038581169116148015610dc257506012546001600160a01b03848116911614155b15610dd457600754600d55600854600e555b6013546001600160a01b038481169116148015610dff57506012546001600160a01b03858116911614155b15610e5c576001600160a01b0384166000908152600f602052604090205460ff16158015610e4657506001600160a01b0383166000908152600f602052604090205460ff16155b610e4f57600080fd5b600954600d55600a54600e555b601354600160a01b900460ff16158015610e8457506013546001600160a01b03858116911614155b15610ebf5730600090815260016020526040902054600554811115610eac57610eac81611223565b478015610ebc57610ebc47611186565b50505b6001600160a01b03841660009081526003602052604090205460ff1680610efe57506001600160a01b03831660009081526003602052604090205460ff165b15610f07575060005b610f13848484846112ae565b610f24600b54600d55600c54600e55565b50505050565b60008184841115610f4e5760405162461bcd60e51b81526004016106739190611624565b506000610f5b84866117b5565b95945050505050565b6000610fa683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506112c6565b9392505050565b6013805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ff557610ff56117cc565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561104957600080fd5b505afa15801561105d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108191906117e2565b81600181518110611094576110946117cc565b6001600160a01b0392831660209182029290920101526012546110ba9130911684610914565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906110f39085906000908690309042906004016117ff565b600060405180830381600087803b15801561110d57600080fd5b505af1158015611121573d6000803e3d6000fd5b50506013805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156111c0573d6000803e3d6000fd5b5050565b6000806111d18385611870565b905083811015610fa65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610673565b6013805460ff60a01b1916600160a01b179055600d54600e5460009161125f9161124c916111c4565b600d5461125990856112f4565b90610f64565b9050600061126e826002610f64565b9050600061127c8483611373565b90504761128882610fad565b60006112a2836112598661129c4787611373565b906112f4565b905061112184826113b5565b806112bb576112bb611478565b610f138484846114a6565b600081836112e75760405162461bcd60e51b81526004016106739190611624565b506000610f5b8486611888565b6000826113035750600061054d565b600061130f83856118aa565b90508261131c8583611888565b14610fa65760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610673565b6000610fa683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f2a565b6012546113cd9030906001600160a01b031684610914565b60125460115460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561143857600080fd5b505af115801561144c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061147191906118c9565b5050505050565b600e541580156114885750600d54155b1561148f57565b600e8054600c55600d8054600b5560009182905555565b6114ca60405180606001604052806000815260200160008152602001600081525090565b6114e46064611259600e54856112f490919063ffffffff16565b6020820152600d546114fe906064906112599085906112f4565b808252602082015161151c9190611516908590611373565b90611373565b6040808301919091526001600160a01b0385166000908152600160205220546115459083611373565b6001600160a01b0380861660009081526001602052604080822093909355838301519186168152919091205461157a916111c4565b6001600160a01b0384166000908152600160209081526040909120919091558151908201516115c3916115ad91906111c4565b30600090815260016020526040902054906111c4565b30600090815260016020908152604091829020929092558281015190519081526001600160a01b0385811692908716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b600060208083528351808285015260005b8181101561165157858101830151858201604001528201611635565b81811115611663576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461073357600080fd5b600080604083850312156116a157600080fd5b82356116ac81611679565b946020939093013593505050565b6000602082840312156116cc57600080fd5b5035919050565b6000806000606084860312156116e857600080fd5b83356116f381611679565b9250602084013561170381611679565b929592945050506040919091013590565b60006020828403121561172657600080fd5b8135610fa681611679565b6000806040838503121561174457600080fd5b823561174f81611679565b9150602083013561175f81611679565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000828210156117c7576117c761179f565b500390565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117f457600080fd5b8151610fa681611679565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561184f5784516001600160a01b03168352938301939183019160010161182a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156118835761188361179f565b500190565b6000826118a557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156118c4576118c461179f565b500290565b6000806000606084860312156118de57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203bcc98738792e06c38604e59b95fc8c6a649d6140d80ceaa9c0d7699bde83e6964736f6c63430008090033

Deployed Bytecode Sourcemap

7003:10252:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9284:83;;;;;;;;;;-1:-1:-1;9354:5:0;;;;;;;;;;;;-1:-1:-1;;;9354:5:0;;;;9284:83;;;;;;;:::i;:::-;;;;;;;;10131:163;;;;;;;;;;-1:-1:-1;10131:163:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;10131:163:0;1072:187:1;14756:160:0;;;;;;;;;;-1:-1:-1;14756:160:0;;;;;:::i;:::-;;:::i;:::-;;9561:101;;;;;;;;;;-1:-1:-1;7449:16:0;9561:101;;;1595:25:1;;;1583:2;1568:18;9561:101:0;1449:177:1;10302:312:0;;;;;;;;;;-1:-1:-1;10302:312:0;;;;;:::i;:::-;;:::i;16883:369::-;;;;;;;;;;-1:-1:-1;16883:369:0;;;;;:::i;:::-;;:::i;9470:83::-;;;;;;;;;;-1:-1:-1;9470:83:0;;7218:1;2234:36:1;;2222:2;2207:18;9470:83:0;2092:184:1;7733:26:0;;;;;;;;;;;;;;;;7528:45;;;;;;;;;;;;;;;;7631:26;;;;;;;;;;;;;;;;8341:28;;;;;;;;;;-1:-1:-1;8341:28:0;;;;-1:-1:-1;;;;;8341:28:0;;;;;;-1:-1:-1;;;;;2445:32:1;;;2427:51;;2415:2;2400:18;8341:28:0;2281:203:1;15027:243:0;;;;;;;;;;;;;:::i;15641:109::-;;;;;;;;;;-1:-1:-1;15641:109:0;;;;;:::i;:::-;;:::i;7665:25::-;;;;;;;;;;;;;;;;7473:48;;;;;;;;;;;;;;;;9670:119;;;;;;;;;;-1:-1:-1;9670:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;9763:18:0;9736:7;9763:18;;;:9;:18;;;;;;;9670:119;2479:103;;;;;;;;;;;;;:::i;7580:44::-;;;;;;;;;;;;;;;;2256:87;;;;;;;;;;-1:-1:-1;2302:7:0;2329:6;-1:-1:-1;;;;;2329:6:0;2256:87;;9375;;;;;;;;;;-1:-1:-1;9447:7:0;;;;;;;;;;;;-1:-1:-1;;;9447:7:0;;;;9375:87;;9801:169;;;;;;;;;;-1:-1:-1;9801:169:0;;;;;:::i;:::-;;:::i;9978:145::-;;;;;;;;;;-1:-1:-1;9978:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;10088:18:0;;;10061:7;10088:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9978:145;7698:27;;;;;;;;;;;;;;;;2590:201;;;;;;;;;;-1:-1:-1;2590:201:0;;;;;:::i;:::-;;:::i;15278:245::-;;;;;;;;;;;;;:::i;15531:98::-;;;;;;;;;;-1:-1:-1;15531:98:0;;;;;:::i;:::-;;:::i;16022:192::-;;;;;;;;;;-1:-1:-1;16022:192:0;;;;;:::i;:::-;;:::i;10131:163::-;10208:4;10225:39;173:10;10248:7;10257:6;10225:8;:39::i;:::-;-1:-1:-1;10282:4:0;10131:163;;;;;:::o;14756:160::-;14854:12;;-1:-1:-1;;;;;14854:12:0;173:10;-1:-1:-1;;;;;14838:28:0;;14830:37;;;;;;14878:13;:30;14756:160::o;10302:312::-;10402:4;10419:36;10429:6;10437:9;10448:6;10419:9;:36::i;:::-;10466:118;10475:6;173:10;10495:88;10533:6;10495:88;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10495:19:0;;;;;;:11;:19;;;;;;;;173:10;10495:33;;;;;;;;;;:37;:88::i;:::-;10466:8;:118::i;:::-;-1:-1:-1;10602:4:0;10302:312;;;;;:::o;16883:369::-;16980:12;;-1:-1:-1;;;;;16980:12:0;173:10;-1:-1:-1;;;;;16964:28:0;;16956:37;;;;;;17030:20;7449:16;17046:3;17030:15;:20::i;:::-;17012:15;:38;17004:93;;;;-1:-1:-1;;;17004:93:0;;3336:2:1;17004:93:0;;;3318:21:1;3375:2;3355:18;;;3348:30;3414:34;3394:18;;;3387:62;-1:-1:-1;;;3465:18:1;;;3458:40;3515:19;;17004:93:0;;;;;;;;;7449:16;17116:15;:30;;17108:91;;;;-1:-1:-1;;;17108:91:0;;3747:2:1;17108:91:0;;;3729:21:1;3786:2;3766:18;;;3759:30;3825:34;3805:18;;;3798:62;-1:-1:-1;;;3876:18:1;;;3869:46;3932:19;;17108:91:0;3545:412:1;17108:91:0;17210:16;:34;16883:369::o;15027:243::-;15093:12;;-1:-1:-1;;;;;15093:12:0;173:10;-1:-1:-1;;;;;15077:28:0;;15069:37;;;;;;15161:4;15117:23;9763:18;;;:9;:18;;;;;;15182:19;;15178:85;;15218:33;15235:15;15218:16;:33::i;:::-;15058:212;15027:243::o;15641:109::-;2302:7;2329:6;-1:-1:-1;;;;;2329:6:0;173:10;2391:23;2383:68;;;;-1:-1:-1;;;2383:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15720:14:0::1;15737:5;15720:14:::0;;;:4:::1;:14;::::0;;;;:22;;-1:-1:-1;;15720:22:0::1;::::0;;15641:109::o;2479:103::-;2302:7;2329:6;-1:-1:-1;;;;;2329:6:0;173:10;2391:23;2383:68;;;;-1:-1:-1;;;2383:68:0;;;;;;;:::i;:::-;2544:30:::1;2571:1;2544:18;:30::i;:::-;2479:103::o:0;9801:169::-;9881:4;9898:42;173:10;9922:9;9933:6;9898:9;:42::i;2590:201::-;2302:7;2329:6;-1:-1:-1;;;;;2329:6:0;173:10;2391:23;2383:68;;;;-1:-1:-1;;;2383:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2679:22:0;::::1;2671:73;;;::::0;-1:-1:-1;;;2671:73:0;;4525:2:1;2671:73:0::1;::::0;::::1;4507:21:1::0;4564:2;4544:18;;;4537:30;4603:34;4583:18;;;4576:62;-1:-1:-1;;;4654:18:1;;;4647:36;4700:19;;2671:73:0::1;4323:402:1::0;2671:73:0::1;2755:28;2774:8;2755:18;:28::i;15278:245::-:0;15344:12;;-1:-1:-1;;;;;15344:12:0;173:10;-1:-1:-1;;;;;15328:28:0;;15320:37;;;;;;15397:21;15433:22;;15429:87;;15472:32;15485:18;15472:12;:32::i;15531:98::-;2302:7;2329:6;-1:-1:-1;;;;;2329:6:0;173:10;2391:23;2383:68;;;;-1:-1:-1;;;2383:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15600:14:0::1;;::::0;;;:4:::1;:14;::::0;;;;:21;;-1:-1:-1;;15600:21:0::1;15617:4;15600:21;::::0;;15531:98::o;16022:192::-;16108:12;;-1:-1:-1;;;;;16108:12:0;173:10;-1:-1:-1;;;;;16092:28:0;;16084:37;;;;;;16154:14;16140:11;:28;16132:37;;;;;;16180:12;:26;16022:192::o;10978:335::-;-1:-1:-1;;;;;11071:19:0;;11063:68;;;;-1:-1:-1;;;11063:68:0;;4932:2:1;11063:68:0;;;4914:21:1;4971:2;4951:18;;;4944:30;5010:34;4990:18;;;4983:62;-1:-1:-1;;;5061:18:1;;;5054:34;5105:19;;11063:68:0;4730:400:1;11063:68:0;-1:-1:-1;;;;;11150:21:0;;11142:68;;;;-1:-1:-1;;;11142:68:0;;5337:2:1;11142:68:0;;;5319:21:1;5376:2;5356:18;;;5349:30;5415:34;5395:18;;;5388:62;-1:-1:-1;;;5466:18:1;;;5459:32;5508:19;;11142:68:0;5135:398:1;11142:68:0;-1:-1:-1;;;;;11221:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11273:32;;1595:25:1;;;11273:32:0;;1568:18:1;11273:32:0;;;;;;;10978:335;;;:::o;11325:2014::-;-1:-1:-1;;;;;11415:18:0;;11407:68;;;;-1:-1:-1;;;11407:68:0;;5740:2:1;11407:68:0;;;5722:21:1;5779:2;5759:18;;;5752:30;5818:34;5798:18;;;5791:62;-1:-1:-1;;;5869:18:1;;;5862:35;5914:19;;11407:68:0;5538:401:1;11407:68:0;-1:-1:-1;;;;;11494:16:0;;11486:64;;;;-1:-1:-1;;;11486:64:0;;6146:2:1;11486:64:0;;;6128:21:1;6185:2;6165:18;;;6158:30;6224:34;6204:18;;;6197:62;-1:-1:-1;;;6275:18:1;;;6268:33;6318:19;;11486:64:0;5944:399:1;11486:64:0;11578:1;11569:6;:10;11561:64;;;;-1:-1:-1;;;11561:64:0;;6550:2:1;11561:64:0;;;6532:21:1;6589:2;6569:18;;;6562:30;6628:34;6608:18;;;6601:62;-1:-1:-1;;;6679:18:1;;;6672:39;6728:19;;11561:64:0;6348:405:1;11561:64:0;11654:6;;;-1:-1:-1;;;11654:6:0;;;;11653:7;11684;2302;2329:6;-1:-1:-1;;;;;2329:6:0;;2256:87;11684:7;-1:-1:-1;;;;;11676:15:0;:4;-1:-1:-1;;;;;11676:15:0;;;:32;;;;-1:-1:-1;2302:7:0;2329:6;-1:-1:-1;;;;;11695:13:0;;;2329:6;;11695:13;;11676:32;:60;;;;-1:-1:-1;;;;;;11714:22:0;;;;;;:18;:22;;;;;;;;11712:24;11676:60;:90;;;;-1:-1:-1;;;;;;11742:24:0;;;;;;:18;:24;;;;;;;;11740:26;11676:90;11673:196;;;11800:12;;11790:6;:22;;11782:75;;;;-1:-1:-1;;;11782:75:0;;6960:2:1;11782:75:0;;;6942:21:1;6999:2;6979:18;;;6972:30;7038:34;7018:18;;;7011:62;-1:-1:-1;;;7089:18:1;;;7082:38;7137:19;;11782:75:0;6758:404:1;11782:75:0;2302:7;2329:6;-1:-1:-1;;;;;11885:15:0;;;2329:6;;11885:15;;;;:32;;-1:-1:-1;2302:7:0;2329:6;-1:-1:-1;;;;;11904:13:0;;;2329:6;;11904:13;;11885:32;:57;;;;-1:-1:-1;;;;;;11921:21:0;;11937:4;11921:21;;11885:57;:80;;;;-1:-1:-1;;;;;;11946:19:0;;11960:4;11946:19;;11885:80;11881:1253;;;11996:13;;-1:-1:-1;;;;;11988:21:0;;;11996:13;;11988:21;:55;;;;-1:-1:-1;12027:15:0;;-1:-1:-1;;;;;12013:30:0;;;12027:15;;12013:30;;11988:55;11984:221;;;12101:16;;12072:25;12090:6;12072:13;12082:2;-1:-1:-1;;;;;9763:18:0;9736:7;9763:18;;;:9;:18;;;;;;;9670:119;12072:13;:17;;:25::i;:::-;:45;;12064:123;;;;-1:-1:-1;;;12064:123:0;;7369:2:1;12064:123:0;;;7351:21:1;7408:2;7388:18;;;7381:30;7447:34;7427:18;;;7420:62;7518:34;7498:18;;;7491:62;-1:-1:-1;;;7569:19:1;;;7562:32;7611:19;;12064:123:0;7167:469:1;12064:123:0;12233:13;;-1:-1:-1;;;;;12225:21:0;;;12233:13;;12225:21;:55;;;;-1:-1:-1;12264:15:0;;-1:-1:-1;;;;;12250:30:0;;;12264:15;;12250:30;;12225:55;12221:150;;;12310:7;;12301:6;:16;12349:6;;12336:10;:19;12221:150;12413:13;;-1:-1:-1;;;;;12407:19:0;;;12413:13;;12407:19;:55;;;;-1:-1:-1;12446:15:0;;-1:-1:-1;;;;;12430:32:0;;;12446:15;;12430:32;;12407:55;12403:204;;;-1:-1:-1;;;;;12492:10:0;;;;;;:4;:10;;;;;;;;12491:11;:24;;;;-1:-1:-1;;;;;;12507:8:0;;;;;;:4;:8;;;;;;;;12506:9;12491:24;12483:33;;;;;;12544:8;;12535:6;:17;12584:7;;12571:10;:20;12403:204;12640:6;;-1:-1:-1;;;12640:6:0;;;;12639:7;:32;;;;-1:-1:-1;12658:13:0;;-1:-1:-1;;;;;12650:21:0;;;12658:13;;12650:21;;12639:32;12635:488;;;12743:4;12694:28;9763:18;;;:9;:18;;;;;;12797:13;;12774:36;;12770:121;;;12835:36;12850:20;12835:14;:36::i;:::-;12940:21;12984:22;;12980:106;;13031:35;13044:21;13031:12;:35::i;:::-;12673:450;;12635:488;-1:-1:-1;;;;;13150:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;13178:22:0;;;;;;:18;:22;;;;;;;;13150:50;13146:98;;;-1:-1:-1;13227:5:0;13146:98;13264:41;13279:4;13285:2;13289:6;13297:7;13264:14;:41::i;:::-;13316:15;10904;;10895:6;:24;10943:19;;10930:10;:32;10851:119;13316:15;11394:1945;11325:2014;;;:::o;1230:190::-;1316:7;1352:12;1344:6;;;;1336:29;;;;-1:-1:-1;;;1336:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1376:9:0;1388:5;1392:1;1388;:5;:::i;:::-;1376:17;1230:190;-1:-1:-1;;;;;1230:190:0:o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1760:46;1682:132;-1:-1:-1;;;1682:132:0:o;13347:407::-;8444:6;:13;;-1:-1:-1;;;;8444:13:0;-1:-1:-1;;;8444:13:0;;;13449:16:::1;::::0;;13463:1:::1;13449:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13449:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13449:16:0::1;13425:40;;13494:4;13476;13481:1;13476:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13476:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13520:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13520:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13476:7;;13520:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13510:4;13515:1;13510:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13510:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13585:15:::1;::::0;13553:62:::1;::::0;13570:4:::1;::::0;13585:15:::1;13603:11:::0;13553:8:::1;:62::i;:::-;13626:15;::::0;:120:::1;::::0;-1:-1:-1;;;13626:120:0;;-1:-1:-1;;;;;13626:15:0;;::::1;::::0;:66:::1;::::0;:120:::1;::::0;13693:11;;13626:15:::1;::::0;13709:4;;13723::::1;::::0;13730:15:::1;::::0;13626:120:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;8480:6:0;:14;;-1:-1:-1;;;;8480:14:0;;;-1:-1:-1;;;;13347:407:0:o;2799:191::-;2873:16;2892:6;;-1:-1:-1;;;;;2909:17:0;;;-1:-1:-1;;;;;;2909:17:0;;;;;;2942:40;;2892:6;;;;;;;2942:40;;2873:16;2942:40;2862:128;2799:191;:::o;14924:95::-;14981:13;;:30;;-1:-1:-1;;;;;14981:13:0;;;;:30;;;;;15004:6;;14981:13;:30;:13;:30;15004:6;14981:13;:30;;;;;;;;;;;;;;;;;;;;;14924:95;:::o;899:179::-;957:7;;989:5;993:1;989;:5;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;-1:-1:-1;;;1005:46:0;;9743:2:1;1005:46:0;;;9725:21:1;9782:2;9762:18;;;9755:30;9821:29;9801:18;;;9794:57;9868:18;;1005:46:0;9541:351:1;14227:521:0;8444:6;:13;;-1:-1:-1;;;;8444:13:0;-1:-1:-1;;;8444:13:0;;;14387:6:::1;::::0;14372:10:::1;::::0;8444:13;;14335:60:::1;::::0;14372:22:::1;::::0;:14:::1;:22::i;:::-;14335:6;::::0;:32:::1;::::0;14346:20;14335:10:::1;:32::i;:::-;:36:::0;::::1;:60::i;:::-;14312:83:::0;-1:-1:-1;14406:12:0::1;14422:19;14312:83:::0;14439:1:::1;14422:16;:19::i;:::-;14406:35:::0;-1:-1:-1;14452:17:0::1;14472:30;:20:::0;14406:35;14472:24:::1;:30::i;:::-;14452:50:::0;-1:-1:-1;14538:21:0::1;14570:27;14452:50:::0;14570:16:::1;:27::i;:::-;14608:18;14629:70;14689:9:::0;14630:53:::1;14678:4:::0;14631:41:::1;:21;14657:14:::0;14631:25:::1;:41::i;:::-;14630:47:::0;::::1;:53::i;14629:70::-;14608:91;;14710:30;14723:4;14729:10;14710:12;:30::i;15758:256::-:0;15871:7;15866:60;;15900:14;:12;:14::i;:::-;15936:44;15954:6;15962:9;15973:6;15936:17;:44::i;1822:189::-;1908:7;1943:12;1936:5;1928:28;;;;-1:-1:-1;;;1928:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1967:9:0;1979:5;1983:1;1979;:5;:::i;1428:246::-;1486:7;1510:6;1506:47;;-1:-1:-1;1540:1:0;1533:8;;1506:47;1563:9;1575:5;1579:1;1575;:5;:::i;:::-;1563:17;-1:-1:-1;1608:1:0;1599:5;1603:1;1563:17;1599:5;:::i;:::-;:10;1591:56;;;;-1:-1:-1;;;1591:56:0;;10494:2:1;1591:56:0;;;10476:21:1;10533:2;10513:18;;;10506:30;10572:34;10552:18;;;10545:62;-1:-1:-1;;;10623:18:1;;;10616:31;10664:19;;1591:56:0;10292:397:1;1086:136:0;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;13762:455::-;13875:15;;13843:62;;13860:4;;-1:-1:-1;;;;;13875:15:0;13893:11;13843:8;:62::i;:::-;13948:15;;14152:12;;13948:261;;-1:-1:-1;;;13948:261:0;;14020:4;13948:261;;;11043:34:1;11093:18;;;11086:34;;;13948:15:0;11136:18:1;;;11129:34;;;11179:18;;;11172:34;-1:-1:-1;;;;;14152:12:0;;;11222:19:1;;;11215:44;14181:15:0;11275:19:1;;;11268:35;13948:15:0;;;:31;;13987:9;;10977:19:1;;13948:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13762:455;;:::o;10622:217::-;10669:10;;:15;:30;;;;-1:-1:-1;10688:6:0;;:11;10669:30;10665:43;;;10622:217::o;10665:43::-;10740:10;;;10718:19;:32;10779:6;;;10761:15;:24;-1:-1:-1;10796:14:0;;;;10821:10;10622:217::o;16222:612::-;16319:24;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;16319:24:0;16372:31;16399:3;16372:22;16383:10;;16372:6;:10;;:22;;;;:::i;:31::-;16354:15;;;:49;16443:6;;16432:27;;16455:3;;16432:18;;:6;;:10;:18::i;:27::-;16414:45;;;16496:15;;;;16485:48;;16414:45;16485:27;;:6;;:10;:27::i;:::-;:31;;:48::i;:::-;16470:12;;;;:63;;;;-1:-1:-1;;;;;16564:17:0;;;;;;:9;:17;;;;:29;;16586:6;16564:21;:29::i;:::-;-1:-1:-1;;;;;16544:17:0;;;;;;;:9;:17;;;;;;:49;;;;16652:12;;;;16627:20;;;;;;;;;;:38;;:24;:38::i;:::-;-1:-1:-1;;;;;16604:20:0;;;;;;:9;:20;;;;;;;;:61;;;;16752:15;;16732;;;;16703:66;;16732:36;;:15;:19;:36::i;:::-;16721:4;16703:24;;;;:9;:24;;;;;;;:28;:66::i;:::-;16694:4;16676:24;;;;:9;:24;;;;;;;;;:93;;;;16813:12;;;;16785:41;;1595:25:1;;;-1:-1:-1;;;;;16785:41:0;;;;;;;;;;1568:18:1;16785:41:0;;;;;;;16308:526;16222:612;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;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;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;1264:180::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:52;;;1392:1;1389;1382:12;1344:52;-1:-1:-1;1415:23:1;;1264:180;-1:-1:-1;1264: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;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:388::-;2809:6;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3051:2:1;3036:18;;3023:32;3064:33;3023:32;3064:33;:::i;:::-;3116:7;3106:17;;;2741:388;;;;;:::o;3962:356::-;4164:2;4146:21;;;4183:18;;;4176:30;4242:34;4237:2;4222:18;;4215:62;4309:2;4294:18;;3962:356::o;7641:127::-;7702:10;7697:3;7693:20;7690:1;7683:31;7733:4;7730:1;7723:15;7757:4;7754:1;7747:15;7773:125;7813:4;7841:1;7838;7835:8;7832:34;;;7846:18;;:::i;:::-;-1:-1:-1;7883:9:1;;7773:125::o;8035:127::-;8096:10;8091:3;8087:20;8084:1;8077:31;8127:4;8124:1;8117:15;8151:4;8148:1;8141:15;8167:251;8237:6;8290:2;8278:9;8269:7;8265:23;8261:32;8258:52;;;8306:1;8303;8296:12;8258:52;8338:9;8332:16;8357:31;8382:5;8357:31;:::i;8423:980::-;8685:4;8733:3;8722:9;8718:19;8764:6;8753:9;8746:25;8790:2;8828:6;8823:2;8812:9;8808:18;8801:34;8871:3;8866:2;8855:9;8851:18;8844:31;8895:6;8930;8924:13;8961:6;8953;8946:22;8999:3;8988:9;8984:19;8977:26;;9038:2;9030:6;9026:15;9012:29;;9059:1;9069:195;9083:6;9080:1;9077:13;9069:195;;;9148:13;;-1:-1:-1;;;;;9144:39:1;9132:52;;9239:15;;;;9204:12;;;;9180:1;9098:9;9069:195;;;-1:-1:-1;;;;;;;9320:32:1;;;;9315:2;9300:18;;9293:60;-1:-1:-1;;;9384:3:1;9369:19;9362:35;9281:3;8423:980;-1:-1:-1;;;8423:980:1:o;9408:128::-;9448:3;9479:1;9475:6;9472:1;9469:13;9466:39;;;9485:18;;:::i;:::-;-1:-1:-1;9521:9:1;;9408:128::o;9897:217::-;9937:1;9963;9953:132;;10007:10;10002:3;9998:20;9995:1;9988:31;10042:4;10039:1;10032:15;10070:4;10067:1;10060:15;9953:132;-1:-1:-1;10099:9:1;;9897:217::o;10119:168::-;10159:7;10225:1;10221;10217:6;10213:14;10210:1;10207:21;10202:1;10195:9;10188:17;10184:45;10181:71;;;10232:18;;:::i;:::-;-1:-1:-1;10272:9:1;;10119:168::o;11314:306::-;11402:6;11410;11418;11471:2;11459:9;11450:7;11446:23;11442:32;11439:52;;;11487:1;11484;11477:12;11439:52;11516:9;11510:16;11500:26;;11566:2;11555:9;11551:18;11545:25;11535:35;;11610:2;11599:9;11595:18;11589:25;11579:35;;11314:306;;;;;:::o

Swarm Source

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