ETH Price: $3,404.46 (-1.00%)
Gas: 14 Gwei

Token

Hoop.Angel (BRICK)
 

Overview

Max Total Supply

100,000,000,000 BRICK

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
171,507,881.57214616 BRICK

Value
$0.00
0xdad3f6c3726e8526f9fbec68881aac5ba2a0e718
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:
HoopAngel

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
    Twitter: https://twitter.com/Hoop_angel_erc
    Telegram: https://t.me/hoopAngelVerify
    TikTok: https://www.tiktok.com/@hoop.angel
*/


// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

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 HoopAngel is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    mapping(address => string) public _messageToHomeless;
    mapping(address => uint256) public _bricksThrown;

    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"Hoop.Angel";
    string private constant _symbol = unicode"BRICK";
    uint256 public _maxTxAmount =   2000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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


    function throwBrick(uint256 BrickNumber, string memory messageToHomeless) external {
        require(balanceOf(msg.sender) > 0);
        _bricksThrown[msg.sender] += BrickNumber;
        _messageToHomeless[msg.sender] = messageToHomeless;
    }

    

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        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;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_bricksThrown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_messageToHomeless","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"BrickNumber","type":"uint256"},{"internalType":"string","name":"messageToHomeless","type":"string"}],"name":"throwBrick","outputs":[],"stateMutability":"nonpayable","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19166001178155601e600881905560236009908155600a838155600b939093556014600c55600d91909155600e8290555f600f5562000049916200034c565b6200005990637735940062000363565b6010556200006a6009600a6200034c565b6200007a90637735940062000363565b6011556200008b6009600a6200034c565b6200009b90633b9aca0062000363565b601255620000ac6009600a6200034c565b620000bc90633b9aca0062000363565b6013556015805461ffff60a81b19169055348015620000d9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200013f6009600a6200034c565b620001509064174876e80062000363565b335f908152600160208190526040822092909255600390620001795f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001dc3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002156009600a6200034c565b620002269064174876e80062000363565b60405190815260200160405180910390a36200037d565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029157815f19048211156200027557620002756200023d565b808516156200028357918102915b93841c939080029062000256565b509250929050565b5f82620002a95750600162000346565b81620002b757505f62000346565b8160018114620002d05760028114620002db57620002fb565b600191505062000346565b60ff841115620002ef57620002ef6200023d565b50506001821b62000346565b5060208310610133831016604e8410600b841016171562000320575081810a62000346565b6200032c838362000251565b805f19048211156200034257620003426200023d565b0290505b92915050565b5f6200035c60ff84168362000299565b9392505050565b80820281158282048414176200034657620003466200023d565b611c03806200038b5f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063bf474bed1161006d578063bf474bed1461037a578063c876d0b91461038f578063c9567bf9146103a8578063dd62ed3e146103bc578063ec1f3f6314610400578063fe8746d81461041f575f80fd5b8063751039fc146102ca5780637d1db4a5146102de5780638da5cb5b146102f35780638f9a55c01461031957806395d89b411461032e578063a9059cbb1461035b575f80fd5b8063313ce56711610104578063313ce5671461021357806351bc3c851461022e5780635c086a21146102445780635fc4e0061461026357806370a0823114610282578063715018a6146102b6575f80fd5b806306fdde031461014a578063095ea7b31461018e5780630faee56f146101bd57806318160ddd146101e057806323b872dd146101f4575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600a815269121bdbdc0b905b99d95b60b21b60208201525b60405161018591906115db565b60405180910390f35b348015610199575f80fd5b506101ad6101a836600461163d565b61044a565b6040519015158152602001610185565b3480156101c8575f80fd5b506101d260135481565b604051908152602001610185565b3480156101eb575f80fd5b506101d2610460565b3480156101ff575f80fd5b506101ad61020e366004611667565b610481565b34801561021e575f80fd5b5060405160098152602001610185565b348015610239575f80fd5b506102426104e8565b005b34801561024f575f80fd5b5061017861025e3660046116a5565b61053e565b34801561026e575f80fd5b5061024261027d3660046116d4565b6105d5565b34801561028d575f80fd5b506101d261029c3660046116a5565b6001600160a01b03165f9081526001602052604090205490565b3480156102c1575f80fd5b5061024261062d565b3480156102d5575f80fd5b506102426106a7565b3480156102e9575f80fd5b506101d260105481565b3480156102fe575f80fd5b505f546040516001600160a01b039091168152602001610185565b348015610324575f80fd5b506101d260115481565b348015610339575f80fd5b50604080518082019091526005815264425249434b60d81b6020820152610178565b348015610366575f80fd5b506101ad61037536600461163d565b610765565b348015610385575f80fd5b506101d260125481565b34801561039a575f80fd5b506005546101ad9060ff1681565b3480156103b3575f80fd5b50610242610771565b3480156103c7575f80fd5b506101d26103d6366004611789565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040b575f80fd5b5061024261041a3660046117c0565b610b1b565b34801561042a575f80fd5b506101d26104393660046116a5565b60076020525f908152604090205481565b5f610456338484610b65565b5060015b92915050565b5f61046d6009600a6118cb565b61047c9064174876e8006118d9565b905090565b5f61048d848484610c88565b6104de84336104d985604051806060016040528060288152602001611ba6602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611253565b610b65565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461050c575f80fd5b305f90815260016020526040902054801561052a5761052a8161128b565b47801561053a5761053a816113fb565b5050565b60066020525f908152604090208054610556906118f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610582906118f0565b80156105cd5780601f106105a4576101008083540402835291602001916105cd565b820191905f5260205f20905b8154815290600101906020018083116105b057829003601f168201915b505050505081565b335f90815260016020526040812054116105ed575f80fd5b335f908152600760205260408120805484929061060b908490611922565b9091555050335f9081526006602052604090206106288282611982565b505050565b5f546001600160a01b0316331461065f5760405162461bcd60e51b815260040161065690611a3e565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106d05760405162461bcd60e51b815260040161065690611a3e565b6106dc6009600a6118cb565b6106eb9064174876e8006118d9565b6010556106fa6009600a6118cb565b6107099064174876e8006118d9565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107436009600a6118cb565b6107529064174876e8006118d9565b60405190815260200160405180910390a1565b5f610456338484610c88565b5f546001600160a01b0316331461079a5760405162461bcd60e51b815260040161065690611a3e565b601554600160a01b900460ff16156107f45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610656565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561083e90309061082f6009600a6118cb565b6104d99064174876e8006118d9565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b29190611a73565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610911573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109359190611a73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561097f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a39190611a73565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306109ea816001600160a01b03165f9081526001602052604090205490565b5f806109fd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a63573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a889190611a8e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190611ab9565b506015805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b031614610b3f575f80fd5b600a548111158015610b535750600b548111155b610b5b575f80fd5b600a819055600b55565b6001600160a01b038316610bc75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610656565b6001600160a01b038216610c285760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610656565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610656565b6001600160a01b038216610d4e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610656565b5f8111610daf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610656565b5f80546001600160a01b03858116911614801590610dda57505f546001600160a01b03848116911614155b1561111657610e0b6064610e05600c54600f5411610dfa57600854610dfe565b600a545b8590611436565b906114bb565b60055490915060ff1615610ef1576014546001600160a01b03848116911614801590610e4557506015546001600160a01b03848116911614155b15610ef157325f908152600460205260409020544311610edf5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610656565b325f9081526004602052604090204390555b6015546001600160a01b038581169116148015610f1c57506014546001600160a01b03848116911614155b8015610f4057506001600160a01b0383165f9081526003602052604090205460ff16155b1561102657601054821115610f975760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610656565b60115482610fb9856001600160a01b03165f9081526001602052604090205490565b610fc39190611922565b11156110115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610656565b600f8054905f61102083611ad8565b91905055505b6015546001600160a01b03848116911614801561104c57506001600160a01b0384163014155b15611079576110766064610e05600d54600f541161106c57600954610dfe565b600b548590611436565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156110af57506015546001600160a01b038581169116145b80156110c45750601554600160b01b900460ff165b80156110d1575060125481115b80156110e05750600e54600f54115b15611114576111026110fd846110f8846013546114fc565b6114fc565b61128b565b47801561111257611112476113fb565b505b505b801561118e57305f908152600160205260409020546111359082611510565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111859085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111b0908361156e565b6001600160a01b0385165f908152600160205260409020556111f36111d5838361156e565b6001600160a01b0385165f9081526001602052604090205490611510565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61123c858561156e565b60405190815260200160405180910390a350505050565b5f81848411156112765760405162461bcd60e51b815260040161065691906115db565b505f6112828486611af0565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d1576112d1611b03565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611328573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134c9190611a73565b8160018151811061135f5761135f611b03565b6001600160a01b0392831660209182029290920101526014546113859130911684610b65565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bd9085905f90869030904290600401611b17565b5f604051808303815f87803b1580156113d4575f80fd5b505af11580156113e6573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f1935050505015801561053a573d5f803e3d5ffd5b5f825f0361144557505f61045a565b5f61145083856118d9565b90508261145d8583611b86565b146114b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610656565b9392505050565b5f6114b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115af565b5f81831161150a57826114b4565b50919050565b5f8061151c8385611922565b9050838110156114b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610656565b5f6114b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611253565b5f81836115cf5760405162461bcd60e51b815260040161065691906115db565b505f6112828486611b86565b5f6020808352835180828501525f5b81811015611606578581018301518582016040015282016115ea565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461163a575f80fd5b50565b5f806040838503121561164e575f80fd5b823561165981611626565b946020939093013593505050565b5f805f60608486031215611679575f80fd5b833561168481611626565b9250602084013561169481611626565b929592945050506040919091013590565b5f602082840312156116b5575f80fd5b81356114b481611626565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156116e5575f80fd5b82359150602083013567ffffffffffffffff80821115611703575f80fd5b818501915085601f830112611716575f80fd5b813581811115611728576117286116c0565b604051601f8201601f19908116603f01168101908382118183101715611750576117506116c0565b81604052828152886020848701011115611768575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f806040838503121561179a575f80fd5b82356117a581611626565b915060208301356117b581611626565b809150509250929050565b5f602082840312156117d0575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561182557815f190482111561180b5761180b6117d7565b8085161561181857918102915b93841c93908002906117f0565b509250929050565b5f8261183b5750600161045a565b8161184757505f61045a565b816001811461185d576002811461186757611883565b600191505061045a565b60ff841115611878576118786117d7565b50506001821b61045a565b5060208310610133831016604e8410600b84101617156118a6575081810a61045a565b6118b083836117eb565b805f19048211156118c3576118c36117d7565b029392505050565b5f6114b460ff84168361182d565b808202811582820484141761045a5761045a6117d7565b600181811c9082168061190457607f821691505b60208210810361150a57634e487b7160e01b5f52602260045260245ffd5b8082018082111561045a5761045a6117d7565b601f821115610628575f81815260208120601f850160051c8101602086101561195b5750805b601f850160051c820191505b8181101561197a57828155600101611967565b505050505050565b815167ffffffffffffffff81111561199c5761199c6116c0565b6119b0816119aa84546118f0565b84611935565b602080601f8311600181146119e3575f84156119cc5750858301515b5f19600386901b1c1916600185901b17855561197a565b5f85815260208120601f198616915b82811015611a11578886015182559484019460019091019084016119f2565b5085821015611a2e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a83575f80fd5b81516114b481611626565b5f805f60608486031215611aa0575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611ac9575f80fd5b815180151581146114b4575f80fd5b5f60018201611ae957611ae96117d7565b5060010190565b8181038181111561045a5761045a6117d7565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b655784516001600160a01b031683529383019391830191600101611b40565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ba057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008a2ecc5970d274f069a57399b743dd8d61ce79328e4dc858e4c1b9e08556ec864736f6c63430008150033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063bf474bed1161006d578063bf474bed1461037a578063c876d0b91461038f578063c9567bf9146103a8578063dd62ed3e146103bc578063ec1f3f6314610400578063fe8746d81461041f575f80fd5b8063751039fc146102ca5780637d1db4a5146102de5780638da5cb5b146102f35780638f9a55c01461031957806395d89b411461032e578063a9059cbb1461035b575f80fd5b8063313ce56711610104578063313ce5671461021357806351bc3c851461022e5780635c086a21146102445780635fc4e0061461026357806370a0823114610282578063715018a6146102b6575f80fd5b806306fdde031461014a578063095ea7b31461018e5780630faee56f146101bd57806318160ddd146101e057806323b872dd146101f4575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5060408051808201909152600a815269121bdbdc0b905b99d95b60b21b60208201525b60405161018591906115db565b60405180910390f35b348015610199575f80fd5b506101ad6101a836600461163d565b61044a565b6040519015158152602001610185565b3480156101c8575f80fd5b506101d260135481565b604051908152602001610185565b3480156101eb575f80fd5b506101d2610460565b3480156101ff575f80fd5b506101ad61020e366004611667565b610481565b34801561021e575f80fd5b5060405160098152602001610185565b348015610239575f80fd5b506102426104e8565b005b34801561024f575f80fd5b5061017861025e3660046116a5565b61053e565b34801561026e575f80fd5b5061024261027d3660046116d4565b6105d5565b34801561028d575f80fd5b506101d261029c3660046116a5565b6001600160a01b03165f9081526001602052604090205490565b3480156102c1575f80fd5b5061024261062d565b3480156102d5575f80fd5b506102426106a7565b3480156102e9575f80fd5b506101d260105481565b3480156102fe575f80fd5b505f546040516001600160a01b039091168152602001610185565b348015610324575f80fd5b506101d260115481565b348015610339575f80fd5b50604080518082019091526005815264425249434b60d81b6020820152610178565b348015610366575f80fd5b506101ad61037536600461163d565b610765565b348015610385575f80fd5b506101d260125481565b34801561039a575f80fd5b506005546101ad9060ff1681565b3480156103b3575f80fd5b50610242610771565b3480156103c7575f80fd5b506101d26103d6366004611789565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561040b575f80fd5b5061024261041a3660046117c0565b610b1b565b34801561042a575f80fd5b506101d26104393660046116a5565b60076020525f908152604090205481565b5f610456338484610b65565b5060015b92915050565b5f61046d6009600a6118cb565b61047c9064174876e8006118d9565b905090565b5f61048d848484610c88565b6104de84336104d985604051806060016040528060288152602001611ba6602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611253565b610b65565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461050c575f80fd5b305f90815260016020526040902054801561052a5761052a8161128b565b47801561053a5761053a816113fb565b5050565b60066020525f908152604090208054610556906118f0565b80601f0160208091040260200160405190810160405280929190818152602001828054610582906118f0565b80156105cd5780601f106105a4576101008083540402835291602001916105cd565b820191905f5260205f20905b8154815290600101906020018083116105b057829003601f168201915b505050505081565b335f90815260016020526040812054116105ed575f80fd5b335f908152600760205260408120805484929061060b908490611922565b9091555050335f9081526006602052604090206106288282611982565b505050565b5f546001600160a01b0316331461065f5760405162461bcd60e51b815260040161065690611a3e565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106d05760405162461bcd60e51b815260040161065690611a3e565b6106dc6009600a6118cb565b6106eb9064174876e8006118d9565b6010556106fa6009600a6118cb565b6107099064174876e8006118d9565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6107436009600a6118cb565b6107529064174876e8006118d9565b60405190815260200160405180910390a1565b5f610456338484610c88565b5f546001600160a01b0316331461079a5760405162461bcd60e51b815260040161065690611a3e565b601554600160a01b900460ff16156107f45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610656565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561083e90309061082f6009600a6118cb565b6104d99064174876e8006118d9565b60145f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b29190611a73565b6001600160a01b031663c9c653963060145f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610911573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109359190611a73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561097f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a39190611a73565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306109ea816001600160a01b03165f9081526001602052604090205490565b5f806109fd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a63573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a889190611a8e565b505060155460145460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610add573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b019190611ab9565b506015805462ff00ff60a01b19166201000160a01b179055565b60055461010090046001600160a01b0316336001600160a01b031614610b3f575f80fd5b600a548111158015610b535750600b548111155b610b5b575f80fd5b600a819055600b55565b6001600160a01b038316610bc75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610656565b6001600160a01b038216610c285760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610656565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610cec5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610656565b6001600160a01b038216610d4e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610656565b5f8111610daf5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610656565b5f80546001600160a01b03858116911614801590610dda57505f546001600160a01b03848116911614155b1561111657610e0b6064610e05600c54600f5411610dfa57600854610dfe565b600a545b8590611436565b906114bb565b60055490915060ff1615610ef1576014546001600160a01b03848116911614801590610e4557506015546001600160a01b03848116911614155b15610ef157325f908152600460205260409020544311610edf5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610656565b325f9081526004602052604090204390555b6015546001600160a01b038581169116148015610f1c57506014546001600160a01b03848116911614155b8015610f4057506001600160a01b0383165f9081526003602052604090205460ff16155b1561102657601054821115610f975760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610656565b60115482610fb9856001600160a01b03165f9081526001602052604090205490565b610fc39190611922565b11156110115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610656565b600f8054905f61102083611ad8565b91905055505b6015546001600160a01b03848116911614801561104c57506001600160a01b0384163014155b15611079576110766064610e05600d54600f541161106c57600954610dfe565b600b548590611436565b90505b305f90815260016020526040902054601554600160a81b900460ff161580156110af57506015546001600160a01b038581169116145b80156110c45750601554600160b01b900460ff165b80156110d1575060125481115b80156110e05750600e54600f54115b15611114576111026110fd846110f8846013546114fc565b6114fc565b61128b565b47801561111257611112476113fb565b505b505b801561118e57305f908152600160205260409020546111359082611510565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111859085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111b0908361156e565b6001600160a01b0385165f908152600160205260409020556111f36111d5838361156e565b6001600160a01b0385165f9081526001602052604090205490611510565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61123c858561156e565b60405190815260200160405180910390a350505050565b5f81848411156112765760405162461bcd60e51b815260040161065691906115db565b505f6112828486611af0565b95945050505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d1576112d1611b03565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611328573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134c9190611a73565b8160018151811061135f5761135f611b03565b6001600160a01b0392831660209182029290920101526014546113859130911684610b65565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bd9085905f90869030904290600401611b17565b5f604051808303815f87803b1580156113d4575f80fd5b505af11580156113e6573d5f803e3d5ffd5b50506015805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f1935050505015801561053a573d5f803e3d5ffd5b5f825f0361144557505f61045a565b5f61145083856118d9565b90508261145d8583611b86565b146114b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610656565b9392505050565b5f6114b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115af565b5f81831161150a57826114b4565b50919050565b5f8061151c8385611922565b9050838110156114b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610656565b5f6114b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611253565b5f81836115cf5760405162461bcd60e51b815260040161065691906115db565b505f6112828486611b86565b5f6020808352835180828501525f5b81811015611606578581018301518582016040015282016115ea565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461163a575f80fd5b50565b5f806040838503121561164e575f80fd5b823561165981611626565b946020939093013593505050565b5f805f60608486031215611679575f80fd5b833561168481611626565b9250602084013561169481611626565b929592945050506040919091013590565b5f602082840312156116b5575f80fd5b81356114b481611626565b634e487b7160e01b5f52604160045260245ffd5b5f80604083850312156116e5575f80fd5b82359150602083013567ffffffffffffffff80821115611703575f80fd5b818501915085601f830112611716575f80fd5b813581811115611728576117286116c0565b604051601f8201601f19908116603f01168101908382118183101715611750576117506116c0565b81604052828152886020848701011115611768575f80fd5b826020860160208301375f6020848301015280955050505050509250929050565b5f806040838503121561179a575f80fd5b82356117a581611626565b915060208301356117b581611626565b809150509250929050565b5f602082840312156117d0575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561182557815f190482111561180b5761180b6117d7565b8085161561181857918102915b93841c93908002906117f0565b509250929050565b5f8261183b5750600161045a565b8161184757505f61045a565b816001811461185d576002811461186757611883565b600191505061045a565b60ff841115611878576118786117d7565b50506001821b61045a565b5060208310610133831016604e8410600b84101617156118a6575081810a61045a565b6118b083836117eb565b805f19048211156118c3576118c36117d7565b029392505050565b5f6114b460ff84168361182d565b808202811582820484141761045a5761045a6117d7565b600181811c9082168061190457607f821691505b60208210810361150a57634e487b7160e01b5f52602260045260245ffd5b8082018082111561045a5761045a6117d7565b601f821115610628575f81815260208120601f850160051c8101602086101561195b5750805b601f850160051c820191505b8181101561197a57828155600101611967565b505050505050565b815167ffffffffffffffff81111561199c5761199c6116c0565b6119b0816119aa84546118f0565b84611935565b602080601f8311600181146119e3575f84156119cc5750858301515b5f19600386901b1c1916600185901b17855561197a565b5f85815260208120601f198616915b82811015611a11578886015182559484019460019091019084016119f2565b5085821015611a2e57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a83575f80fd5b81516114b481611626565b5f805f60608486031215611aa0575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611ac9575f80fd5b815180151581146114b4575f80fd5b5f60018201611ae957611ae96117d7565b5060010190565b8181038181111561045a5761045a6117d7565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b655784516001600160a01b031683529383019391830191600101611b40565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ba057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122008a2ecc5970d274f069a57399b743dd8d61ce79328e4dc858e4c1b9e08556ec864736f6c63430008150033

