ETH Price: $3,266.44 (+0.58%)
Gas: 3 Gwei

Token

Sora Zuki (SORA)
 

Overview

Max Total Supply

1,000,000,000 SORA

Holders

89

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10 SORA

Value
$0.00
0xef55cf262d752738ca47a07b5e5755053c45b336
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:
SoraZuki

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-20
*/

/*

░██████╗░█████╗░██████╗░░█████╗░  ███████╗██╗░░░██╗██╗░░██╗██╗
██╔════╝██╔══██╗██╔══██╗██╔══██╗  ╚════██║██║░░░██║██║░██╔╝██║
╚█████╗░██║░░██║██████╔╝███████║  ░░███╔═╝██║░░░██║█████═╝░██║
░╚═══██╗██║░░██║██╔══██╗██╔══██║  ██╔══╝░░██║░░░██║██╔═██╗░██║
██████╔╝╚█████╔╝██║░░██║██║░░██║  ███████╗╚██████╔╝██║░╚██╗██║
╚═════╝░░╚════╝░╚═╝░░╚═╝╚═╝░░╚═╝  ╚══════╝░╚═════╝░╚═╝░░╚═╝╚═╝

* Sora Zuki, the most aerodynamic token to soar on the Ethereum blockchain. 
* A community-focused, decentralized cryptocurrency made for the investor.

* Totalsupply 	  (100%):	 1.000.000.000
* Max wallet		(1%):	    10.000.000
* Max transaction	(1%):       10.000.000 

* Join Our Community:
* https://sorazuki.io/
* https://t.me/sorazukiio

*/
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}


