ETH Price: $2,306.14 (-0.48%)

Token

The Boring Company (TBC)
 

Overview

Max Total Supply

1,000,000,000 TBC

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.68444436 TBC

Value
$0.00
0x08d57Cb0068A2616Dc9b41D08E2d1779f3555B2B
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:
BORING

Compiler Version
v0.8.17+commit.8df45f5f

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

/**

Website: https://boringcompany.vip/
Telegeram: https://t.me/Boringeth
Twitter: https://twitter.com/boring_erc

*/   
 
// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;
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 BORING is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping(address => bool) private isBots;
    address payable private MarketingWallet;

    uint256 public swapTaxes = 10;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals; 
    string private constant _name = "The Boring Company";
    string private constant _symbol = "TBC";
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    uint256 private _taxSwap = 10000000 * 10**_decimals;
    uint256 public maxTxAmount = 10000000 * 10**_decimals;
    
    uint256 private  genesis_block;
    uint256 private deadline = 0;
    uint256 private launchtax = 99;
    
    IUniswapV2Router02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingOpen = false;
    bool private inSwap = false;
    bool public swapEnabled = false;
   
    // Events
    event FeesUpdated(uint256 indexed _feeAmount);
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event FeesRecieverUpdated(address indexed _newWallet);
    event SwapThreshouldUpdated(uint256 indexed tokenAmount);
    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  if (block.chainid == 8453){
     uniswapV2Router = IUniswapV2Router02(0x4cf76043B3f97ba06917cBd90F9e3A2AAC1B306e); // BaseChian rocketSwap Router
     }
    else {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        
         MarketingWallet = payable(0x1C59275025BE306316001958EA4050367f2d21C2);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = 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) {
        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");
        require(!isBots[from] && !isBots[to], "You can't transfer tokens");
         
         uint256 taxAmount;
         uint256 feeswap;

         if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
              require(tradingOpen,"wait for trading to open");
            }
         
         if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && block.number < genesis_block + deadline){
              feeswap = launchtax;
          }
           
         if (from == uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Max TxAmount is 2%");
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Max TxAmount is 2%");
          }
          
          if(to != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
              require(balanceOf(to) + amount <= maxTxAmount, "Max TxAmount is 2%");
          }
  
            taxAmount = amount * (swapTaxes) / (100);
            feeswap = taxAmount;
           
            if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
                  feeswap = 0;
         }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance >= _taxSwap) {
                swapTokensForEth(_taxSwap);
                
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        _balances[from] = _balances[from] - (amount);
        _balances[to] = _balances[to] + (amount - (feeswap));
        emit Transfer(from, to, amount - (feeswap));
        
        if(feeswap > 0){
          _balances[address(this)] = _balances[address(this)] + (feeswap);
          emit Transfer(from, address(this),feeswap);
        }
    } 
    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 excludeFromFee(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   
    function includeFromFee(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   
    function SetFee(uint256 _feeAmount) external onlyOwner {
       require(_feeAmount <= 70, "Must keep fees at 70% or less");
        swapTaxes = _feeAmount;
      emit FeesUpdated(_feeAmount);
   }
    
    function setMarketingWallet(address payable _newWallet) external onlyOwner {
       require(_newWallet != address(this), "CA will not be the Fee Reciever");
       require(_newWallet != address(0), "0 addy will not be the fee Reciever");
       MarketingWallet = _newWallet;
      _isExcludedFromFee[_newWallet] = true;
    emit FeesRecieverUpdated(_newWallet);
    }
    
    function setSwapThreshould(uint256 tokenAmount) external onlyOwner {
        require(tokenAmount <= 1e7, "amount must be less than or equal to 1% of the supply");
        require(tokenAmount >= 1e6, "amount must be greater than or equal to 0.1% of the supply");
        _taxSwap = tokenAmount * 10**_decimals;
    emit SwapThreshouldUpdated(tokenAmount);
    }

   function addBlacklist(address account) external onlyOwner {
        isBots[account] = true;
    }

   function removeBlacklist(address account) external onlyOwner {
        isBots[account] = false;
    }
   
    function removeTxLimits() external onlyOwner {
        maxTxAmount = _tTotal;
    }

   function setMaxTxLimits(uint256 amount) external onlyOwner {
       require(amount >= 1e6, "amount must be greater than or equal to 0.1% of the supply");
        maxTxAmount = amount * 10**_decimals;
    }
   
   function setSwapBackSetting(bool state) external onlyOwner {
        swapEnabled = state;
     emit SwapBackSettingUpdated(state);
    }

  function addLPO() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
  
   function enableTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
       genesis_block = block.number;
            deadline = 3;
      emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function ClearERC20Tokens(address _tokenAddy, uint256 _amount) external onlyOwner {
        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 ClearETHBalance() 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":"uint256","name":"_feeAmount","type":"uint256"}],"name":"FeesUpdated","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":[{"indexed":true,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"SwapThreshouldUpdated","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":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ClearERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ClearETHBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_feeAmount","type":"uint256"}],"name":"SetFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLPO","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"setSwapThreshould","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a6006556009600a6200001991906200060b565b62000028906298968062000623565b600755620000396009600a6200060b565b62000048906298968062000623565b6008556000600a556063600b55600d805462ffffff60a01b191690553480156200007157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35046603803620000e857600c80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e17905562000208565b4660011480620000f85750466005145b156200012a57600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000208565b4661a4b1036200016057600c80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b4799750617905562000208565b466061036200019557600c80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d117905562000208565b4661210503620001cb57600c80546001600160a01b031916734cf76043b3f97ba06917cbd90f9e3a2aac1b306e17905562000208565b60405162461bcd60e51b815260206004820152600e60248201526d15dc9bdb99c810da185a5b88125960921b604482015260640160405180910390fd5b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028291906200063d565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030b91906200063d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000359573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037f91906200063d565b600d80546001600160a01b03929092166001600160a01b031992831617905560058054909116731c59275025be306316001958ea4050367f2d21c2179055620003cb6009600a6200060b565b620003db90633b9aca0062000623565b336000908152600160208190526040822092909255600390620004066000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620004953390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620004cf6009600a6200060b565b620004df90633b9aca0062000623565b60405190815260200160405180910390a362000668565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200054d578160001904821115620005315762000531620004f6565b808516156200053f57918102915b93841c939080029062000511565b509250929050565b600082620005665750600162000605565b81620005755750600062000605565b81600181146200058e57600281146200059957620005b9565b600191505062000605565b60ff841115620005ad57620005ad620004f6565b50506001821b62000605565b5060208310610133831016604e8410600b8410161715620005de575081810a62000605565b620005ea83836200050c565b8060001904821115620006015762000601620004f6565b0290505b92915050565b60006200061c60ff84168362000555565b9392505050565b8082028115828204841417620006055762000605620004f6565b6000602082840312156200065057600080fd5b81516001600160a01b03811681146200061c57600080fd5b6123bf80620006786000396000f3fe6080604052600436106101f15760003560e01c806370a082311161010d5780639cfe42da116100a0578063f083646d1161006f578063f083646d146105d5578063f0f56b6a146105f5578063f2fde38b14610615578063ff51182814610635578063ffb54a991461065557600080fd5b80639cfe42da1461052f578063a9059cbb1461054f578063dd62ed3e1461056f578063eb91e651146105b557600080fd5b80638a8c523c116100dc5780638a8c523c146104ba5780638c0b5e22146104cf5780638da5cb5b146104e557806395d89b411461050357600080fd5b806370a0823114610429578063715018a61461045f578063768dc7101461047457806385141a77146104a457600080fd5b806323b872dd11610185578063481518a011610154578063481518a0146103b25780635d098b38146103d2578063659a8d03146103f25780636ddd17131461040857600080fd5b806323b872dd14610336578063313ce5671461035657806337e9820714610372578063437823ec1461039257600080fd5b806306fdde03116101c157806306fdde031461025e578063095ea7b3146102ab5780631694505e146102db57806318160ddd1461031357600080fd5b8062172ddf146101fd5780630106aaef1461021f578063053a21c214610234578063068b26f11461024957600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611ea8565b610676565b005b34801561022b57600080fd5b5061021d61072d565b34801561024057600080fd5b5061021d610776565b34801561025557600080fd5b5061021d610996565b34801561026a57600080fd5b5060408051808201909152601281527154686520426f72696e6720436f6d70616e7960701b60208201525b6040516102a29190611ec1565b60405180910390f35b3480156102b757600080fd5b506102cb6102c6366004611f24565b610a61565b60405190151581526020016102a2565b3480156102e757600080fd5b50600c546102fb906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561031f57600080fd5b50610328610a78565b6040519081526020016102a2565b34801561034257600080fd5b506102cb610351366004611f50565b610a99565b34801561036257600080fd5b50604051600981526020016102a2565b34801561037e57600080fd5b5061021d61038d366004611ea8565b610b43565b34801561039e57600080fd5b5061021d6103ad366004611f91565b610bac565b3480156103be57600080fd5b5061021d6103cd366004611f24565b610c8f565b3480156103de57600080fd5b5061021d6103ed366004611f91565b610e2d565b3480156103fe57600080fd5b5061032860065481565b34801561041457600080fd5b50600d546102cb90600160b01b900460ff1681565b34801561043557600080fd5b50610328610444366004611f91565b6001600160a01b031660009081526001602052604090205490565b34801561046b57600080fd5b5061021d610f71565b34801561048057600080fd5b506102cb61048f366004611f91565b60036020526000908152604090205460ff1681565b3480156104b057600080fd5b506102fb61dead81565b3480156104c657600080fd5b5061021d610fe5565b3480156104db57600080fd5b5061032860085481565b3480156104f157600080fd5b506000546001600160a01b03166102fb565b34801561050f57600080fd5b5060408051808201909152600381526254424360e81b6020820152610295565b34801561053b57600080fd5b5061021d61054a366004611f91565b6110ae565b34801561055b57600080fd5b506102cb61056a366004611f24565b6110fc565b34801561057b57600080fd5b5061032861058a366004611fb5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105c157600080fd5b5061021d6105d0366004611f91565b611109565b3480156105e157600080fd5b5061021d6105f0366004611ea8565b611154565b34801561060157600080fd5b5061021d610610366004611ffc565b611259565b34801561062157600080fd5b5061021d610630366004611f91565b6112cc565b34801561064157600080fd5b5061021d610650366004611f91565b611364565b34801561066157600080fd5b50600d546102cb90600160a01b900460ff1681565b6000546001600160a01b031633146106a95760405162461bcd60e51b81526004016106a090612019565b60405180910390fd5b60468111156106fa5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373025206f72206c65737300000060448201526064016106a0565b600681905560405181907f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e90600090a250565b6000546001600160a01b031633146107575760405162461bcd60e51b81526004016106a090612019565b6107636009600a612148565b61077190633b9aca00612157565b600855565b6000546001600160a01b031633146107a05760405162461bcd60e51b81526004016106a090612019565b600d54600160a01b900460ff16156107f45760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016106a0565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561084290309061082f6009600a612148565b61083d90633b9aca00612157565b611443565b600c546001600160a01b031663f305d7194730610874816001600160a01b031660009081526001602052604090205490565b6000806108896000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108f1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610916919061216e565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561096f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610993919061219c565b50565b47806109b45760405162461bcd60e51b81526004016106a0906121b9565b478111156109fa5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a0565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a34573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6000610a6e338484611443565b5060015b92915050565b6000610a866009600a612148565b610a9490633b9aca00612157565b905090565b6001600160a01b038316600090815260026020908152604080832033845290915281205482811015610b1e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a0565b610b29858585611567565b610b38853361083d86856121fb565b506001949350505050565b6000546001600160a01b03163314610b6d5760405162461bcd60e51b81526004016106a090612019565b620f4240811015610b905760405162461bcd60e51b81526004016106a09061220e565b610b9c6009600a612148565b610ba69082612157565b60085550565b6000546001600160a01b03163314610bd65760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c435760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106a0565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610cb95760405162461bcd60e51b81526004016106a090612019565b60008111610cd95760405162461bcd60e51b81526004016106a0906121b9565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d41919061226b565b811115610d865760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a0565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd919061219c565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610e575760405162461bcd60e51b81526004016106a090612019565b306001600160a01b03821603610eaf5760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f7420626520746865204665652052656369657665720060448201526064016106a0565b6001600160a01b038116610f115760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b60648201526084016106a0565b600580546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016106a090612019565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461100f5760405162461bcd60e51b81526004016106a090612019565b600d54600160a01b900460ff16156110635760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016106a0565b600d805462ff00ff60a01b19166201000160a01b179055436009556003600a556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b031633146110d85760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610a6e338484611567565b6000546001600160a01b031633146111335760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461117e5760405162461bcd60e51b81526004016106a090612019565b629896808111156111ef5760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b60648201526084016106a0565b620f42408110156112125760405162461bcd60e51b81526004016106a09061220e565b61121e6009600a612148565b6112289082612157565b60075560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b031633146112835760405162461bcd60e51b81526004016106a090612019565b600d805460ff60b01b1916600160b01b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03811661135b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a0565b61099381611c03565b6000546001600160a01b0316331461138e5760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03811660009081526003602052604081205460ff16151590036113fa5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016106a0565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6001600160a01b0383166114a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a0565b6001600160a01b0382166115065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115cb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a0565b6001600160a01b03821661162d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a0565b6000811161168f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a0565b6001600160a01b03831660009081526004602052604090205460ff161580156116d157506001600160a01b03821660009081526004602052604090205460ff16155b61171d5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016106a0565b6001600160a01b038316600090815260036020526040812054819060ff1615801561176157506001600160a01b03841660009081526003602052604090205460ff16155b156117bf57600d54600160a01b900460ff166117bf5760405162461bcd60e51b815260206004820152601860248201527f7761697420666f722074726164696e6720746f206f70656e000000000000000060448201526064016106a0565b6001600160a01b03851660009081526003602052604090205460ff1615801561180157506001600160a01b03841660009081526003602052604090205460ff16155b801561181b5750600a546009546118189190612284565b43105b156118255750600b545b600d546001600160a01b03868116911614801561185b57506001600160a01b03851660009081526003602052604090205460ff16155b801561188057506001600160a01b03841660009081526003602052604090205460ff16155b156118a7576008548311156118a75760405162461bcd60e51b81526004016106a090612297565b600d546001600160a01b038681169116148015906118de57506001600160a01b03851660009081526003602052604090205460ff16155b801561190357506001600160a01b03841660009081526003602052604090205460ff16155b1561192a5760085483111561192a5760405162461bcd60e51b81526004016106a090612297565b600d546001600160a01b0385811691161480159061196157506001600160a01b03851660009081526003602052604090205460ff16155b801561198657506001600160a01b03841660009081526003602052604090205460ff16155b156119d657600854836119ae866001600160a01b031660009081526001602052604090205490565b6119b89190612284565b11156119d65760405162461bcd60e51b81526004016106a090612297565b6064600654846119e69190612157565b6119f091906122c3565b6001600160a01b03861660009081526003602052604090205490925082915060ff1680611a3557506001600160a01b03841660009081526003602052604090205460ff165b15611a3e575060005b30600090815260016020526040902054600d54600160a81b900460ff16158015611a765750600d546001600160a01b03878116911614155b8015611a8b5750600d54600160b01b900460ff165b8015611a9957506007548110155b15611abb57611aa9600754611c53565b478015611ab957611ab947611e1a565b505b6001600160a01b038616600090815260016020526040902054611adf9085906121fb565b6001600160a01b038716600090815260016020526040902055611b0282856121fb565b6001600160a01b038616600090815260016020526040902054611b259190612284565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b6f85886121fb565b60405190815260200160405180910390a38115611bfb5730600090815260016020526040902054611ba1908390612284565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf29086815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805460ff60a81b1916600160a81b17905580611cb35760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016106a0565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ce857611ce86122e5565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6591906122fb565b81600181518110611d7857611d786122e5565b6001600160a01b039283166020918202929092010152600c54611d9e9130911684611443565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd7908590600090869030904290600401612318565b600060405180830381600087803b158015611df157600080fd5b505af1158015611e05573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008111611e6a5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016106a0565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ea4573d6000803e3d6000fd5b5050565b600060208284031215611eba57600080fd5b5035919050565b600060208083528351808285015260005b81811015611eee57858101830151858201604001528201611ed2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461099357600080fd5b60008060408385031215611f3757600080fd5b8235611f4281611f0f565b946020939093013593505050565b600080600060608486031215611f6557600080fd5b8335611f7081611f0f565b92506020840135611f8081611f0f565b929592945050506040919091013590565b600060208284031215611fa357600080fd5b8135611fae81611f0f565b9392505050565b60008060408385031215611fc857600080fd5b8235611fd381611f0f565b91506020830135611fe381611f0f565b809150509250929050565b801515811461099357600080fd5b60006020828403121561200e57600080fd5b8135611fae81611fee565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561209f5781600019048211156120855761208561204e565b8085161561209257918102915b93841c9390800290612069565b509250929050565b6000826120b657506001610a72565b816120c357506000610a72565b81600181146120d957600281146120e3576120ff565b6001915050610a72565b60ff8411156120f4576120f461204e565b50506001821b610a72565b5060208310610133831016604e8410600b8410161715612122575081810a610a72565b61212c8383612064565b80600019048211156121405761214061204e565b029392505050565b6000611fae60ff8416836120a7565b8082028115828204841417610a7257610a7261204e565b60008060006060848603121561218357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156121ae57600080fd5b8151611fae81611fee565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b81810381811115610a7257610a7261204e565b6020808252603a908201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560408201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000606082015260800190565b60006020828403121561227d57600080fd5b5051919050565b80820180821115610a7257610a7261204e565b6020808252601290820152714d6178205478416d6f756e7420697320322560701b604082015260600190565b6000826122e057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561230d57600080fd5b8151611fae81611f0f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123685784516001600160a01b031683529383019391830191600101612343565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208a65dddc617ba02f802597ab0d331db16ea77a2a9d1c91f20add16392692b70a64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c806370a082311161010d5780639cfe42da116100a0578063f083646d1161006f578063f083646d146105d5578063f0f56b6a146105f5578063f2fde38b14610615578063ff51182814610635578063ffb54a991461065557600080fd5b80639cfe42da1461052f578063a9059cbb1461054f578063dd62ed3e1461056f578063eb91e651146105b557600080fd5b80638a8c523c116100dc5780638a8c523c146104ba5780638c0b5e22146104cf5780638da5cb5b146104e557806395d89b411461050357600080fd5b806370a0823114610429578063715018a61461045f578063768dc7101461047457806385141a77146104a457600080fd5b806323b872dd11610185578063481518a011610154578063481518a0146103b25780635d098b38146103d2578063659a8d03146103f25780636ddd17131461040857600080fd5b806323b872dd14610336578063313ce5671461035657806337e9820714610372578063437823ec1461039257600080fd5b806306fdde03116101c157806306fdde031461025e578063095ea7b3146102ab5780631694505e146102db57806318160ddd1461031357600080fd5b8062172ddf146101fd5780630106aaef1461021f578063053a21c214610234578063068b26f11461024957600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611ea8565b610676565b005b34801561022b57600080fd5b5061021d61072d565b34801561024057600080fd5b5061021d610776565b34801561025557600080fd5b5061021d610996565b34801561026a57600080fd5b5060408051808201909152601281527154686520426f72696e6720436f6d70616e7960701b60208201525b6040516102a29190611ec1565b60405180910390f35b3480156102b757600080fd5b506102cb6102c6366004611f24565b610a61565b60405190151581526020016102a2565b3480156102e757600080fd5b50600c546102fb906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561031f57600080fd5b50610328610a78565b6040519081526020016102a2565b34801561034257600080fd5b506102cb610351366004611f50565b610a99565b34801561036257600080fd5b50604051600981526020016102a2565b34801561037e57600080fd5b5061021d61038d366004611ea8565b610b43565b34801561039e57600080fd5b5061021d6103ad366004611f91565b610bac565b3480156103be57600080fd5b5061021d6103cd366004611f24565b610c8f565b3480156103de57600080fd5b5061021d6103ed366004611f91565b610e2d565b3480156103fe57600080fd5b5061032860065481565b34801561041457600080fd5b50600d546102cb90600160b01b900460ff1681565b34801561043557600080fd5b50610328610444366004611f91565b6001600160a01b031660009081526001602052604090205490565b34801561046b57600080fd5b5061021d610f71565b34801561048057600080fd5b506102cb61048f366004611f91565b60036020526000908152604090205460ff1681565b3480156104b057600080fd5b506102fb61dead81565b3480156104c657600080fd5b5061021d610fe5565b3480156104db57600080fd5b5061032860085481565b3480156104f157600080fd5b506000546001600160a01b03166102fb565b34801561050f57600080fd5b5060408051808201909152600381526254424360e81b6020820152610295565b34801561053b57600080fd5b5061021d61054a366004611f91565b6110ae565b34801561055b57600080fd5b506102cb61056a366004611f24565b6110fc565b34801561057b57600080fd5b5061032861058a366004611fb5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156105c157600080fd5b5061021d6105d0366004611f91565b611109565b3480156105e157600080fd5b5061021d6105f0366004611ea8565b611154565b34801561060157600080fd5b5061021d610610366004611ffc565b611259565b34801561062157600080fd5b5061021d610630366004611f91565b6112cc565b34801561064157600080fd5b5061021d610650366004611f91565b611364565b34801561066157600080fd5b50600d546102cb90600160a01b900460ff1681565b6000546001600160a01b031633146106a95760405162461bcd60e51b81526004016106a090612019565b60405180910390fd5b60468111156106fa5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420373025206f72206c65737300000060448201526064016106a0565b600681905560405181907f9fe6eeb0f0541c644a56c67efeb872dbadd803a60b909d7dde1b35a3fe230b0e90600090a250565b6000546001600160a01b031633146107575760405162461bcd60e51b81526004016106a090612019565b6107636009600a612148565b61077190633b9aca00612157565b600855565b6000546001600160a01b031633146107a05760405162461bcd60e51b81526004016106a090612019565b600d54600160a01b900460ff16156107f45760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016106a0565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561084290309061082f6009600a612148565b61083d90633b9aca00612157565b611443565b600c546001600160a01b031663f305d7194730610874816001600160a01b031660009081526001602052604090205490565b6000806108896000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108f1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610916919061216e565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561096f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610993919061219c565b50565b47806109b45760405162461bcd60e51b81526004016106a0906121b9565b478111156109fa5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a0565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610a34573d6000803e3d6000fd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767590600090a150565b6000610a6e338484611443565b5060015b92915050565b6000610a866009600a612148565b610a9490633b9aca00612157565b905090565b6001600160a01b038316600090815260026020908152604080832033845290915281205482811015610b1e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106a0565b610b29858585611567565b610b38853361083d86856121fb565b506001949350505050565b6000546001600160a01b03163314610b6d5760405162461bcd60e51b81526004016106a090612019565b620f4240811015610b905760405162461bcd60e51b81526004016106a09061220e565b610b9c6009600a612148565b610ba69082612157565b60085550565b6000546001600160a01b03163314610bd65760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03811660009081526003602052604090205460ff161515600103610c435760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016106a0565b6001600160a01b038116600081815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b6000546001600160a01b03163314610cb95760405162461bcd60e51b81526004016106a090612019565b60008111610cd95760405162461bcd60e51b81526004016106a0906121b9565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610d1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d41919061226b565b811115610d865760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016106a0565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610dd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfd919061219c565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2290600090a25050565b6000546001600160a01b03163314610e575760405162461bcd60e51b81526004016106a090612019565b306001600160a01b03821603610eaf5760405162461bcd60e51b815260206004820152601f60248201527f43412077696c6c206e6f7420626520746865204665652052656369657665720060448201526064016106a0565b6001600160a01b038116610f115760405162461bcd60e51b815260206004820152602360248201527f3020616464792077696c6c206e6f7420626520746865206665652052656369656044820152623b32b960e91b60648201526084016106a0565b600580546001600160a01b0319166001600160a01b038316908117909155600081815260036020526040808220805460ff19166001179055517f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f59190a250565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b81526004016106a090612019565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461100f5760405162461bcd60e51b81526004016106a090612019565b600d54600160a01b900460ff16156110635760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b60448201526064016106a0565b600d805462ff00ff60a01b19166201000160a01b179055436009556003600a556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93590600090a1565b6000546001600160a01b031633146110d85760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000610a6e338484611567565b6000546001600160a01b031633146111335760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461117e5760405162461bcd60e51b81526004016106a090612019565b629896808111156111ef5760405162461bcd60e51b815260206004820152603560248201527f616d6f756e74206d757374206265206c657373207468616e206f7220657175616044820152746c20746f203125206f662074686520737570706c7960581b60648201526084016106a0565b620f42408110156112125760405162461bcd60e51b81526004016106a09061220e565b61121e6009600a612148565b6112289082612157565b60075560405181907f2d70831e8ba235b516ecf7a8145985014eb4c8fd728d7358dcefeda7b46d081490600090a250565b6000546001600160a01b031633146112835760405162461bcd60e51b81526004016106a090612019565b600d805460ff60b01b1916600160b01b831515908102919091179091556040517f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb90600090a250565b6000546001600160a01b031633146112f65760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03811661135b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a0565b61099381611c03565b6000546001600160a01b0316331461138e5760405162461bcd60e51b81526004016106a090612019565b6001600160a01b03811660009081526003602052604081205460ff16151590036113fa5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016106a0565b6001600160a01b038116600081815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b6001600160a01b0383166114a55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106a0565b6001600160a01b0382166115065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106a0565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166115cb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106a0565b6001600160a01b03821661162d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106a0565b6000811161168f5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106a0565b6001600160a01b03831660009081526004602052604090205460ff161580156116d157506001600160a01b03821660009081526004602052604090205460ff16155b61171d5760405162461bcd60e51b815260206004820152601960248201527f596f752063616e2774207472616e7366657220746f6b656e730000000000000060448201526064016106a0565b6001600160a01b038316600090815260036020526040812054819060ff1615801561176157506001600160a01b03841660009081526003602052604090205460ff16155b156117bf57600d54600160a01b900460ff166117bf5760405162461bcd60e51b815260206004820152601860248201527f7761697420666f722074726164696e6720746f206f70656e000000000000000060448201526064016106a0565b6001600160a01b03851660009081526003602052604090205460ff1615801561180157506001600160a01b03841660009081526003602052604090205460ff16155b801561181b5750600a546009546118189190612284565b43105b156118255750600b545b600d546001600160a01b03868116911614801561185b57506001600160a01b03851660009081526003602052604090205460ff16155b801561188057506001600160a01b03841660009081526003602052604090205460ff16155b156118a7576008548311156118a75760405162461bcd60e51b81526004016106a090612297565b600d546001600160a01b038681169116148015906118de57506001600160a01b03851660009081526003602052604090205460ff16155b801561190357506001600160a01b03841660009081526003602052604090205460ff16155b1561192a5760085483111561192a5760405162461bcd60e51b81526004016106a090612297565b600d546001600160a01b0385811691161480159061196157506001600160a01b03851660009081526003602052604090205460ff16155b801561198657506001600160a01b03841660009081526003602052604090205460ff16155b156119d657600854836119ae866001600160a01b031660009081526001602052604090205490565b6119b89190612284565b11156119d65760405162461bcd60e51b81526004016106a090612297565b6064600654846119e69190612157565b6119f091906122c3565b6001600160a01b03861660009081526003602052604090205490925082915060ff1680611a3557506001600160a01b03841660009081526003602052604090205460ff165b15611a3e575060005b30600090815260016020526040902054600d54600160a81b900460ff16158015611a765750600d546001600160a01b03878116911614155b8015611a8b5750600d54600160b01b900460ff165b8015611a9957506007548110155b15611abb57611aa9600754611c53565b478015611ab957611ab947611e1a565b505b6001600160a01b038616600090815260016020526040902054611adf9085906121fb565b6001600160a01b038716600090815260016020526040902055611b0282856121fb565b6001600160a01b038616600090815260016020526040902054611b259190612284565b6001600160a01b0380871660008181526001602052604090209290925587167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611b6f85886121fb565b60405190815260200160405180910390a38115611bfb5730600090815260016020526040902054611ba1908390612284565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf29086815260200190565b60405180910390a35b505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600d805460ff60a81b1916600160a81b17905580611cb35760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016106a0565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ce857611ce86122e5565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6591906122fb565b81600181518110611d7857611d786122e5565b6001600160a01b039283166020918202929092010152600c54611d9e9130911684611443565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd7908590600090869030904290600401612318565b600060405180830381600087803b158015611df157600080fd5b505af1158015611e05573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b60008111611e6a5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016106a0565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611ea4573d6000803e3d6000fd5b5050565b600060208284031215611eba57600080fd5b5035919050565b600060208083528351808285015260005b81811015611eee57858101830151858201604001528201611ed2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461099357600080fd5b60008060408385031215611f3757600080fd5b8235611f4281611f0f565b946020939093013593505050565b600080600060608486031215611f6557600080fd5b8335611f7081611f0f565b92506020840135611f8081611f0f565b929592945050506040919091013590565b600060208284031215611fa357600080fd5b8135611fae81611f0f565b9392505050565b60008060408385031215611fc857600080fd5b8235611fd381611f0f565b91506020830135611fe381611f0f565b809150509250929050565b801515811461099357600080fd5b60006020828403121561200e57600080fd5b8135611fae81611fee565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561209f5781600019048211156120855761208561204e565b8085161561209257918102915b93841c9390800290612069565b509250929050565b6000826120b657506001610a72565b816120c357506000610a72565b81600181146120d957600281146120e3576120ff565b6001915050610a72565b60ff8411156120f4576120f461204e565b50506001821b610a72565b5060208310610133831016604e8410600b8410161715612122575081810a610a72565b61212c8383612064565b80600019048211156121405761214061204e565b029392505050565b6000611fae60ff8416836120a7565b8082028115828204841417610a7257610a7261204e565b60008060006060848603121561218357600080fd5b8351925060208401519150604084015190509250925092565b6000602082840312156121ae57600080fd5b8151611fae81611fee565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b81810381811115610a7257610a7261204e565b6020808252603a908201527f616d6f756e74206d7573742062652067726561746572207468616e206f72206560408201527f7175616c20746f20302e3125206f662074686520737570706c79000000000000606082015260800190565b60006020828403121561227d57600080fd5b5051919050565b80820180821115610a7257610a7261204e565b6020808252601290820152714d6178205478416d6f756e7420697320322560701b604082015260600190565b6000826122e057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561230d57600080fd5b8151611fae81611f0f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156123685784516001600160a01b031683529383019391830191600101612343565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208a65dddc617ba02f802597ab0d331db16ea77a2a9d1c91f20add16392692b70a64736f6c63430008110033

Deployed Bytecode Sourcemap

2886:11751:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11424:200;;;;;;;;;;-1:-1:-1;11424:200:0;;;;;:::i;:::-;;:::i;:::-;;12613:85;;;;;;;;;;;;;:::i;13068:487::-;;;;;;;;;;;;;:::i;14255:379::-;;;;;;;;;;;;;:::i;6045:83::-;;;;;;;;;;-1:-1:-1;6115:5:0;;;;;;;;;;;;-1:-1:-1;;;6115:5:0;;;;6045:83;;;;;;;:::i;:::-;;;;;;;;6878:161;;;;;;;;;;-1:-1:-1;6878:161:0;;;;;:::i;:::-;;:::i;:::-;;;1373:14:1;;1366:22;1348:41;;1336:2;1321:18;6878:161:0;1208:187:1;3796:41:0;;;;;;;;;;-1:-1:-1;3796:41:0;;;;-1:-1:-1;;;;;3796:41:0;;;;;;-1:-1:-1;;;;;1590:32:1;;;1572:51;;1560:2;1545:18;3796:41:0;1400:229:1;6322:95:0;;;;;;;;;;;;;:::i;:::-;;;1780:25:1;;;1768:2;1753:18;6322:95:0;1634:177:1;7047:410:0;;;;;;;;;;-1:-1:-1;7047:410:0;;;;;:::i;:::-;;:::i;6231:83::-;;;;;;;;;;-1:-1:-1;6231:83:0;;3289:1;2419:36:1;;2407:2;2392:18;6231:83:0;2277:184:1;12705:208:0;;;;;;;;;;-1:-1:-1;12705:208:0;;;;;:::i;:::-;;:::i;10921:236::-;;;;;;;;;;-1:-1:-1;10921:236:0;;;;;:::i;:::-;;:::i;13885:364::-;;;;;;;;;;-1:-1:-1;13885:364:0;;;;;:::i;:::-;;:::i;11636:373::-;;;;;;;;;;-1:-1:-1;11636:373:0;;;;;:::i;:::-;;:::i;3218:29::-;;;;;;;;;;;;;;;;3952:31;;;;;;;;;;-1:-1:-1;3952:31:0;;;;-1:-1:-1;;;3952:31:0;;;;;;6425:119;;;;;;;;;;-1:-1:-1;6425:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6518:18:0;6491:7;6518:18;;;:9;:18;;;;;;;6425:119;1967:148;;;;;;;;;;;;;:::i;3066:51::-;;;;;;;;;;-1:-1:-1;3066:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3471:79;;;;;;;;;;;;3508:42;3471:79;;13564:269;;;;;;;;;;;;;:::i;3615:53::-;;;;;;;;;;;;;;;;1327:79;;;;;;;;;;-1:-1:-1;1365:7:0;1392:6;-1:-1:-1;;;;;1392:6:0;1327:79;;6136:87;;;;;;;;;;-1:-1:-1;6208:7:0;;;;;;;;;;;;-1:-1:-1;;;6208:7:0;;;;6136:87;;12393:99;;;;;;;;;;-1:-1:-1;12393:99:0;;;;;:::i;:::-;;:::i;6552:167::-;;;;;;;;;;-1:-1:-1;6552:167:0;;;;;:::i;:::-;;:::i;6727:143::-;;;;;;;;;;-1:-1:-1;6727:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6835:18:0;;;6808:7;6835:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6727:143;12499:103;;;;;;;;;;-1:-1:-1;12499:103:0;;;;;:::i;:::-;;:::i;12021:365::-;;;;;;;;;;-1:-1:-1;12021:365:0;;;;;:::i;:::-;;:::i;12923:139::-;;;;;;;;;;-1:-1:-1;12923:139:0;;;;;:::i;:::-;;:::i;1544:203::-;;;;;;;;;;-1:-1:-1;1544:203:0;;;;;:::i;:::-;;:::i;11168:245::-;;;;;;;;;;-1:-1:-1;11168:245:0;;;;;:::i;:::-;;:::i;3880:31::-;;;;;;;;;;-1:-1:-1;3880:31:0;;;;-1:-1:-1;;;3880:31:0;;;;;;11424:200;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;;;;;;;;;11511:2:::1;11497:10;:16;;11489:58;;;::::0;-1:-1:-1;;;11489:58:0;;4511:2:1;11489:58:0::1;::::0;::::1;4493:21:1::0;4550:2;4530:18;;;4523:30;4589:31;4569:18;;;4562:59;4638:18;;11489:58:0::1;4309:353:1::0;11489:58:0::1;11558:9;:22:::0;;;11594:23:::1;::::0;11570:10;;11594:23:::1;::::0;;;::::1;11424:200:::0;:::o;12613:85::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;3345:13:::1;3289:1;3345:2;:13;:::i;:::-;3332:26;::::0;:10:::1;:26;:::i;:::-;12669:11;:21:::0;12613:85::o;13068:487::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;13127:11:::1;::::0;-1:-1:-1;;;13127:11:0;::::1;;;13126:12;13118:47;;;::::0;-1:-1:-1;;;13118:47:0;;6557:2:1;13118:47:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;-1:-1:-1;;;6615:18:1;;;6608:53;6678:18;;13118:47:0::1;6355:347:1::0;13118:47:0::1;13176:15;:80:::0;;-1:-1:-1;;;;;;13176:80:0::1;13213:42;13176:80:::0;;::::1;::::0;;;13267:58:::1;::::0;13284:4:::1;::::0;3345:13:::1;3289:1;3345:2;:13;:::i;:::-;3332:26;::::0;:10:::1;:26;:::i;:::-;13267:8;:58::i;:::-;13336:15;::::0;-1:-1:-1;;;;;13336:15:0::1;:31;13375:21;13406:4;13412:24;13406:4:::0;-1:-1:-1;;;;;6518:18:0;6491:7;6518:18;;;:9;:18;;;;;;;6425:119;13412:24:::1;13437:1;13439::::0;13441:7:::1;1365::::0;1392:6;-1:-1:-1;;;;;1392:6:0;;1327:79;13441:7:::1;13336:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13336:129:0;;;-1:-1:-1;;;;;7066:15:1;;;13336:129:0::1;::::0;::::1;7048:34:1::0;7098:18;;;7091:34;;;;7141:18;;;7134:34;;;;7184:18;;;7177:34;7248:15;;;7227:19;;;7220:44;13449:15:0::1;7280:19:1::0;;;7273:35;6982:19;;13336:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13483:13:0::1;::::0;13514:15:::1;::::0;13476:71:::1;::::0;-1:-1:-1;;;13476:71:0;;-1:-1:-1;;;;;13514:15:0;;::::1;13476:71;::::0;::::1;7804:51:1::0;-1:-1:-1;;7871:18:1;;;7864:34;13483:13:0;::::1;::::0;-1:-1:-1;13476:29:0::1;::::0;7777:18:1;;13476:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13068:487::o:0;14255:379::-;14331:21;14371:22;14363:69;;;;-1:-1:-1;;;14363:69:0;;;;;;;:::i;:::-;14473:21;14451:18;:43;;14443:75;;;;-1:-1:-1;;;14443:75:0;;8764:2:1;14443:75:0;;;8746:21:1;8803:2;8783:18;;;8776:30;-1:-1:-1;;;8822:18:1;;;8815:49;8881:18;;14443:75:0;8562:343:1;14443:75:0;14545:15;;14529:62;;-1:-1:-1;;;;;14545:15:0;;;;14529:62;;;;;14572:18;;14545:15;14529:62;14545:15;14529:62;14572:18;14545:15;14529:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14605:21:0;;;;;;;14291:343;14255:379::o;6878:161::-;6953:4;6970:39;305:10;6993:7;7002:6;6970:8;:39::i;:::-;-1:-1:-1;7027:4:0;6878:161;;;;;:::o;6322:95::-;6375:7;3345:13;3289:1;3345:2;:13;:::i;:::-;3332:26;;:10;:26;:::i;:::-;6395:14;;6322:95;:::o;7047:410::-;-1:-1:-1;;;;;7189:19:0;;7145:4;7189:19;;;:11;:19;;;;;;;;305:10;7189:33;;;;;;;;7241:26;;;;7233:79;;;;-1:-1:-1;;;7233:79:0;;9112:2:1;7233:79:0;;;9094:21:1;9151:2;9131:18;;;9124:30;9190:34;9170:18;;;9163:62;-1:-1:-1;;;9241:18:1;;;9234:38;9289:19;;7233:79:0;8910:404:1;7233:79:0;7323:36;7333:6;7341:9;7352:6;7323:9;:36::i;:::-;7370:57;7379:6;305:10;7401:25;7420:6;7401:16;:25;:::i;7370:57::-;-1:-1:-1;7445:4:0;;7047:410;-1:-1:-1;;;;7047:410:0:o;12705:208::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;12792:3:::1;12782:6;:13;;12774:84;;;;-1:-1:-1::0;;;12774:84:0::1;;;;;;;:::i;:::-;12892:13;3289:1;12892:2;:13;:::i;:::-;12883:22;::::0;:6;:22:::1;:::i;:::-;12869:11;:36:::0;-1:-1:-1;12705:208:0:o;10921:236::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10998:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;10990:74:::1;;;::::0;-1:-1:-1;;;10990:74:0;;10081:2:1;10990:74:0::1;::::0;::::1;10063:21:1::0;10120:2;10100:18;;;10093:30;10159:29;10139:18;;;10132:57;10206:18;;10990:74:0::1;9879:351:1::0;10990:74:0::1;-1:-1:-1::0;;;;;11074:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;11074:34:0::1;11104:4;11074:34;::::0;;11120:30;::::1;::::0;11074:27;11120:30:::1;10921:236:::0;:::o;13885:364::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;13996:1:::1;13986:7;:11;13978:58;;;;-1:-1:-1::0;;;13978:58:0::1;;;;;;;:::i;:::-;14066:43;::::0;-1:-1:-1;;;14066:43:0;;14103:4:::1;14066:43;::::0;::::1;1572:51:1::0;-1:-1:-1;;;;;14066:28:0;::::1;::::0;::::1;::::0;1545:18:1;;14066:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14055:7;:54;;14047:86;;;::::0;-1:-1:-1;;;14047:86:0;;8764:2:1;14047:86:0::1;::::0;::::1;8746:21:1::0;8803:2;8783:18;;;8776:30;-1:-1:-1;;;8822:18:1;;;8815:49;8881:18;;14047:86:0::1;8562:343:1::0;14047:86:0::1;14172:15;::::0;14144:53:::1;::::0;-1:-1:-1;;;14144:53:0;;-1:-1:-1;;;;;14172:15:0;;::::1;14144:53;::::0;::::1;7804:51:1::0;7871:18;;;7864:34;;;14144:27:0;;::::1;::::0;::::1;::::0;7777:18:1;;14144:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14211:29:0::1;::::0;14232:7;;14211:29:::1;::::0;;;::::1;13885:364:::0;;:::o;11636:373::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;11751:4:::1;-1:-1:-1::0;;;;;11729:27:0;::::1;::::0;11721:71:::1;;;::::0;-1:-1:-1;;;11721:71:0;;10913:2:1;11721:71:0::1;::::0;::::1;10895:21:1::0;10952:2;10932:18;;;10925:30;10991:33;10971:18;;;10964:61;11042:18;;11721:71:0::1;10711:355:1::0;11721:71:0::1;-1:-1:-1::0;;;;;11810:24:0;::::1;11802:72;;;::::0;-1:-1:-1;;;11802:72:0;;11273:2:1;11802:72:0::1;::::0;::::1;11255:21:1::0;11312:2;11292:18;;;11285:30;11351:34;11331:18;;;11324:62;-1:-1:-1;;;11402:18:1;;;11395:33;11445:19;;11802:72:0::1;11071:399:1::0;11802:72:0::1;11884:15;:28:::0;;-1:-1:-1;;;;;;11884:28:0::1;-1:-1:-1::0;;;;;11884:28:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11921:30:0;;;:18:::1;:30;::::0;;;;;:37;;-1:-1:-1;;11921:37:0::1;-1:-1:-1::0;11921:37:0::1;::::0;;11970:31;::::1;::::0;-1:-1:-1;11970:31:0::1;11636:373:::0;:::o;1967:148::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;2074:1:::1;2058:6:::0;;2037:40:::1;::::0;-1:-1:-1;;;;;2058:6:0;;::::1;::::0;2037:40:::1;::::0;2074:1;;2037:40:::1;2105:1;2088:19:::0;;-1:-1:-1;;;;;;2088:19:0::1;::::0;;1967:148::o;13564:269::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;13630:11:::1;::::0;-1:-1:-1;;;13630:11:0;::::1;;;13629:12;13621:47;;;::::0;-1:-1:-1;;;13621:47:0;;6557:2:1;13621:47:0::1;::::0;::::1;6539:21:1::0;6596:2;6576:18;;;6569:30;-1:-1:-1;;;6615:18:1;;;6608:53;6678:18;;13621:47:0::1;6355:347:1::0;13621:47:0::1;13679:11;:18:::0;;-1:-1:-1;;;;13708:18:0;-1:-1:-1;;;13708:18:0;;;13752:12:::1;13736:13;:28:::0;13790:1:::1;13779:8;:12:::0;13805:20:::1;::::0;::::1;::::0;-1:-1:-1;;13805:20:0::1;13564:269::o:0;12393:99::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12462:15:0::1;;::::0;;;:6:::1;:15;::::0;;;;:22;;-1:-1:-1;;12462:22:0::1;12480:4;12462:22;::::0;;12393:99::o;6552:167::-;6630:4;6647:42;305:10;6671:9;6682:6;6647:9;:42::i;12499:103::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12571:15:0::1;12589:5;12571:15:::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;12571:23:0::1;::::0;;12499:103::o;12021:365::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;12122:3:::1;12107:11;:18;;12099:84;;;::::0;-1:-1:-1;;;12099:84:0;;11677:2:1;12099:84:0::1;::::0;::::1;11659:21:1::0;11716:2;11696:18;;;11689:30;11755:34;11735:18;;;11728:62;-1:-1:-1;;;11806:18:1;;;11799:51;11867:19;;12099:84:0::1;11475:417:1::0;12099:84:0::1;12217:3;12202:11;:18;;12194:89;;;;-1:-1:-1::0;;;12194:89:0::1;;;;;;;:::i;:::-;12319:13;3289:1;12319:2;:13;:::i;:::-;12305:27;::::0;:11;:27:::1;:::i;:::-;12294:8;:38:::0;12344:34:::1;::::0;12366:11;;12344:34:::1;::::0;;;::::1;12021:365:::0;:::o;12923:139::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;12993:11:::1;:19:::0;;-1:-1:-1;;;;12993:19:0::1;-1:-1:-1::0;;;12993:19:0;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;;13025:29:::1;::::0;::::1;::::0;-1:-1:-1;;13025:29:0::1;12923:139:::0;:::o;1544:203::-;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1635:22:0;::::1;1627:73;;;::::0;-1:-1:-1;;;1627:73:0;;12099:2:1;1627:73:0::1;::::0;::::1;12081:21:1::0;12138:2;12118:18;;;12111:30;12177:34;12157:18;;;12150:62;-1:-1:-1;;;12228:18:1;;;12221:36;12274:19;;1627:73:0::1;11897:402:1::0;1627:73:0::1;1711:28;1730:8;1711:18;:28::i;11168:245::-:0;1454:6;;-1:-1:-1;;;;;1454:6:0;305:10;1454:22;1446:67;;;;-1:-1:-1;;;1446:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11248:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;11240:76:::1;;;::::0;-1:-1:-1;;;11240:76:0;;12506:2:1;11240:76:0::1;::::0;::::1;12488:21:1::0;12545:2;12525:18;;;12518:30;12584:29;12564:18;;;12557:57;12631:18;;11240:76:0::1;12304:351:1::0;11240:76:0::1;-1:-1:-1::0;;;;;11327:27:0;::::1;11357:5;11327:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;11327:35:0::1;::::0;;11375:30;::::1;::::0;11357:5;11375:30:::1;11168:245:::0;:::o;7465:335::-;-1:-1:-1;;;;;7558:19:0;;7550:68;;;;-1:-1:-1;;;7550:68:0;;12862:2:1;7550:68:0;;;12844:21:1;12901:2;12881:18;;;12874:30;12940:34;12920:18;;;12913:62;-1:-1:-1;;;12991:18:1;;;12984:34;13035:19;;7550:68:0;12660:400:1;7550:68:0;-1:-1:-1;;;;;7637:21:0;;7629:68;;;;-1:-1:-1;;;7629:68:0;;13267:2:1;7629:68:0;;;13249:21:1;13306:2;13286:18;;;13279:30;13345:34;13325:18;;;13318:62;-1:-1:-1;;;13396:18:1;;;13389:32;13438:19;;7629:68:0;13065:398:1;7629:68:0;-1:-1:-1;;;;;7708:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7760:32;;1780:25:1;;;7760:32:0;;1753:18:1;7760:32:0;;;;;;;7465:335;;;:::o;7808:2381::-;-1:-1:-1;;;;;7896:18:0;;7888:68;;;;-1:-1:-1;;;7888:68:0;;13670:2:1;7888:68:0;;;13652:21:1;13709:2;13689:18;;;13682:30;13748:34;13728:18;;;13721:62;-1:-1:-1;;;13799:18:1;;;13792:35;13844:19;;7888:68:0;13468:401:1;7888:68:0;-1:-1:-1;;;;;7975:16:0;;7967:64;;;;-1:-1:-1;;;7967:64:0;;14076:2:1;7967:64:0;;;14058:21:1;14115:2;14095:18;;;14088:30;14154:34;14134:18;;;14127:62;-1:-1:-1;;;14205:18:1;;;14198:33;14248:19;;7967:64:0;13874:399:1;7967:64:0;8059:1;8050:6;:10;8042:64;;;;-1:-1:-1;;;8042:64:0;;14480:2:1;8042:64:0;;;14462:21:1;14519:2;14499:18;;;14492:30;14558:34;14538:18;;;14531:62;-1:-1:-1;;;14609:18:1;;;14602:39;14658:19;;8042:64:0;14278:405:1;8042:64:0;-1:-1:-1;;;;;8126:12:0;;;;;;:6;:12;;;;;;;;8125:13;:28;;;;-1:-1:-1;;;;;;8143:10:0;;;;;;:6;:10;;;;;;;;8142:11;8125:28;8117:66;;;;-1:-1:-1;;;8117:66:0;;14890:2:1;8117:66:0;;;14872:21:1;14929:2;14909:18;;;14902:30;14968:27;14948:18;;;14941:55;15013:18;;8117:66:0;14688:349:1;8117:66:0;-1:-1:-1;;;;;8269:24:0;;8206:17;8269:24;;;:18;:24;;;;;;8206:17;;8269:24;;8268:25;:52;;;;-1:-1:-1;;;;;;8298:22:0;;;;;;:18;:22;;;;;;;;8297:23;8268:52;8264:138;;;8347:11;;-1:-1:-1;;;8347:11:0;;;;8339:47;;;;-1:-1:-1;;;8339:47:0;;15244:2:1;8339:47:0;;;15226:21:1;15283:2;15263:18;;;15256:30;15322:26;15302:18;;;15295:54;15366:18;;8339:47:0;15042:348:1;8339:47:0;-1:-1:-1;;;;;8429:24:0;;;;;;:18;:24;;;;;;;;8428:25;:52;;;;-1:-1:-1;;;;;;8458:22:0;;;;;;:18;:22;;;;;;;;8457:23;8428:52;:95;;;;;8515:8;;8499:13;;:24;;;;:::i;:::-;8484:12;:39;8428:95;8424:150;;;-1:-1:-1;8551:9:0;;8424:150;8610:13;;-1:-1:-1;;;;;8602:21:0;;;8610:13;;8602:21;:50;;;;-1:-1:-1;;;;;;8628:24:0;;;;;;:18;:24;;;;;;;;8627:25;8602:50;:77;;;;-1:-1:-1;;;;;;8657:22:0;;;;;;:18;:22;;;;;;;;8656:23;8602:77;8598:165;;;8715:11;;8705:6;:21;;8697:52;;;;-1:-1:-1;;;8697:52:0;;;;;;;:::i;:::-;8798:13;;-1:-1:-1;;;;;8790:21:0;;;8798:13;;8790:21;;;;:50;;-1:-1:-1;;;;;;8816:24:0;;;;;;:18;:24;;;;;;;;8815:25;8790:50;:77;;;;-1:-1:-1;;;;;;8845:22:0;;;;;;:18;:22;;;;;;;;8844:23;8790:77;8786:165;;;8903:11;;8893:6;:21;;8885:52;;;;-1:-1:-1;;;8885:52:0;;;;;;;:::i;:::-;8984:13;;-1:-1:-1;;;;;8978:19:0;;;8984:13;;8978:19;;;;:48;;-1:-1:-1;;;;;;9002:24:0;;;;;;:18;:24;;;;;;;;9001:25;8978:48;:75;;;;-1:-1:-1;;;;;;9031:22:0;;;;;;:18;:22;;;;;;;;9030:23;8978:75;8975:178;;;9105:11;;9095:6;9079:13;9089:2;-1:-1:-1;;;;;6518:18:0;6491:7;6518:18;;;:9;:18;;;;;;;6425:119;9079:13;:22;;;;:::i;:::-;:37;;9071:68;;;;-1:-1:-1;;;9071:68:0;;;;;;;:::i;:::-;9207:3;9193:9;;9183:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;-1:-1:-1;;;;;9277:24:0;;;;;;:18;:24;;;;;;9171:40;;-1:-1:-1;9171:40:0;;-1:-1:-1;9277:24:0;;;:50;;-1:-1:-1;;;;;;9305:22:0;;;;;;:18;:22;;;;;;;;9277:50;9273:101;;;-1:-1:-1;9360:1:0;9273:101;9451:4;9402:28;6518:18;;;:9;:18;;;;;;9477:6;;-1:-1:-1;;;9477:6:0;;;;9476:7;:32;;;;-1:-1:-1;9495:13:0;;-1:-1:-1;;;;;9487:21:0;;;9495:13;;9487:21;;9476:32;:47;;;;-1:-1:-1;9512:11:0;;-1:-1:-1;;;9512:11:0;;;;9476:47;:83;;;;;9551:8;;9527:20;:32;;9476:83;9472:360;;;9580:26;9597:8;;9580:16;:26::i;:::-;9672:21;9715:22;;9712:105;;9762:35;9775:21;9762:12;:35::i;:::-;9561:271;9472:360;-1:-1:-1;;;;;9860:15:0;;;;;;:9;:15;;;;;;:26;;9879:6;;9860:26;:::i;:::-;-1:-1:-1;;;;;9842:15:0;;;;;;:9;:15;;;;;:44;9930:18;9940:7;9930:6;:18;:::i;:::-;-1:-1:-1;;;;;9913:13:0;;;;;;:9;:13;;;;;;:36;;;;:::i;:::-;-1:-1:-1;;;;;9897:13:0;;;;;;;:9;:13;;;;;:52;;;;9965:38;;;9984:18;9994:7;9984:6;:18;:::i;:::-;9965:38;;1780:25:1;;;1768:2;1753:18;9965:38:0;;;;;;;10027:11;;10024:158;;10097:4;10079:24;;;;:9;:24;;;;;;:36;;10107:7;;10079:36;:::i;:::-;10070:4;10052:24;;;;:9;:24;;;;;;;:63;;;;10133:37;;-1:-1:-1;;;;;10133:37:0;;;;;;;10162:7;1780:25:1;;1768:2;1753:18;;1634:177;10133:37:0;;;;;;;;10024:158;7877:2312;;;7808:2381;;;:::o;1764:191::-;1838:16;1857:6;;-1:-1:-1;;;;;1874:17:0;;;-1:-1:-1;;;;;;1874:17:0;;;;;;1907:40;;1857:6;;;;;;;1907:40;;1838:16;1907:40;1827:128;1764:191;:::o;10196:551::-;4521:6;:13;;-1:-1:-1;;;;4521:13:0;-1:-1:-1;;;4521:13:0;;;10282:15;10274:57:::1;;;::::0;-1:-1:-1;;;10274:57:0;;16296:2:1;10274:57:0::1;::::0;::::1;16278:21:1::0;16335:2;16315:18;;;16308:30;16374:31;16354:18;;;16347:59;16423:18;;10274:57:0::1;16094:353:1::0;10274:57:0::1;10366:16;::::0;;10380:1:::1;10366:16:::0;;;;;::::1;::::0;;10342:21:::1;::::0;10366:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10366:16:0::1;10342:40;;10411:4;10393;10398:1;10393:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10393:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10437:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10437:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10393:7;;10437:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10427:4;10432:1;10427:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10427:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10502:15:::1;::::0;10470:62:::1;::::0;10487:4:::1;::::0;10502:15:::1;10520:11:::0;10470:8:::1;:62::i;:::-;10543:15;::::0;:196:::1;::::0;-1:-1:-1;;;10543:196:0;;-1:-1:-1;;;;;10543:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10624:11;;10543:15:::1;::::0;10666:4;;10693::::1;::::0;10713:15:::1;::::0;10543:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4557:6:0;:14;;-1:-1:-1;;;;4557:14:0;;;-1:-1:-1;;;;10196:551:0:o;10755:159::-;10828:1;10819:6;:10;10811:52;;;;-1:-1:-1;;;10811:52:0;;16296:2:1;10811:52:0;;;16278:21:1;16335:2;16315:18;;;16308:30;16374:31;16354:18;;;16347:59;16423:18;;10811:52:0;16094:353:1;10811:52:0;10874:15;;:32;;-1:-1:-1;;;;;10874:15:0;;;;:32;;;;;10899:6;;10874:15;:32;:15;:32;10899:6;10874:15;:32;;;;;;;;;;;;;;;;;;;;;10755:159;:::o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:131::-;-1:-1:-1;;;;;827:31:1;;817:42;;807:70;;873:1;870;863:12;888:315;956:6;964;1017:2;1005:9;996:7;992:23;988:32;985:52;;;1033:1;1030;1023:12;985:52;1072:9;1059:23;1091:31;1116:5;1091:31;:::i;:::-;1141:5;1193:2;1178:18;;;;1165:32;;-1:-1:-1;;;888:315:1:o;1816:456::-;1893:6;1901;1909;1962:2;1950:9;1941:7;1937:23;1933:32;1930:52;;;1978:1;1975;1968:12;1930:52;2017:9;2004:23;2036:31;2061:5;2036:31;:::i;:::-;2086:5;-1:-1:-1;2143:2:1;2128:18;;2115:32;2156:33;2115:32;2156:33;:::i;:::-;1816:456;;2208:7;;-1:-1:-1;;;2262:2:1;2247:18;;;;2234:32;;1816:456::o;2466:247::-;2525:6;2578:2;2566:9;2557:7;2553:23;2549:32;2546:52;;;2594:1;2591;2584:12;2546:52;2633:9;2620:23;2652:31;2677:5;2652:31;:::i;:::-;2702:5;2466:247;-1:-1:-1;;;2466:247:1:o;3186:388::-;3254:6;3262;3315:2;3303:9;3294:7;3290:23;3286:32;3283:52;;;3331:1;3328;3321:12;3283:52;3370:9;3357:23;3389:31;3414:5;3389:31;:::i;:::-;3439:5;-1:-1:-1;3496:2:1;3481:18;;3468:32;3509:33;3468:32;3509:33;:::i;:::-;3561:7;3551:17;;;3186:388;;;;;:::o;3579:118::-;3665:5;3658:13;3651:21;3644:5;3641:32;3631:60;;3687:1;3684;3677:12;3702:241;3758:6;3811:2;3799:9;3790:7;3786:23;3782:32;3779:52;;;3827:1;3824;3817:12;3779:52;3866:9;3853:23;3885:28;3907:5;3885:28;:::i;3948:356::-;4150:2;4132:21;;;4169:18;;;4162:30;4228:34;4223:2;4208:18;;4201:62;4295:2;4280:18;;3948:356::o;4667:127::-;4728:10;4723:3;4719:20;4716:1;4709:31;4759:4;4756:1;4749:15;4783:4;4780:1;4773:15;4799:422;4888:1;4931:5;4888:1;4945:270;4966:7;4956:8;4953:21;4945:270;;;5025:4;5021:1;5017:6;5013:17;5007:4;5004:27;5001:53;;;5034:18;;:::i;:::-;5084:7;5074:8;5070:22;5067:55;;;5104:16;;;;5067:55;5183:22;;;;5143:15;;;;4945:270;;;4949:3;4799:422;;;;;:::o;5226:806::-;5275:5;5305:8;5295:80;;-1:-1:-1;5346:1:1;5360:5;;5295:80;5394:4;5384:76;;-1:-1:-1;5431:1:1;5445:5;;5384:76;5476:4;5494:1;5489:59;;;;5562:1;5557:130;;;;5469:218;;5489:59;5519:1;5510:10;;5533:5;;;5557:130;5594:3;5584:8;5581:17;5578:43;;;5601:18;;:::i;:::-;-1:-1:-1;;5657:1:1;5643:16;;5672:5;;5469:218;;5771:2;5761:8;5758:16;5752:3;5746:4;5743:13;5739:36;5733:2;5723:8;5720:16;5715:2;5709:4;5706:12;5702:35;5699:77;5696:159;;;-1:-1:-1;5808:19:1;;;5840:5;;5696:159;5887:34;5912:8;5906:4;5887:34;:::i;:::-;5957:6;5953:1;5949:6;5945:19;5936:7;5933:32;5930:58;;;5968:18;;:::i;:::-;6006:20;;5226:806;-1:-1:-1;;;5226:806:1:o;6037:140::-;6095:5;6124:47;6165:4;6155:8;6151:19;6145:4;6124:47;:::i;6182:168::-;6255:9;;;6286;;6303:15;;;6297:22;;6283:37;6273:71;;6324:18;;:::i;7319:306::-;7407:6;7415;7423;7476:2;7464:9;7455:7;7451:23;7447:32;7444:52;;;7492:1;7489;7482:12;7444:52;7521:9;7515:16;7505:26;;7571:2;7560:9;7556:18;7550:25;7540:35;;7615:2;7604:9;7600:18;7594:25;7584:35;;7319:306;;;;;:::o;7909:245::-;7976:6;8029:2;8017:9;8008:7;8004:23;8000:32;7997:52;;;8045:1;8042;8035:12;7997:52;8077:9;8071:16;8096:28;8118:5;8096:28;:::i;8159:398::-;8361:2;8343:21;;;8400:2;8380:18;;;8373:30;8439:34;8434:2;8419:18;;8412:62;-1:-1:-1;;;8505:2:1;8490:18;;8483:32;8547:3;8532:19;;8159:398::o;9319:128::-;9386:9;;;9407:11;;;9404:37;;;9421:18;;:::i;9452:422::-;9654:2;9636:21;;;9693:2;9673:18;;;9666:30;9732:34;9727:2;9712:18;;9705:62;9803:28;9798:2;9783:18;;9776:56;9864:3;9849:19;;9452:422::o;10235:184::-;10305:6;10358:2;10346:9;10337:7;10333:23;10329:32;10326:52;;;10374:1;10371;10364:12;10326:52;-1:-1:-1;10397:16:1;;10235:184;-1:-1:-1;10235:184:1:o;15395:125::-;15460:9;;;15481:10;;;15478:36;;;15494:18;;:::i;15525:342::-;15727:2;15709:21;;;15766:2;15746:18;;;15739:30;-1:-1:-1;;;15800:2:1;15785:18;;15778:48;15858:2;15843:18;;15525:342::o;15872:217::-;15912:1;15938;15928:132;;15982:10;15977:3;15973:20;15970:1;15963:31;16017:4;16014:1;16007:15;16045:4;16042:1;16035:15;15928:132;-1:-1:-1;16074:9:1;;15872:217::o;16584:127::-;16645:10;16640:3;16636:20;16633:1;16626:31;16676:4;16673:1;16666:15;16700:4;16697:1;16690:15;16716:251;16786:6;16839:2;16827:9;16818:7;16814:23;16810:32;16807:52;;;16855:1;16852;16845:12;16807:52;16887:9;16881:16;16906:31;16931:5;16906:31;:::i;16972:980::-;17234:4;17282:3;17271:9;17267:19;17313:6;17302:9;17295:25;17339:2;17377:6;17372:2;17361:9;17357:18;17350:34;17420:3;17415:2;17404:9;17400:18;17393:31;17444:6;17479;17473:13;17510:6;17502;17495:22;17548:3;17537:9;17533:19;17526:26;;17587:2;17579:6;17575:15;17561:29;;17608:1;17618:195;17632:6;17629:1;17626:13;17618:195;;;17697:13;;-1:-1:-1;;;;;17693:39:1;17681:52;;17788:15;;;;17753:12;;;;17729:1;17647:9;17618:195;;;-1:-1:-1;;;;;;;17869:32:1;;;;17864:2;17849:18;;17842:60;-1:-1:-1;;;17933:3:1;17918:19;17911:35;17830:3;16972:980;-1:-1:-1;;;16972:980:1:o

Swarm Source

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