Deployed Bytecode Sourcemap

3627:8564:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5647:83;;;;;;;;;;-1:-1:-1;5717:5:0;;;;;;;;;;;;-1:-1:-1;;;5717:5:0;;;;5647:83;;;;;;;:::i;:::-;;;;;;;;6480:161;;;;;;;;;;-1:-1:-1;6480:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6480:161:0;1023:187:1;4920:54:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4920:54:0;1215:177:1;5924:95:0;;;;;;;;;;;;;:::i;6649:313::-;;;;;;;;;;-1:-1:-1;6649:313:0;;;;;:::i;:::-;;:::i;5833:83::-;;;;;;;;;;-1:-1:-1;5833:83:0;;4532:1;2000:36:1;;1988:2;1973:18;5833:83:0;1858:184:1;11840:348:0;;;;;;;;;;;;;:::i;:::-;;4062:52;;;;;;;;;;-1:-1:-1;4062:52:0;;;;;:::i;:::-;;:::i;10628:248::-;;;;;;;;;;-1:-1:-1;10628:248:0;;;;;:::i;:::-;;:::i;6027:119::-;;;;;;;;;;-1:-1:-1;6027:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6120:18:0;6093:7;6120:18;;;:9;:18;;;;;;;6027:119;2708:148;;;;;;;;;;;;;:::i;10322:196::-;;;;;;;;;;;;;:::i;4723:58::-;;;;;;;;;;;;;;;;2494:79;;;;;;;;;;-1:-1:-1;2532:7:0;2559:6;2494:79;;-1:-1:-1;;;;;2559:6:0;;;3572:51:1;;3560:2;3545:18;2494:79:0;3426:203:1;4788:58:0;;;;;;;;;;;;;;;;5738:87;;;;;;;;;;-1:-1:-1;5810:7:0;;;;;;;;;;;;-1:-1:-1;;;5810:7:0;;;;5738:87;;6154:167;;;;;;;;;;-1:-1:-1;6154:167:0;;;;;:::i;:::-;;:::i;4853:60::-;;;;;;;;;;;;;;;;3973:39;;;;;;;;;;-1:-1:-1;3973:39:0;;;;;;;;10892:671;;;;;;;;;;;;;:::i;6329:143::-;;;;;;;;;;-1:-1:-1;6329:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6437:18:0;;;6410:7;6437:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6329:143;11577:218;;;;;;;;;;-1:-1:-1;11577:218:0;;;;;:::i;:::-;;:::i;4121:48::-;;;;;;;;;;-1:-1:-1;4121:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;6480:161;6555:4;6572:39;329:10;6595:7;6604:6;6572:8;:39::i;:::-;-1:-1:-1;6629:4:0;6480:161;;;;;:::o;5924:95::-;5977:7;4590:13;4532:1;4590:2;:13;:::i;:::-;4575:28;;:12;:28;:::i;:::-;5997:14;;5924:95;:::o;6649:313::-;6747:4;6764:36;6774:6;6782:9;6793:6;6764:9;:36::i;:::-;6811:121;6820:6;329:10;6842:89;6880:6;6842:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6842:19:0;;;;;;:11;:19;;;;;;;;329:10;6842:33;;;;;;;;;;:37;:89::i;:::-;6811:8;:121::i;:::-;-1:-1:-1;6950:4:0;6649:313;;;;;:::o;11840:348::-;11904:10;;;;;-1:-1:-1;;;;;11904:10:0;329;-1:-1:-1;;;;;11890:24:0;;11882:33;;;;;;11965:4;11926:20;6120:18;;;:9;:18;;;;;;11985:14;;11982:73;;12013:30;12030:12;12013:16;:30::i;:::-;12084:21;12119:12;;12116:65;;12145:24;12158:10;12145:12;:24::i;:::-;11871:317;;11840:348::o;4062:52::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10628:248::-;10740:10;10754:1;6120:18;;;:9;:18;;;;;;10730:25;10722:34;;;;;;10781:10;10767:25;;;;:13;:25;;;;;:40;;10796:11;;10767:25;:40;;10796:11;;10767:40;:::i;:::-;;;;-1:-1:-1;;10837:10:0;10818:30;;;;:18;:30;;;;;:50;10851:17;10818:30;:50;:::i;:::-;;10628:248;;:::o;2708:148::-;2621:6;;-1:-1:-1;;;;;2621:6:0;329:10;2621:22;2613:67;;;;-1:-1:-1;;;2613:67:0;;;;;;;:::i;:::-;;;;;;;;;2815:1:::1;2799:6:::0;;2778:40:::1;::::0;-1:-1:-1;;;;;2799:6:0;;::::1;::::0;2778:40:::1;::::0;2815:1;;2778:40:::1;2846:1;2829:19:::0;;-1:-1:-1;;;;;;2829:19:0::1;::::0;;2708:148::o;10322:196::-;2621:6;;-1:-1:-1;;;;;2621:6:0;329:10;2621:22;2613:67;;;;-1:-1:-1;;;2613:67:0;;;;;;;:::i;:::-;4590:13:::1;4532:1;4590:2;:13;:::i;:::-;4575:28;::::0;:12:::1;:28;:::i;:::-;10375:12;:22:::0;4590:13:::1;4532:1;4590:2;:13;:::i;:::-;4575:28;::::0;:12:::1;:28;:::i;:::-;10408:14;:22:::0;10441:20:::1;:26:::0;;-1:-1:-1;;10441:26:0::1;::::0;;10483:27:::1;4590:13;4532:1;4590:2;:13;:::i;:::-;4575:28;::::0;:12:::1;:28;:::i;:::-;10483:27;::::0;1361:25:1;;;1349:2;1334:18;10483:27:0::1;;;;;;;10322:196::o:0;6154:167::-;6232:4;6249:42;329:10;6273:9;6284:6;6249:9;:42::i;10892:671::-;2621:6;;-1:-1:-1;;;;;2621:6:0;329:10;2621:22;2613:67;;;;-1:-1:-1;;;2613:67:0;;;;;;;:::i;:::-;10956:11:::1;::::0;-1:-1:-1;;;10956:11:0;::::1;;;10955:12;10947:47;;;::::0;-1:-1:-1;;;10947:47:0;;9182:2:1;10947:47:0::1;::::0;::::1;9164:21:1::0;9221:2;9201:18;;;9194:30;9260:25;9240:18;;;9233:53;9303:18;;10947:47:0::1;8980:347:1::0;10947:47:0::1;11005:15;:80:::0;;-1:-1:-1;;;;;;11005:80:0::1;11042:42;11005:80:::0;;::::1;::::0;;;11096:58:::1;::::0;11113:4:::1;::::0;4590:13:::1;4532:1;4590:2;:13;:::i;:::-;4575:28;::::0;:12:::1;:28;:::i;11096:58::-;11199:15;;;;;;;;;-1:-1:-1::0;;;;;11199:15:0::1;-1:-1:-1::0;;;;;11199:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11181:55:0::1;;11245:4;11252:15;;;;;;;;;-1:-1:-1::0;;;;;11252:15:0::1;-1:-1:-1::0;;;;;11252:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11181:94;::::0;-1:-1:-1;;;;;;11181:94:0::1;::::0;;;;;;-1:-1:-1;;;;;9818:15:1;;;11181:94:0::1;::::0;::::1;9800:34:1::0;9870:15;;9850:18;;;9843:43;9735:18;;11181:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11165:13;:110:::0;;-1:-1:-1;;;;;11165:110:0;;::::1;-1:-1:-1::0;;;;;;11165:110:0;;::::1;;::::0;;11286:15:::1;::::0;::::1;:31;11325:21;11356:4;11362:24;11356:4:::0;-1:-1:-1;;;;;6120:18:0;6093:7;6120:18;;;:9;:18;;;;;;;6027:119;11362:24:::1;11387:1;11389::::0;11391:7:::1;2532::::0;2559:6;-1:-1:-1;;;;;2559:6:0;;2494:79;11391:7:::1;11286:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11286:129:0;;;-1:-1:-1;;;;;10256:15:1;;;11286:129:0::1;::::0;::::1;10238:34:1::0;10288:18;;;10281:34;;;;10331:18;;;10324:34;;;;10374:18;;;10367:34;10438:15;;;10417:19;;;10410:44;11399:15:0::1;10470:19:1::0;;;10463:35;10172:19;;11286:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11433:13:0::1;::::0;11464:15:::1;::::0;11426:71:::1;::::0;-1:-1:-1;;;11426:71:0;;-1:-1:-1;;;;;11464:15:0;;::::1;11426:71;::::0;::::1;10994:51:1::0;-1:-1:-1;;11061:18:1;;;11054:34;11433:13:0;::::1;::::0;-1:-1:-1;11426:29:0::1;::::0;10967:18:1;;11426:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11508:11:0::1;:18:::0;;-1:-1:-1;;;;11537:18:0;-1:-1:-1;;;11537:18:0;;;10892:671::o;11577:218::-;11652:10;;;;;-1:-1:-1;;;;;11652:10:0;329;-1:-1:-1;;;;;11638:24:0;;11630:33;;;;;;11689:12;;11680:7;:21;;:47;;;;;11714:13;;11705:7;:22;;11680:47;11672:56;;;;;;11737:12;:20;;;11766:13;:21;11577:218::o;6970:335::-;-1:-1:-1;;;;;7063:19:0;;7055:68;;;;-1:-1:-1;;;7055:68:0;;11583:2:1;7055:68:0;;;11565:21:1;11622:2;11602:18;;;11595:30;11661:34;11641:18;;;11634:62;-1:-1:-1;;;11712:18:1;;;11705:34;11756:19;;7055:68:0;11381:400:1;7055:68:0;-1:-1:-1;;;;;7142:21:0;;7134:68;;;;-1:-1:-1;;;7134:68:0;;11988:2:1;7134:68:0;;;11970:21:1;12027:2;12007:18;;;12000:30;12066:34;12046:18;;;12039:62;-1:-1:-1;;;12117:18:1;;;12110:32;12159:19;;7134:68:0;11786:398:1;7134:68:0;-1:-1:-1;;;;;7213:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7265:32;;1361:25:1;;;7265:32:0;;1334:18:1;7265:32:0;;;;;;;6970:335;;;:::o;7313:2402::-;-1:-1:-1;;;;;7401:18:0;;7393:68;;;;-1:-1:-1;;;7393:68:0;;12391:2:1;7393:68:0;;;12373:21:1;12430:2;12410:18;;;12403:30;12469:34;12449:18;;;12442:62;-1:-1:-1;;;12520:18:1;;;12513:35;12565:19;;7393:68:0;12189:401:1;7393:68:0;-1:-1:-1;;;;;7480:16:0;;7472:64;;;;-1:-1:-1;;;7472:64:0;;12797:2:1;7472:64:0;;;12779:21:1;12836:2;12816:18;;;12809:30;12875:34;12855:18;;;12848:62;-1:-1:-1;;;12926:18:1;;;12919:33;12969:19;;7472:64:0;12595:399:1;7472:64:0;7564:1;7555:6;:10;7547:64;;;;-1:-1:-1;;;7547:64:0;;13201:2:1;7547:64:0;;;13183:21:1;13240:2;13220:18;;;13213:30;13279:34;13259:18;;;13252:62;-1:-1:-1;;;13330:18:1;;;13323:39;13379:19;;7547:64:0;12999:405:1;7547:64:0;7622:17;2559:6;;-1:-1:-1;;;;;7656:15:0;;;2559:6;;7656:15;;;;:32;;-1:-1:-1;2532:7:0;2559:6;-1:-1:-1;;;;;7675:13:0;;;2559:6;;7675:13;;7656:32;7652:1703;;;7717:76;7789:3;7717:67;7739:15;;7729:9;;:25;7728:55;;7769:14;;7728:55;;;7756:12;;7728:55;7717:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7814:20;;7705:88;;-1:-1:-1;7814:20:0;;7810:508;;;7875:15;;-1:-1:-1;;;;;7861:30:0;;;7875:15;;7861:30;;;;:62;;-1:-1:-1;7909:13:0;;-1:-1:-1;;;;;7895:28:0;;;7909:13;;7895:28;;7861:62;7857:444;;;8015:9;7986:39;;;;:28;:39;;;;;;8059:12;-1:-1:-1;7950:250:0;;;;-1:-1:-1;;;7950:250:0;;13611:2:1;7950:250:0;;;13593:21:1;13650:2;13630:18;;;13623:30;13689:34;13669:18;;;13662:62;13760:34;13740:18;;;13733:62;-1:-1:-1;;;13811:19:1;;;13804:40;13861:19;;7950:250:0;13409:477:1;7950:250:0;8254:9;8225:39;;;;:28;:39;;;;;8267:12;8225:54;;7857:444;8346:13;;-1:-1:-1;;;;;8338:21:0;;;8346:13;;8338:21;:55;;;;-1:-1:-1;8377:15:0;;-1:-1:-1;;;;;8363:30:0;;;8377:15;;8363:30;;8338:55;:83;;;;-1:-1:-1;;;;;;8399:22:0;;;;;;:18;:22;;;;;;;;8397:24;8338:83;8334:313;;;8461:12;;8451:6;:22;;8443:60;;;;-1:-1:-1;;;8443:60:0;;14093:2:1;8443:60:0;;;14075:21:1;14132:2;14112:18;;;14105:30;14171:27;14151:18;;;14144:55;14216:18;;8443:60:0;13891:349:1;8443:60:0;8556:14;;8546:6;8530:13;8540:2;-1:-1:-1;;;;;6120:18:0;6093:7;6120:18;;;:9;:18;;;;;;;6027:119;8530:13;:22;;;;:::i;:::-;:40;;8522:79;;;;-1:-1:-1;;;8522:79:0;;14447:2:1;8522:79:0;;;14429:21:1;14486:2;14466:18;;;14459:30;14525:28;14505:18;;;14498:56;14571:18;;8522:79:0;14245:350:1;8522:79:0;8620:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8334:313;8672:13;;-1:-1:-1;;;;;8666:19:0;;;8672:13;;8666:19;:43;;;;-1:-1:-1;;;;;;8689:20:0;;8704:4;8689:20;;8666:43;8663:174;;;8742:79;8817:3;8742:70;8764:16;;8754:9;;:26;8753:58;;8796:15;;8753:58;;;8782:13;;8742:6;;:10;:70::i;:79::-;8730:91;;8663:174;8902:4;8853:28;6120:18;;;:9;:18;;;;;;8928:6;;-1:-1:-1;;;8928:6:0;;;;8927:7;:32;;;;-1:-1:-1;8946:13:0;;-1:-1:-1;;;;;8938:21:0;;;8946:13;;8938:21;8927:32;:47;;;;-1:-1:-1;8963:11:0;;-1:-1:-1;;;8963:11:0;;;;8927:47;:89;;;;;8999:17;;8978:20;:38;8927:89;:121;;;;;9030:18;;9020:9;;:28;8927:121;8923:421;;;9069:67;9086:49;9090:6;9097:37;9101:20;9122:11;;9097:3;:37::i;:::-;9086:3;:49::i;:::-;9069:16;:67::i;:::-;9184:21;9227:22;;9224:105;;9274:35;9287:21;9274:12;:35::i;:::-;9050:294;8923:421;7690:1665;7652:1703;9370:11;;9367:161;;9438:4;9420:24;;;;:9;:24;;;;;;:39;;9449:9;9420:28;:39::i;:::-;9413:4;9395:24;;;;:9;:24;;;;;;;:64;;;;9477:39;;-1:-1:-1;;;;;9477:39:0;;;;;;;9506:9;1361:25:1;;1349:2;1334:18;;1215:177;9477:39:0;;;;;;;;9367:161;-1:-1:-1;;;;;9558:15:0;;;;;;:9;:15;;;;;;:27;;9578:6;9558:19;:27::i;:::-;-1:-1:-1;;;;;9542:15:0;;;;;;:9;:15;;;;;:43;9610:40;9628:21;:6;9639:9;9628:10;:21::i;:::-;-1:-1:-1;;;;;9610:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9596:13:0;;;;;;;:9;:13;;;;;:54;;;;9666:41;;;9685:21;:6;9696:9;9685:10;:21::i;:::-;9666:41;;1361:25:1;;;1349:2;1334:18;9666:41:0;;;;;;;7382:2333;7313:2402;;;:::o;1386:190::-;1472:7;1508:12;1500:6;;;;1492:29;;;;-1:-1:-1;;;1492:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1532:9:0;1544:5;1548:1;1544;:5;:::i;:::-;1532:17;1386:190;-1:-1:-1;;;;;1386:190:0:o;9831:483::-;5256:6;:13;;-1:-1:-1;;;;5256:13:0;-1:-1:-1;;;5256:13:0;;;9933:16:::1;::::0;;9947:1:::1;9933:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9933:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9933:16:0::1;9909:40;;9978:4;9960;9965:1;9960:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9960:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10004:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10004:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9960:7;;10004:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9994:4;9999:1;9994:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9994:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10069:15:::1;::::0;10037:62:::1;::::0;10054:4:::1;::::0;10069:15:::1;10087:11:::0;10037:8:::1;:62::i;:::-;10110:15;::::0;:196:::1;::::0;-1:-1:-1;;;10110:196:0;;-1:-1:-1;;;;;10110:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10191:11;;10110:15:::1;::::0;10233:4;;10260::::1;::::0;10280:15:::1;::::0;10110:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5292:6:0;:14;;-1:-1:-1;;;;5292:14:0;;;-1:-1:-1;;;;9831:483:0:o;10526:92::-;10583:10;;:27;;:10;;;;-1:-1:-1;;;;;10583:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1584:246;1642:7;1666:1;1671;1666:6;1662:47;;-1:-1:-1;1696:1:0;1689:8;;1662:47;1719:9;1731:5;1735:1;1731;:5;:::i;:::-;1719:17;-1:-1:-1;1764:1:0;1755:5;1759:1;1719:17;1755:5;:::i;:::-;:10;1747:56;;;;-1:-1:-1;;;1747:56:0;;16414:2:1;1747:56:0;;;16396:21:1;16453:2;16433:18;;;16426:30;16492:34;16472:18;;;16465:62;-1:-1:-1;;;16543:18:1;;;16536:31;16584:19;;1747:56:0;16212:397:1;1747:56:0;1821:1;1584:246;-1:-1:-1;;;1584:246:0:o;1838:132::-;1896:7;1923:39;1927:1;1930;1923:39;;;;;;;;;;;;;;;;;:3;:39::i;9725:98::-;9782:7;9809:1;9807;:3;9806:9;;9814:1;9806:9;;;-1:-1:-1;9812:1:0;9725:98;-1:-1:-1;9725:98:0:o;1055:179::-;1113:7;;1145:5;1149:1;1145;:5;:::i;:::-;1133:17;;1174:1;1169;:6;;1161:46;;;;-1:-1:-1;;;1161:46:0;;16816:2:1;1161:46:0;;;16798:21:1;16855:2;16835:18;;;16828:30;16894:29;16874:18;;;16867:57;16941:18;;1161:46:0;16614:351:1;1242:136:0;1300:7;1327:43;1331:1;1334;1327:43;;;;;;;;;;;;;;;;;:3;:43::i;1978:189::-;2064:7;2099:12;2092:5;2084:28;;;;-1:-1:-1;;;2084:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2123:9:0;2135:5;2139:1;2135;: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;622:70;567:131;:::o;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:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:127::-;2360:10;2355:3;2351:20;2348:1;2341:31;2391:4;2388:1;2381:15;2415:4;2412:1;2405:15;2431:990;2509:6;2517;2570:2;2558:9;2549:7;2545:23;2541:32;2538:52;;;2586:1;2583;2576:12;2538:52;2622:9;2609:23;2599:33;;2683:2;2672:9;2668:18;2655:32;2706:18;2747:2;2739:6;2736:14;2733:34;;;2763:1;2760;2753:12;2733:34;2801:6;2790:9;2786:22;2776:32;;2846:7;2839:4;2835:2;2831:13;2827:27;2817:55;;2868:1;2865;2858:12;2817:55;2904:2;2891:16;2926:2;2922;2919:10;2916:36;;;2932:18;;:::i;:::-;3007:2;3001:9;2975:2;3061:13;;-1:-1:-1;;3057:22:1;;;3081:2;3053:31;3049:40;3037:53;;;3105:18;;;3125:22;;;3102:46;3099:72;;;3151:18;;:::i;:::-;3191:10;3187:2;3180:22;3226:2;3218:6;3211:18;3266:7;3261:2;3256;3252;3248:11;3244:20;3241:33;3238:53;;;3287:1;3284;3277:12;3238:53;3343:2;3338;3334;3330:11;3325:2;3317:6;3313:15;3300:46;3388:1;3383:2;3378;3370:6;3366:15;3362:24;3355:35;3409:6;3399:16;;;;;;;2431:990;;;;;:::o;3634:388::-;3702:6;3710;3763:2;3751:9;3742:7;3738:23;3734:32;3731:52;;;3779:1;3776;3769:12;3731:52;3818:9;3805:23;3837:31;3862:5;3837:31;:::i;:::-;3887:5;-1:-1:-1;3944:2:1;3929:18;;3916:32;3957:33;3916:32;3957:33;:::i;:::-;4009:7;3999:17;;;3634:388;;;;;:::o;4027:180::-;4086:6;4139:2;4127:9;4118:7;4114:23;4110:32;4107:52;;;4155:1;4152;4145:12;4107:52;-1:-1:-1;4178:23:1;;4027:180;-1:-1:-1;4027:180:1:o;4212:127::-;4273:10;4268:3;4264:20;4261:1;4254:31;4304:4;4301:1;4294:15;4328:4;4325:1;4318:15;4344:422;4433:1;4476:5;4433:1;4490:270;4511:7;4501:8;4498:21;4490:270;;;4570:4;4566:1;4562:6;4558:17;4552:4;4549:27;4546:53;;;4579:18;;:::i;:::-;4629:7;4619:8;4615:22;4612:55;;;4649:16;;;;4612:55;4728:22;;;;4688:15;;;;4490:270;;;4494:3;4344:422;;;;;:::o;4771:806::-;4820:5;4850:8;4840:80;;-1:-1:-1;4891:1:1;4905:5;;4840:80;4939:4;4929:76;;-1:-1:-1;4976:1:1;4990:5;;4929:76;5021:4;5039:1;5034:59;;;;5107:1;5102:130;;;;5014:218;;5034:59;5064:1;5055:10;;5078:5;;;5102:130;5139:3;5129:8;5126:17;5123:43;;;5146:18;;:::i;:::-;-1:-1:-1;;5202:1:1;5188:16;;5217:5;;5014:218;;5316:2;5306:8;5303:16;5297:3;5291:4;5288:13;5284:36;5278:2;5268:8;5265:16;5260:2;5254:4;5251:12;5247:35;5244:77;5241:159;;;-1:-1:-1;5353:19:1;;;5385:5;;5241:159;5432:34;5457:8;5451:4;5432:34;:::i;:::-;5502:6;5498:1;5494:6;5490:19;5481:7;5478:32;5475:58;;;5513:18;;:::i;:::-;5551:20;;4771:806;-1:-1:-1;;;4771:806:1:o;5582:140::-;5640:5;5669:47;5710:4;5700:8;5696:19;5690:4;5669:47;:::i;5727:168::-;5800:9;;;5831;;5848:15;;;5842:22;;5828:37;5818:71;;5869:18;;:::i;5900:380::-;5979:1;5975:12;;;;6022;;;6043:61;;6097:4;6089:6;6085:17;6075:27;;6043:61;6150:2;6142:6;6139:14;6119:18;6116:38;6113:161;;6196:10;6191:3;6187:20;6184:1;6177:31;6231:4;6228:1;6221:15;6259:4;6256:1;6249:15;6285:125;6350:9;;;6371:10;;;6368:36;;;6384:18;;:::i;6541:545::-;6643:2;6638:3;6635:11;6632:448;;;6679:1;6704:5;6700:2;6693:17;6749:4;6745:2;6735:19;6819:2;6807:10;6803:19;6800:1;6796:27;6790:4;6786:38;6855:4;6843:10;6840:20;6837:47;;;-1:-1:-1;6878:4:1;6837:47;6933:2;6928:3;6924:12;6921:1;6917:20;6911:4;6907:31;6897:41;;6988:82;7006:2;6999:5;6996:13;6988:82;;;7051:17;;;7032:1;7021:13;6988:82;;;6992:3;;;6541:545;;;:::o;7262:1352::-;7388:3;7382:10;7415:18;7407:6;7404:30;7401:56;;;7437:18;;:::i;:::-;7466:97;7556:6;7516:38;7548:4;7542:11;7516:38;:::i;:::-;7510:4;7466:97;:::i;:::-;7618:4;;7682:2;7671:14;;7699:1;7694:663;;;;8401:1;8418:6;8415:89;;;-1:-1:-1;8470:19:1;;;8464:26;8415:89;-1:-1:-1;;7219:1:1;7215:11;;;7211:24;7207:29;7197:40;7243:1;7239:11;;;7194:57;8517:81;;7664:944;;7694:663;6488:1;6481:14;;;6525:4;6512:18;;-1:-1:-1;;7730:20:1;;;7848:236;7862:7;7859:1;7856:14;7848:236;;;7951:19;;;7945:26;7930:42;;8043:27;;;;8011:1;7999:14;;;;7878:19;;7848:236;;;7852:3;8112:6;8103:7;8100:19;8097:201;;;8173:19;;;8167:26;-1:-1:-1;;8256:1:1;8252:14;;;8268:3;8248:24;8244:37;8240:42;8225:58;8210:74;;8097:201;-1:-1:-1;;;;;8344:1:1;8328:14;;;8324:22;8311:36;;-1:-1:-1;7262:1352:1:o;8619:356::-;8821:2;8803:21;;;8840:18;;;8833:30;8899:34;8894:2;8879:18;;8872:62;8966:2;8951:18;;8619:356::o;9332:251::-;9402:6;9455:2;9443:9;9434:7;9430:23;9426:32;9423:52;;;9471:1;9468;9461:12;9423:52;9503:9;9497:16;9522:31;9547:5;9522:31;:::i;10509:306::-;10597:6;10605;10613;10666:2;10654:9;10645:7;10641:23;10637:32;10634:52;;;10682:1;10679;10672:12;10634:52;10711:9;10705:16;10695:26;;10761:2;10750:9;10746:18;10740:25;10730:35;;10805:2;10794:9;10790:18;10784:25;10774:35;;10509:306;;;;;:::o;11099:277::-;11166:6;11219:2;11207:9;11198:7;11194:23;11190:32;11187:52;;;11235:1;11232;11225:12;11187:52;11267:9;11261:16;11320:5;11313:13;11306:21;11299:5;11296:32;11286:60;;11342:1;11339;11332:12;14600:135;14639:3;14660:17;;;14657:43;;14680:18;;:::i;:::-;-1:-1:-1;14727:1:1;14716:13;;14600:135::o;14740:128::-;14807:9;;;14828:11;;;14825:37;;;14842:18;;:::i;14873:127::-;14934:10;14929:3;14925:20;14922:1;14915:31;14965:4;14962:1;14955:15;14989:4;14986:1;14979:15;15005:980;15267:4;15315:3;15304:9;15300:19;15346:6;15335:9;15328:25;15372:2;15410:6;15405:2;15394:9;15390:18;15383:34;15453:3;15448:2;15437:9;15433:18;15426:31;15477:6;15512;15506:13;15543:6;15535;15528:22;15581:3;15570:9;15566:19;15559:26;;15620:2;15612:6;15608:15;15594:29;;15641:1;15651:195;15665:6;15662:1;15659:13;15651:195;;;15730:13;;-1:-1:-1;;;;;15726:39:1;15714:52;;15821:15;;;;15786:12;;;;15762:1;15680:9;15651:195;;;-1:-1:-1;;;;;;;15902:32:1;;;;15897:2;15882:18;;15875:60;-1:-1:-1;;;15966:3:1;15951:19;15944:35;15863:3;15005:980;-1:-1:-1;;;15005:980:1:o;15990:217::-;16030:1;16056;16046:132;;16100:10;16095:3;16091:20;16088:1;16081:31;16135:4;16132:1;16125:15;16163:4;16160:1;16153:15;16046:132;-1:-1:-1;16192:9:1;;15990:217::o

Swarm Source

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