contract SoraZuki is Context, IERC20, Ownable {
    using Address for address payable;
    using SafeMath for uint256;

    
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcluded;
    mapping (address => bool) public allowedTransfer;
    mapping (address => bool) public _isBlacklisted;

    address[] private _excluded;

    bool public tradingEnabled;
    bool public swapEnabled;
    bool private swapping;
    
    
    //Anti Dump
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 5 seconds;
    
    modifier antiBot(address account){
        require(tradingEnabled || allowedTransfer[account], "Trading not enabled yet");
        _;
    }

    IRouter public router;
    address public pair;

    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);

    uint256 private _tTotal = 1_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 public swapTokensAtAmount = _tTotal.mul(1).div(1000);
    uint256 public maxBuyLimit = _tTotal.mul(1).div(100);
    uint256 public maxSellLimit = _tTotal.mul(1).div(100);
    uint256 public maxWalletLimit = _tTotal.mul(1).div(100);
    
    uint256 public genesis_block;

    address public marketingWallet = 0xAFDFf7eED3Bd0ca4269F06a0D7ED76A7CBfC21bD;

    string private constant _name = "Sora Zuki";
    string private constant _symbol = "SORA";

    struct Taxes {
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity; 
    }
    Taxes private launchtax;
    Taxes public taxes = Taxes(0, 9, 0);
    Taxes public sellTaxes = Taxes(0, 9, 0);

    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 marketing;
        uint256 liquidity; 
    }
    
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rmarketing;
      uint256 rLiquidity;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tmarketing;
      uint256 tLiquidity;
    }

    event FeesChanged();
    event UpdatedRouter(address oldRouter, address newRouter);

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

    constructor (address routerAddress) {
        IRouter _router = IRouter(routerAddress);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        
        excludeFromReward(pair);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[marketingWallet] = true;
        
        allowedTransfer[address(this)] = true;
        allowedTransfer[owner()] = true;
        allowedTransfer[pair] = true;
        allowedTransfer[marketingWallet] = true;

        emit Transfer(address(0), owner(), _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 view override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        return tokenFromReflection(_rOwned[account]);
    }
    
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public  override antiBot(msg.sender) returns(bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override antiBot(sender) returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public  antiBot(msg.sender) returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public  antiBot(msg.sender) returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }
    
    function transfer(address recipient, uint256 amount) public override antiBot(msg.sender) returns (bool)
    { 
      _transfer(msg.sender, recipient, amount);
      return true;
    }

    function isExcludedFromReward(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferRfi) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less than supply");
        if (!deductTransferRfi) {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true, false, false);
            return s.rTransferAmount;
        }
    }

    function setTradingStatus(
        bool state,
        uint256 rfi,
        uint256 marketing,
        uint256 liquidity
    ) external onlyOwner {
        tradingEnabled = state;
        swapEnabled = state;
        launchtax = Taxes(rfi, marketing, liquidity);
        if (state == true) genesis_block = block.number;
    }

    function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount/currentRate;
    }

    function excludeFromReward(address account) public onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is not excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }


    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }


    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

    function setTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity) public onlyOwner {
       taxes = Taxes(_rfi,_marketing,_liquidity);
        emit FeesChanged();
    }
    
    function setSellTaxes(uint256 _rfi, uint256 _marketing, uint256 _liquidity) public onlyOwner {
       sellTaxes = Taxes(_rfi,_marketing,_liquidity);
        emit FeesChanged();
    }

    function _reflectRfi(uint256 rRfi, uint256 tRfi) private {
        _rTotal -=rRfi;
        totFeesPaid.rfi +=tRfi;
    }

    function _takeLiquidity(uint256 rLiquidity, uint256 tLiquidity) private {
        totFeesPaid.liquidity +=tLiquidity;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tLiquidity;
        }
        _rOwned[address(this)] +=rLiquidity;
    }

    function _takemarketing(uint256 rmarketing, uint256 tmarketing) private {
        totFeesPaid.marketing +=tmarketing;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tmarketing;
        }
        _rOwned[address(this)] +=rmarketing;
    }
    
    function _getValues(uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee, isSell, useLaunchTax);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rmarketing, to_return.rLiquidity) = _getRValues1(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee, bool isSell, bool useLaunchTax) private view returns (valuesFromGetValues memory s) {

        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        Taxes memory temp;
        if (isSell && !useLaunchTax) temp = sellTaxes;
        else if (!useLaunchTax) temp = taxes;
        else temp = launchtax;
        
        s.tRfi = tAmount*temp.rfi/100;
        s.tmarketing = tAmount*temp.marketing/100;
        s.tLiquidity = tAmount*temp.liquidity/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tmarketing-s.tLiquidity;
        return s;
    }

    function _getRValues1(valuesFromGetValues memory s, uint256 tAmount, bool takeFee, uint256 currentRate) private pure returns (uint256 rAmount, uint256 rTransferAmount, uint256 rRfi,uint256 rmarketing, uint256 rLiquidity){
        rAmount = tAmount*currentRate;

        if(!takeFee) {
          return(rAmount, rAmount, 0,0,0);
        }

        rRfi = s.tRfi*currentRate;
        rmarketing = s.tmarketing*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rTransferAmount =  rAmount-rRfi-rmarketing-rLiquidity;
        return (rAmount, rTransferAmount, rRfi,rmarketing,rLiquidity);
    }

    function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply/tSupply;
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply-_rOwned[_excluded[i]];
            tSupply = tSupply-_tOwned[_excluded[i]];
        }
        if (rSupply < _rTotal/_tTotal) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    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(amount <= balanceOf(from),"You are trying to transfer more than your balance");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot");
        
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            require(tradingEnabled, "Trading not active");
        }
               
        if(from == pair && !_isExcludedFromFee[to] && !swapping){
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit");
        }
        
        if(from != pair && !_isExcludedFromFee[to] && !_isExcludedFromFee[from] && !swapping){
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if(to != pair){
                require(balanceOf(to) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit");
            }
            if(coolDownEnabled){
                uint256 timePassed = block.timestamp - _lastSell[from];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[from] = block.timestamp;
            }
        }
        
        
        if(balanceOf(from) - amount <= 10 *  10**decimals()) amount -= (10 * 10**decimals() + amount - balanceOf(from));
        
       
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            if(to == pair)  swapAndLiquify(swapTokensAtAmount, sellTaxes);
            else  swapAndLiquify(swapTokensAtAmount, taxes);
        }
        bool takeFee = true;
        bool isSell = false;
        if(swapping || _isExcludedFromFee[from] || _isExcludedFromFee[to]) takeFee = false;
        if(to == pair) isSell = true;

        _tokenTransfer(from, to, amount, takeFee, isSell);
    }


    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee, bool isSell) private {
            bool useLaunchTax = !_isExcludedFromFee[sender] &&
            !_isExcludedFromFee[recipient] &&
            block.number <= genesis_block;

        valuesFromGetValues memory s = _getValues(tAmount, takeFee, isSell, useLaunchTax);

        if (_isExcluded[sender] ) {  //from excluded
                _tOwned[sender] = _tOwned[sender]-tAmount;
        }
        if (_isExcluded[recipient]) { //to excluded
                _tOwned[recipient] = _tOwned[recipient]+s.tTransferAmount;
        }

        _rOwned[sender] = _rOwned[sender]-s.rAmount;
        _rOwned[recipient] = _rOwned[recipient]+s.rTransferAmount;
        
        if(s.rRfi > 0 || s.tRfi > 0) _reflectRfi(s.rRfi, s.tRfi);
        if(s.rLiquidity > 0 || s.tLiquidity > 0) {
            _takeLiquidity(s.rLiquidity,s.tLiquidity);
            emit Transfer(sender, address(this), s.tLiquidity + s.tmarketing);
        }
        if(s.rmarketing > 0 || s.tmarketing > 0) _takemarketing(s.rmarketing, s.tmarketing);
        emit Transfer(sender, recipient, s.tTransferAmount);
        
    }

    function swapAndLiquify(uint256 contractBalance, Taxes memory temp) private lockTheSwap{
        uint256 denominator = (temp.liquidity + temp.marketing) * 2;
        uint256 tokensToAddLiquidityWith = contractBalance * temp.liquidity / denominator;
        uint256 toSwap = contractBalance - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForETH(toSwap);

        uint256 deltaBalance = address(this).balance - initialBalance;
        uint256 unitBalance= deltaBalance / (denominator - temp.liquidity);
        uint256 ethToAddLiquidityWith = unitBalance * temp.liquidity;

        if(ethToAddLiquidityWith > 0){
            // Add liquidity to pancake
            addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
        }

        uint256 marketingAmt = unitBalance * 2 * temp.marketing;
        if(marketingAmt > 0){
            payable(marketingWallet).sendValue(marketingAmt);
        }
            
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner(),
            block.timestamp
        );
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }
    
    
    function bulkExcludeFee(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isExcludedFromFee[accounts[i]] = state;
        }
    }

    function updatemarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateCooldown(bool state, uint256 time) external onlyOwner{
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
    }

    function updateSwapTokensAtAmount(uint256 amount) external onlyOwner{
        swapTokensAtAmount = amount * 10**_decimals;
    }

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }
    
    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }
    
    function bulkIsBlacklisted(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i =0; i < accounts.length; i++){
            _isBlacklisted[accounts[i]] = state;

        }
    }
    
    function updateAllowedTransfer(address account, bool state) external onlyOwner{
        allowedTransfer[account] = state;
    }
    
    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell) external onlyOwner{
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
    }
    
    function updateMaxWalletlimit(uint256 amount) external onlyOwner{
        maxWalletLimit = amount * 10**decimals();
    }

    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    //Use this in case ETH are sent to the contract by mistake
    function rescueETH(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }
    

    function rescueSORATokens(address _tokenAddr, address _to, uint _amount) public onlyOwner {
        IERC20(_tokenAddr).transfer(_to, _amount);
    }

    receive() external payable{
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"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":[],"name":"FeesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRouter","type":"address"},{"indexed":false,"internalType":"address","name":"newRouter","type":"address"}],"name":"UpdatedRouter","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExcludeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","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":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferRfi","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueSORATokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"setTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","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":"taxes","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totFeesPaid","outputs":[{"internalType":"uint256","name":"rfi","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","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":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateAllowedTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletlimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600b805460ff191660011790556005600c55670de0b6b3a7640000600f819055620000329060001962000a2c565b620000409060001962000a59565b6010556200007b6103e8620000676001600f54620004d360201b62001a8d1790919060201c565b6200056a60201b62001b0f1790919060201c565b601155620000a16064620000676001600f54620004d360201b62001a8d1790919060201c565b601255620000c76064620000676001600f54620004d360201b62001a8d1790919060201c565b601355620000ed6064620000676001600f54620004d360201b62001a8d1790919060201c565b601455601680546001600160a01b03191673afdff7eed3bd0ca4269f06a0d7ed76a7cbfc21bd1790556040805160608082018352600080835260096020808501829052938501829052601a829055601b819055601c829055845192830185528183529282018390529201829052601d829055601e55601f553480156200017257600080fd5b50604051620042c8380380620042c8833981016040819052620001959162000a73565b620001a033620005b4565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020c919062000a73565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000280919062000a73565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f4919062000a73565b600d80546001600160a01b038086166001600160a01b031992831617909255600e80549284169290911682179055909150620003309062000604565b601054600160006200034a6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120939093553083526004918290528220805460ff1916600190811790915591620003996000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560165490911681526004835281812080548516600190811790915530825260069384905291812080549094168217909355916200040c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055600e548216815260069093528183208054851660019081179091556016549091168352912080549092161790556200047a6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051620004c291815260200190565b60405180910390a350505062000b61565b600082600003620004e75750600062000564565b6000620004f5838562000a9e565b90508262000504858362000ac0565b14620005615760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200056183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200078e60201b60201c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620006605760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000558565b6001600160a01b03811660009081526005602052604090205460ff1615620006cb5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000558565b6001600160a01b0381166000908152600160205260409020541562000728576001600160a01b0381166000908152600160205260409020546200070e90620007ca565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b60008183620007b25760405162461bcd60e51b815260040162000558919062000ad7565b506000620007c1848662000ac0565b95945050505050565b6000601054821115620008335760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000558565b60006200083f62000854565b90506200084d818462000ac0565b9392505050565b60008080620008626200087a565b909250905062000873818362000ac0565b9250505090565b601054600f546000918291825b600854811015620009e257826001600060088481548110620008ad57620008ad62000b2f565b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806200091c5750816002600060088481548110620008f557620008f562000b2f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156200093357601054600f54945094505050509091565b60016000600883815481106200094d576200094d62000b2f565b60009182526020808320909101546001600160a01b031683528201929092526040019020546200097e908462000a59565b925060026000600883815481106200099a576200099a62000b2f565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620009cb908362000a59565b915080620009d98162000b45565b91505062000887565b50600f54601054620009f5919062000ac0565b82101562000a0d57601054600f549350935050509091565b90939092509050565b634e487b7160e01b600052601260045260246000fd5b60008262000a3e5762000a3e62000a16565b500690565b634e487b7160e01b600052601160045260246000fd5b60008282101562000a6e5762000a6e62000a43565b500390565b60006020828403121562000a8657600080fd5b81516001600160a01b03811681146200056157600080fd5b600081600019048311821515161562000abb5762000abb62000a43565b500290565b60008262000ad25762000ad262000a16565b500490565b600060208083528351808285015260005b8181101562000b065785810183015185820160400152820162000ae8565b8181111562000b19576000604083870101525b50601f01601f1916929092016040019392505050565b634e487b7160e01b600052603260045260246000fd5b60006001820162000b5a5762000b5a62000a43565b5060010190565b6137578062000b716000396000f3fe6080604052600436106103545760003560e01c806370a08231116101c6578063b5c57145116100f7578063e517f2b911610095578063ee36e3591161006f578063ee36e35914610a57578063f2fde38b14610a71578063f66895a314610a91578063f887ea4014610ab057600080fd5b8063e517f2b9146109f7578063e9dae5ed14610a17578063ea2f0b3714610a3757600080fd5b8063d2ce0db2116100d1578063d2ce0db214610965578063d8672e511461097b578063dd62ed3e1461099b578063e2f45605146109e157600080fd5b8063b5c5714514610905578063bff7816914610925578063d257b34f1461094557600080fd5b8063924de9b7116101645780639e252f001161013e5780639e252f0014610885578063a457c2d7146108a5578063a8aa1b31146108c5578063a9059cbb146108e557600080fd5b8063924de9b71461081957806395d89b41146108395780639ba5e4d51461086657600080fd5b806375f0a874116101a057806375f0a8741461076a57806388f82020146107a25780638da5cb5b146107db5780638e2839ff146107f957600080fd5b806370a08231146106fb578063715018a61461071b578063728f8eea1461073057600080fd5b80633bbbeb14116102a057806359759f611161023e578063652e2f0411610218578063652e2f041461069a57806366a88d96146106b05780636aa5b37f146106c65780636ddd1713146106dc57600080fd5b806359759f611461062a5780635b24ea5e1461064a57806362695eae1461066a57600080fd5b80634549b0391161027a5780634549b039146105975780634ada218b146105b757806352390c02146105d15780635342acb4146105f157600080fd5b80633bbbeb141461053757806340b28c2f14610557578063437823ec1461057757600080fd5b806323b872dd1161030d578063313ce567116102e7578063313ce567146104bb5780633685d419146104d757806339509351146104f757806339ff7a2e1461051757600080fd5b806323b872dd14610465578063274a533c146104855780632d8381191461049b57600080fd5b806306fdde031461036057806308733214146103a4578063095ea7b3146103c657806313f97a8e146103f657806318160ddd146104165780631cdd3be31461043557600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b50604080518082019091526009815268536f7261205a756b6960b81b60208201525b60405161039b91906130ab565b60405180910390f35b3480156103b057600080fd5b506103c46103bf366004613100565b610ad0565b005b3480156103d257600080fd5b506103e66103e1366004613151565b610b57565b604051901515815260200161039b565b34801561040257600080fd5b506103c46104113660046131ac565b610bb6565b34801561042257600080fd5b50600f545b60405190815260200161039b565b34801561044157600080fd5b506103e6610450366004613283565b60076020526000908152604090205460ff1681565b34801561047157600080fd5b506103e66104803660046132a0565b610c4c565b34801561049157600080fd5b5061042760155481565b3480156104a757600080fd5b506104276104b63660046132e1565b610d46565b3480156104c757600080fd5b506040516009815260200161039b565b3480156104e357600080fd5b506103c46104f2366004613283565b610dca565b34801561050357600080fd5b506103e6610512366004613151565b610f80565b34801561052357600080fd5b506103c46105323660046132fa565b611000565b34801561054357600080fd5b506103c46105523660046132a0565b611083565b34801561056357600080fd5b506103c4610572366004613335565b611120565b34801561058357600080fd5b506103c4610592366004613283565b611178565b3480156105a357600080fd5b506104276105b236600461336e565b6111c6565b3480156105c357600080fd5b506009546103e69060ff1681565b3480156105dd57600080fd5b506103c46105ec366004613283565b61125c565b3480156105fd57600080fd5b506103e661060c366004613283565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561063657600080fd5b506103c4610645366004613393565b6113af565b34801561065657600080fd5b506103c46106653660046133b5565b61140f565b34801561067657600080fd5b506103e6610685366004613283565b60066020526000908152604090205460ff1681565b3480156106a657600080fd5b5061042760135481565b3480156106bc57600080fd5b5061042760145481565b3480156106d257600080fd5b5061042760125481565b3480156106e857600080fd5b506009546103e690610100900460ff1681565b34801561070757600080fd5b50610427610716366004613283565b611464565b34801561072757600080fd5b506103c46114c3565b34801561073c57600080fd5b50601a54601b54601c5461074f92919083565b6040805193845260208401929092529082015260600161039b565b34801561077657600080fd5b5060165461078a906001600160a01b031681565b6040516001600160a01b03909116815260200161039b565b3480156107ae57600080fd5b506103e66107bd366004613283565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156107e757600080fd5b506000546001600160a01b031661078a565b34801561080557600080fd5b506103c46108143660046131ac565b6114f9565b34801561082557600080fd5b506103c46108343660046133e3565b61158a565b34801561084557600080fd5b50604080518082019091526004815263534f524160e01b602082015261038e565b34801561087257600080fd5b5060205460215460225461074f92919083565b34801561089157600080fd5b506103c46108a03660046132e1565b6115ce565b3480156108b157600080fd5b506103e66108c0366004613151565b611675565b3480156108d157600080fd5b50600e5461078a906001600160a01b031681565b3480156108f157600080fd5b506103e6610900366004613151565b61175b565b34801561091157600080fd5b506103c46109203660046133b5565b6117b0565b34801561093157600080fd5b506103c4610940366004613283565b611805565b34801561095157600080fd5b506103c46109603660046132e1565b611851565b34801561097157600080fd5b50610427600c5481565b34801561098757600080fd5b506103c46109963660046132e1565b611897565b3480156109a757600080fd5b506104276109b6366004613335565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109ed57600080fd5b5061042760115481565b348015610a0357600080fd5b506103c4610a12366004613400565b6118dd565b348015610a2357600080fd5b506103c4610a32366004613100565b611929565b348015610a4357600080fd5b506103c4610a52366004613283565b6119a7565b348015610a6357600080fd5b50600b546103e69060ff1681565b348015610a7d57600080fd5b506103c4610a8c366004613283565b6119f2565b348015610a9d57600080fd5b50601d54601e54601f5461074f92919083565b348015610abc57600080fd5b50600d5461078a906001600160a01b031681565b6000546001600160a01b03163314610b035760405162461bcd60e51b8152600401610afa9061341e565b60405180910390fd5b60408051606081018252848152602081018490528101829052601d849055601e839055601f829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b600954600090339060ff1680610b8557506001600160a01b03811660009081526006602052604090205460ff165b610ba15760405162461bcd60e51b8152600401610afa90613453565b610bac338585611b51565b5060019392505050565b6000546001600160a01b03163314610be05760405162461bcd60e51b8152600401610afa9061341e565b60005b8251811015610c47578160076000858481518110610c0357610c0361348a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c3f816134b6565b915050610be3565b505050565b600954600090849060ff1680610c7a57506001600160a01b03811660009081526006602052604090205460ff165b610c965760405162461bcd60e51b8152600401610afa90613453565b610ca1858585611c75565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610d265760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610afa565b610d3a8633610d3587856134cf565b611b51565b50600195945050505050565b6000601054821115610dad5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610afa565b6000610db7612415565b9050610dc381846134e6565b9392505050565b6000546001600160a01b03163314610df45760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03811660009081526005602052604090205460ff16610e5c5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610afa565b60005b600854811015610f7c57816001600160a01b031660088281548110610e8657610e8661348a565b6000918252602090912001546001600160a01b031603610f6a5760088054610eb0906001906134cf565b81548110610ec057610ec061348a565b600091825260209091200154600880546001600160a01b039092169183908110610eec57610eec61348a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f4457610f44613508565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f74816134b6565b915050610e5f565b5050565b600954600090339060ff1680610fae57506001600160a01b03811660009081526006602052604090205460ff165b610fca5760405162461bcd60e51b8152600401610afa90613453565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610bac91908690610d3590879061351e565b6000546001600160a01b0316331461102a5760405162461bcd60e51b8152600401610afa9061341e565b6009805461ffff191661ff00198615159081169190911761010082021790915560408051606081018252858152602081018590520182905260178490556018839055601982905560010361107d57436015555b50505050565b6000546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610afa9061341e565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190613536565b6000546001600160a01b0316331461114a5760405162461bcd60e51b8152600401610afa9061341e565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146111a25760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600f5483111561121a5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610afa565b8161123957600061122f846001600080612438565b5191506112569050565b6000611249846001600080612438565b6020015191506112569050565b92915050565b6000546001600160a01b031633146112865760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03811660009081526005602052604090205460ff16156112ef5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610afa565b6001600160a01b03811660009081526001602052604090205415611349576001600160a01b03811660009081526001602052604090205461132f90610d46565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113d95760405162461bcd60e51b8152600401610afa9061341e565b6113e56009600a613637565b6113ef9083613646565b6012556113fe6009600a613637565b6114089082613646565b6013555050565b6000546001600160a01b031633146114395760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081205460ff16156114a157506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461125690610d46565b6000546001600160a01b031633146114ed5760405162461bcd60e51b8152600401610afa9061341e565b6114f76000612480565b565b6000546001600160a01b031633146115235760405162461bcd60e51b8152600401610afa9061341e565b60005b8251811015610c475781600460008584815181106115465761154661348a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611582816134b6565b915050611526565b6000546001600160a01b031633146115b45760405162461bcd60e51b8152600401610afa9061341e565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146115f85760405162461bcd60e51b8152600401610afa9061341e565b804710156116485760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610afa565b604051339082156108fc029083906000818181858888f19350505050158015610f7c573d6000803e3d6000fd5b600954600090339060ff16806116a357506001600160a01b03811660009081526006602052604090205460ff165b6116bf5760405162461bcd60e51b8152600401610afa90613453565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156117415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610afa565b6117503386610d3587856134cf565b506001949350505050565b600954600090339060ff168061178957506001600160a01b03811660009081526006602052604090205460ff165b6117a55760405162461bcd60e51b8152600401610afa90613453565b610bac338585611c75565b6000546001600160a01b031633146117da5760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461182f5760405162461bcd60e51b8152600401610afa9061341e565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461187b5760405162461bcd60e51b8152600401610afa9061341e565b6118876009600a613637565b6118919082613646565b60115550565b6000546001600160a01b031633146118c15760405162461bcd60e51b8152600401610afa9061341e565b6118cd6009600a613637565b6118d79082613646565b60145550565b6000546001600160a01b031633146119075760405162461bcd60e51b8152600401610afa9061341e565b611912816001613646565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b031633146119535760405162461bcd60e51b8152600401610afa9061341e565b60408051606081018252848152602081018490528101829052601a849055601b839055601c829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b6000546001600160a01b031633146119d15760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611a1c5760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b038116611a815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610afa565b611a8a81612480565b50565b600082600003611a9f57506000611256565b6000611aab8385613646565b905082611ab885836134e6565b14610dc35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610afa565b6000610dc383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124d0565b6001600160a01b038316611bb35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610afa565b6001600160a01b038216611c145760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610afa565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611cd95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610afa565b6001600160a01b038216611d3b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610afa565b60008111611d9d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610afa565b611da683611464565b811115611e0f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610afa565b6001600160a01b03831660009081526007602052604090205460ff16158015611e5157506001600160a01b03821660009081526007602052604090205460ff16155b611e8d5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610afa565b6001600160a01b03831660009081526004602052604090205460ff16158015611ecf57506001600160a01b03821660009081526004602052604090205460ff16155b15611f1b5760095460ff16611f1b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610afa565b600e546001600160a01b038481169116148015611f5157506001600160a01b03821660009081526004602052604090205460ff16155b8015611f66575060095462010000900460ff16155b1561202257601254811115611fbd5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610afa565b60145481611fca84611464565b611fd4919061351e565b11156120225760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610afa565b600e546001600160a01b0384811691161480159061205957506001600160a01b03821660009081526004602052604090205460ff16155b801561207e57506001600160a01b03831660009081526004602052604090205460ff16155b8015612093575060095462010000900460ff16155b156121f6576013548111156120ea5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610afa565b600e546001600160a01b03838116911614612164576014548161210c84611464565b612116919061351e565b11156121645760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610afa565b600b5460ff16156121f6576001600160a01b0383166000908152600a602052604081205461219290426134cf565b9050600c548110156121d95760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610afa565b506001600160a01b0383166000908152600a602052604090204290555b6122026009600a613637565b61220d90600a613646565b8161221785611464565b61222191906134cf565b116122685761222f83611464565b8161223c6009600a613637565b61224790600a613646565b612251919061351e565b61225b91906134cf565b61226590826134cf565b90505b600060115461227630611464565b600954911115915062010000900460ff1615801561229b5750600954610100900460ff165b80156122a45750805b80156122be5750600e546001600160a01b03858116911614155b80156122e357506001600160a01b03841660009081526004602052604090205460ff16155b801561230857506001600160a01b03831660009081526004602052604090205460ff16155b1561238457600e546001600160a01b03908116908416036123565760115460408051606081018252601d548152601e546020820152601f54918101919091526123519190612507565b612384565b60115460408051606081018252601a548152601b546020820152601c54918101919091526123849190612507565b60095460019060009062010000900460ff16806123b957506001600160a01b03861660009081526004602052604090205460ff165b806123dc57506001600160a01b03851660009081526004602052604090205460ff165b156123e657600091505b600e546001600160a01b0390811690861603612400575060015b61240d8686868585612615565b505050505050565b60008060006124226128f3565b909250905061243181836134e6565b9250505090565b61244061305f565b61244c85858585612a76565b905061246181868661245c612415565b612bd2565b608086015260608501526040840152602083015281525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081836124f15760405162461bcd60e51b8152600401610afa91906130ab565b5060006124fe84866134e6565b95945050505050565b6009805462ff00001916620100001790556020810151604082015160009161252e9161351e565b612539906002613646565b905060008183604001518561254e9190613646565b61255891906134e6565b9050600061256682866134cf565b90504761257282612c5f565b600061257e82476134cf565b9050600086604001518661259291906134cf565b61259c90836134e6565b905060008760400151826125b09190613646565b905080156125c2576125c28682612db1565b60208801516000906125d5846002613646565b6125df9190613646565b905080156125fd576016546125fd906001600160a01b031682612e86565b50506009805462ff0000191690555050505050505050565b6001600160a01b03851660009081526004602052604081205460ff1615801561265757506001600160a01b03851660009081526004602052604090205460ff16155b801561266557506015544311155b9050600061267585858585612438565b6001600160a01b03881660009081526005602052604090205490915060ff16156126d7576001600160a01b0387166000908152600260205260409020546126bd9086906134cf565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff161561273a5760a08101516001600160a01b038716600090815260026020526040902054612720919061351e565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b03881660009081526001602052604090205461275f91906134cf565b6001600160a01b0380891660009081526001602090815260408083209490945584015191891681529190912054612796919061351e565b6001600160a01b03871660009081526001602052604090819020919091558101511515806127c8575060008160c00151115b156127df576127df81604001518260c00151612f9f565b6000816080015111806127f757506000816101000151115b1561286b5761280f8160800151826101000151612fd4565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151846101000151612859919061351e565b60405190815260200160405180910390a35b600081606001511180612882575060008160e00151115b156128995761289981606001518260e0015161304a565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a001516040516128e291815260200190565b60405180910390a350505050505050565b601054600f546000918291825b600854811015612a45578260016000600884815481106129225761292261348a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061298d57508160026000600884815481106129665761296661348a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156129a357601054600f54945094505050509091565b60016000600883815481106129ba576129ba61348a565b60009182526020808320909101546001600160a01b031683528201929092526040019020546129e990846134cf565b92506002600060088381548110612a0257612a0261348a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612a3190836134cf565b915080612a3d816134b6565b915050612900565b50600f54601054612a5691906134e6565b821015612a6d57601054600f549350935050509091565b90939092509050565b612a7e61305f565b83612a8f5760a08101859052612478565b612ab360405180606001604052806000815260200160008152602001600081525090565b838015612abe575082155b15612aea575060408051606081018252601d548152601e546020820152601f5491810191909152612b39565b82612b16575060408051606081018252601a548152601b546020820152601c5491810191909152612b39565b506040805160608101825260175481526018546020820152601954918101919091525b8051606490612b489088613646565b612b5291906134e6565b60c08301526020810151606490612b699088613646565b612b7391906134e6565b60e08301526040810151606490612b8a9088613646565b612b9491906134e6565b610100830181905260e083015160c0840151612bb090896134cf565b612bba91906134cf565b612bc491906134cf565b60a083015250949350505050565b600080808080612be28689613646565b945086612bfa57508392506000915081905080612c54565b858960c00151612c0a9190613646565b9250858960e00151612c1c9190613646565b915085896101000151612c2f9190613646565b90508082612c3d85886134cf565b612c4791906134cf565b612c5191906134cf565b93505b945094509450945094565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612c9457612c9461348a565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d119190613665565b81600181518110612d2457612d2461348a565b6001600160a01b039283166020918202929092010152600d54612d4a9130911684611b51565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612d83908590600090869030904290600401613682565b600060405180830381600087803b158015612d9d57600080fd5b505af115801561240d573d6000803e3d6000fd5b600d54612dc99030906001600160a01b031684611b51565b600d546001600160a01b031663f305d719823085600080612df26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612e5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e7f91906136f3565b5050505050565b80471015612ed65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610afa565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612f23576040519150601f19603f3d011682016040523d82523d6000602084013e612f28565b606091505b5050905080610c475760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610afa565b8160106000828254612fb191906134cf565b909155505060208054829190600090612fcb90849061351e565b90915550505050565b8060206002016000828254612fe9919061351e565b90915550503060009081526005602052604090205460ff161561302b57306000908152600260205260408120805483929061302590849061351e565b90915550505b3060009081526001602052604081208054849290612fcb90849061351e565b8060206001016000828254612fe9919061351e565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156130d8578581018301518582016040015282016130bc565b818111156130ea576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006060848603121561311557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611a8a57600080fd5b803561314c8161312c565b919050565b6000806040838503121561316457600080fd5b823561316f8161312c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114611a8a57600080fd5b803561314c81613193565b600080604083850312156131bf57600080fd5b823567ffffffffffffffff808211156131d757600080fd5b818501915085601f8301126131eb57600080fd5b81356020828211156131ff576131ff61317d565b8160051b604051601f19603f830116810181811086821117156132245761322461317d565b60405292835281830193508481018201928984111561324257600080fd5b948201945b838610156132675761325886613141565b85529482019493820193613247565b965061327690508782016131a1565b9450505050509250929050565b60006020828403121561329557600080fd5b8135610dc38161312c565b6000806000606084860312156132b557600080fd5b83356132c08161312c565b925060208401356132d08161312c565b929592945050506040919091013590565b6000602082840312156132f357600080fd5b5035919050565b6000806000806080858703121561331057600080fd5b843561331b81613193565b966020860135965060408601359560600135945092505050565b6000806040838503121561334857600080fd5b82356133538161312c565b915060208301356133638161312c565b809150509250929050565b6000806040838503121561338157600080fd5b82359150602083013561336381613193565b600080604083850312156133a657600080fd5b50508035926020909101359150565b600080604083850312156133c857600080fd5b82356133d38161312c565b9150602083013561336381613193565b6000602082840312156133f557600080fd5b8135610dc381613193565b6000806040838503121561341357600080fd5b823561316f81613193565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016134c8576134c86134a0565b5060010190565b6000828210156134e1576134e16134a0565b500390565b60008261350357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60008219821115613531576135316134a0565b500190565b60006020828403121561354857600080fd5b8151610dc381613193565b600181815b8085111561358e578160001904821115613574576135746134a0565b8085161561358157918102915b93841c9390800290613558565b509250929050565b6000826135a557506001611256565b816135b257506000611256565b81600181146135c857600281146135d2576135ee565b6001915050611256565b60ff8411156135e3576135e36134a0565b50506001821b611256565b5060208310610133831016604e8410600b8410161715613611575081810a611256565b61361b8383613553565b806000190482111561362f5761362f6134a0565b029392505050565b6000610dc360ff841683613596565b6000816000190483118215151615613660576136606134a0565b500290565b60006020828403121561367757600080fd5b8151610dc38161312c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156136d25784516001600160a01b0316835293830193918301916001016136ad565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561370857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122071de14c3e35c84bff984e4ba4710ca09bacbe8fead7413665a810880b3d9a1ab64736f6c634300080d00330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106103545760003560e01c806370a08231116101c6578063b5c57145116100f7578063e517f2b911610095578063ee36e3591161006f578063ee36e35914610a57578063f2fde38b14610a71578063f66895a314610a91578063f887ea4014610ab057600080fd5b8063e517f2b9146109f7578063e9dae5ed14610a17578063ea2f0b3714610a3757600080fd5b8063d2ce0db2116100d1578063d2ce0db214610965578063d8672e511461097b578063dd62ed3e1461099b578063e2f45605146109e157600080fd5b8063b5c5714514610905578063bff7816914610925578063d257b34f1461094557600080fd5b8063924de9b7116101645780639e252f001161013e5780639e252f0014610885578063a457c2d7146108a5578063a8aa1b31146108c5578063a9059cbb146108e557600080fd5b8063924de9b71461081957806395d89b41146108395780639ba5e4d51461086657600080fd5b806375f0a874116101a057806375f0a8741461076a57806388f82020146107a25780638da5cb5b146107db5780638e2839ff146107f957600080fd5b806370a08231146106fb578063715018a61461071b578063728f8eea1461073057600080fd5b80633bbbeb14116102a057806359759f611161023e578063652e2f0411610218578063652e2f041461069a57806366a88d96146106b05780636aa5b37f146106c65780636ddd1713146106dc57600080fd5b806359759f611461062a5780635b24ea5e1461064a57806362695eae1461066a57600080fd5b80634549b0391161027a5780634549b039146105975780634ada218b146105b757806352390c02146105d15780635342acb4146105f157600080fd5b80633bbbeb141461053757806340b28c2f14610557578063437823ec1461057757600080fd5b806323b872dd1161030d578063313ce567116102e7578063313ce567146104bb5780633685d419146104d757806339509351146104f757806339ff7a2e1461051757600080fd5b806323b872dd14610465578063274a533c146104855780632d8381191461049b57600080fd5b806306fdde031461036057806308733214146103a4578063095ea7b3146103c657806313f97a8e146103f657806318160ddd146104165780631cdd3be31461043557600080fd5b3661035b57005b600080fd5b34801561036c57600080fd5b50604080518082019091526009815268536f7261205a756b6960b81b60208201525b60405161039b91906130ab565b60405180910390f35b3480156103b057600080fd5b506103c46103bf366004613100565b610ad0565b005b3480156103d257600080fd5b506103e66103e1366004613151565b610b57565b604051901515815260200161039b565b34801561040257600080fd5b506103c46104113660046131ac565b610bb6565b34801561042257600080fd5b50600f545b60405190815260200161039b565b34801561044157600080fd5b506103e6610450366004613283565b60076020526000908152604090205460ff1681565b34801561047157600080fd5b506103e66104803660046132a0565b610c4c565b34801561049157600080fd5b5061042760155481565b3480156104a757600080fd5b506104276104b63660046132e1565b610d46565b3480156104c757600080fd5b506040516009815260200161039b565b3480156104e357600080fd5b506103c46104f2366004613283565b610dca565b34801561050357600080fd5b506103e6610512366004613151565b610f80565b34801561052357600080fd5b506103c46105323660046132fa565b611000565b34801561054357600080fd5b506103c46105523660046132a0565b611083565b34801561056357600080fd5b506103c4610572366004613335565b611120565b34801561058357600080fd5b506103c4610592366004613283565b611178565b3480156105a357600080fd5b506104276105b236600461336e565b6111c6565b3480156105c357600080fd5b506009546103e69060ff1681565b3480156105dd57600080fd5b506103c46105ec366004613283565b61125c565b3480156105fd57600080fd5b506103e661060c366004613283565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561063657600080fd5b506103c4610645366004613393565b6113af565b34801561065657600080fd5b506103c46106653660046133b5565b61140f565b34801561067657600080fd5b506103e6610685366004613283565b60066020526000908152604090205460ff1681565b3480156106a657600080fd5b5061042760135481565b3480156106bc57600080fd5b5061042760145481565b3480156106d257600080fd5b5061042760125481565b3480156106e857600080fd5b506009546103e690610100900460ff1681565b34801561070757600080fd5b50610427610716366004613283565b611464565b34801561072757600080fd5b506103c46114c3565b34801561073c57600080fd5b50601a54601b54601c5461074f92919083565b6040805193845260208401929092529082015260600161039b565b34801561077657600080fd5b5060165461078a906001600160a01b031681565b6040516001600160a01b03909116815260200161039b565b3480156107ae57600080fd5b506103e66107bd366004613283565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156107e757600080fd5b506000546001600160a01b031661078a565b34801561080557600080fd5b506103c46108143660046131ac565b6114f9565b34801561082557600080fd5b506103c46108343660046133e3565b61158a565b34801561084557600080fd5b50604080518082019091526004815263534f524160e01b602082015261038e565b34801561087257600080fd5b5060205460215460225461074f92919083565b34801561089157600080fd5b506103c46108a03660046132e1565b6115ce565b3480156108b157600080fd5b506103e66108c0366004613151565b611675565b3480156108d157600080fd5b50600e5461078a906001600160a01b031681565b3480156108f157600080fd5b506103e6610900366004613151565b61175b565b34801561091157600080fd5b506103c46109203660046133b5565b6117b0565b34801561093157600080fd5b506103c4610940366004613283565b611805565b34801561095157600080fd5b506103c46109603660046132e1565b611851565b34801561097157600080fd5b50610427600c5481565b34801561098757600080fd5b506103c46109963660046132e1565b611897565b3480156109a757600080fd5b506104276109b6366004613335565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156109ed57600080fd5b5061042760115481565b348015610a0357600080fd5b506103c4610a12366004613400565b6118dd565b348015610a2357600080fd5b506103c4610a32366004613100565b611929565b348015610a4357600080fd5b506103c4610a52366004613283565b6119a7565b348015610a6357600080fd5b50600b546103e69060ff1681565b348015610a7d57600080fd5b506103c4610a8c366004613283565b6119f2565b348015610a9d57600080fd5b50601d54601e54601f5461074f92919083565b348015610abc57600080fd5b50600d5461078a906001600160a01b031681565b6000546001600160a01b03163314610b035760405162461bcd60e51b8152600401610afa9061341e565b60405180910390fd5b60408051606081018252848152602081018490528101829052601d849055601e839055601f829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b600954600090339060ff1680610b8557506001600160a01b03811660009081526006602052604090205460ff165b610ba15760405162461bcd60e51b8152600401610afa90613453565b610bac338585611b51565b5060019392505050565b6000546001600160a01b03163314610be05760405162461bcd60e51b8152600401610afa9061341e565b60005b8251811015610c47578160076000858481518110610c0357610c0361348a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610c3f816134b6565b915050610be3565b505050565b600954600090849060ff1680610c7a57506001600160a01b03811660009081526006602052604090205460ff165b610c965760405162461bcd60e51b8152600401610afa90613453565b610ca1858585611c75565b6001600160a01b038516600090815260036020908152604080832033845290915290205483811015610d265760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610afa565b610d3a8633610d3587856134cf565b611b51565b50600195945050505050565b6000601054821115610dad5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610afa565b6000610db7612415565b9050610dc381846134e6565b9392505050565b6000546001600160a01b03163314610df45760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03811660009081526005602052604090205460ff16610e5c5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610afa565b60005b600854811015610f7c57816001600160a01b031660088281548110610e8657610e8661348a565b6000918252602090912001546001600160a01b031603610f6a5760088054610eb0906001906134cf565b81548110610ec057610ec061348a565b600091825260209091200154600880546001600160a01b039092169183908110610eec57610eec61348a565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556008805480610f4457610f44613508565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610f74816134b6565b915050610e5f565b5050565b600954600090339060ff1680610fae57506001600160a01b03811660009081526006602052604090205460ff165b610fca5760405162461bcd60e51b8152600401610afa90613453565b3360008181526003602090815260408083206001600160a01b0389168452909152902054610bac91908690610d3590879061351e565b6000546001600160a01b0316331461102a5760405162461bcd60e51b8152600401610afa9061341e565b6009805461ffff191661ff00198615159081169190911761010082021790915560408051606081018252858152602081018590520182905260178490556018839055601982905560010361107d57436015555b50505050565b6000546001600160a01b031633146110ad5760405162461bcd60e51b8152600401610afa9061341e565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107d9190613536565b6000546001600160a01b0316331461114a5760405162461bcd60e51b8152600401610afa9061341e565b600d80546001600160a01b039384166001600160a01b031991821617909155600e8054929093169116179055565b6000546001600160a01b031633146111a25760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600f5483111561121a5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610afa565b8161123957600061122f846001600080612438565b5191506112569050565b6000611249846001600080612438565b6020015191506112569050565b92915050565b6000546001600160a01b031633146112865760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03811660009081526005602052604090205460ff16156112ef5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610afa565b6001600160a01b03811660009081526001602052604090205415611349576001600160a01b03811660009081526001602052604090205461132f90610d46565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b031633146113d95760405162461bcd60e51b8152600401610afa9061341e565b6113e56009600a613637565b6113ef9083613646565b6012556113fe6009600a613637565b6114089082613646565b6013555050565b6000546001600160a01b031633146114395760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b03811660009081526005602052604081205460ff16156114a157506001600160a01b031660009081526002602052604090205490565b6001600160a01b03821660009081526001602052604090205461125690610d46565b6000546001600160a01b031633146114ed5760405162461bcd60e51b8152600401610afa9061341e565b6114f76000612480565b565b6000546001600160a01b031633146115235760405162461bcd60e51b8152600401610afa9061341e565b60005b8251811015610c475781600460008584815181106115465761154661348a565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611582816134b6565b915050611526565b6000546001600160a01b031633146115b45760405162461bcd60e51b8152600401610afa9061341e565b600980549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146115f85760405162461bcd60e51b8152600401610afa9061341e565b804710156116485760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610afa565b604051339082156108fc029083906000818181858888f19350505050158015610f7c573d6000803e3d6000fd5b600954600090339060ff16806116a357506001600160a01b03811660009081526006602052604090205460ff165b6116bf5760405162461bcd60e51b8152600401610afa90613453565b3360009081526003602090815260408083206001600160a01b0388168452909152902054838110156117415760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610afa565b6117503386610d3587856134cf565b506001949350505050565b600954600090339060ff168061178957506001600160a01b03811660009081526006602052604090205460ff165b6117a55760405162461bcd60e51b8152600401610afa90613453565b610bac338585611c75565b6000546001600160a01b031633146117da5760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b0316331461182f5760405162461bcd60e51b8152600401610afa9061341e565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461187b5760405162461bcd60e51b8152600401610afa9061341e565b6118876009600a613637565b6118919082613646565b60115550565b6000546001600160a01b031633146118c15760405162461bcd60e51b8152600401610afa9061341e565b6118cd6009600a613637565b6118d79082613646565b60145550565b6000546001600160a01b031633146119075760405162461bcd60e51b8152600401610afa9061341e565b611912816001613646565b600c5550600b805460ff1916911515919091179055565b6000546001600160a01b031633146119535760405162461bcd60e51b8152600401610afa9061341e565b60408051606081018252848152602081018490528101829052601a849055601b839055601c829055517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a1505050565b6000546001600160a01b031633146119d15760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314611a1c5760405162461bcd60e51b8152600401610afa9061341e565b6001600160a01b038116611a815760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610afa565b611a8a81612480565b50565b600082600003611a9f57506000611256565b6000611aab8385613646565b905082611ab885836134e6565b14610dc35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610afa565b6000610dc383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124d0565b6001600160a01b038316611bb35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610afa565b6001600160a01b038216611c145760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610afa565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611cd95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610afa565b6001600160a01b038216611d3b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610afa565b60008111611d9d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610afa565b611da683611464565b811115611e0f5760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610afa565b6001600160a01b03831660009081526007602052604090205460ff16158015611e5157506001600160a01b03821660009081526007602052604090205460ff16155b611e8d5760405162461bcd60e51b815260206004820152600d60248201526c165bdd48185c99481848189bdd609a1b6044820152606401610afa565b6001600160a01b03831660009081526004602052604090205460ff16158015611ecf57506001600160a01b03821660009081526004602052604090205460ff16155b15611f1b5760095460ff16611f1b5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610afa565b600e546001600160a01b038481169116148015611f5157506001600160a01b03821660009081526004602052604090205460ff16155b8015611f66575060095462010000900460ff16155b1561202257601254811115611fbd5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610afa565b60145481611fca84611464565b611fd4919061351e565b11156120225760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610afa565b600e546001600160a01b0384811691161480159061205957506001600160a01b03821660009081526004602052604090205460ff16155b801561207e57506001600160a01b03831660009081526004602052604090205460ff16155b8015612093575060095462010000900460ff16155b156121f6576013548111156120ea5760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610afa565b600e546001600160a01b03838116911614612164576014548161210c84611464565b612116919061351e565b11156121645760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610afa565b600b5460ff16156121f6576001600160a01b0383166000908152600a602052604081205461219290426134cf565b9050600c548110156121d95760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610afa565b506001600160a01b0383166000908152600a602052604090204290555b6122026009600a613637565b61220d90600a613646565b8161221785611464565b61222191906134cf565b116122685761222f83611464565b8161223c6009600a613637565b61224790600a613646565b612251919061351e565b61225b91906134cf565b61226590826134cf565b90505b600060115461227630611464565b600954911115915062010000900460ff1615801561229b5750600954610100900460ff165b80156122a45750805b80156122be5750600e546001600160a01b03858116911614155b80156122e357506001600160a01b03841660009081526004602052604090205460ff16155b801561230857506001600160a01b03831660009081526004602052604090205460ff16155b1561238457600e546001600160a01b03908116908416036123565760115460408051606081018252601d548152601e546020820152601f54918101919091526123519190612507565b612384565b60115460408051606081018252601a548152601b546020820152601c54918101919091526123849190612507565b60095460019060009062010000900460ff16806123b957506001600160a01b03861660009081526004602052604090205460ff165b806123dc57506001600160a01b03851660009081526004602052604090205460ff165b156123e657600091505b600e546001600160a01b0390811690861603612400575060015b61240d8686868585612615565b505050505050565b60008060006124226128f3565b909250905061243181836134e6565b9250505090565b61244061305f565b61244c85858585612a76565b905061246181868661245c612415565b612bd2565b608086015260608501526040840152602083015281525b949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081836124f15760405162461bcd60e51b8152600401610afa91906130ab565b5060006124fe84866134e6565b95945050505050565b6009805462ff00001916620100001790556020810151604082015160009161252e9161351e565b612539906002613646565b905060008183604001518561254e9190613646565b61255891906134e6565b9050600061256682866134cf565b90504761257282612c5f565b600061257e82476134cf565b9050600086604001518661259291906134cf565b61259c90836134e6565b905060008760400151826125b09190613646565b905080156125c2576125c28682612db1565b60208801516000906125d5846002613646565b6125df9190613646565b905080156125fd576016546125fd906001600160a01b031682612e86565b50506009805462ff0000191690555050505050505050565b6001600160a01b03851660009081526004602052604081205460ff1615801561265757506001600160a01b03851660009081526004602052604090205460ff16155b801561266557506015544311155b9050600061267585858585612438565b6001600160a01b03881660009081526005602052604090205490915060ff16156126d7576001600160a01b0387166000908152600260205260409020546126bd9086906134cf565b6001600160a01b0388166000908152600260205260409020555b6001600160a01b03861660009081526005602052604090205460ff161561273a5760a08101516001600160a01b038716600090815260026020526040902054612720919061351e565b6001600160a01b0387166000908152600260205260409020555b80516001600160a01b03881660009081526001602052604090205461275f91906134cf565b6001600160a01b0380891660009081526001602090815260408083209490945584015191891681529190912054612796919061351e565b6001600160a01b03871660009081526001602052604090819020919091558101511515806127c8575060008160c00151115b156127df576127df81604001518260c00151612f9f565b6000816080015111806127f757506000816101000151115b1561286b5761280f8160800151826101000151612fd4565b306001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360e00151846101000151612859919061351e565b60405190815260200160405180910390a35b600081606001511180612882575060008160e00151115b156128995761289981606001518260e0015161304a565b856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360a001516040516128e291815260200190565b60405180910390a350505050505050565b601054600f546000918291825b600854811015612a45578260016000600884815481106129225761292261348a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061298d57508160026000600884815481106129665761296661348a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156129a357601054600f54945094505050509091565b60016000600883815481106129ba576129ba61348a565b60009182526020808320909101546001600160a01b031683528201929092526040019020546129e990846134cf565b92506002600060088381548110612a0257612a0261348a565b60009182526020808320909101546001600160a01b03168352820192909252604001902054612a3190836134cf565b915080612a3d816134b6565b915050612900565b50600f54601054612a5691906134e6565b821015612a6d57601054600f549350935050509091565b90939092509050565b612a7e61305f565b83612a8f5760a08101859052612478565b612ab360405180606001604052806000815260200160008152602001600081525090565b838015612abe575082155b15612aea575060408051606081018252601d548152601e546020820152601f5491810191909152612b39565b82612b16575060408051606081018252601a548152601b546020820152601c5491810191909152612b39565b506040805160608101825260175481526018546020820152601954918101919091525b8051606490612b489088613646565b612b5291906134e6565b60c08301526020810151606490612b699088613646565b612b7391906134e6565b60e08301526040810151606490612b8a9088613646565b612b9491906134e6565b610100830181905260e083015160c0840151612bb090896134cf565b612bba91906134cf565b612bc491906134cf565b60a083015250949350505050565b600080808080612be28689613646565b945086612bfa57508392506000915081905080612c54565b858960c00151612c0a9190613646565b9250858960e00151612c1c9190613646565b915085896101000151612c2f9190613646565b90508082612c3d85886134cf565b612c4791906134cf565b612c5191906134cf565b93505b945094509450945094565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612c9457612c9461348a565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d119190613665565b81600181518110612d2457612d2461348a565b6001600160a01b039283166020918202929092010152600d54612d4a9130911684611b51565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790612d83908590600090869030904290600401613682565b600060405180830381600087803b158015612d9d57600080fd5b505af115801561240d573d6000803e3d6000fd5b600d54612dc99030906001600160a01b031684611b51565b600d546001600160a01b031663f305d719823085600080612df26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612e5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612e7f91906136f3565b5050505050565b80471015612ed65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610afa565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612f23576040519150601f19603f3d011682016040523d82523d6000602084013e612f28565b606091505b5050905080610c475760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610afa565b8160106000828254612fb191906134cf565b909155505060208054829190600090612fcb90849061351e565b90915550505050565b8060206002016000828254612fe9919061351e565b90915550503060009081526005602052604090205460ff161561302b57306000908152600260205260408120805483929061302590849061351e565b90915550505b3060009081526001602052604081208054849290612fcb90849061351e565b8060206001016000828254612fe9919061351e565b6040518061012001604052806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600060208083528351808285015260005b818110156130d8578581018301518582016040015282016130bc565b818111156130ea576000604083870101525b50601f01601f1916929092016040019392505050565b60008060006060848603121561311557600080fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611a8a57600080fd5b803561314c8161312c565b919050565b6000806040838503121561316457600080fd5b823561316f8161312c565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b8015158114611a8a57600080fd5b803561314c81613193565b600080604083850312156131bf57600080fd5b823567ffffffffffffffff808211156131d757600080fd5b818501915085601f8301126131eb57600080fd5b81356020828211156131ff576131ff61317d565b8160051b604051601f19603f830116810181811086821117156132245761322461317d565b60405292835281830193508481018201928984111561324257600080fd5b948201945b838610156132675761325886613141565b85529482019493820193613247565b965061327690508782016131a1565b9450505050509250929050565b60006020828403121561329557600080fd5b8135610dc38161312c565b6000806000606084860312156132b557600080fd5b83356132c08161312c565b925060208401356132d08161312c565b929592945050506040919091013590565b6000602082840312156132f357600080fd5b5035919050565b6000806000806080858703121561331057600080fd5b843561331b81613193565b966020860135965060408601359560600135945092505050565b6000806040838503121561334857600080fd5b82356133538161312c565b915060208301356133638161312c565b809150509250929050565b6000806040838503121561338157600080fd5b82359150602083013561336381613193565b600080604083850312156133a657600080fd5b50508035926020909101359150565b600080604083850312156133c857600080fd5b82356133d38161312c565b9150602083013561336381613193565b6000602082840312156133f557600080fd5b8135610dc381613193565b6000806040838503121561341357600080fd5b823561316f81613193565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f54726164696e67206e6f7420656e61626c656420796574000000000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016134c8576134c86134a0565b5060010190565b6000828210156134e1576134e16134a0565b500390565b60008261350357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603160045260246000fd5b60008219821115613531576135316134a0565b500190565b60006020828403121561354857600080fd5b8151610dc381613193565b600181815b8085111561358e578160001904821115613574576135746134a0565b8085161561358157918102915b93841c9390800290613558565b509250929050565b6000826135a557506001611256565b816135b257506000611256565b81600181146135c857600281146135d2576135ee565b6001915050611256565b60ff8411156135e3576135e36134a0565b50506001821b611256565b5060208310610133831016604e8410600b8410161715613611575081810a611256565b61361b8383613553565b806000190482111561362f5761362f6134a0565b029392505050565b6000610dc360ff841683613596565b6000816000190483118215151615613660576136606134a0565b500290565b60006020828403121561367757600080fd5b8151610dc38161312c565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156136d25784516001600160a01b0316835293830193918301916001016136ad565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561370857600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122071de14c3e35c84bff984e4ba4710ca09bacbe8fead7413665a810880b3d9a1ab64736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

5779:19684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9116:83;;;;;;;;;;-1:-1:-1;9186:5:0;;;;;;;;;;;;-1:-1:-1;;;9186:5:0;;;;9116:83;;;;;;;:::i;:::-;;;;;;;;13921:185;;;;;;;;;;-1:-1:-1;13921:185:0;;;;;:::i;:::-;;:::i;:::-;;9857:181;;;;;;;;;;-1:-1:-1;9857:181:0;;;;;:::i;:::-;;:::i;:::-;;;1697:14:1;;1690:22;1672:41;;1660:2;1645:18;9857:181:0;1532:187:1;24140:209:0;;;;;;;;;;-1:-1:-1;24140:209:0;;;;;:::i;:::-;;:::i;9393:95::-;;;;;;;;;;-1:-1:-1;9473:7:0;;9393:95;;;3454:25:1;;;3442:2;3427:18;9393:95:0;3308:177:1;6257:47:0;;;;;;;;;;-1:-1:-1;6257:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10046:430;;;;;;;;;;-1:-1:-1;10046:430:0;;;;;:::i;:::-;;:::i;7280:28::-;;;;;;;;;;;;;;;;12280:248;;;;;;;;;;-1:-1:-1;12280:248:0;;;;;:::i;:::-;;:::i;9298:83::-;;;;;;;;;;-1:-1:-1;9298:83:0;;6855:1;4530:36:1;;4518:2;4503:18;9298:83:0;4388:184:1;12877:475:0;;;;;;;;;;-1:-1:-1;12877:475:0;;;;;:::i;:::-;;:::i;10484:228::-;;;;;;;;;;-1:-1:-1;10484:228:0;;;;;:::i;:::-;;:::i;11937:335::-;;;;;;;;;;-1:-1:-1;11937:335:0;;;;;:::i;:::-;;:::i;25268:150::-;;;;;;;;;;-1:-1:-1;25268:150:0;;;;;:::i;:::-;;:::i;24828:154::-;;;;;;;;;;-1:-1:-1;24828:154:0;;;;;:::i;:::-;;:::i;13362:111::-;;;;;;;;;;-1:-1:-1;13362:111:0;;;;;:::i;:::-;;:::i;11445:484::-;;;;;;;;;;-1:-1:-1;11445:484:0;;;;;:::i;:::-;;:::i;6349:26::-;;;;;;;;;;-1:-1:-1;6349:26:0;;;;;;;;12536:333;;;;;;;;;;-1:-1:-1;12536:333:0;;;;;:::i;:::-;;:::i;13601:123::-;;;;;;;;;;-1:-1:-1;13601:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;13689:27:0;13665:4;13689:27;;;:18;:27;;;;;;;;;13601:123;24502:183;;;;;;;;;;-1:-1:-1;24502:183:0;;;;;:::i;:::-;;:::i;24002:126::-;;;;;;;;;;-1:-1:-1;24002:126:0;;;;;:::i;:::-;;:::i;6202:48::-;;;;;;;;;;-1:-1:-1;6202:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7152:53;;;;;;;;;;;;;;;;7212:55;;;;;;;;;;;;;;;;7093:52;;;;;;;;;;;;;;;;6382:23;;;;;;;;;;-1:-1:-1;6382:23:0;;;;;;;;;;;9496:198;;;;;;;;;;-1:-1:-1;9496:198:0;;;;;:::i;:::-;;:::i;2995:94::-;;;;;;;;;;;;;:::i;7636:35::-;;;;;;;;;;-1:-1:-1;7636:35:0;;;;;;;;;;;;;;;;6577:25:1;;;6633:2;6618:18;;6611:34;;;;6661:18;;;6654:34;6565:2;6550:18;7636:35:0;6375:319:1;7317:75:0;;;;;;;;;;-1:-1:-1;7317:75:0;;;;-1:-1:-1;;;;;7317:75:0;;;;;;-1:-1:-1;;;;;6863:32:1;;;6845:51;;6833:2;6818:18;7317:75:0;6699:203:1;11317:120:0;;;;;;;;;;-1:-1:-1;11317:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;11409:20:0;11385:4;11409:20;;;:11;:20;;;;;;;;;11317:120;2772:87;;;;;;;;;;-1:-1:-1;2818:7:0;2845:6;-1:-1:-1;;;;;2845:6:0;2772:87;;23248:209;;;;;;;;;;-1:-1:-1;23248:209:0;;;;;:::i;:::-;;:::i;23889:101::-;;;;;;;;;;-1:-1:-1;23889:101:0;;;;;:::i;:::-;;:::i;9205:87::-;;;;;;;;;;-1:-1:-1;9277:7:0;;;;;;;;;;;;-1:-1:-1;;;9277:7:0;;;;9205:87;;7849:36;;;;;;;;;;-1:-1:-1;7849:36:0;;;;;;;;;;;;25058:196;;;;;;;;;;-1:-1:-1;25058:196:0;;;;;:::i;:::-;;:::i;10720:390::-;;;;;;;;;;-1:-1:-1;10720:390:0;;;;;:::i;:::-;;:::i;6792:19::-;;;;;;;;;;-1:-1:-1;6792:19:0;;;;-1:-1:-1;;;;;6792:19:0;;;11122:187;;;;;;;;;;-1:-1:-1;11122:187:0;;;;;:::i;:::-;;:::i;24361:129::-;;;;;;;;;;-1:-1:-1;24361:129:0;;;;;:::i;:::-;;:::i;23465:114::-;;;;;;;;;;-1:-1:-1;23465:114:0;;;;;:::i;:::-;;:::i;23751:130::-;;;;;;;;;;-1:-1:-1;23751:130:0;;;;;:::i;:::-;;:::i;6562:39::-;;;;;;;;;;;;;;;;24697:123;;;;;;;;;;-1:-1:-1;24697:123:0;;;;;:::i;:::-;;:::i;9706:143::-;;;;;;;;;;-1:-1:-1;9706:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;9814:18:0;;;9787:7;9814:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9706:143;7026:60;;;;;;;;;;;;;;;;23591:152;;;;;;;;;;-1:-1:-1;23591:152:0;;;;;:::i;:::-;;:::i;13732:177::-;;;;;;;;;;-1:-1:-1;13732:177:0;;;;;:::i;:::-;;:::i;13481:110::-;;;;;;;;;;-1:-1:-1;13481:110:0;;;;;:::i;:::-;;:::i;6521:34::-;;;;;;;;;;-1:-1:-1;6521:34:0;;;;;;;;3097:192;;;;;;;;;;-1:-1:-1;3097:192:0;;;;;:::i;:::-;;:::i;7678:39::-;;;;;;;;;;-1:-1:-1;7678:39:0;;;;;;;;;;;;6764:21;;;;;;;;;;-1:-1:-1;6764:21:0;;;;-1:-1:-1;;;;;6764:21:0;;;13921:185;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;;;;;;;;;14036:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;14024:9:::1;:45:::0;;;;;;;;;;;14085:13;::::1;::::0;-1:-1:-1;;14085:13:0::1;13921:185:::0;;;:::o;9857:181::-;6666:14;;9952:4;;9932:10;;6666:14;;;:42;;-1:-1:-1;;;;;;6684:24:0;;;;;;:15;:24;;;;;;;;6666:42;6658:78;;;;-1:-1:-1;;;6658:78:0;;;;;;;:::i;:::-;9969:39:::1;2391:10:::0;9992:7:::1;10001:6;9969:8;:39::i;:::-;-1:-1:-1::0;10026:4:0::1;::::0;9857:181;-1:-1:-1;;;9857:181:0:o;24140:209::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;24239:9:::1;24235:107;24257:8;:15;24253:1;:19;24235:107;;;24323:5;24293:14;:27;24308:8;24317:1;24308:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;24293:27:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;24293:27:0;:35;;-1:-1:-1;;24293:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24274:3;::::1;::::0;::::1;:::i;:::-;;;;24235:107;;;;24140:209:::0;;:::o;10046:430::-;6666:14;;10160:4;;10143:6;;6666:14;;;:42;;-1:-1:-1;;;;;;6684:24:0;;;;;;:15;:24;;;;;;;;6666:42;6658:78;;;;-1:-1:-1;;;6658:78:0;;;;;;;:::i;:::-;10177:36:::1;10187:6;10195:9;10206:6;10177:9;:36::i;:::-;-1:-1:-1::0;;;;;10253:19:0;::::1;10226:24;10253:19:::0;;;:11:::1;:19;::::0;;;;;;;2391:10;10253:33;;;;;;;;10305:26;;::::1;;10297:79;;;::::0;-1:-1:-1;;;10297:79:0;;9009:2:1;10297:79:0::1;::::0;::::1;8991:21:1::0;9048:2;9028:18;;;9021:30;9087:34;9067:18;;;9060:62;-1:-1:-1;;;9138:18:1;;;9131:38;9186:19;;10297:79:0::1;8807:404:1::0;10297:79:0::1;10387:57;10396:6:::0;2391:10;10418:25:::1;10437:6:::0;10418:16;:25:::1;:::i;:::-;10387:8;:57::i;:::-;-1:-1:-1::0;10464:4:0::1;::::0;10046:430;-1:-1:-1;;;;;10046:430:0:o;12280:248::-;12346:7;12385;;12374;:18;;12366:73;;;;-1:-1:-1;;;12366:73:0;;9548:2:1;12366:73:0;;;9530:21:1;9587:2;9567:18;;;9560:30;9626:34;9606:18;;;9599:62;-1:-1:-1;;;9677:18:1;;;9670:40;9727:19;;12366:73:0;9346:406:1;12366:73:0;12450:19;12473:10;:8;:10::i;:::-;12450:33;-1:-1:-1;12501:19:0;12450:33;12501:7;:19;:::i;:::-;12494:26;12280:248;-1:-1:-1;;;12280:248:0:o;12877:475::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12959:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;12951:56;;;::::0;-1:-1:-1;;;12951:56:0;;10181:2:1;12951:56:0::1;::::0;::::1;10163:21:1::0;10220:2;10200:18;;;10193:30;10259:25;10239:18;;;10232:53;10302:18;;12951:56:0::1;9979:347:1::0;12951:56:0::1;13023:9;13018:327;13042:9;:16:::0;13038:20;::::1;13018:327;;;13100:7;-1:-1:-1::0;;;;;13084:23:0::1;:9;13094:1;13084:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;13084:12:0::1;:23:::0;13080:254:::1;;13143:9;13153:16:::0;;:20:::1;::::0;13172:1:::1;::::0;13153:20:::1;:::i;:::-;13143:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;13128:9:::1;:12:::0;;-1:-1:-1;;;;;13143:31:0;;::::1;::::0;13138:1;;13128:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;13128:46:0::1;-1:-1:-1::0;;;;;13128:46:0;;::::1;;::::0;;13193:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;13232:11:::1;:20:::0;;;;:28;;-1:-1:-1;;13232:28:0::1;::::0;;13279:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;13279:15:0;;;;;-1:-1:-1;;;;;;13279:15:0::1;::::0;;;;;13018:327:::1;12877:475:::0;:::o;13080:254::-:1;13060:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13018:327;;;;12877:475:::0;:::o;10484:228::-;6666:14;;10585:4;;10564:10;;6666:14;;;:42;;-1:-1:-1;;;;;;6684:24:0;;;;;;:15;:24;;;;;;;;6666:42;6658:78;;;;-1:-1:-1;;;6658:78:0;;;;;;;:::i;:::-;2391:10;10634:25:::1;::::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;10634:34:0;::::1;::::0;;;;;;;;10602:80:::1;::::0;2391:10;10625:7;;10634:47:::1;::::0;10671:10;;10634:47:::1;:::i;11937:335::-:0;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;12099:14:::1;:22:::0;;-1:-1:-1;;12132:19:0;-1:-1:-1;;12099:22:0;::::1;;12132:19:::0;;;;;;;12099:22:::1;12132:19:::0;::::1;;::::0;;;12174:32:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;12162:9:::1;:44:::0;;;;;;;;;;;-1:-1:-1;12221:13:0;12217:47:::1;;12252:12;12236:13;:28:::0;12217:47:::1;11937:335:::0;;;;:::o;25268:150::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;25369:41:::1;::::0;-1:-1:-1;;;25369:41:0;;-1:-1:-1;;;;;10788:32:1;;;25369:41:0::1;::::0;::::1;10770:51:1::0;10837:18;;;10830:34;;;25369:27:0;::::1;::::0;::::1;::::0;10743:18:1;;25369:41:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;24828:154::-:0;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;24922:6:::1;:27:::0;;-1:-1:-1;;;;;24922:27:0;;::::1;-1:-1:-1::0;;;;;;24922:27:0;;::::1;;::::0;;;24960:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;24828:154::o;13362:111::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13431:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;13431:34:0::1;13461:4;13431:34;::::0;;13362:111::o;11445:484::-;11535:7;11574;;11563;:18;;11555:62;;;;-1:-1:-1;;;11555:62:0;;11327:2:1;11555:62:0;;;11309:21:1;11366:2;11346:18;;;11339:30;11405:33;11385:18;;;11378:61;11456:18;;11555:62:0;11125:355:1;11555:62:0;11633:17;11628:294;;11667:28;11698:39;11709:7;11718:4;11724:5;11731;11698:10;:39::i;:::-;11759:9;;-1:-1:-1;11752:16:0;;-1:-1:-1;11752:16:0;11628:294;11801:28;11832:39;11843:7;11852:4;11858:5;11865;11832:10;:39::i;:::-;11893:17;;;;-1:-1:-1;11886:24:0;;-1:-1:-1;11886:24:0;11628:294;11445:484;;;;:::o;12536:333::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12619:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;12618:21;12610:61;;;::::0;-1:-1:-1;;;12610:61:0;;11687:2:1;12610:61:0::1;::::0;::::1;11669:21:1::0;11726:2;11706:18;;;11699:30;11765:29;11745:18;;;11738:57;11812:18;;12610:61:0::1;11485:351:1::0;12610:61:0::1;-1:-1:-1::0;;;;;12685:16:0;::::1;12704:1;12685:16:::0;;;:7:::1;:16;::::0;;;;;:20;12682:108:::1;;-1:-1:-1::0;;;;;12761:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;12741:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;12722:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;12682:108:::1;-1:-1:-1::0;;;;;12800:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;12800:27:0::1;12823:4;12800:27:::0;;::::1;::::0;;;12838:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;12838:23:0::1;::::0;;::::1;::::0;;12536:333::o;24502:183::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;24613:14:::1;6855:1:::0;24613:2:::1;:14;:::i;:::-;24604:23;::::0;:6;:23:::1;:::i;:::-;24590:11;:37:::0;24663:14:::1;6855:1:::0;24663:2:::1;:14;:::i;:::-;24653:24;::::0;:7;:24:::1;:::i;:::-;24638:12;:39:::0;-1:-1:-1;;24502:183:0:o;24002:126::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24089:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;24089:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24002:126::o;9496:198::-;-1:-1:-1;;;;;9586:20:0;;9562:7;9586:20;;;:11;:20;;;;;;;;9582:49;;;-1:-1:-1;;;;;;9615:16:0;;;;;:7;:16;;;;;;;9496:198::o;9582:49::-;-1:-1:-1;;;;;9669:16:0;;;;;;:7;:16;;;;;;9649:37;;:19;:37::i;2995:94::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;3060:21:::1;3078:1;3060:9;:21::i;:::-;2995:94::o:0;23248:209::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;23344:9:::1;23340:110;23363:8;:15;23359:1;:19;23340:110;;;23433:5;23399:18;:31;23418:8;23427:1;23418:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;23399:31:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;23399:31:0;:39;;-1:-1:-1;;23399:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23380:3;::::1;::::0;::::1;:::i;:::-;;;;23340:110;;23889:101:::0;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;23960:11:::1;:22:::0;;;::::1;;;;-1:-1:-1::0;;23960:22:0;;::::1;::::0;;;::::1;::::0;;23889:101::o;25058:196::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;25158:9:::1;25133:21;:34;;25125:71;;;::::0;-1:-1:-1;;;25125:71:0;;13599:2:1;25125:71:0::1;::::0;::::1;13581:21:1::0;13638:2;13618:18;;;13611:30;13677:26;13657:18;;;13650:54;13721:18;;25125:71:0::1;13397:348:1::0;25125:71:0::1;25207:39;::::0;25215:10:::1;::::0;25207:39;::::1;;;::::0;25236:9;;25207:39:::1;::::0;;;25236:9;25215:10;25207:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;10720:390:::0;6666:14;;10826:4;;10805:10;;6666:14;;;:42;;-1:-1:-1;;;;;;6684:24:0;;;;;;:15;:24;;;;;;;;6666:42;6658:78;;;;-1:-1:-1;;;6658:78:0;;;;;;;:::i;:::-;2391:10;10843:24:::1;10870:25:::0;;;:11:::1;:25;::::0;;;;;;;-1:-1:-1;;;;;10870:34:0;::::1;::::0;;;;;;;;10923:35;;::::1;;10915:85;;;::::0;-1:-1:-1;;;10915:85:0;;13952:2:1;10915:85:0::1;::::0;::::1;13934:21:1::0;13991:2;13971:18;;;13964:30;14030:34;14010:18;;;14003:62;-1:-1:-1;;;14081:18:1;;;14074:35;14126:19;;10915:85:0::1;13750:401:1::0;10915:85:0::1;11011:67;2391:10:::0;11034:7;11043:34:::1;11062:15:::0;11043:16;:34:::1;:::i;11011:67::-;-1:-1:-1::0;11098:4:0::1;::::0;10720:390;-1:-1:-1;;;;10720:390:0:o;11122:187::-;6666:14;;11220:4;;11199:10;;6666:14;;;:42;;-1:-1:-1;;;;;;6684:24:0;;;;;;:15;:24;;;;;;;;6666:42;6658:78;;;;-1:-1:-1;;;6658:78:0;;;;;;;:::i;:::-;11241:40:::1;11251:10;11263:9;11274:6;11241:9;:40::i;24361:129::-:0;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24450:24:0;;;::::1;;::::0;;;:15:::1;:24;::::0;;;;:32;;-1:-1:-1;;24450:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24361:129::o;23465:114::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;23544:15:::1;:27:::0;;-1:-1:-1;;;;;;23544:27:0::1;-1:-1:-1::0;;;;;23544:27:0;;;::::1;::::0;;;::::1;::::0;;23465:114::o;23751:130::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;23860:13:::1;6855:1;23860:2;:13;:::i;:::-;23851:22;::::0;:6;:22:::1;:::i;:::-;23830:18;:43:::0;-1:-1:-1;23751:130:0:o;24697:123::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;24798:14:::1;6855:1:::0;24798:2:::1;:14;:::i;:::-;24789:23;::::0;:6;:23:::1;:::i;:::-;24772:14;:40:::0;-1:-1:-1;24697:123:0:o;23591:152::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;23685:16:::1;:4:::0;23692:9:::1;23685:16;:::i;:::-;23670:12;:31:::0;-1:-1:-1;23712:15:0::1;:23:::0;;-1:-1:-1;;23712:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23591:152::o;13732:177::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;13839:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;13831:5:::1;:41:::0;;;;;;;;;;;13888:13;::::1;::::0;-1:-1:-1;;13888:13:0::1;13732:177:::0;;;:::o;13481:110::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13548:27:0::1;13578:5;13548:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;13548:35:0::1;::::0;;13481:110::o;3097:192::-;2818:7;2845:6;-1:-1:-1;;;;;2845:6:0;2391:10;2907:23;2899:68;;;;-1:-1:-1;;;2899:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3186:22:0;::::1;3178:73;;;::::0;-1:-1:-1;;;3178:73:0;;14358:2:1;3178:73:0::1;::::0;::::1;14340:21:1::0;14397:2;14377:18;;;14370:30;14436:34;14416:18;;;14409:62;-1:-1:-1;;;14487:18:1;;;14480:36;14533:19;;3178:73:0::1;14156:402:1::0;3178:73:0::1;3262:19;3272:8;3262:9;:19::i;:::-;3097:192:::0;:::o;4805:246::-;4863:7;4887:1;4892;4887:6;4883:47;;-1:-1:-1;4917:1:0;4910:8;;4883:47;4940:9;4952:5;4956:1;4952;:5;:::i;:::-;4940:17;-1:-1:-1;4985:1:0;4976:5;4980:1;4940:17;4976:5;:::i;:::-;:10;4968:56;;;;-1:-1:-1;;;4968:56:0;;14765:2:1;4968:56:0;;;14747:21:1;14804:2;14784:18;;;14777:30;14843:34;14823:18;;;14816:62;-1:-1:-1;;;14894:18:1;;;14887:31;14935:19;;4968:56:0;14563:397:1;5059:132:0;5117:7;5144:39;5148:1;5151;5144:39;;;;;;;;;;;;;;;;;:3;:39::i;17264:335::-;-1:-1:-1;;;;;17357:19:0;;17349:68;;;;-1:-1:-1;;;17349:68:0;;15167:2:1;17349:68:0;;;15149:21:1;15206:2;15186:18;;;15179:30;15245:34;15225:18;;;15218:62;-1:-1:-1;;;15296:18:1;;;15289:34;15340:19;;17349:68:0;14965:400:1;17349:68:0;-1:-1:-1;;;;;17436:21:0;;17428:68;;;;-1:-1:-1;;;17428:68:0;;15572:2:1;17428:68:0;;;15554:21:1;15611:2;15591:18;;;15584:30;15650:34;15630:18;;;15623:62;-1:-1:-1;;;15701:18:1;;;15694:32;15743:19;;17428:68:0;15370:398:1;17428:68:0;-1:-1:-1;;;;;17507:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17559:32;;3454:25:1;;;17559:32:0;;3427:18:1;17559:32:0;;;;;;;17264:335;;;:::o;17607:2256::-;-1:-1:-1;;;;;17695:18:0;;17687:68;;;;-1:-1:-1;;;17687:68:0;;15975:2:1;17687:68:0;;;15957:21:1;16014:2;15994:18;;;15987:30;16053:34;16033:18;;;16026:62;-1:-1:-1;;;16104:18:1;;;16097:35;16149:19;;17687:68:0;15773:401:1;17687:68:0;-1:-1:-1;;;;;17774:16:0;;17766:64;;;;-1:-1:-1;;;17766:64:0;;16381:2:1;17766:64:0;;;16363:21:1;16420:2;16400:18;;;16393:30;16459:34;16439:18;;;16432:62;-1:-1:-1;;;16510:18:1;;;16503:33;16553:19;;17766:64:0;16179:399:1;17766:64:0;17858:1;17849:6;:10;17841:64;;;;-1:-1:-1;;;17841:64:0;;16785:2:1;17841:64:0;;;16767:21:1;16824:2;16804:18;;;16797:30;16863:34;16843:18;;;16836:62;-1:-1:-1;;;16914:18:1;;;16907:39;16963:19;;17841:64:0;16583:405:1;17841:64:0;17934:15;17944:4;17934:9;:15::i;:::-;17924:6;:25;;17916:86;;;;-1:-1:-1;;;17916:86:0;;17195:2:1;17916:86:0;;;17177:21:1;17234:2;17214:18;;;17207:30;17273:34;17253:18;;;17246:62;-1:-1:-1;;;17324:18:1;;;17317:47;17381:19;;17916:86:0;16993:413:1;17916:86:0;-1:-1:-1;;;;;18022:20:0;;;;;;:14;:20;;;;;;;;18021:21;:44;;;;-1:-1:-1;;;;;;18047:18:0;;;;;;:14;:18;;;;;;;;18046:19;18021:44;18013:70;;;;-1:-1:-1;;;18013:70:0;;17613:2:1;18013:70:0;;;17595:21:1;17652:2;17632:18;;;17625:30;-1:-1:-1;;;17671:18:1;;;17664:43;17724:18;;18013:70:0;17411:337:1;18013:70:0;-1:-1:-1;;;;;18108:24:0;;;;;;:18;:24;;;;;;;;18107:25;:52;;;;-1:-1:-1;;;;;;18137:22:0;;;;;;:18;:22;;;;;;;;18136:23;18107:52;18104:128;;;18183:14;;;;18175:45;;;;-1:-1:-1;;;18175:45:0;;17955:2:1;18175:45:0;;;17937:21:1;17994:2;17974:18;;;17967:30;-1:-1:-1;;;18013:18:1;;;18006:48;18071:18;;18175:45:0;17753:342:1;18175:45:0;18270:4;;-1:-1:-1;;;;;18262:12:0;;;18270:4;;18262:12;:39;;;;-1:-1:-1;;;;;;18279:22:0;;;;;;:18;:22;;;;;;;;18278:23;18262:39;:52;;;;-1:-1:-1;18306:8:0;;;;;;;18305:9;18262:52;18259:246;;;18348:11;;18338:6;:21;;18330:63;;;;-1:-1:-1;;;18330:63:0;;18302:2:1;18330:63:0;;;18284:21:1;18341:2;18321:18;;;18314:30;18380:31;18360:18;;;18353:59;18429:18;;18330:63:0;18100:353:1;18330:63:0;18442:14;;18432:6;18416:13;18426:2;18416:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18408:85;;;;-1:-1:-1;;;18408:85:0;;18660:2:1;18408:85:0;;;18642:21:1;;;18679:18;;;18672:30;18738:34;18718:18;;;18711:62;18790:18;;18408:85:0;18458:356:1;18408:85:0;18536:4;;-1:-1:-1;;;;;18528:12:0;;;18536:4;;18528:12;;;;:39;;-1:-1:-1;;;;;;18545:22:0;;;;;;:18;:22;;;;;;;;18544:23;18528:39;:68;;;;-1:-1:-1;;;;;;18572:24:0;;;;;;:18;:24;;;;;;;;18571:25;18528:68;:81;;;;-1:-1:-1;18601:8:0;;;;;;;18600:9;18528:81;18525:573;;;18643:12;;18633:6;:22;;18625:65;;;;-1:-1:-1;;;18625:65:0;;19021:2:1;18625:65:0;;;19003:21:1;19060:2;19040:18;;;19033:30;19099:32;19079:18;;;19072:60;19149:18;;18625:65:0;18819:354:1;18625:65:0;18714:4;;-1:-1:-1;;;;;18708:10:0;;;18714:4;;18708:10;18705:134;;18772:14;;18762:6;18746:13;18756:2;18746:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;18738:85;;;;-1:-1:-1;;;18738:85:0;;18660:2:1;18738:85:0;;;18642:21:1;;;18679:18;;;18672:30;18738:34;18718:18;;;18711:62;18790:18;;18738:85:0;18458:356:1;18738:85:0;18856:15;;;;18853:234;;;-1:-1:-1;;;;;18930:15:0;;18891:18;18930:15;;;:9;:15;;;;;;18912:33;;:15;:33;:::i;:::-;18891:54;;18986:12;;18972:10;:26;;18964:55;;;;-1:-1:-1;;;18964:55:0;;19380:2:1;18964:55:0;;;19362:21:1;19419:2;19399:18;;;19392:30;-1:-1:-1;;;19438:18:1;;;19431:46;19494:18;;18964:55:0;19178:340:1;18964:55:0;-1:-1:-1;;;;;;19038:15:0;;;;;;:9;:15;;;;;19056;19038:33;;18853:234;19165:14;6855:1;19165:2;:14;:::i;:::-;19159:20;;:2;:20;:::i;:::-;19149:6;19131:15;19141:4;19131:9;:15::i;:::-;:24;;;;:::i;:::-;:48;19128:111;;19223:15;19233:4;19223:9;:15::i;:::-;19214:6;19197:14;6855:1;19197:2;:14;:::i;:::-;19192:19;;:2;:19;:::i;:::-;:28;;;;:::i;:::-;:46;;;;:::i;:::-;19181:58;;;;:::i;:::-;;;19128:111;19269:12;19312:18;;19284:24;19302:4;19284:9;:24::i;:::-;19345:8;;-1:-1:-1;;19284:46:0;;-1:-1:-1;19345:8:0;;;;;19344:9;:24;;;;-1:-1:-1;19357:11:0;;;;;;;19344:24;:35;;;;;19372:7;19344:35;:51;;;;-1:-1:-1;19391:4:0;;-1:-1:-1;;;;;19383:12:0;;;19391:4;;19383:12;;19344:51;:80;;;;-1:-1:-1;;;;;;19400:24:0;;;;;;:18;:24;;;;;;;;19399:25;19344:80;:107;;;;-1:-1:-1;;;;;;19429:22:0;;;;;;:18;:22;;;;;;;;19428:23;19344:107;19341:261;;;19476:4;;-1:-1:-1;;;;;19476:4:0;;;19470:10;;;;19467:123;;19498:18;;19483:45;;;;;;;;19518:9;19483:45;;;;;;;;;;;;;;;;;;;;19498:18;19483:14;:45::i;:::-;19467:123;;;19564:18;;19549:41;;;;;;;;19584:5;19549:41;;;;;;;;;;;;;;;;;;;;19564:18;19549:14;:41::i;:::-;19675:8;;19627:4;;19612:12;;19675:8;;;;;;:36;;-1:-1:-1;;;;;;19687:24:0;;;;;;:18;:24;;;;;;;;19675:36;:62;;;-1:-1:-1;;;;;;19715:22:0;;;;;;:18;:22;;;;;;;;19675:62;19672:82;;;19749:5;19739:15;;19672:82;19774:4;;-1:-1:-1;;;;;19774:4:0;;;19768:10;;;;19765:28;;-1:-1:-1;19789:4:0;19765:28;19806:49;19821:4;19827:2;19831:6;19839:7;19848:6;19806:14;:49::i;:::-;17676:2187;;;17607:2256;;;:::o;16550:158::-;16591:7;16612:15;16629;16648:19;:17;:19::i;:::-;16611:56;;-1:-1:-1;16611:56:0;-1:-1:-1;16685:15:0;16611:56;;16685:15;:::i;:::-;16678:22;;;;16550:158;:::o;14833:425::-;14938:36;;:::i;:::-;14999:51;15011:7;15020;15029:6;15037:12;14999:11;:51::i;:::-;14987:63;;15170:53;15183:9;15194:7;15203;15212:10;:8;:10::i;:::-;15170:12;:53::i;:::-;15146:20;;;15061:162;15124:20;;;15061:162;15108:14;;;15061:162;15081:25;;;15061:162;;;14833:425;;;;;;;:::o;3297:173::-;3353:16;3372:6;;-1:-1:-1;;;;;3389:17:0;;;-1:-1:-1;;;;;;3389:17:0;;;;;;3422:40;;3372:6;;;;;;;3422:40;;3353:16;3422:40;3342:128;3297:173;:::o;5199:223::-;5319:7;5354:12;5347:5;5339:28;;;;-1:-1:-1;;;5339:28:0;;;;;;;;:::i;:::-;-1:-1:-1;5378:9:0;5390:5;5394:1;5390;:5;:::i;:::-;5378:17;5199:223;-1:-1:-1;;;;;5199:223:0:o;21155:1002::-;8298:8;:15;;-1:-1:-1;;8298:15:0;;;;;21293:14:::1;::::0;::::1;::::0;21276::::1;::::0;::::1;::::0;8298:15;;21276:31:::1;::::0;::::1;:::i;:::-;21275:37;::::0;21311:1:::1;21275:37;:::i;:::-;21253:59;;21323:32;21393:11;21376:4;:14;;;21358:15;:32;;;;:::i;:::-;:46;;;;:::i;:::-;21323:81:::0;-1:-1:-1;21415:14:0::1;21432:42;21323:81:::0;21432:15;:42:::1;:::i;:::-;21415:59:::0;-1:-1:-1;21512:21:0::1;21546:24;21415:59:::0;21546:16:::1;:24::i;:::-;21583:20;21606:38;21630:14:::0;21606:21:::1;:38;:::i;:::-;21583:61;;21655:19;21706:4;:14;;;21692:11;:28;;;;:::i;:::-;21676:45;::::0;:12;:45:::1;:::i;:::-;21655:66;;21732:29;21778:4;:14;;;21764:11;:28;;;;:::i;:::-;21732:60:::0;-1:-1:-1;21808:25:0;;21805:158:::1;;21890:61;21903:24;21929:21;21890:12;:61::i;:::-;22016:14;::::0;::::1;::::0;21975:20:::1;::::0;21998:15:::1;:11:::0;22012:1:::1;21998:15;:::i;:::-;:32;;;;:::i;:::-;21975:55:::0;-1:-1:-1;22044:16:0;;22041:95:::1;;22084:15;::::0;22076:48:::1;::::0;-1:-1:-1;;;;;22084:15:0::1;22111:12:::0;22076:34:::1;:48::i;:::-;-1:-1:-1::0;;8336:8:0;:16;;-1:-1:-1;;8336:16:0;;;-1:-1:-1;;;;;;;;21155:1002:0:o;19946:1201::-;-1:-1:-1;;;;;20093:26:0;;20072:17;20093:26;;;:18;:26;;;;;;;;20092:27;:74;;;;-1:-1:-1;;;;;;20137:29:0;;;;;;:18;:29;;;;;;;;20136:30;20092:74;:120;;;;;20199:13;;20183:12;:29;;20092:120;20072:140;;20225:28;20256:50;20267:7;20276;20285:6;20293:12;20256:10;:50::i;:::-;-1:-1:-1;;;;;20323:19:0;;;;;;:11;:19;;;;;;20225:81;;-1:-1:-1;20323:19:0;;20319:115;;;-1:-1:-1;;;;;20399:15:0;;;;;;:7;:15;;;;;;:23;;20415:7;;20399:23;:::i;:::-;-1:-1:-1;;;;;20381:15:0;;;;;;:7;:15;;;;;:41;20319:115;-1:-1:-1;;;;;20448:22:0;;;;;;:11;:22;;;;;;;;20444:130;;;20545:17;;;;-1:-1:-1;;;;;20526:18:0;;;;;;:7;:18;;;;;;:36;;20545:17;20526:36;:::i;:::-;-1:-1:-1;;;;;20505:18:0;;;;;;:7;:18;;;;;:57;20444:130;20620:9;;-1:-1:-1;;;;;20604:15:0;;20620:9;20604:15;;;:7;:15;;;;;;:25;;20620:9;20604:25;:::i;:::-;-1:-1:-1;;;;;20586:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;20680:17;;;20661:18;;;;;;;;;;:36;;20680:17;20661:36;:::i;:::-;-1:-1:-1;;;;;20640:18:0;;;;;;:7;:18;;;;;;;:57;;;;20721:6;;;:10;;;:24;;;20744:1;20735;:6;;;:10;20721:24;20718:56;;;20747:27;20759:1;:6;;;20767:1;:6;;;20747:11;:27::i;:::-;20803:1;20788;:12;;;:16;:36;;;;20823:1;20808;:12;;;:16;20788:36;20785:189;;;20841:41;20856:1;:12;;;20869:1;:12;;;20841:14;:41::i;:::-;20927:4;-1:-1:-1;;;;;20902:60:0;20911:6;-1:-1:-1;;;;;20902:60:0;;20949:1;:12;;;20934:1;:12;;;:27;;;;:::i;:::-;20902:60;;3454:25:1;;;3442:2;3427:18;20902:60:0;;;;;;;20785:189;21002:1;20987;:12;;;:16;:36;;;;21022:1;21007;:12;;;:16;20987:36;20984:83;;;21025:42;21040:1;:12;;;21054:1;:12;;;21025:14;:42::i;:::-;21100:9;-1:-1:-1;;;;;21083:46:0;21092:6;-1:-1:-1;;;;;21083:46:0;;21111:1;:17;;;21083:46;;;;3454:25:1;;3442:2;3427:18;;3308:177;21083:46:0;;;;;;;;20057:1090;;19946:1201;;;;;:::o;16716:540::-;16813:7;;16849;;16766;;;;;16867:279;16891:9;:16;16887:20;;16867:279;;;16957:7;16933;:21;16941:9;16951:1;16941:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16941:12:0;16933:21;;;;;;;;;;;;;:31;;:66;;;16992:7;16968;:21;16976:9;16986:1;16976:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;16976:12:0;16968:21;;;;;;;;;;;;;:31;16933:66;16929:97;;;17009:7;;17018;;17001:25;;;;;;;16716:540;;:::o;16929:97::-;17059:7;:21;17067:9;17077:1;17067:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17067:12:0;17059:21;;;;;;;;;;;;;17051:29;;:7;:29;:::i;:::-;17041:39;;17113:7;:21;17121:9;17131:1;17121:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;17121:12:0;17113:21;;;;;;;;;;;;;17105:29;;:7;:29;:::i;:::-;17095:39;-1:-1:-1;16909:3:0;;;;:::i;:::-;;;;16867:279;;;;17178:7;;17170;;:15;;;;:::i;:::-;17160:7;:25;17156:56;;;17195:7;;17204;;17187:25;;;;;;16716:540;;:::o;17156:56::-;17231:7;;17240;;-1:-1:-1;16716:540:0;-1:-1:-1;16716:540:0:o;15266:649::-;15372:28;;:::i;:::-;15419:7;15415:86;;15441:17;;;:27;;;15481:8;;15415:86;15511:17;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;15511:17:0;15543:6;:23;;;;;15554:12;15553:13;15543:23;15539:124;;;-1:-1:-1;15568:16:0;;;;;;;;15575:9;15568:16;;;;;;;;;;;;;;;;;;15539:124;;;15605:12;15600:63;;-1:-1:-1;15619:12:0;;;;;;;;15626:5;15619:12;;;;;;;;;;;;;;;;;;15600:63;;;-1:-1:-1;15647:16:0;;;;;;;;15654:9;15647:16;;;;;;;;;;;;;;;;;;15600:63;15701:8;;15710:3;;15693:16;;:7;:16;:::i;:::-;:20;;;;:::i;:::-;15684:6;;;:29;15747:14;;;;15762:3;;15739:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;15724:12;;;:41;15799:14;;;;15814:3;;15791:22;;:7;:22;:::i;:::-;:26;;;;:::i;:::-;15776:12;;;:41;;;15863:12;;;;15856:6;;;;15848:14;;:7;:14;:::i;:::-;:27;;;;:::i;:::-;:40;;;;:::i;:::-;15828:17;;;:60;-1:-1:-1;15266:649:0;;;;;;:::o;15923:619::-;16049:15;;;;;16164:19;16172:11;16164:7;:19;:::i;:::-;16154:29;;16200:7;16196:69;;-1:-1:-1;16229:7:0;;-1:-1:-1;16247:1:0;;-1:-1:-1;16247:1:0;;-1:-1:-1;16247:1:0;16222:31;;16196:69;16291:11;16284:1;:6;;;:18;;;;:::i;:::-;16277:25;;16339:11;16326:1;:12;;;:24;;;;:::i;:::-;16313:37;;16387:11;16374:1;:12;;;:24;;;;:::i;:::-;16361:37;-1:-1:-1;16361:37:0;16441:10;16428:12;16436:4;16428:7;:12;:::i;:::-;:23;;;;:::i;:::-;:34;;;;:::i;:::-;16409:53;;15923:619;;;;;;;;;;:::o;22668:562::-;22818:16;;;22832:1;22818:16;;;;;;;;22794:21;;22818:16;;;;;;;;;;-1:-1:-1;22818:16:0;22794:40;;22863:4;22845;22850:1;22845:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22845:23:0;;;:7;;;;;;;;;;:23;;;;22889:6;;:13;;;-1:-1:-1;;;22889:13:0;;;;:6;;;;;:11;;:13;;;;;22845:7;;22889:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22879:4;22884:1;22879:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;22879:23:0;;;:7;;;;;;;;;:23;22947:6;;22915:53;;22932:4;;22947:6;22956:11;22915:8;:53::i;:::-;23007:6;;:215;;-1:-1:-1;;;23007:215:0;;-1:-1:-1;;;;;23007:6:0;;;;:57;;:215;;23079:11;;23007:6;;23149:4;;23176;;23196:15;;23007:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22165:495;22345:6;;22313:53;;22330:4;;-1:-1:-1;;;;;22345:6:0;22354:11;22313:8;:53::i;:::-;22409:6;;-1:-1:-1;;;;;22409:6:0;:22;22439:9;22472:4;22492:11;22409:6;;22604:7;2818;2845:6;-1:-1:-1;;;;;2845:6:0;;2772:87;22604:7;22409:243;;;;;;-1:-1:-1;;;;;;22409:243:0;;;-1:-1:-1;;;;;21123:15:1;;;22409:243:0;;;21105:34:1;21155:18;;;21148:34;;;;21198:18;;;21191:34;;;;21241:18;;;21234:34;21305:15;;;21284:19;;;21277:44;22626:15:0;21337:19:1;;;21330:35;21039:19;;22409:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;22165:495;;:::o;5453:317::-;5568:6;5543:21;:31;;5535:73;;;;-1:-1:-1;;;5535:73:0;;21889:2:1;5535:73:0;;;21871:21:1;21928:2;21908:18;;;21901:30;21967:31;21947:18;;;21940:59;22016:18;;5535:73:0;21687:353:1;5535:73:0;5622:12;5640:9;-1:-1:-1;;;;;5640:14:0;5662:6;5640:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5621:52;;;5692:7;5684:78;;;;-1:-1:-1;;;5684:78:0;;22457:2:1;5684:78:0;;;22439:21:1;22496:2;22476:18;;;22469:30;22535:34;22515:18;;;22508:62;22606:28;22586:18;;;22579:56;22652:19;;5684:78:0;22255:422:1;14114:123:0;14192:4;14182:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;14207:11:0;:22;;14225:4;;14207:11;:15;;:22;;14225:4;;14207:22;:::i;:::-;;;;-1:-1:-1;;;;14114:123:0:o;14245:284::-;14352:10;14328:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;14398:4:0;14378:26;;;;:11;:26;;;;;;;;14375:101;;;14446:4;14430:22;;;;:7;:22;;;;;:34;;14454:10;;14430:22;:34;;14454:10;;14430:34;:::i;:::-;;;;-1:-1:-1;;14375:101:0;14502:4;14486:22;;;;:7;:22;;;;;:35;;14511:10;;14486:22;:35;;14511:10;;14486:35;:::i;14537:284::-;14644:10;14620:11;:21;;;:34;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:316::-;693:6;701;709;762:2;750:9;741:7;737:23;733:32;730:52;;;778:1;775;768:12;730:52;-1:-1:-1;;801:23:1;;;871:2;856:18;;843:32;;-1:-1:-1;922:2:1;907:18;;;894:32;;616:316;-1:-1:-1;616:316:1:o;937:131::-;-1:-1:-1;;;;;1012:31:1;;1002:42;;992:70;;1058:1;1055;1048:12;1073:134;1141:20;;1170:31;1141:20;1170:31;:::i;:::-;1073:134;;;:::o;1212:315::-;1280:6;1288;1341:2;1329:9;1320:7;1316:23;1312:32;1309:52;;;1357:1;1354;1347:12;1309:52;1396:9;1383:23;1415:31;1440:5;1415:31;:::i;:::-;1465:5;1517:2;1502:18;;;;1489:32;;-1:-1:-1;;;1212:315:1:o;1724:127::-;1785:10;1780:3;1776:20;1773:1;1766:31;1816:4;1813:1;1806:15;1840:4;1837:1;1830:15;1856:118;1942:5;1935:13;1928:21;1921:5;1918:32;1908:60;;1964:1;1961;1954:12;1979:128;2044:20;;2073:28;2044:20;2073:28;:::i;2112:1191::-;2202:6;2210;2263:2;2251:9;2242:7;2238:23;2234:32;2231:52;;;2279:1;2276;2269:12;2231:52;2319:9;2306:23;2348:18;2389:2;2381:6;2378:14;2375:34;;;2405:1;2402;2395:12;2375:34;2443:6;2432:9;2428:22;2418:32;;2488:7;2481:4;2477:2;2473:13;2469:27;2459:55;;2510:1;2507;2500:12;2459:55;2546:2;2533:16;2568:4;2591:2;2587;2584:10;2581:36;;;2597:18;;:::i;:::-;2643:2;2640:1;2636:10;2675:2;2669:9;2738:2;2734:7;2729:2;2725;2721:11;2717:25;2709:6;2705:38;2793:6;2781:10;2778:22;2773:2;2761:10;2758:18;2755:46;2752:72;;;2804:18;;:::i;:::-;2840:2;2833:22;2890:18;;;2924:15;;;;-1:-1:-1;2966:11:1;;;2962:20;;;2994:19;;;2991:39;;;3026:1;3023;3016:12;2991:39;3050:11;;;;3070:148;3086:6;3081:3;3078:15;3070:148;;;3152:23;3171:3;3152:23;:::i;:::-;3140:36;;3103:12;;;;3196;;;;3070:148;;;3237:6;-1:-1:-1;3262:35:1;;-1:-1:-1;3278:18:1;;;3262:35;:::i;:::-;3252:45;;;;;;2112:1191;;;;;:::o;3490:247::-;3549:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:52;;;3618:1;3615;3608:12;3570:52;3657:9;3644:23;3676:31;3701:5;3676:31;:::i;3742:456::-;3819:6;3827;3835;3888:2;3876:9;3867:7;3863:23;3859:32;3856:52;;;3904:1;3901;3894:12;3856:52;3943:9;3930:23;3962:31;3987:5;3962:31;:::i;:::-;4012:5;-1:-1:-1;4069:2:1;4054:18;;4041:32;4082:33;4041:32;4082:33;:::i;:::-;3742:456;;4134:7;;-1:-1:-1;;;4188:2:1;4173:18;;;;4160:32;;3742:456::o;4203:180::-;4262:6;4315:2;4303:9;4294:7;4290:23;4286:32;4283:52;;;4331:1;4328;4321:12;4283:52;-1:-1:-1;4354:23:1;;4203:180;-1:-1:-1;4203:180:1:o;4577:446::-;4660:6;4668;4676;4684;4737:3;4725:9;4716:7;4712:23;4708:33;4705:53;;;4754:1;4751;4744:12;4705:53;4793:9;4780:23;4812:28;4834:5;4812:28;:::i;:::-;4859:5;4911:2;4896:18;;4883:32;;-1:-1:-1;4962:2:1;4947:18;;4934:32;;5013:2;4998:18;4985:32;;-1:-1:-1;4577:446:1;-1:-1:-1;;;4577:446:1:o;5028:388::-;5096:6;5104;5157:2;5145:9;5136:7;5132:23;5128:32;5125:52;;;5173:1;5170;5163:12;5125:52;5212:9;5199:23;5231:31;5256:5;5231:31;:::i;:::-;5281:5;-1:-1:-1;5338:2:1;5323:18;;5310:32;5351:33;5310:32;5351:33;:::i;:::-;5403:7;5393:17;;;5028:388;;;;;:::o;5421:309::-;5486:6;5494;5547:2;5535:9;5526:7;5522:23;5518:32;5515:52;;;5563:1;5560;5553:12;5515:52;5599:9;5586:23;5576:33;;5659:2;5648:9;5644:18;5631:32;5672:28;5694:5;5672:28;:::i;5735:248::-;5803:6;5811;5864:2;5852:9;5843:7;5839:23;5835:32;5832:52;;;5880:1;5877;5870:12;5832:52;-1:-1:-1;;5903:23:1;;;5973:2;5958:18;;;5945:32;;-1:-1:-1;5735:248:1:o;5988:382::-;6053:6;6061;6114:2;6102:9;6093:7;6089:23;6085:32;6082:52;;;6130:1;6127;6120:12;6082:52;6169:9;6156:23;6188:31;6213:5;6188:31;:::i;:::-;6238:5;-1:-1:-1;6295:2:1;6280:18;;6267:32;6308:30;6267:32;6308:30;:::i;6907:241::-;6963:6;7016:2;7004:9;6995:7;6991:23;6987:32;6984:52;;;7032:1;7029;7022:12;6984:52;7071:9;7058:23;7090:28;7112:5;7090:28;:::i;7153:309::-;7218:6;7226;7279:2;7267:9;7258:7;7254:23;7250:32;7247:52;;;7295:1;7292;7285:12;7247:52;7334:9;7321:23;7353:28;7375:5;7353:28;:::i;7690:356::-;7892:2;7874:21;;;7911:18;;;7904:30;7970:34;7965:2;7950:18;;7943:62;8037:2;8022:18;;7690:356::o;8051:347::-;8253:2;8235:21;;;8292:2;8272:18;;;8265:30;8331:25;8326:2;8311:18;;8304:53;8389:2;8374:18;;8051:347::o;8403:127::-;8464:10;8459:3;8455:20;8452:1;8445:31;8495:4;8492:1;8485:15;8519:4;8516:1;8509:15;8535:127;8596:10;8591:3;8587:20;8584:1;8577:31;8627:4;8624:1;8617:15;8651:4;8648:1;8641:15;8667:135;8706:3;8727:17;;;8724:43;;8747:18;;:::i;:::-;-1:-1:-1;8794:1:1;8783:13;;8667:135::o;9216:125::-;9256:4;9284:1;9281;9278:8;9275:34;;;9289:18;;:::i;:::-;-1:-1:-1;9326:9:1;;9216:125::o;9757:217::-;9797:1;9823;9813:132;;9867:10;9862:3;9858:20;9855:1;9848:31;9902:4;9899:1;9892:15;9930:4;9927:1;9920:15;9813:132;-1:-1:-1;9959:9:1;;9757:217::o;10331:127::-;10392:10;10387:3;10383:20;10380:1;10373:31;10423:4;10420:1;10413:15;10447:4;10444:1;10437:15;10463:128;10503:3;10534:1;10530:6;10527:1;10524:13;10521:39;;;10540:18;;:::i;:::-;-1:-1:-1;10576:9:1;;10463:128::o;10875:245::-;10942:6;10995:2;10983:9;10974:7;10970:23;10966:32;10963:52;;;11011:1;11008;11001:12;10963:52;11043:9;11037:16;11062:28;11084:5;11062:28;:::i;11841:422::-;11930:1;11973:5;11930:1;11987:270;12008:7;11998:8;11995:21;11987:270;;;12067:4;12063:1;12059:6;12055:17;12049:4;12046:27;12043:53;;;12076:18;;:::i;:::-;12126:7;12116:8;12112:22;12109:55;;;12146:16;;;;12109:55;12225:22;;;;12185:15;;;;11987:270;;;11991:3;11841:422;;;;;:::o;12268:806::-;12317:5;12347:8;12337:80;;-1:-1:-1;12388:1:1;12402:5;;12337:80;12436:4;12426:76;;-1:-1:-1;12473:1:1;12487:5;;12426:76;12518:4;12536:1;12531:59;;;;12604:1;12599:130;;;;12511:218;;12531:59;12561:1;12552:10;;12575:5;;;12599:130;12636:3;12626:8;12623:17;12620:43;;;12643:18;;:::i;:::-;-1:-1:-1;;12699:1:1;12685:16;;12714:5;;12511:218;;12813:2;12803:8;12800:16;12794:3;12788:4;12785:13;12781:36;12775:2;12765:8;12762:16;12757:2;12751:4;12748:12;12744:35;12741:77;12738:159;;;-1:-1:-1;12850:19:1;;;12882:5;;12738:159;12929:34;12954:8;12948:4;12929:34;:::i;:::-;12999:6;12995:1;12991:6;12987:19;12978:7;12975:32;12972:58;;;13010:18;;:::i;:::-;13048:20;;12268:806;-1:-1:-1;;;12268:806:1:o;13079:140::-;13137:5;13166:47;13207:4;13197:8;13193:19;13187:4;13166:47;:::i;13224:168::-;13264:7;13330:1;13326;13322:6;13318:14;13315:1;13312:21;13307:1;13300:9;13293:17;13289:45;13286:71;;;13337:18;;:::i;:::-;-1:-1:-1;13377:9:1;;13224:168::o;19523:251::-;19593:6;19646:2;19634:9;19625:7;19621:23;19617:32;19614:52;;;19662:1;19659;19652:12;19614:52;19694:9;19688:16;19713:31;19738:5;19713:31;:::i;19779:980::-;20041:4;20089:3;20078:9;20074:19;20120:6;20109:9;20102:25;20146:2;20184:6;20179:2;20168:9;20164:18;20157:34;20227:3;20222:2;20211:9;20207:18;20200:31;20251:6;20286;20280:13;20317:6;20309;20302:22;20355:3;20344:9;20340:19;20333:26;;20394:2;20386:6;20382:15;20368:29;;20415:1;20425:195;20439:6;20436:1;20433:13;20425:195;;;20504:13;;-1:-1:-1;;;;;20500:39:1;20488:52;;20595:15;;;;20560:12;;;;20536:1;20454:9;20425:195;;;-1:-1:-1;;;;;;;20676:32:1;;;;20671:2;20656:18;;20649:60;-1:-1:-1;;;20740:3:1;20725:19;20718:35;20637:3;19779:980;-1:-1:-1;;;19779:980:1:o;21376:306::-;21464:6;21472;21480;21533:2;21521:9;21512:7;21508:23;21504:32;21501:52;;;21549:1;21546;21539:12;21501:52;21578:9;21572:16;21562:26;;21628:2;21617:9;21613:18;21607:25;21597:35;;21672:2;21661:9;21657:18;21651:25;21641:35;;21376:306;;;;;:::o

Swarm Source

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