ETH Price: $2,776.29 (+5.79%)

Token

The Camel (CAMEL)
 

Overview

Max Total Supply

1,000,000,000,000 CAMEL

Holders

341

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
166,115,173.014095308 CAMEL

Value
$0.00
0xe5a67b96f1512f23e91600856e46772ffc5af05f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x7d4477Ee...c6c652f7D
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CAMEL

Compiler Version
v0.8.19+commit.7dd6d404

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-26
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;
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);
}
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 transferOwnership(address newOwner) public virtual onlyOwner() {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    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 CAMEL is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable private MarketingWallet;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal =  1000000000000 * 10**_decimals; 
    string private constant _name = "The Camel";
    string private constant _symbol = "CAMEL";
    uint256 private _minSwapTokens = 1000000000 * 10**_decimals; 
    uint256 private _maxSwapTokens = 20000000000 * 10**_decimals;
    uint256 private maxTxAmount = 20000000000 * 10**_decimals; 
    uint256 private maxWalletSize = 20000000000 * 10**_decimals; 
    uint256 private buyTaxes = 5;
    uint256 private sellTaxes = 5;
    uint256 private _Buys_In=0;
   
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = false;
    
    // event
    event FeesRecieverUpdated(address indexed _newWallet);
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event SwapBackSettingUpdated(bool indexed state);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
    if (block.chainid == 56){
     uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router
     }
    else if(block.chainid == 1 || block.chainid == 5){
          uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router
      }
    else if(block.chainid == 42161){
           uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router
      }
    else  if (block.chainid == 97){
     uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
     }
    else {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
         MarketingWallet = payable(0x9F95cd96A50C8CD507DbFb730306C85F2356F993);
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;

       _balances[MarketingWallet] = _tTotal;
       emit Transfer(address(0), MarketingWallet, _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 min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
   
    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) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        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 feesum=0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               feesum = amount * (buyTaxes) / (100);
        }
        
         if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            feesum = 0;
        } 
         
          if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= maxWalletSize, "Exceeds the maxWalletSize.");
              _Buys_In++;
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          }
        
          if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                   feesum = amount * (sellTaxes) / (100);
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > _minSwapTokens && _Buys_In > 1) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxSwapTokens)));
               uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        _balances[from] = _balances[from] - amount; 
        _balances[to] = _balances[to] + (amount - (feesum));
        emit Transfer(from, to, amount - (feesum));
         if(feesum > 0){
          _balances[address(this)] = _balances[address(this)] + (feesum); 
          emit Transfer(from, address(this),feesum);
        }
    }
    
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp);
    }
    
    function sendETHToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        MarketingWallet.transfer(amount);
    }
   
   function removeAllLimit() external onlyOwner {
    maxTxAmount = _tTotal;
    maxWalletSize = _tTotal;
    }
  
   function setFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 60, "revert wrong fee settings");
        buyTaxes = _buyFee;
        sellTaxes = _sellFee;
    }
   
   function updateSwapBackSetting(bool state) external onlyOwner {
    _SwapBackEnable = state;
    emit SwapBackSettingUpdated(state);
    }
    
    function addWhitelist(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   
    function removeWhitelist(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   
    function enabledTrading() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function rescueERC20FromContract(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens");
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(MarketingWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
   
    function rescueETHfromContract() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(MarketingWallet)).transfer(contractETHBalance);
      emit ETHBalanceRecovered();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesRecieverUpdated","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":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelist","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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enabledTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETHfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000611565b6200002290633b9aca0062000629565b600555620000336009600a62000611565b62000044906404a817c80062000629565b600655620000556009600a62000611565b62000066906404a817c80062000629565b600755620000776009600a62000611565b62000088906404a817c80062000629565b60085560056009819055600a556000600b55600d805462ffffff60a01b19169055348015620000b657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350466038036200012d57600c80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000217565b46600114806200013d5750466005145b156200016f57600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000217565b4661a4b103620001a557600c80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b4799750617905562000217565b46606103620001da57600c80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000217565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000291919062000643565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031a919062000643565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000368573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038e919062000643565b600d80546001600160a01b03929092166001600160a01b031992831617905560048054909116739f95cd96a50c8cd507dbfb730306c85f2356f993179055600160036000620003da3390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c80549092161790556200046f6009600a62000611565b620004809064e8d4a5100062000629565b600480546001600160a01b03908116600090815260016020526040812093909355905416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004d46009600a62000611565b620004e59064e8d4a5100062000629565b60405190815260200160405180910390a36200066e565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000553578160001904821115620005375762000537620004fc565b808516156200054557918102915b93841c939080029062000517565b509250929050565b6000826200056c575060016200060b565b816200057b575060006200060b565b81600181146200059457600281146200059f57620005bf565b60019150506200060b565b60ff841115620005b357620005b3620004fc565b50506001821b6200060b565b5060208310610133831016604e8410600b8410161715620005e4575081810a6200060b565b620005f0838362000512565b8060001904821115620006075762000607620004fc565b0290505b92915050565b60006200062260ff8416836200055b565b9392505050565b80820281158282048414176200060b576200060b620004fc565b6000602082840312156200065657600080fd5b81516001600160a01b03811681146200062257600080fd5b611c1f806200067e6000396000f3fe6080604052600436106101395760003560e01c80638da5cb5b116100ab578063bb9e95af1161006f578063bb9e95af14610389578063d5e1cbff146103a9578063dd62ed3e146103be578063f2fde38b14610404578063f80f5dd514610424578063f87dc2c61461044457600080fd5b80638da5cb5b146102e857806395d89b4114610306578063a333b4ab14610334578063a62ccc2c14610354578063a9059cbb1461036957600080fd5b8063313ce567116100fd578063313ce5671461021357806352f7c9881461022f57806370a082311461024f578063715018a61461028557806378c8cda71461029a57806385141a77146102ba57600080fd5b806306fdde0314610145578063095ea7b31461018957806318160ddd146101b95780631b7e8145146101dc57806323b872dd146101f357600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526009815268151a194810d85b595b60ba1b60208201525b60405161018091906117a4565b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611807565b610465565b6040519015158152602001610180565b3480156101c557600080fd5b506101ce61047c565b604051908152602001610180565b3480156101e857600080fd5b506101f161049e565b005b3480156101ff57600080fd5b506101a961020e366004611833565b610572565b34801561021f57600080fd5b5060405160098152602001610180565b34801561023b57600080fd5b506101f161024a366004611874565b610621565b34801561025b57600080fd5b506101ce61026a366004611896565b6001600160a01b031660009081526001602052604090205490565b34801561029157600080fd5b506101f16106b4565b3480156102a657600080fd5b506101f16102b5366004611896565b610728565b3480156102c657600080fd5b506102d061dead81565b6040516001600160a01b039091168152602001610180565b3480156102f457600080fd5b506000546001600160a01b03166102d0565b34801561031257600080fd5b5060408051808201909152600581526410d053515360da1b6020820152610173565b34801561034057600080fd5b506101f161034f3660046118c1565b610807565b34801561036057600080fd5b506101f161087a565b34801561037557600080fd5b506101a9610384366004611807565b61093e565b34801561039557600080fd5b506101f16103a4366004611807565b61094b565b3480156103b557600080fd5b506101f1610b62565b3480156103ca57600080fd5b506101ce6103d93660046118de565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041057600080fd5b506101f161041f366004611896565b610bca565b34801561043057600080fd5b506101f161043f366004611896565b610c65565b34801561045057600080fd5b50600d546101a990600160a01b900460ff1681565b6000610472338484610d48565b5060015b92915050565b600061048a6009600a611a11565b6104999064e8d4a51000611a20565b905090565b47806104c55760405162461bcd60e51b81526004016104bc90611a37565b60405180910390fd5b4781111561050b5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104bc565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610545573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6001600160a01b0383166000908152600260209081526040808320338452909152812054828110156105f75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104bc565b610602858585610e6c565b61061685336106118685611a79565b610d48565b506001949350505050565b6000546001600160a01b0316331461064b5760405162461bcd60e51b81526004016104bc90611a8c565b6028821115801561065d5750603c8111155b6106a95760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104bc565b600991909155600a55565b6000546001600160a01b031633146106de5760405162461bcd60e51b81526004016104bc90611a8c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107525760405162461bcd60e51b81526004016104bc90611a8c565b6001600160a01b03811660009081526003602052604081205460ff16151590036107be5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104bc565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6000546001600160a01b031633146108315760405162461bcd60e51b81526004016104bc90611a8c565b600d805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146108a45760405162461bcd60e51b81526004016104bc90611a8c565b600d54600160a01b900460ff16156108fe5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104bc565b600d805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000610472338484610e6c565b6000546001600160a01b031633146109755760405162461bcd60e51b81526004016104bc90611a8c565b306001600160a01b038316036109ec5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104bc565b60008111610a0c5760405162461bcd60e51b81526004016104bc90611a37565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a749190611ac1565b811115610ab95760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104bc565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190611ada565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610b8c5760405162461bcd60e51b81526004016104bc90611a8c565b610b986009600a611a11565b610ba79064e8d4a51000611a20565b600755610bb66009600a611a11565b610bc59064e8d4a51000611a20565b600855565b6000546001600160a01b03163314610bf45760405162461bcd60e51b81526004016104bc90611a8c565b6001600160a01b038116610c595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104bc565b610c62816114e7565b50565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016104bc90611a8c565b6001600160a01b03811660009081526003602052604090205460ff161515600103610cfc5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104bc565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6001600160a01b038316610daa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bc565b6001600160a01b038216610e0b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104bc565b6001600160a01b038216610f325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104bc565b60008111610f945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104bc565b6001600160a01b03831660009081526003602052604081205460ff16158015610fd657506001600160a01b03831660009081526003602052604090205460ff16155b1561104757600d54600160a01b900460ff1661102a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104bc565b60646009548361103a9190611a20565b6110449190611af7565b90505b6001600160a01b03841660009081526003602052604090205460ff168061108657506001600160a01b03831660009081526003602052604090205460ff165b1561108f575060005b600d546001600160a01b0385811691161480156110ba5750600c546001600160a01b03848116911614155b80156110df57506001600160a01b03831660009081526003602052604090205460ff16155b156111c3576007548211156111325760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104bc565b60085482611155856001600160a01b031660009081526001602052604090205490565b61115f9190611b19565b11156111ad5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104bc565b600b80549060006111bd83611b2c565b91905055505b600d546001600160a01b038581169116148015906111fa57506001600160a01b03841660009081526003602052604090205460ff16155b801561121f57506001600160a01b03831660009081526003602052604090205460ff16155b15611272576007548211156112725760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104bc565b600d546001600160a01b03848116911614801561129857506001600160a01b0384163014155b80156112bd57506001600160a01b03841660009081526003602052604090205460ff16155b80156112e257506001600160a01b03831660009081526003602052604090205460ff16155b15611304576064600a54836112f79190611a20565b6113019190611af7565b90505b30600090815260016020526040902054600d54600160b01b900460ff1615801561133c5750600d546001600160a01b03868116911614155b80156113515750600d54600160a81b900460ff165b801561135e575060055481115b801561136c57506001600b54115b156113a05761138e6113898461138484600654611537565b611537565b61154f565b47801561139e5761139e47611716565b505b6001600160a01b0385166000908152600160205260409020546113c4908490611a79565b6001600160a01b0386166000908152600160205260409020556113e78284611a79565b6001600160a01b03851660009081526001602052604090205461140a9190611b19565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114548587611a79565b60405190815260200160405180910390a381156114e05730600090815260016020526040902054611486908390611b19565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114d79086815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116115465782611548565b815b9392505050565b600d805460ff60b01b1916600160b01b179055806115af5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104bc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115e4576115e4611b45565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116619190611b5b565b8160018151811061167457611674611b45565b6001600160a01b039283166020918202929092010152600c5461169a9130911684610d48565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116d3908590600090869030904290600401611b78565b600060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b5050600d805460ff60b01b1916905550505050565b600081116117665760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104bc565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156117a0573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156117d1578581018301518582016040015282016117b5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c6257600080fd5b6000806040838503121561181a57600080fd5b8235611825816117f2565b946020939093013593505050565b60008060006060848603121561184857600080fd5b8335611853816117f2565b92506020840135611863816117f2565b929592945050506040919091013590565b6000806040838503121561188757600080fd5b50508035926020909101359150565b6000602082840312156118a857600080fd5b8135611548816117f2565b8015158114610c6257600080fd5b6000602082840312156118d357600080fd5b8135611548816118b3565b600080604083850312156118f157600080fd5b82356118fc816117f2565b9150602083013561190c816117f2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561196857816000190482111561194e5761194e611917565b8085161561195b57918102915b93841c9390800290611932565b509250929050565b60008261197f57506001610476565b8161198c57506000610476565b81600181146119a257600281146119ac576119c8565b6001915050610476565b60ff8411156119bd576119bd611917565b50506001821b610476565b5060208310610133831016604e8410600b84101617156119eb575081810a610476565b6119f5838361192d565b8060001904821115611a0957611a09611917565b029392505050565b600061154860ff841683611970565b808202811582820484141761047657610476611917565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b8181038181111561047657610476611917565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ad357600080fd5b5051919050565b600060208284031215611aec57600080fd5b8151611548816118b3565b600082611b1457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561047657610476611917565b600060018201611b3e57611b3e611917565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b6d57600080fd5b8151611548816117f2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc85784516001600160a01b031683529383019391830191600101611ba3565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b057cda975a653ddd52e6735358a8c29216cb9f367c2c41a203a51fda3b719b564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80638da5cb5b116100ab578063bb9e95af1161006f578063bb9e95af14610389578063d5e1cbff146103a9578063dd62ed3e146103be578063f2fde38b14610404578063f80f5dd514610424578063f87dc2c61461044457600080fd5b80638da5cb5b146102e857806395d89b4114610306578063a333b4ab14610334578063a62ccc2c14610354578063a9059cbb1461036957600080fd5b8063313ce567116100fd578063313ce5671461021357806352f7c9881461022f57806370a082311461024f578063715018a61461028557806378c8cda71461029a57806385141a77146102ba57600080fd5b806306fdde0314610145578063095ea7b31461018957806318160ddd146101b95780631b7e8145146101dc57806323b872dd146101f357600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50604080518082019091526009815268151a194810d85b595b60ba1b60208201525b60405161018091906117a4565b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611807565b610465565b6040519015158152602001610180565b3480156101c557600080fd5b506101ce61047c565b604051908152602001610180565b3480156101e857600080fd5b506101f161049e565b005b3480156101ff57600080fd5b506101a961020e366004611833565b610572565b34801561021f57600080fd5b5060405160098152602001610180565b34801561023b57600080fd5b506101f161024a366004611874565b610621565b34801561025b57600080fd5b506101ce61026a366004611896565b6001600160a01b031660009081526001602052604090205490565b34801561029157600080fd5b506101f16106b4565b3480156102a657600080fd5b506101f16102b5366004611896565b610728565b3480156102c657600080fd5b506102d061dead81565b6040516001600160a01b039091168152602001610180565b3480156102f457600080fd5b506000546001600160a01b03166102d0565b34801561031257600080fd5b5060408051808201909152600581526410d053515360da1b6020820152610173565b34801561034057600080fd5b506101f161034f3660046118c1565b610807565b34801561036057600080fd5b506101f161087a565b34801561037557600080fd5b506101a9610384366004611807565b61093e565b34801561039557600080fd5b506101f16103a4366004611807565b61094b565b3480156103b557600080fd5b506101f1610b62565b3480156103ca57600080fd5b506101ce6103d93660046118de565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041057600080fd5b506101f161041f366004611896565b610bca565b34801561043057600080fd5b506101f161043f366004611896565b610c65565b34801561045057600080fd5b50600d546101a990600160a01b900460ff1681565b6000610472338484610d48565b5060015b92915050565b600061048a6009600a611a11565b6104999064e8d4a51000611a20565b905090565b47806104c55760405162461bcd60e51b81526004016104bc90611a37565b60405180910390fd5b4781111561050b5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104bc565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610545573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6001600160a01b0383166000908152600260209081526040808320338452909152812054828110156105f75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104bc565b610602858585610e6c565b61061685336106118685611a79565b610d48565b506001949350505050565b6000546001600160a01b0316331461064b5760405162461bcd60e51b81526004016104bc90611a8c565b6028821115801561065d5750603c8111155b6106a95760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104bc565b600991909155600a55565b6000546001600160a01b031633146106de5760405162461bcd60e51b81526004016104bc90611a8c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107525760405162461bcd60e51b81526004016104bc90611a8c565b6001600160a01b03811660009081526003602052604081205460ff16151590036107be5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104bc565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6000546001600160a01b031633146108315760405162461bcd60e51b81526004016104bc90611a8c565b600d805460ff60a81b1916600160a81b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146108a45760405162461bcd60e51b81526004016104bc90611a8c565b600d54600160a01b900460ff16156108fe5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104bc565b600d805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000610472338484610e6c565b6000546001600160a01b031633146109755760405162461bcd60e51b81526004016104bc90611a8c565b306001600160a01b038316036109ec5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104bc565b60008111610a0c5760405162461bcd60e51b81526004016104bc90611a37565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a749190611ac1565b811115610ab95760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104bc565b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af1158015610b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b329190611ada565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610b8c5760405162461bcd60e51b81526004016104bc90611a8c565b610b986009600a611a11565b610ba79064e8d4a51000611a20565b600755610bb66009600a611a11565b610bc59064e8d4a51000611a20565b600855565b6000546001600160a01b03163314610bf45760405162461bcd60e51b81526004016104bc90611a8c565b6001600160a01b038116610c595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104bc565b610c62816114e7565b50565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016104bc90611a8c565b6001600160a01b03811660009081526003602052604090205460ff161515600103610cfc5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104bc565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6001600160a01b038316610daa5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104bc565b6001600160a01b038216610e0b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104bc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104bc565b6001600160a01b038216610f325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104bc565b60008111610f945760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104bc565b6001600160a01b03831660009081526003602052604081205460ff16158015610fd657506001600160a01b03831660009081526003602052604090205460ff16155b1561104757600d54600160a01b900460ff1661102a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104bc565b60646009548361103a9190611a20565b6110449190611af7565b90505b6001600160a01b03841660009081526003602052604090205460ff168061108657506001600160a01b03831660009081526003602052604090205460ff165b1561108f575060005b600d546001600160a01b0385811691161480156110ba5750600c546001600160a01b03848116911614155b80156110df57506001600160a01b03831660009081526003602052604090205460ff16155b156111c3576007548211156111325760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104bc565b60085482611155856001600160a01b031660009081526001602052604090205490565b61115f9190611b19565b11156111ad5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104bc565b600b80549060006111bd83611b2c565b91905055505b600d546001600160a01b038581169116148015906111fa57506001600160a01b03841660009081526003602052604090205460ff16155b801561121f57506001600160a01b03831660009081526003602052604090205460ff16155b15611272576007548211156112725760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104bc565b600d546001600160a01b03848116911614801561129857506001600160a01b0384163014155b80156112bd57506001600160a01b03841660009081526003602052604090205460ff16155b80156112e257506001600160a01b03831660009081526003602052604090205460ff16155b15611304576064600a54836112f79190611a20565b6113019190611af7565b90505b30600090815260016020526040902054600d54600160b01b900460ff1615801561133c5750600d546001600160a01b03868116911614155b80156113515750600d54600160a81b900460ff165b801561135e575060055481115b801561136c57506001600b54115b156113a05761138e6113898461138484600654611537565b611537565b61154f565b47801561139e5761139e47611716565b505b6001600160a01b0385166000908152600160205260409020546113c4908490611a79565b6001600160a01b0386166000908152600160205260409020556113e78284611a79565b6001600160a01b03851660009081526001602052604090205461140a9190611b19565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114548587611a79565b60405190815260200160405180910390a381156114e05730600090815260016020526040902054611486908390611b19565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114d79086815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116115465782611548565b815b9392505050565b600d805460ff60b01b1916600160b01b179055806115af5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104bc565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106115e4576115e4611b45565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561163d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116619190611b5b565b8160018151811061167457611674611b45565b6001600160a01b039283166020918202929092010152600c5461169a9130911684610d48565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906116d3908590600090869030904290600401611b78565b600060405180830381600087803b1580156116ed57600080fd5b505af1158015611701573d6000803e3d6000fd5b5050600d805460ff60b01b1916905550505050565b600081116117665760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104bc565b6004546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156117a0573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b818110156117d1578581018301518582016040015282016117b5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c6257600080fd5b6000806040838503121561181a57600080fd5b8235611825816117f2565b946020939093013593505050565b60008060006060848603121561184857600080fd5b8335611853816117f2565b92506020840135611863816117f2565b929592945050506040919091013590565b6000806040838503121561188757600080fd5b50508035926020909101359150565b6000602082840312156118a857600080fd5b8135611548816117f2565b8015158114610c6257600080fd5b6000602082840312156118d357600080fd5b8135611548816118b3565b600080604083850312156118f157600080fd5b82356118fc816117f2565b9150602083013561190c816117f2565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561196857816000190482111561194e5761194e611917565b8085161561195b57918102915b93841c9390800290611932565b509250929050565b60008261197f57506001610476565b8161198c57506000610476565b81600181146119a257600281146119ac576119c8565b6001915050610476565b60ff8411156119bd576119bd611917565b50506001821b610476565b5060208310610133831016604e8410600b84101617156119eb575081810a610476565b6119f5838361192d565b8060001904821115611a0957611a09611917565b029392505050565b600061154860ff841683611970565b808202811582820484141761047657610476611917565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b8181038181111561047657610476611917565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611ad357600080fd5b5051919050565b600060208284031215611aec57600080fd5b8151611548816118b3565b600082611b1457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561047657610476611917565b600060018201611b3e57611b3e611917565b5060010190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611b6d57600080fd5b8151611548816117f2565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611bc85784516001600160a01b031683529383019391830191600101611ba3565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220b057cda975a653ddd52e6735358a8c29216cb9f367c2c41a203a51fda3b719b564736f6c63430008130033

Deployed Bytecode Sourcemap

2716:9863:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5631:83;;;;;;;;;;-1:-1:-1;5701:5:0;;;;;;;;;;;;-1:-1:-1;;;5701:5:0;;;;5631:83;;;;;;;:::i;:::-;;;;;;;;6602:161;;;;;;;;;;-1:-1:-1;6602:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6602:161:0;1023:187:1;5916:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5916:95:0;1215:177:1;12191:385:0;;;;;;;;;;;;;:::i;:::-;;6774:410;;;;;;;;;;-1:-1:-1;6774:410:0;;;;;:::i;:::-;;:::i;5822:83::-;;;;;;;;;;-1:-1:-1;5822:83:0;;3121:1;2000:36:1;;1988:2;1973:18;5822:83:0;1858:184:1;10558:218:0;;;;;;;;;;-1:-1:-1;10558:218:0;;;;;:::i;:::-;;:::i;6022:119::-;;;;;;;;;;-1:-1:-1;6022:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6115:18:0;6088:7;6115:18;;;:9;:18;;;;;;;6022:119;1801:148;;;;;;;;;;;;;:::i;11184:246::-;;;;;;;;;;-1:-1:-1;11184:246:0;;;;;:::i;:::-;;:::i;2954:79::-;;;;;;;;;;;;2991:42;2954:79;;;;;-1:-1:-1;;;;;2716:32:1;;;2698:51;;2686:2;2671:18;2954:79:0;2552:203:1;1185:79:0;;;;;;;;;;-1:-1:-1;1223:7:0;1250:6;-1:-1:-1;;;;;1250:6:0;1185:79;;5725:87;;;;;;;;;;-1:-1:-1;5797:7:0;;;;;;;;;;;;-1:-1:-1;;;5797:7:0;;;;5725:87;;10786:141;;;;;;;;;;-1:-1:-1;10786:141:0;;;;;:::i;:::-;;:::i;11441:211::-;;;;;;;;;;;;;:::i;6270:167::-;;;;;;;;;;-1:-1:-1;6270:167:0;;;;;:::i;:::-;;:::i;11704:476::-;;;;;;;;;;-1:-1:-1;11704:476:0;;;;;:::i;:::-;;:::i;10438:111::-;;;;;;;;;;;;;:::i;6448:143::-;;;;;;;;;;-1:-1:-1;6448:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6556:18:0;;;6529:7;6556:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6448:143;1395:203;;;;;;;;;;-1:-1:-1;1395:203:0;;;;;:::i;:::-;;:::i;10939:234::-;;;;;;;;;;-1:-1:-1;10939:234:0;;;;;:::i;:::-;;:::i;3760:31::-;;;;;;;;;;-1:-1:-1;3760:31:0;;;;-1:-1:-1;;;3760:31:0;;;;;;6602:161;6677:4;6694:39;171:10;6717:7;6726:6;6694:8;:39::i;:::-;-1:-1:-1;6751:4:0;6602:161;;;;;:::o;5916:95::-;5969:7;3181:13;3121:1;3181:2;:13;:::i;:::-;3165:29;;:13;:29;:::i;:::-;5989:14;;5916:95;:::o;12191:385::-;12273:21;12313:22;12305:69;;;;-1:-1:-1;;;12305:69:0;;;;;;;:::i;:::-;;;;;;;;;12415:21;12393:18;:43;;12385:75;;;;-1:-1:-1;;;12385:75:0;;5815:2:1;12385:75:0;;;5797:21:1;5854:2;5834:18;;;5827:30;-1:-1:-1;;;5873:18:1;;;5866:49;5932:18;;12385:75:0;5613:343:1;12385:75:0;12487:15;;12471:62;;-1:-1:-1;;;;;12487:15:0;;;;12471:62;;;;;12514:18;;12487:15;12471:62;12487:15;12471:62;12514:18;12487:15;12471:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12547:21:0;;;;;;;12233:343;12191:385::o;6774:410::-;-1:-1:-1;;;;;6916:19:0;;6872:4;6916:19;;;:11;:19;;;;;;;;171:10;6916:33;;;;;;;;6968:26;;;;6960:79;;;;-1:-1:-1;;;6960:79:0;;6163:2:1;6960:79:0;;;6145:21:1;6202:2;6182:18;;;6175:30;6241:34;6221:18;;;6214:62;-1:-1:-1;;;6292:18:1;;;6285:38;6340:19;;6960:79:0;5961:404:1;6960:79:0;7050:36;7060:6;7068:9;7079:6;7050:9;:36::i;:::-;7097:57;7106:6;171:10;7128:25;7147:6;7128:16;:25;:::i;:::-;7097:8;:57::i;:::-;-1:-1:-1;7172:4:0;;6774:410;-1:-1:-1;;;;6774:410:0:o;10558:218::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;10658:2:::1;10647:7;:13;;:31;;;;;10676:2;10664:8;:14;;10647:31;10639:69;;;::::0;-1:-1:-1;;;10639:69:0;;7066:2:1;10639:69:0::1;::::0;::::1;7048:21:1::0;7105:2;7085:18;;;7078:30;7144:27;7124:18;;;7117:55;7189:18;;10639:69:0::1;6864:349:1::0;10639:69:0::1;10719:8;:18:::0;;;;10748:9:::1;:20:::0;10558:218::o;1801:148::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;1908:1:::1;1892:6:::0;;1871:40:::1;::::0;-1:-1:-1;;;;;1892:6:0;;::::1;::::0;1871:40:::1;::::0;1908:1;;1871:40:::1;1939:1;1922:19:::0;;-1:-1:-1;;;;;;1922:19:0::1;::::0;;1801:148::o;11184:246::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11265:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;11257:76:::1;;;::::0;-1:-1:-1;;;11257:76:0;;7420:2:1;11257:76:0::1;::::0;::::1;7402:21:1::0;7459:2;7439:18;;;7432:30;7498:29;7478:18;;;7471:57;7545:18;;11257:76:0::1;7218:351:1::0;11257:76:0::1;-1:-1:-1::0;;;;;11344:27:0;::::1;11374:5;11344:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;11344:35:0::1;::::0;;11392:30;::::1;::::0;11374:5;11392:30:::1;11184:246:::0;:::o;10786:141::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;10855:15:::1;:23:::0;;-1:-1:-1;;;;10855:23:0::1;-1:-1:-1::0;;;10855:23:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;10890:29:::1;::::0;::::1;::::0;-1:-1:-1;;10890:29:0::1;10786:141:::0;:::o;11441:211::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;11508:11:::1;::::0;-1:-1:-1;;;11508:11:0;::::1;;;11507:12;11499:47;;;::::0;-1:-1:-1;;;11499:47:0;;7776:2:1;11499:47:0::1;::::0;::::1;7758:21:1::0;7815:2;7795:18;;;7788:30;7854:25;7834:18;;;7827:53;7897:18;;11499:47:0::1;7574:347:1::0;11499:47:0::1;11557:15;:22:::0;;-1:-1:-1;;;;11591:18:0;-1:-1:-1;;;11591:18:0;;;11624:20:::1;::::0;::::1;::::0;-1:-1:-1;;11624:20:0::1;11441:211::o:0;6270:167::-;6348:4;6365:42;171:10;6389:9;6400:6;6365:9;:42::i;11704:476::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;11834:4:::1;-1:-1:-1::0;;;;;11812:27:0;::::1;::::0;11804:94:::1;;;::::0;-1:-1:-1;;;11804:94:0;;8128:2:1;11804:94:0::1;::::0;::::1;8110:21:1::0;8167:2;8147:18;;;8140:30;8206:34;8186:18;;;8179:62;-1:-1:-1;;;8257:18:1;;;8250:52;8319:19;;11804:94:0::1;7926:418:1::0;11804:94:0::1;11927:1;11917:7;:11;11909:58;;;;-1:-1:-1::0;;;11909:58:0::1;;;;;;;:::i;:::-;11997:43;::::0;-1:-1:-1;;;11997:43:0;;12034:4:::1;11997:43;::::0;::::1;2698:51:1::0;-1:-1:-1;;;;;11997:28:0;::::1;::::0;::::1;::::0;2671:18:1;;11997:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11986:7;:54;;11978:86;;;::::0;-1:-1:-1;;;11978:86:0;;5815:2:1;11978:86:0::1;::::0;::::1;5797:21:1::0;5854:2;5834:18;;;5827:30;-1:-1:-1;;;5873:18:1;;;5866:49;5932:18;;11978:86:0::1;5613:343:1::0;11978:86:0::1;12103:15;::::0;;12075:53:::1;::::0;-1:-1:-1;;;12075:53:0;;-1:-1:-1;;;;;12103:15:0;;::::1;12075:53:::0;;::::1;8720:51:1::0;;;;8787:18;;;8780:34;;;12075:27:0;::::1;::::0;::::1;::::0;8693:18:1;;12075:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12142:29:0::1;::::0;12163:7;;12142:29:::1;::::0;;;::::1;11704:476:::0;;:::o;10438:111::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;3181:13:::1;3121:1;3181:2;:13;:::i;:::-;3165:29;::::0;:13:::1;:29;:::i;:::-;10490:11;:21:::0;3181:13:::1;3121:1;3181:2;:13;:::i;:::-;3165:29;::::0;:13:::1;:29;:::i;:::-;10518:13;:23:::0;10438:111::o;1395:203::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1486:22:0;::::1;1478:73;;;::::0;-1:-1:-1;;;1478:73:0;;9277:2:1;1478:73:0::1;::::0;::::1;9259:21:1::0;9316:2;9296:18;;;9289:30;9355:34;9335:18;;;9328:62;-1:-1:-1;;;9406:18:1;;;9399:36;9452:19;;1478:73:0::1;9075:402:1::0;1478:73:0::1;1562:28;1581:8;1562:18;:28::i;:::-;1395:203:::0;:::o;10939:234::-;1310:6;;-1:-1:-1;;;;;1310:6:0;171:10;1310:22;1302:67;;;;-1:-1:-1;;;1302:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11014:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;11006:74:::1;;;::::0;-1:-1:-1;;;11006:74:0;;9684:2:1;11006:74:0::1;::::0;::::1;9666:21:1::0;9723:2;9703:18;;;9696:30;9762:29;9742:18;;;9735:57;9809:18;;11006:74:0::1;9482:351:1::0;11006:74:0::1;-1:-1:-1::0;;;;;11090:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;11090:34:0::1;11120:4;11090:34;::::0;;11136:30;::::1;::::0;11090:27;11136:30:::1;10939:234:::0;:::o;7195:335::-;-1:-1:-1;;;;;7288:19:0;;7280:68;;;;-1:-1:-1;;;7280:68:0;;10040:2:1;7280:68:0;;;10022:21:1;10079:2;10059:18;;;10052:30;10118:34;10098:18;;;10091:62;-1:-1:-1;;;10169:18:1;;;10162:34;10213:19;;7280:68:0;9838:400:1;7280:68:0;-1:-1:-1;;;;;7367:21:0;;7359:68;;;;-1:-1:-1;;;7359:68:0;;10445:2:1;7359:68:0;;;10427:21:1;10484:2;10464:18;;;10457:30;10523:34;10503:18;;;10496:62;-1:-1:-1;;;10574:18:1;;;10567:32;10616:19;;7359:68:0;10243:398:1;7359:68:0;-1:-1:-1;;;;;7438:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7490:32;;1361:25:1;;;7490:32:0;;1334:18:1;7490:32:0;;;;;;;7195:335;;;:::o;7541:2233::-;-1:-1:-1;;;;;7629:18:0;;7621:68;;;;-1:-1:-1;;;7621:68:0;;10848:2:1;7621:68:0;;;10830:21:1;10887:2;10867:18;;;10860:30;10926:34;10906:18;;;10899:62;-1:-1:-1;;;10977:18:1;;;10970:35;11022:19;;7621:68:0;10646:401:1;7621:68:0;-1:-1:-1;;;;;7708:16:0;;7700:64;;;;-1:-1:-1;;;7700:64:0;;11254:2:1;7700:64:0;;;11236:21:1;11293:2;11273:18;;;11266:30;11332:34;11312:18;;;11305:62;-1:-1:-1;;;11383:18:1;;;11376:33;11426:19;;7700:64:0;11052:399:1;7700:64:0;7792:1;7783:6;:10;7775:64;;;;-1:-1:-1;;;7775:64:0;;11658:2:1;7775:64:0;;;11640:21:1;11697:2;11677:18;;;11670:30;11736:34;11716:18;;;11709:62;-1:-1:-1;;;11787:18:1;;;11780:39;11836:19;;7775:64:0;11456:405:1;7775:64:0;-1:-1:-1;;;;;7884:24:0;;7850:14;7884:24;;;:18;:24;;;;;;;;7883:25;:52;;;;-1:-1:-1;;;;;;7913:22:0;;;;;;:18;:22;;;;;;;;7912:23;7883:52;7879:189;;;7960:11;;-1:-1:-1;;;7960:11:0;;;;7952:43;;;;-1:-1:-1;;;7952:43:0;;12068:2:1;7952:43:0;;;12050:21:1;12107:2;12087:18;;;12080:30;-1:-1:-1;;;12126:18:1;;;12119:49;12185:18;;7952:43:0;11866:343:1;7952:43:0;8052:3;8039:8;;8029:6;:19;;;;:::i;:::-;:27;;;;:::i;:::-;8020:36;;7879:189;-1:-1:-1;;;;;8093:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8121:22:0;;;;;;:18;:22;;;;;;;;8093:50;8089:93;;;-1:-1:-1;8169:1:0;8089:93;8218:13;;-1:-1:-1;;;;;8210:21:0;;;8218:13;;8210:21;:55;;;;-1:-1:-1;8249:15:0;;-1:-1:-1;;;;;8235:30:0;;;8249:15;;8235:30;;8210:55;:82;;;;-1:-1:-1;;;;;;8270:22:0;;;;;;:18;:22;;;;;;;;8269:23;8210:82;8206:298;;;8328:11;;8318:6;:21;;8310:59;;;;-1:-1:-1;;;8310:59:0;;12638:2:1;8310:59:0;;;12620:21:1;12677:2;12657:18;;;12650:30;-1:-1:-1;;;12696:18:1;;;12689:55;12761:18;;8310:59:0;12436:349:1;8310:59:0;8419:13;;8409:6;8393:13;8403:2;-1:-1:-1;;;;;6115:18:0;6088:7;6115:18;;;:9;:18;;;;;;;6022:119;8393:13;:22;;;;:::i;:::-;:39;;8385:78;;;;-1:-1:-1;;;8385:78:0;;13122:2:1;8385:78:0;;;13104:21:1;13161:2;13141:18;;;13134:30;13200:28;13180:18;;;13173:56;13246:18;;8385:78:0;12920:350:1;8385:78:0;8480:8;:10;;;:8;:10;;;:::i;:::-;;;;;;8206:298;8539:13;;-1:-1:-1;;;;;8531:21:0;;;8539:13;;8531:21;;;;:50;;-1:-1:-1;;;;;;8557:24:0;;;;;;:18;:24;;;;;;;;8556:25;8531:50;:77;;;;-1:-1:-1;;;;;;8586:22:0;;;;;;:18;:22;;;;;;;;8585:23;8531:77;8527:172;;;8644:11;;8634:6;:21;;8626:59;;;;-1:-1:-1;;;8626:59:0;;12638:2:1;8626:59:0;;;12620:21:1;12677:2;12657:18;;;12650:30;-1:-1:-1;;;12696:18:1;;;12689:55;12761:18;;8626:59:0;12436:349:1;8626:59:0;8731:13;;-1:-1:-1;;;;;8725:19:0;;;8731:13;;8725:19;:44;;;;-1:-1:-1;;;;;;8748:21:0;;8764:4;8748:21;;8725:44;:73;;;;-1:-1:-1;;;;;;8774:24:0;;;;;;:18;:24;;;;;;;;8773:25;8725:73;:100;;;;-1:-1:-1;;;;;;8803:22:0;;;;;;:18;:22;;;;;;;;8802:23;8725:100;8721:203;;;8882:3;8868:9;;8858:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;8849:37;;8721:203;8998:4;8949:28;6115:18;;;:9;:18;;;;;;9024:6;;-1:-1:-1;;;9024:6:0;;;;9023:7;:32;;;;-1:-1:-1;9042:13:0;;-1:-1:-1;;;;;9034:21:0;;;9042:13;;9034:21;;9023:32;:51;;;;-1:-1:-1;9059:15:0;;-1:-1:-1;;;9059:15:0;;;;9023:51;:92;;;;;9101:14;;9078:20;:37;9023:92;:108;;;;;9130:1;9119:8;;:12;9023:108;9019:412;;;9152:72;9169:54;9173:6;9181:41;9185:20;9207:14;;9181:3;:41::i;:::-;9169:3;:54::i;:::-;9152:16;:72::i;:::-;9271:21;9314:22;;9311:105;;9361:35;9374:21;9361:12;:35::i;:::-;9133:298;9019:412;-1:-1:-1;;;;;9459:15:0;;;;;;:9;:15;;;;;;:24;;9477:6;;9459:24;:::i;:::-;-1:-1:-1;;;;;9441:15:0;;;;;;:9;:15;;;;;:42;9528:17;9538:6;9528;:17;:::i;:::-;-1:-1:-1;;;;;9511:13:0;;;;;;:9;:13;;;;;;:35;;;;:::i;:::-;-1:-1:-1;;;;;9495:13:0;;;;;;;:9;:13;;;;;:51;;;;9562:37;;;9581:17;9591:6;9581;:17;:::i;:::-;9562:37;;1361:25:1;;;1349:2;1334:18;9562:37:0;;;;;;;9614:10;;9611:156;;9683:4;9665:24;;;;:9;:24;;;;;;:35;;9693:6;;9665:35;:::i;:::-;9656:4;9638:24;;;;:9;:24;;;;;;;:62;;;;9719:36;;-1:-1:-1;;;;;9719:36:0;;;;;;;9748:6;1361:25:1;;1349:2;1334:18;;1215:177;9719:36:0;;;;;;;;9611:156;7610:2164;;7541:2233;;;:::o;1604:191::-;1678:16;1697:6;;-1:-1:-1;;;;;1714:17:0;;;-1:-1:-1;;;;;;1714:17:0;;;;;;1747:40;;1697:6;;;;;;;1747:40;;1678:16;1747:40;1667:128;1604:191;:::o;6152:107::-;6209:7;6241:1;6237;:5;6236:15;;6250:1;6236:15;;;6246:1;6236:15;6229:22;6152:107;-1:-1:-1;;;6152:107:0:o;9786:471::-;4291:6;:13;;-1:-1:-1;;;;4291:13:0;-1:-1:-1;;;4291:13:0;;;9872:15;9864:57:::1;;;::::0;-1:-1:-1;;;9864:57:0;;13617:2:1;9864:57:0::1;::::0;::::1;13599:21:1::0;13656:2;13636:18;;;13629:30;13695:31;13675:18;;;13668:59;13744:18;;9864:57:0::1;13415:353:1::0;9864:57:0::1;9956:16;::::0;;9970:1:::1;9956:16:::0;;;;;::::1;::::0;;9932:21:::1;::::0;9956:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9956:16:0::1;9932:40;;10001:4;9983;9988:1;9983:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9983:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10027:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10027:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9983:7;;10027:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10017:4;10022:1;10017:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10017:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10092:15:::1;::::0;10060:62:::1;::::0;10077:4:::1;::::0;10092:15:::1;10110:11:::0;10060:8:::1;:62::i;:::-;10133:15;::::0;:116:::1;::::0;-1:-1:-1;;;10133:116:0;;-1:-1:-1;;;;;10133:15:0;;::::1;::::0;:66:::1;::::0;:116:::1;::::0;10200:11;;10133:15:::1;::::0;10214:4;;10227::::1;::::0;10233:15:::1;::::0;10133:116:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4327:6:0;:14;;-1:-1:-1;;;;4327:14:0;;;-1:-1:-1;;;;9786:471:0:o;10269:159::-;10342:1;10333:6;:10;10325:52;;;;-1:-1:-1;;;10325:52:0;;13617:2:1;10325:52:0;;;13599:21:1;13656:2;13636:18;;;13629:30;13695:31;13675:18;;;13668:59;13744:18;;10325:52:0;13415:353:1;10325:52:0;10388:15;;:32;;-1:-1:-1;;;;;10388:15:0;;;;:32;;;;;10413:6;;10388:15;:32;:15;:32;10413:6;10388:15;:32;;;;;;;;;;;;;;;;;;;;;10269:159;:::o;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: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:248::-;2115:6;2123;2176:2;2164:9;2155:7;2151:23;2147:32;2144:52;;;2192:1;2189;2182:12;2144:52;-1:-1:-1;;2215:23:1;;;2285:2;2270:18;;;2257:32;;-1:-1:-1;2047:248:1:o;2300:247::-;2359:6;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2467:9;2454:23;2486:31;2511:5;2486:31;:::i;2760:118::-;2846:5;2839:13;2832:21;2825:5;2822:32;2812:60;;2868:1;2865;2858:12;2883:241;2939:6;2992:2;2980:9;2971:7;2967:23;2963:32;2960:52;;;3008:1;3005;2998:12;2960:52;3047:9;3034:23;3066:28;3088:5;3066:28;:::i;3129:388::-;3197:6;3205;3258:2;3246:9;3237:7;3233:23;3229:32;3226:52;;;3274:1;3271;3264:12;3226:52;3313:9;3300:23;3332:31;3357:5;3332:31;:::i;:::-;3382:5;-1:-1:-1;3439:2:1;3424:18;;3411:32;3452:33;3411:32;3452:33;:::i;:::-;3504:7;3494:17;;;3129:388;;;;;:::o;3522:127::-;3583:10;3578:3;3574:20;3571:1;3564:31;3614:4;3611:1;3604:15;3638:4;3635:1;3628:15;3654:422;3743:1;3786:5;3743:1;3800:270;3821:7;3811:8;3808:21;3800:270;;;3880:4;3876:1;3872:6;3868:17;3862:4;3859:27;3856:53;;;3889:18;;:::i;:::-;3939:7;3929:8;3925:22;3922:55;;;3959:16;;;;3922:55;4038:22;;;;3998:15;;;;3800:270;;;3804:3;3654:422;;;;;:::o;4081:806::-;4130:5;4160:8;4150:80;;-1:-1:-1;4201:1:1;4215:5;;4150:80;4249:4;4239:76;;-1:-1:-1;4286:1:1;4300:5;;4239:76;4331:4;4349:1;4344:59;;;;4417:1;4412:130;;;;4324:218;;4344:59;4374:1;4365:10;;4388:5;;;4412:130;4449:3;4439:8;4436:17;4433:43;;;4456:18;;:::i;:::-;-1:-1:-1;;4512:1:1;4498:16;;4527:5;;4324:218;;4626:2;4616:8;4613:16;4607:3;4601:4;4598:13;4594:36;4588:2;4578:8;4575:16;4570:2;4564:4;4561:12;4557:35;4554:77;4551:159;;;-1:-1:-1;4663:19:1;;;4695:5;;4551:159;4742:34;4767:8;4761:4;4742:34;:::i;:::-;4812:6;4808:1;4804:6;4800:19;4791:7;4788:32;4785:58;;;4823:18;;:::i;:::-;4861:20;;4081:806;-1:-1:-1;;;4081:806:1:o;4892:140::-;4950:5;4979:47;5020:4;5010:8;5006:19;5000:4;4979:47;:::i;5037:168::-;5110:9;;;5141;;5158:15;;;5152:22;;5138:37;5128:71;;5179:18;;:::i;5210:398::-;5412:2;5394:21;;;5451:2;5431:18;;;5424:30;5490:34;5485:2;5470:18;;5463:62;-1:-1:-1;;;5556:2:1;5541:18;;5534:32;5598:3;5583:19;;5210:398::o;6370:128::-;6437:9;;;6458:11;;;6455:37;;;6472:18;;:::i;6503:356::-;6705:2;6687:21;;;6724:18;;;6717:30;6783:34;6778:2;6763:18;;6756:62;6850:2;6835:18;;6503:356::o;8349:184::-;8419:6;8472:2;8460:9;8451:7;8447:23;8443:32;8440:52;;;8488:1;8485;8478:12;8440:52;-1:-1:-1;8511:16:1;;8349:184;-1:-1:-1;8349:184:1:o;8825:245::-;8892:6;8945:2;8933:9;8924:7;8920:23;8916:32;8913:52;;;8961:1;8958;8951:12;8913:52;8993:9;8987:16;9012:28;9034:5;9012:28;:::i;12214:217::-;12254:1;12280;12270:132;;12324:10;12319:3;12315:20;12312:1;12305:31;12359:4;12356:1;12349:15;12387:4;12384:1;12377:15;12270:132;-1:-1:-1;12416:9:1;;12214:217::o;12790:125::-;12855:9;;;12876:10;;;12873:36;;;12889:18;;:::i;13275:135::-;13314:3;13335:17;;;13332:43;;13355:18;;:::i;:::-;-1:-1:-1;13402:1:1;13391:13;;13275:135::o;13905:127::-;13966:10;13961:3;13957:20;13954:1;13947:31;13997:4;13994:1;13987:15;14021:4;14018:1;14011:15;14037:251;14107:6;14160:2;14148:9;14139:7;14135:23;14131:32;14128:52;;;14176:1;14173;14166:12;14128:52;14208:9;14202:16;14227:31;14252:5;14227:31;:::i;14293:980::-;14555:4;14603:3;14592:9;14588:19;14634:6;14623:9;14616:25;14660:2;14698:6;14693:2;14682:9;14678:18;14671:34;14741:3;14736:2;14725:9;14721:18;14714:31;14765:6;14800;14794:13;14831:6;14823;14816:22;14869:3;14858:9;14854:19;14847:26;;14908:2;14900:6;14896:15;14882:29;;14929:1;14939:195;14953:6;14950:1;14947:13;14939:195;;;15018:13;;-1:-1:-1;;;;;15014:39:1;15002:52;;15109:15;;;;15074:12;;;;15050:1;14968:9;14939:195;;;-1:-1:-1;;;;;;;15190:32:1;;;;15185:2;15170:18;;15163:60;-1:-1:-1;;;15254:3:1;15239:19;15232:35;15151:3;14293:980;-1:-1:-1;;;14293:980:1:o

Swarm Source

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