ETH Price: $2,461.80 (-2.29%)

Token

Orditrace (ODTR)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 ODTR

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
2,100,723,417,401,958 ODTR

Value
$0.00
0x94eb0aa0c1d700d4ec31b4467344546f8f52ee42
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:
Orditrace

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-07
*/

// SPDX-License-Identifier: MIT   

/*
Orditrace - Wallet Scanner & Tracer for BRC20

https://t.me/Orditrace
https://twitter.com/Orditrace
https://medium.com/@orditrace
https://orditrace.com/
https://t.me/orditrace_bot
*/

pragma solidity 0.8.23;

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

}

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

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

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

contract Orditrace is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private addrExcIude;
    mapping (address => bool) public aMakerV2Pair;
    mapping(address => uint256) private _prevTnxTimestamp;
    mapping (address => bool) public _isBlacklisted;
    address payable private _taxAddre;
    uint256 initialBlock;

    uint256 private _iTOBuy=19;
    uint256 private _mTOBuy=9;
    uint256 private _iTOSell=19;
    uint256 private _mTOSell=49;
    uint256 private _fTOBuy=4;
    uint256 private _fTOSell=4;

    uint256 private _mTOBuyAt=10;
    uint256 private _rTOBuyAt=39;

    uint256 private _mTOSellAt=1;
    uint256 private _rTOSellAt=39;
    uint256 private _nonSwapsBefore=39;
    uint256 private _countOfBuyer=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tSupplyTotaI = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Orditrace";
    string private constant _symbol = unicode"ODTR";
    uint256 public _tnxLimitSize =   10000000 * 10**_decimals;
    uint256 public _walletsLimitSize = 10000000 * 10**_decimals;
    uint256 public _taxSwapThresSize= 100000 * 10**_decimals;
    uint256 public _taxSwapSize= 60000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool public rescueSwitch = false;
    bool public _openTradin;
    bool private _perTnxDeIay = true;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxLimitUpdated(uint _tnxLimitSize);
    modifier lockTheSwap {
        inSwap = true;  
        _;
        inSwap = false;
    }

    constructor () {

        _taxAddre = payable(_msgSender());
        _balances[_msgSender()] = _tSupplyTotaI;
        addrExcIude[owner()] = true;
        addrExcIude[address(this)] = true;
        addrExcIude[address(uniswapV2Pair)] = true;
        addrExcIude[_taxAddre] = true;
        
        emit Transfer(address(0), _msgSender(), _tSupplyTotaI);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 _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 aMMakerV2Pair(address addr) public onlyOwner {
        aMakerV2Pair[addr] = true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require (!_isBlacklisted[from] && !_isBlacklisted[to], "To/from address is blacklisted");
        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");
        uint256 _feeAmount=0;
        if (aMakerV2Pair[from] && to != address(this)){ 
            require(tx.origin == to);
            }
        if (from != owner() && to != owner()) {
            _feeAmount = amount.mul((_countOfBuyer> _rTOBuyAt)? _fTOBuy: ((_countOfBuyer> _mTOBuyAt)? _mTOBuy: _iTOBuy)).div(100);
            
            if (_perTnxDeIay) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_prevTnxTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _prevTnxTimestamp[tx.origin] = block.number;
                }
            }
            if (aMakerV2Pair[from] && to != address(uniswapV2Router) && ! addrExcIude[to] ) {
                require(amount <= _tnxLimitSize, "Exceeds the _tnxLimitSize.");
                require(balanceOf(to) + amount <= _walletsLimitSize, "Exceeds the maxWalletSize.");

                if (initialBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _countOfBuyer++;
            }

            if (!aMakerV2Pair[to] && ! addrExcIude[to]) {
                require(balanceOf(to) + amount <= _walletsLimitSize, "Exceeds the maxWalletSize.");
            }

            if(aMakerV2Pair[to] && from!= address(this) ){
                _feeAmount = amount.mul((_countOfBuyer> _rTOSellAt)? _fTOSell: ((_countOfBuyer> _mTOSellAt)? _mTOSell: _iTOSell)).div(100);
            }

            if (!aMakerV2Pair[from] && !aMakerV2Pair[to] && from!= address(this) ) {
                _feeAmount = 0;
            }

            uint256 tokenContractBalance = balanceOf(address(this));
            if (!inSwap && aMakerV2Pair[to] && swapEnabled && tokenContractBalance>_taxSwapThresSize && _countOfBuyer>_nonSwapsBefore) {
                swapTokensForEth(min(amount,min(tokenContractBalance,_taxSwapSize)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(_feeAmount>0){
          _balances[address(this)]=_balances[address(this)].add(_feeAmount);
          emit Transfer(from, address(this),_feeAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(_feeAmount));
        emit Transfer(from, to, amount.sub(_feeAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 addToBlackList(address[] calldata addresses) external onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
        _isBlacklisted[addresses[i]] = true;
        }
    }

    function rescueEnable(bool _status) external onlyOwner {
        rescueSwitch = _status;
    }

    function addreExclude(address addr, bool exempt) external onlyOwner {
        addrExcIude[addr] = exempt;
    }   

    function _perTnxDelayM(bool _status) external onlyOwner {
        _perTnxDeIay = _status;
    }

    function _rescueETH() public {
        require(rescueSwitch || _openTradin);
        payable(_taxAddre).transfer(address(this).balance);
    }

    function _rescueERC20Tokens(address _tokenAddr, address _to, uint _amount) public {
        require(_msgSender() == _taxAddre);
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    function _setFBS(uint256 __fTOBuy, uint256 __fTOSell) external onlyOwner {
        _fTOBuy = __fTOBuy;
        _fTOSell = __fTOSell; 
    }

    function removeFromBlackList(address account) external onlyOwner {
    _isBlacklisted[account] = false;
    }

    function removeFromBlackListwallets(address[] calldata addresses) public onlyOwner(){
        for (uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = false;
        }
    }

    function _limitless() external onlyOwner{
        _tnxLimitSize=_tSupplyTotaI;
        _walletsLimitSize=_tSupplyTotaI;
        _perTnxDeIay=false;
        emit MaxTxLimitUpdated(_tSupplyTotaI);
    }

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

    function goTradinLive() external onlyOwner() {
        require(!_openTradin,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tSupplyTotaI);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        aMakerV2Pair[address(uniswapV2Pair)] = true;
        addrExcIude[address(uniswapV2Pair)] = true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        _openTradin = true;
        initialBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tnxLimitSize","type":"uint256"}],"name":"MaxTxLimitUpdated","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":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_limitless","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_openTradin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"_perTnxDelayM","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":"_rescueERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__fTOBuy","type":"uint256"},{"internalType":"uint256","name":"__fTOSell","type":"uint256"}],"name":"_setFBS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_taxSwapSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThresSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tnxLimitSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletsLimitSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"aMMakerV2Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"aMakerV2Pair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addToBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"addreExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"goTradinLive","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":"account","type":"address"}],"name":"removeFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"removeFromBlackListwallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"rescueEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260136009556009600a556013600b556031600c556004600d556004600e55600a600f5560276010556001601155602760125560276013555f6014556009600a6200004f91906200035e565b6200005e906298968062000375565b6015556200006f6009600a6200035e565b6200007e906298968062000375565b6016556200008f6009600a6200035e565b6200009e90620186a062000375565b601755620000af6009600a6200035e565b620000bf90630393870062000375565b601855601a805464ffffff00ff60a01b1916600160b01b179055348015620000e5575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b03191633179055620001466009600a6200035e565b6200015690633b9aca0062000375565b335f9081526001602081905260408220929092556003906200017f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601a54821684528284208054861682179055600754909116835291208054909216179055620001ef3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002286009600a6200035e565b6200023890633b9aca0062000375565b60405190815260200160405180910390a36200038f565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002a357815f19048211156200028757620002876200024f565b808516156200029557918102915b93841c939080029062000268565b509250929050565b5f82620002bb5750600162000358565b81620002c957505f62000358565b8160018114620002e25760028114620002ed576200030d565b600191505062000358565b60ff8411156200030157620003016200024f565b50506001821b62000358565b5060208310610133831016604e8410600b841016171562000332575081810a62000358565b6200033e838362000263565b805f19048211156200035457620003546200024f565b0290505b92915050565b5f6200036e60ff841683620002ab565b9392505050565b80820281158282048414176200035857620003586200024f565b612140806200039d5f395ff3fe6080604052600436106101de575f3560e01c806388662a3e116100fd578063bab5929511610092578063d1d71d6011610062578063d1d71d601461059b578063d6e434e8146105af578063dd62ed3e146105c3578063ff89757014610607575f80fd5b8063bab592951461051e578063c29820da1461053d578063c7312c8e1461055c578063c7a4bdf71461057b575f80fd5b8063a9059cbb116100cd578063a9059cbb1461049d578063aae4ff69146104bc578063b457592f146104d1578063b5ef226a146104ff575f80fd5b806388662a3e146104165780638da5cb5b1461043557806395d89b4114610451578063a8bd05c41461047d575f80fd5b8063313ce567116101735780634a49ac4c116101435780634a49ac4c1461039057806370a08231146103af578063715018a6146103e357806377cf9ba9146103f7575f80fd5b8063313ce56714610314578063332e77131461032f5780634003e78d1461034457806349bd5a5e14610359575f80fd5b80632285144e116101ae5780632285144e146102ab57806323b872dd146102c157806327a97878146102e05780632eb316a4146102ff575f80fd5b806306fdde03146101e9578063095ea7b31461022c57806318160ddd1461025b5780631cdd3be31461027d575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260098152684f726469747261636560b81b60208201525b6040516102239190611c54565b60405180910390f35b348015610237575f80fd5b5061024b610246366004611cb4565b610626565b6040519015158152602001610223565b348015610266575f80fd5b5061026f61063c565b604051908152602001610223565b348015610288575f80fd5b5061024b610297366004611cde565b60066020525f908152604090205460ff1681565b3480156102b6575f80fd5b506102bf61065c565b005b3480156102cc575f80fd5b5061024b6102db366004611cf9565b610a50565b3480156102eb575f80fd5b506102bf6102fa366004611d44565b610ab2565b34801561030a575f80fd5b5061026f60175481565b34801561031f575f80fd5b5060405160098152602001610223565b34801561033a575f80fd5b5061026f60165481565b34801561034f575f80fd5b5061026f60185481565b348015610364575f80fd5b50601a54610378906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561039b575f80fd5b506102bf6103aa366004611cde565b610af9565b3480156103ba575f80fd5b5061026f6103c9366004611cde565b6001600160a01b03165f9081526001602052604090205490565b3480156103ee575f80fd5b506102bf610b42565b348015610402575f80fd5b506102bf610411366004611d5f565b610bb3565b348015610421575f80fd5b506102bf610430366004611d96565b610c06565b348015610440575f80fd5b505f546001600160a01b0316610378565b34801561045c575f80fd5b5060408051808201909152600481526327a22a2960e11b6020820152610216565b348015610488575f80fd5b50601a5461024b90600160a81b900460ff1681565b3480156104a8575f80fd5b5061024b6104b7366004611cb4565b610c3a565b3480156104c7575f80fd5b5061026f60155481565b3480156104dc575f80fd5b5061024b6104eb366004611cde565b60046020525f908152604090205460ff1681565b34801561050a575f80fd5b506102bf610519366004611db6565b610c46565b348015610529575f80fd5b506102bf610538366004611cde565b610cd8565b348015610548575f80fd5b506102bf610557366004611cf9565b610d24565b348015610567575f80fd5b506102bf610576366004611d44565b610db9565b348015610586575f80fd5b50601a5461024b90600160a01b900460ff1681565b3480156105a6575f80fd5b506102bf610e00565b3480156105ba575f80fd5b506102bf610e62565b3480156105ce575f80fd5b5061026f6105dd366004611e25565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610612575f80fd5b506102bf610621366004611db6565b610f20565b5f610632338484610fae565b5060015b92915050565b5f6106496009600a611f45565b61065790633b9aca00611f53565b905090565b5f546001600160a01b0316331461068e5760405162461bcd60e51b815260040161068590611f6a565b60405180910390fd5b601a54600160a81b900460ff16156106e85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610685565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107369030906107236009600a611f45565b61073190633b9aca00611f53565b610fae565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610786573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107aa9190611f9f565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610809573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082d9190611f9f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190611f9f565b601a80546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556019541663f305d7194730610919816001600160a01b03165f9081526001602052604090205490565b5f8061092c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610992573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109b79190611fba565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a309190611fe5565b50601a805463ff0000ff60a81b1916630100000160a81b17905543600855565b5f610a5c8484846110d1565b610aa88433610731856040518060600160405280602881526020016120e3602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906118cc565b5060019392505050565b5f546001600160a01b03163314610adb5760405162461bcd60e51b815260040161068590611f6a565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b225760405162461bcd60e51b815260040161068590611f6a565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161068590611f6a565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bdc5760405162461bcd60e51b815260040161068590611f6a565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161068590611f6a565b600d91909155600e55565b5f6106323384846110d1565b5f546001600160a01b03163314610c6f5760405162461bcd60e51b815260040161068590611f6a565b5f5b81811015610cd3575f60065f858585818110610c8f57610c8f612000565b9050602002016020810190610ca49190611cde565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610c71565b505050565b5f546001600160a01b03163314610d015760405162461bcd60e51b815260040161068590611f6a565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b6007546001600160a01b0316336001600160a01b031614610d43575f80fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610d8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db39190611fe5565b50505050565b5f546001600160a01b03163314610de25760405162461bcd60e51b815260040161068590611f6a565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b601a54600160a01b900460ff1680610e215750601a54600160a81b900460ff165b610e29575f80fd5b6007546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610e5f573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610e8b5760405162461bcd60e51b815260040161068590611f6a565b610e976009600a611f45565b610ea590633b9aca00611f53565b601555610eb46009600a611f45565b610ec290633b9aca00611f53565b601655601a805460ff60b01b191690557f7cd96ba5448bfec9f649d205609b7ef3d00507914d52d7fe748da5811659406a610eff6009600a611f45565b610f0d90633b9aca00611f53565b60405190815260200160405180910390a1565b5f546001600160a01b03163314610f495760405162461bcd60e51b815260040161068590611f6a565b5f5b81811015610cd357600160065f858585818110610f6a57610f6a612000565b9050602002016020810190610f7f9190611cde565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610f4b565b6001600160a01b0383166110105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610685565b6001600160a01b0382166110715760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610685565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526006602052604090205460ff1615801561111157506001600160a01b0382165f9081526006602052604090205460ff16155b61115d5760405162461bcd60e51b815260206004820152601e60248201527f546f2f66726f6d206164647265737320697320626c61636b6c697374656400006044820152606401610685565b6001600160a01b0383166111c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610685565b6001600160a01b0382166112235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610685565b5f81116112845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610685565b6001600160a01b0383165f9081526004602052604081205460ff1680156112b457506001600160a01b0383163014155b156112cd57326001600160a01b038416146112cd575f80fd5b5f546001600160a01b038581169116148015906112f757505f546001600160a01b03848116911614155b1561178f5761133b60646113356010546014541161132a57600f54601454116113225760095461132e565b600a5461132e565b600d545b8590611904565b90611989565b601a54909150600160b01b900460ff16156113fc576019546001600160a01b0384811691161480159061137c5750601a546001600160a01b03848116911614155b156113fc57325f9081526005602052604090205443116113ea5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610685565b325f9081526005602052604090204390555b6001600160a01b0384165f9081526004602052604090205460ff16801561143157506019546001600160a01b03848116911614155b801561145557506001600160a01b0383165f9081526003602052604090205460ff16155b1561155c576015548211156114ac5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865205f746e784c696d697453697a652e0000000000006044820152606401610685565b601654826114ce856001600160a01b03165f9081526001602052604090205490565b6114d89190612014565b11156115265760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610685565b4360085460036115369190612014565b111561154757823b15611547575f80fd5b60148054905f61155683612027565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff1615801561159c57506001600160a01b0383165f9081526003602052604090205460ff16155b1561161b57601654826115c3856001600160a01b03165f9081526001602052604090205490565b6115cd9190612014565b111561161b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610685565b6001600160a01b0383165f9081526004602052604090205460ff16801561164b57506001600160a01b0384163014155b1561168b5761168860646113356012546014541161167e576011546014541161167657600b5461132e565b600c5461132e565b600e548590611904565b90505b6001600160a01b0384165f9081526004602052604090205460ff161580156116cb57506001600160a01b0383165f9081526004602052604090205460ff16155b80156116e057506001600160a01b0384163014155b156116e857505f5b305f90815260016020526040902054601a54600160b81b900460ff1615801561172857506001600160a01b0384165f9081526004602052604090205460ff165b801561173d5750601a54600160c01b900460ff165b801561174a575060175481115b80156117595750601354601454115b1561178d5761177b61177684611771846018546119ca565b6119ca565b6119de565b47801561178b5761178b47611b4e565b505b505b801561180757305f908152600160205260409020546117ae9082611b89565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117fe9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546118299083611be7565b6001600160a01b0385165f9081526001602052604090205561186c61184e8383611be7565b6001600160a01b0385165f9081526001602052604090205490611b89565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118b58585611be7565b60405190815260200160405180910390a350505050565b5f81848411156118ef5760405162461bcd60e51b81526004016106859190611c54565b505f6118fb848661203f565b95945050505050565b5f825f0361191357505f610636565b5f61191e8385611f53565b90508261192b8583612052565b146119825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610685565b9392505050565b5f61198283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c28565b5f8183116119d85782611982565b50919050565b601a805460ff60b81b1916600160b81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a2457611a24612000565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9f9190611f9f565b81600181518110611ab257611ab2612000565b6001600160a01b039283166020918202929092010152601954611ad89130911684610fae565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b109085905f90869030904290600401612071565b5f604051808303815f87803b158015611b27575f80fd5b505af1158015611b39573d5f803e3d5ffd5b5050601a805460ff60b81b1916905550505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611b85573d5f803e3d5ffd5b5050565b5f80611b958385612014565b9050838110156119825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610685565b5f61198283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118cc565b5f8183611c485760405162461bcd60e51b81526004016106859190611c54565b505f6118fb8486612052565b5f602080835283518060208501525f5b81811015611c8057858101830151858201604001528201611c64565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e5f575f80fd5b5f8060408385031215611cc5575f80fd5b8235611cd081611ca0565b946020939093013593505050565b5f60208284031215611cee575f80fd5b813561198281611ca0565b5f805f60608486031215611d0b575f80fd5b8335611d1681611ca0565b92506020840135611d2681611ca0565b929592945050506040919091013590565b8015158114610e5f575f80fd5b5f60208284031215611d54575f80fd5b813561198281611d37565b5f8060408385031215611d70575f80fd5b8235611d7b81611ca0565b91506020830135611d8b81611d37565b809150509250929050565b5f8060408385031215611da7575f80fd5b50508035926020909101359150565b5f8060208385031215611dc7575f80fd5b823567ffffffffffffffff80821115611dde575f80fd5b818501915085601f830112611df1575f80fd5b813581811115611dff575f80fd5b8660208260051b8501011115611e13575f80fd5b60209290920196919550909350505050565b5f8060408385031215611e36575f80fd5b8235611e4181611ca0565b91506020830135611d8b81611ca0565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611e9f57815f1904821115611e8557611e85611e51565b80851615611e9257918102915b93841c9390800290611e6a565b509250929050565b5f82611eb557506001610636565b81611ec157505f610636565b8160018114611ed75760028114611ee157611efd565b6001915050610636565b60ff841115611ef257611ef2611e51565b50506001821b610636565b5060208310610133831016604e8410600b8410161715611f20575081810a610636565b611f2a8383611e65565b805f1904821115611f3d57611f3d611e51565b029392505050565b5f61198260ff841683611ea7565b808202811582820484141761063657610636611e51565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611faf575f80fd5b815161198281611ca0565b5f805f60608486031215611fcc575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611ff5575f80fd5b815161198281611d37565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561063657610636611e51565b5f6001820161203857612038611e51565b5060010190565b8181038181111561063657610636611e51565b5f8261206c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120c15784516001600160a01b03168352938301939183019160010161209c565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203747f048a867932405849be63a8312c887a917333c137b1005336f99373c9a0364736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101de575f3560e01c806388662a3e116100fd578063bab5929511610092578063d1d71d6011610062578063d1d71d601461059b578063d6e434e8146105af578063dd62ed3e146105c3578063ff89757014610607575f80fd5b8063bab592951461051e578063c29820da1461053d578063c7312c8e1461055c578063c7a4bdf71461057b575f80fd5b8063a9059cbb116100cd578063a9059cbb1461049d578063aae4ff69146104bc578063b457592f146104d1578063b5ef226a146104ff575f80fd5b806388662a3e146104165780638da5cb5b1461043557806395d89b4114610451578063a8bd05c41461047d575f80fd5b8063313ce567116101735780634a49ac4c116101435780634a49ac4c1461039057806370a08231146103af578063715018a6146103e357806377cf9ba9146103f7575f80fd5b8063313ce56714610314578063332e77131461032f5780634003e78d1461034457806349bd5a5e14610359575f80fd5b80632285144e116101ae5780632285144e146102ab57806323b872dd146102c157806327a97878146102e05780632eb316a4146102ff575f80fd5b806306fdde03146101e9578063095ea7b31461022c57806318160ddd1461025b5780631cdd3be31461027d575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260098152684f726469747261636560b81b60208201525b6040516102239190611c54565b60405180910390f35b348015610237575f80fd5b5061024b610246366004611cb4565b610626565b6040519015158152602001610223565b348015610266575f80fd5b5061026f61063c565b604051908152602001610223565b348015610288575f80fd5b5061024b610297366004611cde565b60066020525f908152604090205460ff1681565b3480156102b6575f80fd5b506102bf61065c565b005b3480156102cc575f80fd5b5061024b6102db366004611cf9565b610a50565b3480156102eb575f80fd5b506102bf6102fa366004611d44565b610ab2565b34801561030a575f80fd5b5061026f60175481565b34801561031f575f80fd5b5060405160098152602001610223565b34801561033a575f80fd5b5061026f60165481565b34801561034f575f80fd5b5061026f60185481565b348015610364575f80fd5b50601a54610378906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561039b575f80fd5b506102bf6103aa366004611cde565b610af9565b3480156103ba575f80fd5b5061026f6103c9366004611cde565b6001600160a01b03165f9081526001602052604090205490565b3480156103ee575f80fd5b506102bf610b42565b348015610402575f80fd5b506102bf610411366004611d5f565b610bb3565b348015610421575f80fd5b506102bf610430366004611d96565b610c06565b348015610440575f80fd5b505f546001600160a01b0316610378565b34801561045c575f80fd5b5060408051808201909152600481526327a22a2960e11b6020820152610216565b348015610488575f80fd5b50601a5461024b90600160a81b900460ff1681565b3480156104a8575f80fd5b5061024b6104b7366004611cb4565b610c3a565b3480156104c7575f80fd5b5061026f60155481565b3480156104dc575f80fd5b5061024b6104eb366004611cde565b60046020525f908152604090205460ff1681565b34801561050a575f80fd5b506102bf610519366004611db6565b610c46565b348015610529575f80fd5b506102bf610538366004611cde565b610cd8565b348015610548575f80fd5b506102bf610557366004611cf9565b610d24565b348015610567575f80fd5b506102bf610576366004611d44565b610db9565b348015610586575f80fd5b50601a5461024b90600160a01b900460ff1681565b3480156105a6575f80fd5b506102bf610e00565b3480156105ba575f80fd5b506102bf610e62565b3480156105ce575f80fd5b5061026f6105dd366004611e25565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610612575f80fd5b506102bf610621366004611db6565b610f20565b5f610632338484610fae565b5060015b92915050565b5f6106496009600a611f45565b61065790633b9aca00611f53565b905090565b5f546001600160a01b0316331461068e5760405162461bcd60e51b815260040161068590611f6a565b60405180910390fd5b601a54600160a81b900460ff16156106e85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610685565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107369030906107236009600a611f45565b61073190633b9aca00611f53565b610fae565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610786573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107aa9190611f9f565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610809573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082d9190611f9f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190611f9f565b601a80546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556019541663f305d7194730610919816001600160a01b03165f9081526001602052604090205490565b5f8061092c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610992573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109b79190611fba565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a0c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a309190611fe5565b50601a805463ff0000ff60a81b1916630100000160a81b17905543600855565b5f610a5c8484846110d1565b610aa88433610731856040518060600160405280602881526020016120e3602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906118cc565b5060019392505050565b5f546001600160a01b03163314610adb5760405162461bcd60e51b815260040161068590611f6a565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b225760405162461bcd60e51b815260040161068590611f6a565b6001600160a01b03165f908152600660205260409020805460ff19169055565b5f546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161068590611f6a565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610bdc5760405162461bcd60e51b815260040161068590611f6a565b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610c2f5760405162461bcd60e51b815260040161068590611f6a565b600d91909155600e55565b5f6106323384846110d1565b5f546001600160a01b03163314610c6f5760405162461bcd60e51b815260040161068590611f6a565b5f5b81811015610cd3575f60065f858585818110610c8f57610c8f612000565b9050602002016020810190610ca49190611cde565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610c71565b505050565b5f546001600160a01b03163314610d015760405162461bcd60e51b815260040161068590611f6a565b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b6007546001600160a01b0316336001600160a01b031614610d43575f80fd5b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303815f875af1158015610d8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db39190611fe5565b50505050565b5f546001600160a01b03163314610de25760405162461bcd60e51b815260040161068590611f6a565b601a8054911515600160b01b0260ff60b01b19909216919091179055565b601a54600160a01b900460ff1680610e215750601a54600160a81b900460ff165b610e29575f80fd5b6007546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610e5f573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610e8b5760405162461bcd60e51b815260040161068590611f6a565b610e976009600a611f45565b610ea590633b9aca00611f53565b601555610eb46009600a611f45565b610ec290633b9aca00611f53565b601655601a805460ff60b01b191690557f7cd96ba5448bfec9f649d205609b7ef3d00507914d52d7fe748da5811659406a610eff6009600a611f45565b610f0d90633b9aca00611f53565b60405190815260200160405180910390a1565b5f546001600160a01b03163314610f495760405162461bcd60e51b815260040161068590611f6a565b5f5b81811015610cd357600160065f858585818110610f6a57610f6a612000565b9050602002016020810190610f7f9190611cde565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610f4b565b6001600160a01b0383166110105760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610685565b6001600160a01b0382166110715760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610685565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526006602052604090205460ff1615801561111157506001600160a01b0382165f9081526006602052604090205460ff16155b61115d5760405162461bcd60e51b815260206004820152601e60248201527f546f2f66726f6d206164647265737320697320626c61636b6c697374656400006044820152606401610685565b6001600160a01b0383166111c15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610685565b6001600160a01b0382166112235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610685565b5f81116112845760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610685565b6001600160a01b0383165f9081526004602052604081205460ff1680156112b457506001600160a01b0383163014155b156112cd57326001600160a01b038416146112cd575f80fd5b5f546001600160a01b038581169116148015906112f757505f546001600160a01b03848116911614155b1561178f5761133b60646113356010546014541161132a57600f54601454116113225760095461132e565b600a5461132e565b600d545b8590611904565b90611989565b601a54909150600160b01b900460ff16156113fc576019546001600160a01b0384811691161480159061137c5750601a546001600160a01b03848116911614155b156113fc57325f9081526005602052604090205443116113ea5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610685565b325f9081526005602052604090204390555b6001600160a01b0384165f9081526004602052604090205460ff16801561143157506019546001600160a01b03848116911614155b801561145557506001600160a01b0383165f9081526003602052604090205460ff16155b1561155c576015548211156114ac5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865205f746e784c696d697453697a652e0000000000006044820152606401610685565b601654826114ce856001600160a01b03165f9081526001602052604090205490565b6114d89190612014565b11156115265760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610685565b4360085460036115369190612014565b111561154757823b15611547575f80fd5b60148054905f61155683612027565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff1615801561159c57506001600160a01b0383165f9081526003602052604090205460ff16155b1561161b57601654826115c3856001600160a01b03165f9081526001602052604090205490565b6115cd9190612014565b111561161b5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610685565b6001600160a01b0383165f9081526004602052604090205460ff16801561164b57506001600160a01b0384163014155b1561168b5761168860646113356012546014541161167e576011546014541161167657600b5461132e565b600c5461132e565b600e548590611904565b90505b6001600160a01b0384165f9081526004602052604090205460ff161580156116cb57506001600160a01b0383165f9081526004602052604090205460ff16155b80156116e057506001600160a01b0384163014155b156116e857505f5b305f90815260016020526040902054601a54600160b81b900460ff1615801561172857506001600160a01b0384165f9081526004602052604090205460ff165b801561173d5750601a54600160c01b900460ff165b801561174a575060175481115b80156117595750601354601454115b1561178d5761177b61177684611771846018546119ca565b6119ca565b6119de565b47801561178b5761178b47611b4e565b505b505b801561180757305f908152600160205260409020546117ae9082611b89565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117fe9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546118299083611be7565b6001600160a01b0385165f9081526001602052604090205561186c61184e8383611be7565b6001600160a01b0385165f9081526001602052604090205490611b89565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118b58585611be7565b60405190815260200160405180910390a350505050565b5f81848411156118ef5760405162461bcd60e51b81526004016106859190611c54565b505f6118fb848661203f565b95945050505050565b5f825f0361191357505f610636565b5f61191e8385611f53565b90508261192b8583612052565b146119825760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610685565b9392505050565b5f61198283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c28565b5f8183116119d85782611982565b50919050565b601a805460ff60b81b1916600160b81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611a2457611a24612000565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a9f9190611f9f565b81600181518110611ab257611ab2612000565b6001600160a01b039283166020918202929092010152601954611ad89130911684610fae565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611b109085905f90869030904290600401612071565b5f604051808303815f87803b158015611b27575f80fd5b505af1158015611b39573d5f803e3d5ffd5b5050601a805460ff60b81b1916905550505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611b85573d5f803e3d5ffd5b5050565b5f80611b958385612014565b9050838110156119825760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610685565b5f61198283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118cc565b5f8183611c485760405162461bcd60e51b81526004016106859190611c54565b505f6118fb8486612052565b5f602080835283518060208501525f5b81811015611c8057858101830151858201604001528201611c64565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610e5f575f80fd5b5f8060408385031215611cc5575f80fd5b8235611cd081611ca0565b946020939093013593505050565b5f60208284031215611cee575f80fd5b813561198281611ca0565b5f805f60608486031215611d0b575f80fd5b8335611d1681611ca0565b92506020840135611d2681611ca0565b929592945050506040919091013590565b8015158114610e5f575f80fd5b5f60208284031215611d54575f80fd5b813561198281611d37565b5f8060408385031215611d70575f80fd5b8235611d7b81611ca0565b91506020830135611d8b81611d37565b809150509250929050565b5f8060408385031215611da7575f80fd5b50508035926020909101359150565b5f8060208385031215611dc7575f80fd5b823567ffffffffffffffff80821115611dde575f80fd5b818501915085601f830112611df1575f80fd5b813581811115611dff575f80fd5b8660208260051b8501011115611e13575f80fd5b60209290920196919550909350505050565b5f8060408385031215611e36575f80fd5b8235611e4181611ca0565b91506020830135611d8b81611ca0565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611e9f57815f1904821115611e8557611e85611e51565b80851615611e9257918102915b93841c9390800290611e6a565b509250929050565b5f82611eb557506001610636565b81611ec157505f610636565b8160018114611ed75760028114611ee157611efd565b6001915050610636565b60ff841115611ef257611ef2611e51565b50506001821b610636565b5060208310610133831016604e8410600b8410161715611f20575081810a610636565b611f2a8383611e65565b805f1904821115611f3d57611f3d611e51565b029392505050565b5f61198260ff841683611ea7565b808202811582820484141761063657610636611e51565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611faf575f80fd5b815161198281611ca0565b5f805f60608486031215611fcc575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611ff5575f80fd5b815161198281611d37565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561063657610636611e51565b5f6001820161203857612038611e51565b5060010190565b8181038181111561063657610636611e51565b5f8261206c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156120c15784516001600160a01b03168352938301939183019160010161209c565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203747f048a867932405849be63a8312c887a917333c137b1005336f99373c9a0364736f6c63430008170033

Deployed Bytecode Sourcemap

3673:10257:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5877:83;;;;;;;;;;-1:-1:-1;5947:5:0;;;;;;;;;;;;-1:-1:-1;;;5947:5:0;;;;5877:83;;;;;;;:::i;:::-;;;;;;;;6716:161;;;;;;;;;;-1:-1:-1;6716:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6716:161:0;1023:187:1;6154:101:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6154:101:0;1215:177:1;4053:47:0;;;;;;;;;;-1:-1:-1;4053:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13067:823;;;;;;;;;;;;;:::i;:::-;;6885:313;;;;;;;;;;-1:-1:-1;6885:313:0;;;;;:::i;:::-;;:::i;11589:96::-;;;;;;;;;;-1:-1:-1;11589:96:0;;;;;:::i;:::-;;:::i;4958:56::-;;;;;;;;;;;;;;;;6063:83;;;;;;;;;;-1:-1:-1;6063:83:0;;4635:1;2621:36:1;;2609:2;2594:18;6063:83:0;2479:184:1;4892:59:0;;;;;;;;;;;;;;;;5021:53;;;;;;;;;;;;;;;;5132:28;;;;;;;;;;-1:-1:-1;5132:28:0;;;;-1:-1:-1;;;;;5132:28:0;;;;;;-1:-1:-1;;;;;2832:32:1;;;2814:51;;2802:2;2787:18;5132:28:0;2668:203:1;12420:111:0;;;;;;;;;;-1:-1:-1;12420:111:0;;;;;:::i;:::-;;:::i;6263:119::-;;;;;;;;;;-1:-1:-1;6263:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6356:18:0;6329:7;6356:18;;;:9;:18;;;;;;;6263:119;2754:148;;;;;;;;;;;;;:::i;11693:113::-;;;;;;;;;;-1:-1:-1;11693:113:0;;;;;:::i;:::-;;:::i;12270:142::-;;;;;;;;;;-1:-1:-1;12270:142:0;;;;;:::i;:::-;;:::i;2540:79::-;;;;;;;;;;-1:-1:-1;2578:7:0;2605:6;-1:-1:-1;;;;;2605:6:0;2540:79;;5968:87;;;;;;;;;;-1:-1:-1;6040:7:0;;;;;;;;;;;;-1:-1:-1;;;6040:7:0;;;;5968:87;;5206:23;;;;;;;;;;-1:-1:-1;5206:23:0;;;;-1:-1:-1;;;5206:23:0;;;;;;6390:167;;;;;;;;;;-1:-1:-1;6390:167:0;;;;;:::i;:::-;;:::i;4828:57::-;;;;;;;;;;;;;;;;3941:45;;;;;;;;;;-1:-1:-1;3941:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12539:208;;;;;;;;;;-1:-1:-1;12539:208:0;;;;;:::i;:::-;;:::i;7549:98::-;;;;;;;;;;-1:-1:-1;7549:98:0;;;;;:::i;:::-;;:::i;12075:187::-;;;;;;;;;;-1:-1:-1;12075:187:0;;;;;:::i;:::-;;:::i;11817:97::-;;;;;;;;;;-1:-1:-1;11817:97:0;;;;;:::i;:::-;;:::i;5167:32::-;;;;;;;;;;-1:-1:-1;5167:32:0;;;;-1:-1:-1;;;5167:32:0;;;;;;11922:145;;;;;;;;;;;;;:::i;12755:205::-;;;;;;;;;;;;;:::i;6565:143::-;;;;;;;;;;-1:-1:-1;6565:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6673:18:0;;;6646:7;6673:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6565:143;11389:192;;;;;;;;;;-1:-1:-1;11389:192:0;;;;;:::i;:::-;;:::i;6716:161::-;6791:4;6808:39;375:10;6831:7;6840:6;6808:8;:39::i;:::-;-1:-1:-1;6865:4:0;6716:161;;;;;:::o;6154:101::-;6207:7;4697:13;4635:1;4697:2;:13;:::i;:::-;4684:26;;:10;:26;:::i;:::-;6227:20;;6154:101;:::o;13067:823::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;;;;;;;;;13132:11:::1;::::0;-1:-1:-1;;;13132:11:0;::::1;;;13131:12;13123:47;;;::::0;-1:-1:-1;;;13123:47:0;;6774:2:1;13123:47:0::1;::::0;::::1;6756:21:1::0;6813:2;6793:18;;;6786:30;6852:25;6832:18;;;6825:53;6895:18;;13123:47:0::1;6572:347:1::0;13123:47:0::1;13181:15;:80:::0;;-1:-1:-1;;;;;;13181:80:0::1;13218:42;13181:80:::0;;::::1;::::0;;;13272:64:::1;::::0;13289:4:::1;::::0;4697:13:::1;4635:1;4697:2;:13;:::i;:::-;4684:26;::::0;:10:::1;:26;:::i;:::-;13272:8;:64::i;:::-;13381:15;;;;;;;;;-1:-1:-1::0;;;;;13381:15:0::1;-1:-1:-1::0;;;;;13381:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13363:55:0::1;;13427:4;13434:15;;;;;;;;;-1:-1:-1::0;;;;;13434:15:0::1;-1:-1:-1::0;;;;;13434:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13363:94;::::0;-1:-1:-1;;;;;;13363:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7410:15:1;;;13363:94:0::1;::::0;::::1;7392:34:1::0;7462:15;;7442:18;;;7435:43;7327:18;;13363:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13347:13;:110:::0;;-1:-1:-1;;;;;13347:110:0;;::::1;-1:-1:-1::0;;;;;;13347:110:0;;::::1;::::0;::::1;::::0;;:13:::1;13468:36:::0;;;:12:::1;:36;::::0;;;;;;;:43;;-1:-1:-1;;13468:43:0;;::::1;13347:110:::0;13468:43;;::::1;::::0;;;13542:13;;;::::1;13522:35:::0;;:11:::1;:35:::0;;;;;;:42;;;;::::1;;::::0;;13575:15:::1;::::0;::::1;:31;13614:21;13645:4;13651:24;13645:4:::0;-1:-1:-1;;;;;6356:18:0;6329:7;6356:18;;;:9;:18;;;;;;;6263:119;13651:24:::1;13676:1;13678::::0;13680:7:::1;2578::::0;2605:6;-1:-1:-1;;;;;2605:6:0;;2540:79;13680:7:::1;13575:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13575:129:0;;;-1:-1:-1;;;;;7848:15:1;;;13575:129:0::1;::::0;::::1;7830:34:1::0;7880:18;;;7873:34;;;;7923:18;;;7916:34;;;;7966:18;;;7959:34;8030:15;;;8009:19;;;8002:44;13688:15:0::1;8062:19:1::0;;;8055:35;7764:19;;13575:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13722:13:0::1;::::0;13753:15:::1;::::0;13715:71:::1;::::0;-1:-1:-1;;;13715:71:0;;-1:-1:-1;;;;;13753:15:0;;::::1;13715:71;::::0;::::1;8586:51:1::0;-1:-1:-1;;8653:18:1;;;8646:34;13722:13:0;::::1;::::0;-1:-1:-1;13715:29:0::1;::::0;8559:18:1;;13715:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13797:11:0::1;:18:::0;;-1:-1:-1;;;;13826:18:0;-1:-1:-1;;;13826:18:0;;;13870:12:::1;13855;:27:::0;13067:823::o;6885:313::-;6983:4;7000:36;7010:6;7018:9;7029:6;7000:9;:36::i;:::-;7047:121;7056:6;375:10;7078:89;7116:6;7078:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7078:19:0;;;;;;:11;:19;;;;;;;;375:10;7078:33;;;;;;;;;;:37;:89::i;7047:121::-;-1:-1:-1;7186:4:0;6885:313;;;;;:::o;11589:96::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;11655:12:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;11655:22:0::1;-1:-1:-1::0;;;;11655:22:0;;::::1;::::0;;;::::1;::::0;;11589:96::o;12420:111::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12492:23:0::1;12518:5;12492:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;12492:31:0::1;::::0;;12420:111::o;2754:148::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;2861:1:::1;2845:6:::0;;2824:40:::1;::::0;-1:-1:-1;;;;;2845:6:0;;::::1;::::0;2824:40:::1;::::0;2861:1;;2824:40:::1;2892:1;2875:19:::0;;-1:-1:-1;;;;;;2875:19:0::1;::::0;;2754:148::o;11693:113::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11772:17:0;;;::::1;;::::0;;;:11:::1;:17;::::0;;;;:26;;-1:-1:-1;;11772:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11693:113::o;12270:142::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;12354:7:::1;:18:::0;;;;12383:8:::1;:20:::0;12270:142::o;6390:167::-;6468:4;6485:42;375:10;6509:9;6520:6;6485:9;:42::i;12539:208::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;12639:9:::1;12634:106;12650:20:::0;;::::1;12634:106;;;12723:5;12692:14;:28;12707:9;;12717:1;12707:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12692:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12692:28:0;:36;;-1:-1:-1;;12692:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12672:3:0::1;12634:106;;;;12539:208:::0;;:::o;7549:98::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7614:18:0::1;;::::0;;;:12:::1;:18;::::0;;;;:25;;-1:-1:-1;;7614:25:0::1;7635:4;7614:25;::::0;;7549:98::o;12075:187::-;12192:9;;-1:-1:-1;;;;;12192:9:0;375:10;-1:-1:-1;;;;;12176:25:0;;12168:34;;;;;;12213:41;;-1:-1:-1;;;12213:41:0;;-1:-1:-1;;;;;8604:32:1;;;12213:41:0;;;8586:51:1;8653:18;;;8646:34;;;12213:27:0;;;;;8559:18:1;;12213:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12075:187;;;:::o;11817:97::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;11884:12:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;11884:22:0::1;-1:-1:-1::0;;;;11884:22:0;;::::1;::::0;;;::::1;::::0;;11817:97::o;11922:145::-;11970:12;;-1:-1:-1;;;11970:12:0;;;;;:27;;-1:-1:-1;11986:11:0;;-1:-1:-1;;;11986:11:0;;;;11970:27;11962:36;;;;;;12017:9;;12009:50;;-1:-1:-1;;;;;12017:9:0;;;;12037:21;12009:50;;;;;12017:9;12009:50;12017:9;12009:50;12037:21;12017:9;12009:50;;;;;;;;;;;;;;;;;;;;;11922:145::o;12755:205::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;4697:13:::1;4635:1;4697:2;:13;:::i;:::-;4684:26;::::0;:10:::1;:26;:::i;:::-;12806:13;:27:::0;4697:13:::1;4635:1;4697:2;:13;:::i;:::-;4684:26;::::0;:10:::1;:26;:::i;:::-;12844:17;:31:::0;12886:12:::1;:18:::0;;-1:-1:-1;;;;12886:18:0::1;::::0;;12920:32:::1;4697:13;4635:1;4697:2;:13;:::i;:::-;4684:26;::::0;:10:::1;:26;:::i;:::-;12920:32;::::0;1361:25:1;;;1349:2;1334:18;12920:32:0::1;;;;;;;12755:205::o:0;11389:192::-;2667:6;;-1:-1:-1;;;;;2667:6:0;375:10;2667:22;2659:67;;;;-1:-1:-1;;;2659:67:0;;;;;;;:::i;:::-;11478:9:::1;11473:101;11489:20:::0;;::::1;11473:101;;;11558:4;11527:14;:28;11542:9;;11552:1;11542:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11527:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;11527:28:0;:35;;-1:-1:-1;;11527:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11511:3:0::1;11473:101;;7206:335:::0;-1:-1:-1;;;;;7299:19:0;;7291:68;;;;-1:-1:-1;;;7291:68:0;;9275:2:1;7291:68:0;;;9257:21:1;9314:2;9294:18;;;9287:30;9353:34;9333:18;;;9326:62;-1:-1:-1;;;9404:18:1;;;9397:34;9448:19;;7291:68:0;9073:400:1;7291:68:0;-1:-1:-1;;;;;7378:21:0;;7370:68;;;;-1:-1:-1;;;7370:68:0;;9680:2:1;7370:68:0;;;9662:21:1;9719:2;9699:18;;;9692:30;9758:34;9738:18;;;9731:62;-1:-1:-1;;;9809:18:1;;;9802:32;9851:19;;7370:68:0;9478:398:1;7370:68:0;-1:-1:-1;;;;;7449:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7501:32;;1361:25:1;;;7501:32:0;;1334:18:1;7501:32:0;;;;;;;7206:335;;;:::o;7655:2924::-;-1:-1:-1;;;;;7745:20:0;;;;;;:14;:20;;;;;;;;7744:21;:44;;;;-1:-1:-1;;;;;;7770:18:0;;;;;;:14;:18;;;;;;;;7769:19;7744:44;7735:88;;;;-1:-1:-1;;;7735:88:0;;10083:2:1;7735:88:0;;;10065:21:1;10122:2;10102:18;;;10095:30;10161:32;10141:18;;;10134:60;10211:18;;7735:88:0;9881:354:1;7735:88:0;-1:-1:-1;;;;;7842:18:0;;7834:68;;;;-1:-1:-1;;;7834:68:0;;10442:2:1;7834:68:0;;;10424:21:1;10481:2;10461:18;;;10454:30;10520:34;10500:18;;;10493:62;-1:-1:-1;;;10571:18:1;;;10564:35;10616:19;;7834:68:0;10240:401:1;7834:68:0;-1:-1:-1;;;;;7921:16:0;;7913:64;;;;-1:-1:-1;;;7913:64:0;;10848:2:1;7913:64:0;;;10830:21:1;10887:2;10867:18;;;10860:30;10926:34;10906:18;;;10899:62;-1:-1:-1;;;10977:18:1;;;10970:33;11020:19;;7913:64:0;10646:399:1;7913:64:0;8005:1;7996:6;:10;7988:64;;;;-1:-1:-1;;;7988:64:0;;11252:2:1;7988:64:0;;;11234:21:1;11291:2;11271:18;;;11264:30;11330:34;11310:18;;;11303:62;-1:-1:-1;;;11381:18:1;;;11374:39;11430:19;;7988:64:0;11050:405:1;7988:64:0;-1:-1:-1;;;;;8098:18:0;;8063;8098;;;:12;:18;;;;;;;;:41;;;;-1:-1:-1;;;;;;8120:19:0;;8134:4;8120:19;;8098:41;8094:102;;;8164:9;-1:-1:-1;;;;;8164:15:0;;;8156:24;;;;;;2578:7;2605:6;-1:-1:-1;;;;;8210:15:0;;;2605:6;;8210:15;;;;:32;;-1:-1:-1;2578:7:0;2605:6;-1:-1:-1;;;;;8229:13:0;;;2605:6;;8229:13;;8210:32;8206:2012;;;8272:104;8372:3;8272:95;8299:9;;8284:13;;:24;8283:83;;8337:9;;8322:13;;:24;8321:44;;8358:7;;8283:83;;8321:44;8349:7;;8283:83;;;8311:7;;8283:83;8272:6;;:10;:95::i;:::-;:99;;:104::i;:::-;8409:12;;8259:117;;-1:-1:-1;;;;8409:12:0;;;;8405:316;;;8460:15;;-1:-1:-1;;;;;8446:30:0;;;8460:15;;8446:30;;;;:62;;-1:-1:-1;8494:13:0;;-1:-1:-1;;;;;8480:28:0;;;8494:13;;8480:28;;8446:62;8442:264;;;8557:9;8539:28;;;;:17;:28;;;;;;8570:12;-1:-1:-1;8531:91:0;;;;-1:-1:-1;;;8531:91:0;;11662:2:1;8531:91:0;;;11644:21:1;11701:2;11681:18;;;11674:30;11740:34;11720:18;;;11713:62;-1:-1:-1;;;11791:18:1;;;11784:34;11835:19;;8531:91:0;11460:400:1;8531:91:0;8661:9;8643:28;;;;:17;:28;;;;;8674:12;8643:43;;8442:264;-1:-1:-1;;;;;8739:18:0;;;;;;:12;:18;;;;;;;;:52;;;;-1:-1:-1;8775:15:0;;-1:-1:-1;;;;;8761:30:0;;;8775:15;;8761:30;;8739:52;:73;;;;-1:-1:-1;;;;;;8797:15:0;;;;;;:11;:15;;;;;;;;8795:17;8739:73;8735:437;;;8852:13;;8842:6;:23;;8834:62;;;;-1:-1:-1;;;8834:62:0;;12067:2:1;8834:62:0;;;12049:21:1;12106:2;12086:18;;;12079:30;12145:28;12125:18;;;12118:56;12191:18;;8834:62:0;11865:350:1;8834:62:0;8949:17;;8939:6;8923:13;8933:2;-1:-1:-1;;;;;6356:18:0;6329:7;6356:18;;;:9;:18;;;;;;;6263:119;8923:13;:22;;;;:::i;:::-;:43;;8915:82;;;;-1:-1:-1;;;8915:82:0;;12552:2:1;8915:82:0;;;12534:21:1;12591:2;12571:18;;;12564:30;12630:28;12610:18;;;12603:56;12676:18;;8915:82:0;12350:350:1;8915:82:0;9042:12;9022;;9037:1;9022:16;;;;:::i;:::-;:32;9018:105;;;10826:20;;10874:8;9079:24;;;;;;9141:13;:15;;;:13;:15;;;:::i;:::-;;;;;;8735:437;-1:-1:-1;;;;;9193:16:0;;;;;;:12;:16;;;;;;;;9192:17;:38;;;;-1:-1:-1;;;;;;9215:15:0;;;;;;:11;:15;;;;;;;;9213:17;9192:38;9188:161;;;9285:17;;9275:6;9259:13;9269:2;-1:-1:-1;;;;;6356:18:0;6329:7;6356:18;;;:9;:18;;;;;;;6263:119;9259:13;:22;;;;:::i;:::-;:43;;9251:82;;;;-1:-1:-1;;;9251:82:0;;12552:2:1;9251:82:0;;;12534:21:1;12591:2;12571:18;;;12564:30;12630:28;12610:18;;;12603:56;12676:18;;9251:82:0;12350:350:1;9251:82:0;-1:-1:-1;;;;;9368:16:0;;;;;;:12;:16;;;;;;;;:40;;;;-1:-1:-1;;;;;;9388:20:0;;9403:4;9388:20;;9368:40;9365:202;;;9442:109;9547:3;9442:100;9469:10;;9454:13;;:25;9453:88;;9509:10;;9494:13;;:25;9493:47;;9532:8;;9453:88;;9493:47;9522:8;;9453:88;;;9482:8;;9442:6;;:10;:100::i;:109::-;9429:122;;9365:202;-1:-1:-1;;;;;9588:18:0;;;;;;:12;:18;;;;;;;;9587:19;:40;;;;-1:-1:-1;;;;;;9611:16:0;;;;;;:12;:16;;;;;;;;9610:17;9587:40;:64;;;;-1:-1:-1;;;;;;9631:20:0;;9646:4;9631:20;;9587:64;9583:120;;;-1:-1:-1;9686:1:0;9583:120;9768:4;9719:28;6356:18;;;:9;:18;;;;;;9794:6;;-1:-1:-1;;;9794:6:0;;;;9793:7;:27;;;;-1:-1:-1;;;;;;9804:16:0;;;;;;:12;:16;;;;;;;;9793:27;:42;;;;-1:-1:-1;9824:11:0;;-1:-1:-1;;;9824:11:0;;;;9793:42;:84;;;;;9860:17;;9839:20;:38;9793:84;:117;;;;;9895:15;;9881:13;;:29;9793:117;9789:418;;;9931:68;9948:50;9952:6;9959:38;9963:20;9984:12;;9959:3;:38::i;:::-;9948:3;:50::i;:::-;9931:16;:68::i;:::-;10047:21;10090:22;;10087:105;;10137:35;10150:21;10137:12;:35::i;:::-;9912:295;9789:418;8244:1974;8206:2012;10233:12;;10230:164;;10302:4;10284:24;;;;:9;:24;;;;;;:40;;10313:10;10284:28;:40::i;:::-;10277:4;10259:24;;;;:9;:24;;;;;;;:65;;;;10342:40;;-1:-1:-1;;;;;10342:40:0;;;;;;;10371:10;1361:25:1;;1349:2;1334:18;;1215:177;10342:40:0;;;;;;;;10230:164;-1:-1:-1;;;;;10420:15:0;;;;;;:9;:15;;;;;;:27;;10440:6;10420:19;:27::i;:::-;-1:-1:-1;;;;;10404:15:0;;;;;;:9;:15;;;;;:43;10472:41;10490:22;:6;10501:10;10490;:22::i;:::-;-1:-1:-1;;;;;10472:13:0;;;;;;:9;:13;;;;;;;:17;:41::i;:::-;-1:-1:-1;;;;;10458:13:0;;;;;;;:9;:13;;;;;:55;;;;10529:42;;;10548:22;:6;10559:10;10548;:22::i;:::-;10529:42;;1361:25:1;;;1349:2;1334:18;10529:42:0;;;;;;;7724:2855;7655:2924;;;:::o;1432:190::-;1518:7;1554:12;1546:6;;;;1538:29;;;;-1:-1:-1;;;1538:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1578:9:0;1590:5;1594:1;1590;:5;:::i;:::-;1578:17;1432:190;-1:-1:-1;;;;;1432:190:0:o;1630:246::-;1688:7;1712:1;1717;1712:6;1708:47;;-1:-1:-1;1742:1:0;1735:8;;1708:47;1765:9;1777:5;1781:1;1777;:5;:::i;:::-;1765:17;-1:-1:-1;1810:1:0;1801:5;1805:1;1765:17;1801:5;:::i;:::-;:10;1793:56;;;;-1:-1:-1;;;1793:56:0;;13402:2:1;1793:56:0;;;13384:21:1;13441:2;13421:18;;;13414:30;13480:34;13460:18;;;13453:62;-1:-1:-1;;;13531:18:1;;;13524:31;13572:19;;1793:56:0;13200:397:1;1793:56:0;1867:1;1630:246;-1:-1:-1;;;1630:246:0:o;1884:132::-;1942:7;1969:39;1973:1;1976;1969:39;;;;;;;;;;;;;;;;;:3;:39::i;10589:98::-;10646:7;10673:1;10671;:3;10670:9;;10678:1;10670:9;;;-1:-1:-1;10676:1:0;10589:98;-1:-1:-1;10589:98:0:o;10898:483::-;5432:6;:13;;-1:-1:-1;;;;5432:13:0;-1:-1:-1;;;5432:13:0;;;11000:16:::1;::::0;;11014:1:::1;11000:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11000:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11000:16:0::1;10976:40;;11045:4;11027;11032:1;11027:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11027:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11071:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11071:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11027:7;;11071:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11061:4;11066:1;11061:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11061:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11136:15:::1;::::0;11104:62:::1;::::0;11121:4:::1;::::0;11136:15:::1;11154:11:::0;11104:8:::1;:62::i;:::-;11177:15;::::0;:196:::1;::::0;-1:-1:-1;;;11177:196:0;;-1:-1:-1;;;;;11177:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11258:11;;11177:15:::1;::::0;11300:4;;11327::::1;::::0;11347:15:::1;::::0;11177:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5470:6:0;:14;;-1:-1:-1;;;;5470:14:0;;;-1:-1:-1;;;;10898:483:0:o;12968:91::-;13025:9;;:26;;-1:-1:-1;;;;;13025:9:0;;;;:26;;;;;13044:6;;13025:9;:26;:9;:26;13044:6;13025:9;:26;;;;;;;;;;;;;;;;;;;;;12968:91;:::o;1101:179::-;1159:7;;1191:5;1195:1;1191;:5;:::i;:::-;1179:17;;1220:1;1215;:6;;1207:46;;;;-1:-1:-1;;;1207:46:0;;14921:2:1;1207:46:0;;;14903:21:1;14960:2;14940:18;;;14933:30;14999:29;14979:18;;;14972:57;15046:18;;1207:46:0;14719:351:1;1288:136:0;1346:7;1373:43;1377:1;1380;1373:43;;;;;;;;;;;;;;;;;:3;:43::i;2024:189::-;2110:7;2145:12;2138:5;2130:28;;;;-1:-1:-1;;;2130:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2169:9:0;2181:5;2185:1;2181;:5;:::i;14:548: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;;;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;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2110:118::-;2196:5;2189:13;2182:21;2175:5;2172:32;2162:60;;2218:1;2215;2208:12;2233:241;2289:6;2342:2;2330:9;2321:7;2317:23;2313:32;2310:52;;;2358:1;2355;2348:12;2310:52;2397:9;2384:23;2416:28;2438:5;2416:28;:::i;2876:382::-;2941:6;2949;3002:2;2990:9;2981:7;2977:23;2973:32;2970:52;;;3018:1;3015;3008:12;2970:52;3057:9;3044:23;3076:31;3101:5;3076:31;:::i;:::-;3126:5;-1:-1:-1;3183:2:1;3168:18;;3155:32;3196:30;3155:32;3196:30;:::i;:::-;3245:7;3235:17;;;2876:382;;;;;:::o;3263:248::-;3331:6;3339;3392:2;3380:9;3371:7;3367:23;3363:32;3360:52;;;3408:1;3405;3398:12;3360:52;-1:-1:-1;;3431:23:1;;;3501:2;3486:18;;;3473:32;;-1:-1:-1;3263:248:1:o;3516:615::-;3602:6;3610;3663:2;3651:9;3642:7;3638:23;3634:32;3631:52;;;3679:1;3676;3669:12;3631:52;3719:9;3706:23;3748:18;3789:2;3781:6;3778:14;3775:34;;;3805:1;3802;3795:12;3775:34;3843:6;3832:9;3828:22;3818:32;;3888:7;3881:4;3877:2;3873:13;3869:27;3859:55;;3910:1;3907;3900:12;3859:55;3950:2;3937:16;3976:2;3968:6;3965:14;3962:34;;;3992:1;3989;3982:12;3962:34;4045:7;4040:2;4030:6;4027:1;4023:14;4019:2;4015:23;4011:32;4008:45;4005:65;;;4066:1;4063;4056:12;4005:65;4097:2;4089:11;;;;;4119:6;;-1:-1:-1;3516:615:1;;-1:-1:-1;;;;3516:615:1:o;4136:388::-;4204:6;4212;4265:2;4253:9;4244:7;4240:23;4236:32;4233:52;;;4281:1;4278;4271:12;4233:52;4320:9;4307:23;4339:31;4364:5;4339:31;:::i;:::-;4389:5;-1:-1:-1;4446:2:1;4431:18;;4418:32;4459:33;4418:32;4459:33;:::i;4529:127::-;4590:10;4585:3;4581:20;4578:1;4571:31;4621:4;4618:1;4611:15;4645:4;4642:1;4635:15;4661:416;4750:1;4787:5;4750:1;4801:270;4822:7;4812:8;4809:21;4801:270;;;4881:4;4877:1;4873:6;4869:17;4863:4;4860:27;4857:53;;;4890:18;;:::i;:::-;4940:7;4930:8;4926:22;4923:55;;;4960:16;;;;4923:55;5039:22;;;;4999:15;;;;4801:270;;;4805:3;4661:416;;;;;:::o;5082:806::-;5131:5;5161:8;5151:80;;-1:-1:-1;5202:1:1;5216:5;;5151:80;5250:4;5240:76;;-1:-1:-1;5287:1:1;5301:5;;5240:76;5332:4;5350:1;5345:59;;;;5418:1;5413:130;;;;5325:218;;5345:59;5375:1;5366:10;;5389:5;;;5413:130;5450:3;5440:8;5437:17;5434:43;;;5457:18;;:::i;:::-;-1:-1:-1;;5513:1:1;5499:16;;5528:5;;5325:218;;5627:2;5617:8;5614:16;5608:3;5602:4;5599:13;5595:36;5589:2;5579:8;5576:16;5571:2;5565:4;5562:12;5558:35;5555:77;5552:159;;;-1:-1:-1;5664:19:1;;;5696:5;;5552:159;5743:34;5768:8;5762:4;5743:34;:::i;:::-;5813:6;5809:1;5805:6;5801:19;5792:7;5789:32;5786:58;;;5824:18;;:::i;:::-;5862:20;;5082:806;-1:-1:-1;;;5082:806:1:o;5893:140::-;5951:5;5980:47;6021:4;6011:8;6007:19;6001:4;5980:47;:::i;6038:168::-;6111:9;;;6142;;6159:15;;;6153:22;;6139:37;6129:71;;6180:18;;:::i;6211:356::-;6413:2;6395:21;;;6432:18;;;6425:30;6491:34;6486:2;6471:18;;6464:62;6558:2;6543:18;;6211:356::o;6924:251::-;6994:6;7047:2;7035:9;7026:7;7022:23;7018:32;7015:52;;;7063:1;7060;7053:12;7015:52;7095:9;7089:16;7114:31;7139:5;7114:31;:::i;8101:306::-;8189:6;8197;8205;8258:2;8246:9;8237:7;8233:23;8229:32;8226:52;;;8274:1;8271;8264:12;8226:52;8303:9;8297:16;8287:26;;8353:2;8342:9;8338:18;8332:25;8322:35;;8397:2;8386:9;8382:18;8376:25;8366:35;;8101:306;;;;;:::o;8691:245::-;8758:6;8811:2;8799:9;8790:7;8786:23;8782:32;8779:52;;;8827:1;8824;8817:12;8779:52;8859:9;8853:16;8878:28;8900:5;8878:28;:::i;8941:127::-;9002:10;8997:3;8993:20;8990:1;8983:31;9033:4;9030:1;9023:15;9057:4;9054:1;9047:15;12220:125;12285:9;;;12306:10;;;12303:36;;;12319:18;;:::i;12705:135::-;12744:3;12765:17;;;12762:43;;12785:18;;:::i;:::-;-1:-1:-1;12832:1:1;12821:13;;12705:135::o;12845:128::-;12912:9;;;12933:11;;;12930:37;;;12947:18;;:::i;12978:217::-;13018:1;13044;13034:132;;13088:10;13083:3;13079:20;13076:1;13069:31;13123:4;13120:1;13113:15;13151:4;13148:1;13141:15;13034:132;-1:-1:-1;13180:9:1;;12978:217::o;13734:980::-;13996:4;14044:3;14033:9;14029:19;14075:6;14064:9;14057:25;14101:2;14139:6;14134:2;14123:9;14119:18;14112:34;14182:3;14177:2;14166:9;14162:18;14155:31;14206:6;14241;14235:13;14272:6;14264;14257:22;14310:3;14299:9;14295:19;14288:26;;14349:2;14341:6;14337:15;14323:29;;14370:1;14380:195;14394:6;14391:1;14388:13;14380:195;;;14459:13;;-1:-1:-1;;;;;14455:39:1;14443:52;;14550:15;;;;14515:12;;;;14491:1;14409:9;14380:195;;;-1:-1:-1;;;;;;;14631:32:1;;;;14626:2;14611:18;;14604:60;-1:-1:-1;;;14695:3:1;14680:19;14673:35;14592:3;13734:980;-1:-1:-1;;;13734:980:1:o

Swarm Source

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