Token Lucky Fairy

Overview ERC20

Price
$0.00 @ 0.000000 AVAX
Fully Diluted Market Cap
Total Supply:
777,777,777 FAE

Holders:
1,168 addresses

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

An ERC-20 deflationary token on Avalanche blockchain.


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

Contract Source Code Verified (Exact Match)

Contract Name:
LuckyFairy

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 1500 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-07
*/

// SPDX-License-Identifier: NOLICENSE
pragma solidity ^0.8.7;

// Lucky Fairy ($FAE) https://luckyfairy.io
//                                               .'  .
//                                             .'  ;'.
//                                 ,|        .'  .'  .
//                             . ,' .       '  .'    :
//                          ,-' `    ' ,   '  '      :
//                        ,'          ',  '  '       :
//                      ,'_   ___   .  , .  '        :
//                      .' .,'   ` /:  /   .         :
//                      `--   -.  ' : / .            ;
//                       |7)  7)   C),    .         ;
//                       ; .,     .,'   :.         .
//                       `. o     :     :.        ;
//                         `-..'  :._   :|       '
//                           ,'  /_  `. :|     .'
//                          '.__/  `.  .:|  _.'
//                          : .'    |   .:-'
//                        .'|/     /     `.
//                       ,  /    ,'         `.
//                      / ,'   ,'"--.._        `.
//                     / /   ,'        `-.       `.
//                   .' /  ,'""""""'---.._j        `.
//                  ,'.' ,'                '-.       .
//                .' '  /  ,--.._             `.     :
//               / ,' .'  /      `-.._         |     ;
//            _.' .  /   /            `"--...._L__.-'
//          .' .-' ,'  ,'
//          ||'   /  ,'
//          ||| ,'  .
//          |||/  ,'
//        ,'.'  ,'
//       / '  ,'
//     .' '  .
//    ,  '   |
//   /  /    |
//  '  /  _..'
//,'--; ,'
//   `-' mh
//
// Art by Maija Haavisto

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; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        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;
}

contract LuckyFairy is Context, IERC20, Ownable {

    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) private _isBot;

    address[] private _excluded;
    
    bool public swapEnabled;
    bool private swapping;

    IRouter public router;
    address public pair;

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

    uint256 private _tTotal = 777777777 * 10 **_decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    
    uint256 public swapTokensAtAmount = 500000 * 10**_decimals;
    uint256 public maxTxAmount = 3888888 * 10**_decimals;
    
    // Anti Dump //
    mapping (address => uint256) public _lastTrade;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 45 seconds;

    address public constant deadAddress = 0x000000000000000000000000000000000000dEaD;
    address public devAddress = 0x2e497035A19fb5abC237B75b0d926c32890fbD26;

    string private constant _name = "Lucky Fairy";
    string private constant _symbol = "FAE";

    struct Taxes {
      uint256 rfi;
      uint256 dev;
      uint256 liquidity;
      uint256 burn;
    }

    Taxes public taxes = Taxes(2,5,2,1);
    struct TotFeesPaidStruct{
        uint256 rfi;
        uint256 dev;
        uint256 liquidity;
        uint256 burn;
    }
    TotFeesPaidStruct public totFeesPaid;

    struct valuesFromGetValues{
      uint256 rAmount;
      uint256 rTransferAmount;
      uint256 rRfi;
      uint256 rDev;
      uint256 rLiquidity;
      uint256 rBurn;
      uint256 tTransferAmount;
      uint256 tRfi;
      uint256 tDev;
      uint256 tLiquidity;
      uint256 tBurn;
    }

    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);
        excludeFromReward(deadAddress);

        _rOwned[owner()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[devAddress]=true;
        _isExcludedFromFee[deadAddress] = 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 transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override 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 virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

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

        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);
            return s.rAmount;
        } else {
            valuesFromGetValues memory s = _getValues(tAmount, true);
            return s.rTransferAmount;
        }
    }

    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 _dev, uint256 _liquidity, uint256 _burn) public onlyOwner {
        taxes.rfi = _rfi;
        taxes.dev = _dev;
        taxes.liquidity = _liquidity;
        taxes.burn = _burn;
        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 _takeDev(uint256 rDev, uint256 tDev) private {
        totFeesPaid.dev +=tDev;

        if(_isExcluded[address(this)])
        {
            _tOwned[address(this)]+=tDev;
        }
        _rOwned[address(this)] +=rDev;
    }
    
    function _takeBurn(uint256 rBurn, uint256 tBurn) private{
        totFeesPaid.burn +=tBurn;

        if(_isExcluded[deadAddress])
        {
            _tOwned[deadAddress]+=tBurn;
        }
        _rOwned[deadAddress] +=rBurn;
    }

    function _getValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory to_return) {
        to_return = _getTValues(tAmount, takeFee);
        (to_return.rAmount, to_return.rTransferAmount, to_return.rRfi, to_return.rDev, to_return.rLiquidity, to_return.rBurn) = _getRValues(to_return, tAmount, takeFee, _getRate());
        return to_return;
    }

    function _getTValues(uint256 tAmount, bool takeFee) private view returns (valuesFromGetValues memory s) {
        if(!takeFee) {
          s.tTransferAmount = tAmount;
          return s;
        }
        
        s.tRfi = tAmount*taxes.rfi/100;
        s.tDev = tAmount*taxes.dev/100;
        s.tLiquidity = tAmount*taxes.liquidity/100;
        s.tBurn = tAmount*taxes.burn/100;
        s.tTransferAmount = tAmount-s.tRfi-s.tDev-s.tLiquidity-s.tBurn;
        return s;
    }

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

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

        rRfi = s.tRfi*currentRate;
        rDev = s.tDev*currentRate;
        rLiquidity = s.tLiquidity*currentRate;
        rBurn = s.rBurn*currentRate;
        rTransferAmount =  rAmount-rRfi-rDev-rLiquidity-rBurn;
        return (rAmount, rTransferAmount, rRfi,rDev,rLiquidity, rBurn);
    }

    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(!_isBot[from] && !_isBot[to], "You are a bot");
        

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to] && !swapping){
            require(amount <= maxTxAmount ,"Amount is exceeding maxTxAmount");

            if(from != pair && coolDownEnabled){
                uint256 timePassed = block.timestamp - _lastTrade[from];
                require(timePassed > coolDownTime, "You must wait coolDownTime");
                _lastTrade[from] = block.timestamp;
            }
            if(to != pair && coolDownEnabled){
                uint256 timePassed2 = block.timestamp - _lastTrade[to];
                require(timePassed2 > coolDownTime, "You must wait coolDownTime");
                _lastTrade[to] = block.timestamp;
            }
        }
        
        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;
        if(!swapping && swapEnabled && canSwap && from != pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            swapAndLiquify(swapTokensAtAmount);
        }

        _tokenTransfer(from, to, amount, !(_isExcludedFromFee[from] || _isExcludedFromFee[to]));
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private {

        valuesFromGetValues memory s = _getValues(tAmount, takeFee);

        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);
        }
        if(s.rDev > 0 || s.tDev > 0){
            _takeDev(s.rDev, s.tDev);
        }
        if(s.rBurn > 0 || s.tBurn > 0){
            _takeBurn(s.rBurn, s.tBurn);
            emit Transfer(sender, deadAddress, s.tBurn);
        }
        
        emit Transfer(sender, recipient, s.tTransferAmount);
        emit Transfer(sender, address(this), s.tLiquidity + s.tDev);
        
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap{
       // Split the contract balance into halves
        uint256 denominator = (taxes.liquidity + taxes.dev ) * 2;
        uint256 tokensToAddLiquidityWith = tokens * taxes.liquidity / denominator;
        uint256 toSwap = tokens - tokensToAddLiquidityWith;

        uint256 initialBalance = address(this).balance;

        swapTokensForAVAX(toSwap);

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

        if(avaxToAddLiquidityWith > 0){
            // Add liquidity to dex
            addLiquidity(tokensToAddLiquidityWith, avaxToAddLiquidityWith);
        }

        uint256 devAmt = unitBalance * 2 * taxes.dev;
        if(devAmt > 0){
            payable(devAddress).transfer(devAmt);
        }

    }

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

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

    function swapTokensForAVAX(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 updatedevWallet(address newWallet) external onlyOwner{
        require(devAddress != newWallet ,'Wallet already set');
        devAddress = newWallet;
        _isExcludedFromFee[devAddress];
    }

    function updateMaxTxAmt(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**_decimals;
    }

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

    function updateSwapEnabled(bool _enabled) external onlyOwner{
        swapEnabled = _enabled;
    }

    function updateCoolDownSettings(bool _enabled, uint256 _timeInSeconds) external onlyOwner{
        coolDownEnabled = _enabled;
        coolDownTime = _timeInSeconds * 1 seconds;
    }

    function setAntibot(address account, bool state) external onlyOwner{
        require(_isBot[account] != state, 'Value already set');
        _isBot[account] = state;
    }
    
    function bulkAntiBot(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            _isBot[accounts[i]] = state;
        }
    }
    
    function updateRouterAndPair(address newRouter, address newPair) external onlyOwner{
        router = IRouter(newRouter);
        pair = newPair;
    }
    
    function isBot(address account) public view returns(bool){
        return _isBot[account];
    }

    //Use this in case AVAX are sent to the contract by mistake
    function rescueAVAX(uint256 weiAmount) external onlyOwner{
        require(address(this).balance >= weiAmount, "insufficient AVAX balance");
        payable(msg.sender).transfer(weiAmount);
    }
    
    // Function to allow admin to claim *other* ERC20 tokens sent to this contract (by mistake)
    function rescueAnyERC20Tokens(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":"_lastTrade","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAntiBot","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"devAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"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":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":"rescueAVAX","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":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setAntibot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rfi","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"}],"name":"setTaxes","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":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","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":"dev","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"burn","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_timeInSeconds","type":"uint256"}],"name":"updateCoolDownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmt","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":"updatedevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620009a7565b6200002290632e5bf271620009b8565b600a8190556200003590600019620009f0565b620000439060001962000a07565b600b55620000546009600a620009a7565b62000063906207a120620009b8565b600c55620000746009600a620009a7565b6200008390623b56f8620009b8565b600d55600f805460ff19166001908117909155602d601055601180546001600160a01b031916732e497035a19fb5abc237b75b0d926c32890fbd26179055604080516080810182526002808252600560208301819052928201819052606090910183905260128190556013919091556014556015553480156200010557600080fd5b5060405162003dea38038062003dea833981016040819052620001289162000a21565b620001333362000459565b60008190506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017457600080fd5b505afa15801562000189573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001af919062000a21565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f857600080fd5b505afa1580156200020d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000233919062000a21565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200027c57600080fd5b505af115801562000291573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b7919062000a21565b600880546001600160a01b03808616620100000262010000600160b01b031990921691909117909155600980549183166001600160a01b0319909216821790559091506200030590620004a9565b6200031261dead620004a9565b600b54600160006200032c6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160046000620003666200063760201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556011549091168352908220805484168217905561dead9091527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd8054909216179055620004006000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200044891815260200190565b60405180910390a350505062000a97565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620005095760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526005602052604090205460ff1615620005745760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015260640162000500565b6001600160a01b03811660009081526001602052604090205415620005d1576001600160a01b038116600090815260016020526040902054620005b79062000646565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319169091179055565b6000546001600160a01b031690565b6000600b54821115620006af5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840162000500565b6000620006bb620006d0565b9050620006c9818462000a4c565b9392505050565b60008080620006de620006f6565b9092509050620006ef818362000a4c565b9250505090565b600b54600a546000918291825b6007548110156200085e5782600160006007848154811062000729576200072962000a63565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118062000798575081600260006007848154811062000771576200077162000a63565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b15620007af57600b54600a54945094505050509091565b6001600060078381548110620007c957620007c962000a63565b60009182526020808320909101546001600160a01b03168352820192909252604001902054620007fa908462000a07565b9250600260006007838154811062000816576200081662000a63565b60009182526020808320909101546001600160a01b0316835282019290925260400190205462000847908362000a07565b915080620008558162000a79565b91505062000703565b50600a54600b5462000871919062000a4c565b8210156200088957600b54600a549350935050509091565b90939092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008e9578160001904821115620008cd57620008cd62000892565b80851615620008db57918102915b93841c9390800290620008ad565b509250929050565b6000826200090257506001620009a1565b816200091157506000620009a1565b81600181146200092a5760028114620009355762000955565b6001915050620009a1565b60ff84111562000949576200094962000892565b50506001821b620009a1565b5060208310610133831016604e8410600b84101617156200097a575081810a620009a1565b620009868383620008a8565b80600019048211156200099d576200099d62000892565b0290505b92915050565b6000620006c960ff841683620008f1565b6000816000190483118215151615620009d557620009d562000892565b500290565b634e487b7160e01b600052601260045260246000fd5b60008262000a025762000a02620009da565b500690565b60008282101562000a1c5762000a1c62000892565b500390565b60006020828403121562000a3457600080fd5b81516001600160a01b0381168114620006c957600080fd5b60008262000a5e5762000a5e620009da565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000a905762000a9062000892565b5060010190565b6133438062000aa76000396000f3fe6080604052600436106103015760003560e01c806388f820201161018f578063a9059cbb116100e1578063e2f456051161008a578063f2fde38b11610064578063f2fde38b14610953578063f887ea4014610973578063fc1704411461099957600080fd5b8063e2f4560514610903578063ea2f0b3714610919578063ee36e3591461093957600080fd5b8063d2ce0db2116100bb578063d2ce0db214610887578063dd62ed3e1461089d578063e1165545146108e357600080fd5b8063a9059cbb14610827578063b31470a414610847578063d257b34f1461086757600080fd5b806395d89b4111610143578063a457c2d71161011d578063a457c2d7146107ba578063a87859f6146107da578063a8aa1b311461080757600080fd5b806395d89b41146107315780639ba5e4d514610777578063a12a7d611461079a57600080fd5b80638c0b5e22116101745780638c0b5e22146106dd5780638da5cb5b146106f3578063924de9b71461071157600080fd5b806388f82020146106845780638c0ae3df146106bd57600080fd5b8063395093511161025357806352390c02116101fc57806370a08231116101d657806370a082311461060c578063715018a61461062c578063728f8eea1461064157600080fd5b806352390c02146105995780635342acb4146105b95780636ddd1713146105f257600080fd5b806340b28c2f1161022d57806340b28c2f14610539578063437823ec146105595780634549b0391461057957600080fd5b806339509351146104c05780633ad10ef6146104e05780633bbac5791461050057600080fd5b806323b872dd116102b55780632e092fe81161028f5780632e092fe814610464578063313ce567146104845780633685d419146104a057600080fd5b806323b872dd146103f657806327c8f835146104165780632d8381191461044457600080fd5b80630d65df9b116102e65780630d65df9b146103955780630df4adc6146103b757806318160ddd146103d757600080fd5b806306fdde031461030d578063095ea7b31461036557600080fd5b3661030857005b600080fd5b34801561031957600080fd5b5060408051808201909152600b81527f4c75636b7920466169727900000000000000000000000000000000000000000060208201525b60405161035c9190612d38565b60405180910390f35b34801561037157600080fd5b50610385610380366004612db2565b6109b9565b604051901515815260200161035c565b3480156103a157600080fd5b506103b56103b0366004612dde565b6109d0565b005b3480156103c357600080fd5b506103b56103d2366004612e1f565b610abe565b3480156103e357600080fd5b50600a545b60405190815260200161035c565b34801561040257600080fd5b50610385610411366004612dde565b610b87565b34801561042257600080fd5b5061042c61dead81565b6040516001600160a01b03909116815260200161035c565b34801561045057600080fd5b506103e861045f366004612e1f565b610c4d565b34801561047057600080fd5b506103b561047f366004612e1f565b610ce4565b34801561049057600080fd5b506040516009815260200161035c565b3480156104ac57600080fd5b506103b56104bb366004612e38565b610d48565b3480156104cc57600080fd5b506103856104db366004612db2565b610f33565b3480156104ec57600080fd5b5060115461042c906001600160a01b031681565b34801561050c57600080fd5b5061038561051b366004612e38565b6001600160a01b031660009081526006602052604090205460ff1690565b34801561054557600080fd5b506103b5610554366004612e55565b610f6a565b34801561056557600080fd5b506103b5610574366004612e38565b61100f565b34801561058557600080fd5b506103e8610594366004612ea7565b61107b565b3480156105a557600080fd5b506103b56105b4366004612e38565b611105565b3480156105c557600080fd5b506103856105d4366004612e38565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156105fe57600080fd5b506008546103859060ff1681565b34801561061857600080fd5b506103e8610627366004612e38565b611283565b34801561063857600080fd5b506103b56112e2565b34801561064d57600080fd5b506012546013546014546015546106649392919084565b60408051948552602085019390935291830152606082015260800161035c565b34801561069057600080fd5b5061038561069f366004612e38565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156106c957600080fd5b506103b56106d8366004612ecc565b611336565b3480156106e957600080fd5b506103e8600d5481565b3480156106ff57600080fd5b506000546001600160a01b031661042c565b34801561071d57600080fd5b506103b561072c366004612eea565b61139e565b34801561073d57600080fd5b5060408051808201909152600381527f4641450000000000000000000000000000000000000000000000000000000000602082015261034f565b34801561078357600080fd5b506016546017546018546019546106649392919084565b3480156107a657600080fd5b506103b56107b5366004612f07565b6113f9565b3480156107c657600080fd5b506103856107d5366004612db2565b611484565b3480156107e657600080fd5b506103e86107f5366004612e38565b600e6020526000908152604090205481565b34801561081357600080fd5b5060095461042c906001600160a01b031681565b34801561083357600080fd5b50610385610842366004612db2565b611537565b34801561085357600080fd5b506103b5610862366004612f4f565b611544565b34801561087357600080fd5b506103b5610882366004612e1f565b6115f8565b34801561089357600080fd5b506103e860105481565b3480156108a957600080fd5b506103e86108b8366004612e55565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156108ef57600080fd5b506103b56108fe366004613026565b61165c565b34801561090f57600080fd5b506103e8600c5481565b34801561092557600080fd5b506103b5610934366004612e38565b61173e565b34801561094557600080fd5b50600f546103859060ff1681565b34801561095f57600080fd5b506103b561096e366004612e38565b6117a7565b34801561097f57600080fd5b5060085461042c906201000090046001600160a01b031681565b3480156109a557600080fd5b506103b56109b4366004612e38565b611877565b60006109c6338484611953565b5060015b92915050565b6000546001600160a01b03163314610a1d5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee83398151915260448201526064015b60405180910390fd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401602060405180830381600087803b158015610a8057600080fd5b505af1158015610a94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab89190613054565b50505050565b6000546001600160a01b03163314610b065760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b80471015610b565760405162461bcd60e51b815260206004820152601960248201527f696e73756666696369656e7420415641582062616c616e6365000000000000006044820152606401610a14565b604051339082156108fc029083906000818181858888f19350505050158015610b83573d6000803e3d6000fd5b5050565b6000610b94848484611aab565b6001600160a01b038416600090815260036020908152604080832033845290915290205482811015610c2e5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e63650000000000000000000000000000000000000000000000006064820152608401610a14565b610c428533610c3d8685613087565b611953565b506001949350505050565b6000600b54821115610cc75760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201527f65666c656374696f6e73000000000000000000000000000000000000000000006064820152608401610a14565b6000610cd161203b565b9050610cdd818461309e565b9392505050565b6000546001600160a01b03163314610d2c5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b610d386009600a6131a4565b610d4290826131b3565b600d5550565b6000546001600160a01b03163314610d905760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6001600160a01b03811660009081526005602052604090205460ff16610df85760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610a14565b60005b600754811015610b8357816001600160a01b031660078281548110610e2257610e226131d2565b6000918252602090912001546001600160a01b03161415610f215760078054610e4d90600190613087565b81548110610e5d57610e5d6131d2565b600091825260209091200154600780546001600160a01b039092169183908110610e8957610e896131d2565b6000918252602080832091909101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039485161790559184168152600282526040808220829055600590925220805460ff191690556007805480610eee57610eee6131e8565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff191690550190555050565b80610f2b816131fe565b915050610dfb565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916109c6918590610c3d908690613219565b6000546001600160a01b03163314610fb25760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b600880547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03948516021790556009805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b6000546001600160a01b031633146110575760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000600a548311156110cf5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610a14565b816110eb5760006110e184600161205e565b5191506109ca9050565b60006110f884600161205e565b6020015191506109ca9050565b6000546001600160a01b0316331461114d5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6001600160a01b03811660009081526005602052604090205460ff16156111b65760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610a14565b6001600160a01b03811660009081526001602052604090205415611210576001600160a01b0381166000908152600160205260409020546111f690610c4d565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600560205260408120805460ff191660019081179091556007805491820181559091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b6001600160a01b03811660009081526005602052604081205460ff16156112c057506001600160a01b031660009081526002602052604090205490565b6001600160a01b0382166000908152600160205260409020546109ca90610c4d565b6000546001600160a01b0316331461132a5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b61133460006120fb565b565b6000546001600160a01b0316331461137e5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b600f805460ff19168315151790556113978160016131b3565b6010555050565b6000546001600160a01b031633146113e65760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6008805460ff1916911515919091179055565b6000546001600160a01b031633146114415760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b60128490556013839055601482905560158190556040517f846206d6c3449ac0b05841dfb88bf28b55aef00f96152490c69c96238048de1590600090a150505050565b3360009081526003602090815260408083206001600160a01b03861684529091528120548281101561151e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401610a14565b61152d3385610c3d8685613087565b5060019392505050565b60006109c6338484611aab565b6000546001600160a01b0316331461158c5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b60005b82518110156115f35781600660008584815181106115af576115af6131d2565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806115eb816131fe565b91505061158f565b505050565b6000546001600160a01b031633146116405760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b61164c6009600a6131a4565b61165690826131b3565b600c5550565b6000546001600160a01b031633146116a45760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6001600160a01b03821660009081526006602052604090205460ff16151581151514156117135760405162461bcd60e51b815260206004820152601160248201527f56616c756520616c7265616479207365740000000000000000000000000000006044820152606401610a14565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117865760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b031633146117ef5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6001600160a01b03811661186b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610a14565b611874816120fb565b50565b6000546001600160a01b031633146118bf5760405162461bcd60e51b815260206004820181905260248201526000805160206132ee8339815191526044820152606401610a14565b6011546001600160a01b038281169116141561191d5760405162461bcd60e51b815260206004820152601260248201527f57616c6c657420616c72656164792073657400000000000000000000000000006044820152606401610a14565b601180546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19909216821790556000526004602052565b6001600160a01b0383166119ce5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610a14565b6001600160a01b038216611a4a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610a14565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316611b275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610a14565b6001600160a01b038216611ba35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610a14565b60008111611c195760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d75737420626520677265617465722060448201527f7468616e207a65726f00000000000000000000000000000000000000000000006064820152608401610a14565b611c2283611283565b811115611c975760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f72652060448201527f7468616e20796f75722062616c616e63650000000000000000000000000000006064820152608401610a14565b6001600160a01b03831660009081526006602052604090205460ff16158015611cd957506001600160a01b03821660009081526006602052604090205460ff16155b611d255760405162461bcd60e51b815260206004820152600d60248201527f596f7520617265206120626f74000000000000000000000000000000000000006044820152606401610a14565b6001600160a01b03831660009081526004602052604090205460ff16158015611d6757506001600160a01b03821660009081526004602052604090205460ff16155b8015611d7b5750600854610100900460ff16155b15611f4257600d54811115611dd25760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e7420697320657863656564696e67206d61785478416d6f756e74006044820152606401610a14565b6009546001600160a01b03848116911614801590611df25750600f5460ff165b15611e8a576001600160a01b0383166000908152600e6020526040812054611e1a9042613087565b90506010548111611e6d5760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610a14565b506001600160a01b0383166000908152600e602052604090204290555b6009546001600160a01b03838116911614801590611eaa5750600f5460ff165b15611f42576001600160a01b0382166000908152600e6020526040812054611ed29042613087565b90506010548111611f255760405162461bcd60e51b815260206004820152601a60248201527f596f75206d757374207761697420636f6f6c446f776e54696d650000000000006044820152606401610a14565b506001600160a01b0382166000908152600e602052604090204290555b6000600c54611f5030611283565b6008549111159150610100900460ff16158015611f6f575060085460ff165b8015611f785750805b8015611f9257506009546001600160a01b03858116911614155b8015611fb757506001600160a01b03841660009081526004602052604090205460ff16155b8015611fdc57506001600160a01b03831660009081526004602052604090205460ff16155b15611fec57611fec600c54612158565b6001600160a01b038416600090815260046020526040902054610ab89085908590859060ff168061203557506001600160a01b03871660009081526004602052604090205460ff165b15612281565b6000806000612048612590565b9092509050612057818361309e565b9250505090565b6120bb60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6120c58383612713565b90506120da8184846120d561203b565b612846565b60a08701526080860152606085015260408401526020830152815292915050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6008805461ff00191661010017905560135460145460009161217991613219565b6121849060026131b3565b90506000816012600201548461219a91906131b3565b6121a4919061309e565b905060006121b28285613087565b9050476121be826128f7565b60006121ca8247613087565b6014549091506000906121dd9087613087565b6121e7908361309e565b6014549091506000906121fa90836131b3565b9050801561220c5761220c8682612a9e565b60135460009061221d8460026131b3565b61222791906131b3565b9050801561226b576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612269573d6000803e3d6000fd5b505b50506008805461ff001916905550505050505050565b600061228d838361205e565b6001600160a01b03861660009081526005602052604090205490915060ff16156122ef576001600160a01b0385166000908152600260205260409020546122d5908490613087565b6001600160a01b0386166000908152600260205260409020555b6001600160a01b03841660009081526005602052604090205460ff16156123525760c08101516001600160a01b0385166000908152600260205260409020546123389190613219565b6001600160a01b0385166000908152600260205260409020555b80516001600160a01b0386166000908152600160205260409020546123779190613087565b6001600160a01b03808716600090815260016020908152604080832094909455840151918716815291909120546123ae9190613219565b6001600160a01b03851660009081526001602052604090819020919091558101511515806123e0575060008160e00151115b156123f7576123f781604001518260e00151612ba7565b60008160800151118061240f57506000816101200151115b15612427576124278160800151826101200151612bdc565b60008160600151118061243f57506000816101000151115b15612457576124578160600151826101000151612c52565b60008160a00151118061246f57506000816101400151115b156124dc576124878160a00151826101400151612c67565b61dead6001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361014001516040516124d391815260200190565b60405180910390a35b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360c0015160405161252591815260200190565b60405180910390a3306001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8361010001518461012001516125789190613219565b60405190815260200160405180910390a35050505050565b600b54600a546000918291825b6007548110156126e2578260016000600784815481106125bf576125bf6131d2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061262a5750816002600060078481548110612603576126036131d2565b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561264057600b54600a54945094505050509091565b6001600060078381548110612657576126576131d2565b60009182526020808320909101546001600160a01b031683528201929092526040019020546126869084613087565b9250600260006007838154811061269f5761269f6131d2565b60009182526020808320909101546001600160a01b031683528201929092526040019020546126ce9083613087565b9150806126da816131fe565b91505061259d565b50600a54600b546126f3919061309e565b82101561270a57600b54600a549350935050509091565b90939092509050565b61277060405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b816127815760c081018390526109ca565b60125460649061279190856131b3565b61279b919061309e565b60e08201526013546064906127b090856131b3565b6127ba919061309e565b6101008201526014546064906127d090856131b3565b6127da919061309e565b6101208201526015546064906127f090856131b3565b6127fa919061309e565b610140820181905261012082015161010083015160e084015161281d9087613087565b6128279190613087565b6128319190613087565b61283b9190613087565b60c082015292915050565b60008080808080612857878a6131b3565b955087612872575084935060009250829150819050806128ea565b868a60e0015161288291906131b3565b9350868a610100015161289591906131b3565b9250868a61012001516128a891906131b3565b9150868a60a001516128ba91906131b3565b90508082846128c9878a613087565b6128d39190613087565b6128dd9190613087565b6128e79190613087565b94505b9499939850945094509450565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061292c5761292c6131d2565b60200260200101906001600160a01b031690816001600160a01b031681525050600860029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561299a57600080fd5b505afa1580156129ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d29190613231565b816001815181106129e5576129e56131d2565b6001600160a01b039283166020918202929092010152600854612a119130916201000090041684611953565b6008546040517f791ac947000000000000000000000000000000000000000000000000000000008152620100009091046001600160a01b03169063791ac94790612a6890859060009086903090429060040161324e565b600060405180830381600087803b158015612a8257600080fd5b505af1158015612a96573d6000803e3d6000fd5b505050505050565b600854612abc9030906201000090046001600160a01b031684611953565b6008546001600160a01b03620100009091041663f305d719823085600080612aec6000546001600160a01b031690565b60405160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015612b6757600080fd5b505af1158015612b7b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ba091906132bf565b5050505050565b81600b6000828254612bb99190613087565b909155505060168054829190600090612bd3908490613219565b90915550505050565b8060166002016000828254612bf19190613219565b90915550503060009081526005602052604090205460ff1615612c33573060009081526002602052604081208054839290612c2d908490613219565b90915550505b3060009081526001602052604081208054849290612bd3908490613219565b8060166001016000828254612bf19190613219565b8060166003016000828254612c7c9190613219565b909155505061dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba5460ff1615612cfa5761dead600090815260026020527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc8054839290612cf4908490613219565b90915550505b61dead600090815260016020527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d8054849290612bd3908490613219565b600060208083528351808285015260005b81811015612d6557858101830151858201604001528201612d49565b81811115612d77576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461187457600080fd5b8035612dad81612d8d565b919050565b60008060408385031215612dc557600080fd5b8235612dd081612d8d565b946020939093013593505050565b600080600060608486031215612df357600080fd5b8335612dfe81612d8d565b92506020840135612e0e81612d8d565b929592945050506040919091013590565b600060208284031215612e3157600080fd5b5035919050565b600060208284031215612e4a57600080fd5b8135610cdd81612d8d565b60008060408385031215612e6857600080fd5b8235612e7381612d8d565b91506020830135612e8381612d8d565b809150509250929050565b801515811461187457600080fd5b8035612dad81612e8e565b60008060408385031215612eba57600080fd5b823591506020830135612e8381612e8e565b60008060408385031215612edf57600080fd5b8235612dd081612e8e565b600060208284031215612efc57600080fd5b8135610cdd81612e8e565b60008060008060808587031215612f1d57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612f6257600080fd5b823567ffffffffffffffff80821115612f7a57600080fd5b818501915085601f830112612f8e57600080fd5b8135602082821115612fa257612fa2612f39565b8160051b604051601f19603f83011681018181108682111715612fc757612fc7612f39565b604052928352818301935084810182019289841115612fe557600080fd5b948201945b8386101561300a57612ffb86612da2565b85529482019493820193612fea565b96506130199050878201612e9c565b9450505050509250929050565b6000806040838503121561303957600080fd5b823561304481612d8d565b91506020830135612e8381612e8e565b60006020828403121561306657600080fd5b8151610cdd81612e8e565b634e487b7160e01b600052601160045260246000fd5b60008282101561309957613099613071565b500390565b6000826130bb57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156130fb5781600019048211156130e1576130e1613071565b808516156130ee57918102915b93841c93908002906130c5565b509250929050565b600082613112575060016109ca565b8161311f575060006109ca565b8160018114613135576002811461313f5761315b565b60019150506109ca565b60ff84111561315057613150613071565b50506001821b6109ca565b5060208310610133831016604e8410600b841016171561317e575081810a6109ca565b61318883836130c0565b806000190482111561319c5761319c613071565b029392505050565b6000610cdd60ff841683613103565b60008160001904831182151516156131cd576131cd613071565b500290565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060001982141561321257613212613071565b5060010190565b6000821982111561322c5761322c613071565b500190565b60006020828403121561324357600080fd5b8151610cdd81612d8d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561329e5784516001600160a01b031683529383019391830191600101613279565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156132d457600080fd5b835192506020840151915060408401519050925092509256fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a2646970667358221220fafe675daa2541eb27a229e870e3ae99e54a3f70fc42f1ed8547e1d3fb7d05b264736f6c634300080900330000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506

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

0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001b02da8cb0d097eb8d57a175b88c7d8b47997506


Deployed ByteCode Sourcemap

4489:17633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7293:83;;;;;;;;;;-1:-1:-1;7363:5:0;;;;;;;;;;;;;;;;;7293:83;;;;;;;:::i;:::-;;;;;;;;8201:161;;;;;;;;;;-1:-1:-1;8201:161:0;;;;;:::i;:::-;;:::i;:::-;;;1399:14:1;;1392:22;1374:41;;1362:2;1347:18;8201:161:0;1234:187:1;21923:154:0;;;;;;;;;;-1:-1:-1;21923:154:0;;;;;:::i;:::-;;:::i;:::-;;21616:198;;;;;;;;;;-1:-1:-1;21616:198:0;;;;;:::i;:::-;;:::i;7566:95::-;;;;;;;;;;-1:-1:-1;7646:7:0;;7566:95;;;2218:25:1;;;2206:2;2191:18;7566:95:0;2072:177:1;8370:422:0;;;;;;;;;;-1:-1:-1;8370:422:0;;;;;:::i;:::-;;:::i;5549:80::-;;;;;;;;;;;;5587:42;5549:80;;;;;-1:-1:-1;;;;;2418:55:1;;;2400:74;;2388:2;2373:18;5549:80:0;2254:226:1;10000:248:0;;;;;;;;;;-1:-1:-1;10000:248:0;;;;;:::i;:::-;;:::i;20325:113::-;;;;;;;;;;-1:-1:-1;20325:113:0;;;;;:::i;:::-;;:::i;7475:83::-;;;;;;;;;;-1:-1:-1;7475:83:0;;5075:1;2627:36:1;;2615:2;2600:18;7475:83:0;2485:184:1;10597:475:0;;;;;;;;;;-1:-1:-1;10597:475:0;;;;;:::i;:::-;;:::i;8800:215::-;;;;;;;;;;-1:-1:-1;8800:215:0;;;;;:::i;:::-;;:::i;5636:70::-;;;;;;;;;;-1:-1:-1;5636:70:0;;;;-1:-1:-1;;;;;5636:70:0;;;21445:98;;;;;;;;;;-1:-1:-1;21445:98:0;;;;;:::i;:::-;-1:-1:-1;;;;;21520:15:0;21497:4;21520:15;;;:6;:15;;;;;;;;;21445:98;21279:154;;;;;;;;;;-1:-1:-1;21279:154:0;;;;;:::i;:::-;;:::i;11080:111::-;;;;;;;;;;-1:-1:-1;11080:111:0;;;;;:::i;:::-;;:::i;9536:456::-;;;;;;;;;;-1:-1:-1;9536:456:0;;;;;:::i;:::-;;:::i;10256:333::-;;;;;;;;;;-1:-1:-1;10256:333:0;;;;;:::i;:::-;;:::i;11319:123::-;;;;;;;;;;-1:-1:-1;11319:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;11407:27:0;11383:4;11407:27;;;:18;:27;;;;;;;;;11319:123;4924:23;;;;;;;;;;-1:-1:-1;4924:23:0;;;;;;;;7669:198;;;;;;;;;;-1:-1:-1;7669:198:0;;;;;:::i;:::-;;:::i;3266:94::-;;;;;;;;;;;;;:::i;5931:35::-;;;;;;;;;;-1:-1:-1;5931:35:0;;;;;;;;;;;;;;;;;;;4120:25:1;;;4176:2;4161:18;;4154:34;;;;4204:18;;;4197:34;4262:2;4247:18;;4240:34;4107:3;4092:19;5931:35:0;3889:391:1;9408:120:0;;;;;;;;;;-1:-1:-1;9408:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;9500:20:0;9476:4;9500:20;;;:11;:20;;;;;;;;;9408:120;20693:186;;;;;;;;;;-1:-1:-1;20693:186:0;;;;;:::i;:::-;;:::i;5320:52::-;;;;;;;;;;;;;;;;3043:87;;;;;;;;;;-1:-1:-1;3089:7:0;3116:6;-1:-1:-1;;;;;3116:6:0;3043:87;;20584:101;;;;;;;;;;-1:-1:-1;20584:101:0;;;;;:::i;:::-;;:::i;7382:87::-;;;;;;;;;;-1:-1:-1;7454:7:0;;;;;;;;;;;;;;;;;7382:87;;6106:36;;;;;;;;;;-1:-1:-1;6106:36:0;;;;;;;;;;;;;;;11450:257;;;;;;;;;;-1:-1:-1;11450:257:0;;;;;:::i;:::-;;:::i;9023:377::-;;;;;;;;;;-1:-1:-1;9023:377:0;;;;;:::i;:::-;;:::i;5406:46::-;;;;;;;;;;-1:-1:-1;5406:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;5012:19;;;;;;;;;;-1:-1:-1;5012:19:0;;;;-1:-1:-1;;;;;5012:19:0;;;7875:167;;;;;;;;;;-1:-1:-1;7875:167:0;;;;;:::i;:::-;;:::i;21073:194::-;;;;;;;;;;-1:-1:-1;21073:194:0;;;;;:::i;:::-;;:::i;20446:130::-;;;;;;;;;;-1:-1:-1;20446:130:0;;;;;:::i;:::-;;:::i;5500:40::-;;;;;;;;;;;;;;;;8050:143;;;;;;;;;;-1:-1:-1;8050:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8158:18:0;;;8131:7;8158:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8050:143;20887:174;;;;;;;;;;-1:-1:-1;20887:174:0;;;;;:::i;:::-;;:::i;5255:58::-;;;;;;;;;;;;;;;;11199:110;;;;;;;;;;-1:-1:-1;11199:110:0;;;;;:::i;:::-;;:::i;5459:34::-;;;;;;;;;;-1:-1:-1;5459:34:0;;;;;;;;3368:192;;;;;;;;;;-1:-1:-1;3368:192:0;;;;;:::i;:::-;;:::i;4984:21::-;;;;;;;;;;-1:-1:-1;4984:21:0;;;;;;;-1:-1:-1;;;;;4984:21:0;;;20108:209;;;;;;;;;;-1:-1:-1;20108:209:0;;;;;:::i;:::-;;:::i;8201:161::-;8276:4;8293:39;2544:10;8316:7;8325:6;8293:8;:39::i;:::-;-1:-1:-1;8350:4:0;8201:161;;;;;:::o;21923:154::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;;;;;;;;;22028:41:::1;::::0;;;;-1:-1:-1;;;;;7806:55:1;;;22028:41:0::1;::::0;::::1;7788:74:1::0;7878:18;;;7871:34;;;22028:27:0;::::1;::::0;::::1;::::0;7761:18:1;;22028:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21923:154:::0;;;:::o;21616:198::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;21717:9:::1;21692:21;:34;;21684:72;;;::::0;-1:-1:-1;;;21684:72:0;;8368:2:1;21684:72:0::1;::::0;::::1;8350:21:1::0;8407:2;8387:18;;;8380:30;8446:27;8426:18;;;8419:55;8491:18;;21684:72:0::1;8166:349:1::0;21684:72:0::1;21767:39;::::0;21775:10:::1;::::0;21767:39;::::1;;;::::0;21796:9;;21767:39:::1;::::0;;;21796:9;21775:10;21767:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21616:198:::0;:::o;8370:422::-;8476:4;8493:36;8503:6;8511:9;8522:6;8493:9;:36::i;:::-;-1:-1:-1;;;;;8569:19:0;;8542:24;8569:19;;;:11;:19;;;;;;;;2544:10;8569:33;;;;;;;;8621:26;;;;8613:79;;;;-1:-1:-1;;;8613:79:0;;8722:2:1;8613:79:0;;;8704:21:1;8761:2;8741:18;;;8734:30;8800:34;8780:18;;;8773:62;8871:10;8851:18;;;8844:38;8899:19;;8613:79:0;8520:404:1;8613:79:0;8703:57;8712:6;2544:10;8734:25;8753:6;8734:16;:25;:::i;:::-;8703:8;:57::i;:::-;-1:-1:-1;8780:4:0;;8370:422;-1:-1:-1;;;;8370:422:0:o;10000:248::-;10066:7;10105;;10094;:18;;10086:73;;;;-1:-1:-1;;;10086:73:0;;9450:2:1;10086:73:0;;;9432:21:1;9489:2;9469:18;;;9462:30;9528:34;9508:18;;;9501:62;9599:12;9579:18;;;9572:40;9629:19;;10086:73:0;9248:406:1;10086:73:0;10170:19;10193:10;:8;:10::i;:::-;10170:33;-1:-1:-1;10221:19:0;10170:33;10221:7;:19;:::i;:::-;10214:26;10000:248;-1:-1:-1;;;10000:248:0:o;20325:113::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;20417:13:::1;5075:1;20417:2;:13;:::i;:::-;20408:22;::::0;:6;:22:::1;:::i;:::-;20394:11;:36:::0;-1:-1:-1;20325:113:0:o;10597:475::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;-1:-1:-1;;;;;10679:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10671:56;;;::::0;-1:-1:-1;;;10671:56:0;;11696:2:1;10671:56:0::1;::::0;::::1;11678:21:1::0;11735:2;11715:18;;;11708:30;11774:25;11754:18;;;11747:53;11817:18;;10671:56:0::1;11494:347:1::0;10671:56:0::1;10743:9;10738:327;10762:9;:16:::0;10758:20;::::1;10738:327;;;10820:7;-1:-1:-1::0;;;;;10804:23:0::1;:9;10814:1;10804:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10804:12:0::1;:23;10800:254;;;10863:9;10873:16:::0;;:20:::1;::::0;10892:1:::1;::::0;10873:20:::1;:::i;:::-;10863:31;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;10848:9:::1;:12:::0;;-1:-1:-1;;;;;10863:31:0;;::::1;::::0;10858:1;;10848:12;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;10848:46:0::1;-1:-1:-1::0;;;;;10848:46:0;;::::1;;::::0;;10913:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10952:11:::1;:20:::0;;;;:28;;-1:-1:-1;;10952:28:0::1;::::0;;10999:9:::1;:15:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10999:15:0;;;;;-1:-1:-1;;10999:15:0::1;::::0;;;;;21767:39:::1;21616:198:::0;:::o;10800:254::-:1;10780:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10738:327;;8800:215:::0;2544:10;8888:4;8937:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8937:34:0;;;;;;;;;;8888:4;;8905:80;;8928:7;;8937:47;;8974:10;;8937:47;:::i;21279:154::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;21373:6:::1;:27:::0;;;::::1;::::0;-1:-1:-1;;;;;21373:27:0;;::::1;;;::::0;;21411:4:::1;:14:::0;;-1:-1:-1;;21411:14:0::1;::::0;;;::::1;;::::0;;21279:154::o;11080:111::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;-1:-1:-1;;;;;11149:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;11149:34:0::1;11179:4;11149:34;::::0;;11080:111::o;9536:456::-;9626:7;9665;;9654;:18;;9646:62;;;;-1:-1:-1;;;9646:62:0;;12699:2:1;9646:62:0;;;12681:21:1;12738:2;12718:18;;;12711:30;12777:33;12757:18;;;12750:61;12828:18;;9646:62:0;12497:355:1;9646:62:0;9724:17;9719:266;;9758:28;9789:25;9800:7;9809:4;9789:10;:25::i;:::-;9836:9;;-1:-1:-1;9829:16:0;;-1:-1:-1;9829:16:0;9719:266;9878:28;9909:25;9920:7;9929:4;9909:10;:25::i;:::-;9956:17;;;;-1:-1:-1;9949:24:0;;-1:-1:-1;9949:24:0;10256:333;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;-1:-1:-1;;;;;10339:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;10338:21;10330:61;;;::::0;-1:-1:-1;;;10330:61:0;;13059:2:1;10330:61:0::1;::::0;::::1;13041:21:1::0;13098:2;13078:18;;;13071:30;13137:29;13117:18;;;13110:57;13184:18;;10330:61:0::1;12857:351:1::0;10330:61:0::1;-1:-1:-1::0;;;;;10405:16:0;::::1;10424:1;10405:16:::0;;;:7:::1;:16;::::0;;;;;:20;10402:108:::1;;-1:-1:-1::0;;;;;10481:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;10461:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;10442:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;10402:108:::1;-1:-1:-1::0;;;;;10520:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;10520:27:0::1;10543:4;10520:27:::0;;::::1;::::0;;;10558:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;10558:23:0::1;::::0;;::::1;::::0;;10256:333::o;7669:198::-;-1:-1:-1;;;;;7759:20:0;;7735:7;7759:20;;;:11;:20;;;;;;;;7755:49;;;-1:-1:-1;;;;;;7788:16:0;;;;;:7;:16;;;;;;;7669:198::o;7755:49::-;-1:-1:-1;;;;;7842:16:0;;;;;;:7;:16;;;;;;7822:37;;:19;:37::i;3266:94::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;3331:21:::1;3349:1;3331:9;:21::i;:::-;3266:94::o:0;20693:186::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;20793:15:::1;:26:::0;;-1:-1:-1;;20793:26:0::1;::::0;::::1;;;::::0;;20845::::1;:14:::0;-1:-1:-1;20845:26:0::1;:::i;:::-;20830:12;:41:::0;-1:-1:-1;;20693:186:0:o;20584:101::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;20655:11:::1;:22:::0;;-1:-1:-1;;20655:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20584:101::o;11450:257::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;11559:5:::1;:16:::0;;;11586:9;:16;;;11613:15;:28;;;11652:10;:18;;;11686:13:::1;::::0;::::1;::::0;11559:9:::1;::::0;11686:13:::1;11450:257:::0;;;;:::o;9023:377::-;2544:10;9116:4;9160:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9160:34:0;;;;;;;;;;9213:35;;;;9205:85;;;;-1:-1:-1;;;9205:85:0;;13415:2:1;9205:85:0;;;13397:21:1;13454:2;13434:18;;;13427:30;13493:34;13473:18;;;13466:62;13564:7;13544:18;;;13537:35;13589:19;;9205:85:0;13213:401:1;9205:85:0;9301:67;2544:10;9324:7;9333:34;9352:15;9333:16;:34;:::i;9301:67::-;-1:-1:-1;9388:4:0;;9023:377;-1:-1:-1;;;9023:377:0:o;7875:167::-;7953:4;7970:42;2544:10;7994:9;8005:6;7970:9;:42::i;21073:194::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;21166:9:::1;21162:98;21185:8;:15;21181:1;:19;21162:98;;;21243:5;21221:6;:19;21228:8;21237:1;21228:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;21221:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;21221:19:0;:27;;-1:-1:-1;;21221:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21202:3;::::1;::::0;::::1;:::i;:::-;;;;21162:98;;;;21073:194:::0;;:::o;20446:130::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;20555:13:::1;5075:1;20555:2;:13;:::i;:::-;20546:22;::::0;:6;:22:::1;:::i;:::-;20525:18;:43:::0;-1:-1:-1;20446:130:0:o;20887:174::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;-1:-1:-1;;;;;20973:15:0;::::1;;::::0;;;:6:::1;:15;::::0;;;;;::::1;;:24;;::::0;::::1;;;;20965:54;;;::::0;-1:-1:-1;;;20965:54:0;;13821:2:1;20965:54:0::1;::::0;::::1;13803:21:1::0;13860:2;13840:18;;;13833:30;13899:19;13879:18;;;13872:47;13936:18;;20965:54:0::1;13619:341:1::0;20965:54:0::1;-1:-1:-1::0;;;;;21030:15:0;;;::::1;;::::0;;;:6:::1;:15;::::0;;;;:23;;-1:-1:-1;;21030:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20887:174::o;11199:110::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;-1:-1:-1;;;;;11266:27:0::1;11296:5;11266:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11266:35:0::1;::::0;;11199:110::o;3368:192::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;-1:-1:-1;;;;;3457:22:0;::::1;3449:73;;;::::0;-1:-1:-1;;;3449:73:0;;14167:2:1;3449:73:0::1;::::0;::::1;14149:21:1::0;14206:2;14186:18;;;14179:30;14245:34;14225:18;;;14218:62;14316:8;14296:18;;;14289:36;14342:19;;3449:73:0::1;13965:402:1::0;3449:73:0::1;3533:19;3543:8;3533:9;:19::i;:::-;3368:192:::0;:::o;20108:209::-;3089:7;3116:6;-1:-1:-1;;;;;3116:6:0;2544:10;3178:23;3170:68;;;;-1:-1:-1;;;3170:68:0;;7455:2:1;3170:68:0;;;7437:21:1;;;7474:18;;;7467:30;-1:-1:-1;;;;;;;;;;;7513:18:1;;;7506:62;7585:18;;3170:68:0;7253:356:1;3170:68:0;20189:10:::1;::::0;-1:-1:-1;;;;;20189:23:0;;::::1;:10:::0;::::1;:23;;20181:54;;;::::0;-1:-1:-1;;;20181:54:0;;14574:2:1;20181:54:0::1;::::0;::::1;14556:21:1::0;14613:2;14593:18;;;14586:30;14652:20;14632:18;;;14625:48;14690:18;;20181:54:0::1;14372:342:1::0;20181:54:0::1;20246:10;:22:::0;;-1:-1:-1;;;;;20246:22:0;;::::1;-1:-1:-1::0;;20246:22:0;;::::1;::::0;::::1;::::0;;:10:::1;20279:30:::0;:18:::1;:30;::::0;20108:209::o;14906:335::-;-1:-1:-1;;;;;14999:19:0;;14991:68;;;;-1:-1:-1;;;14991:68:0;;14921:2:1;14991:68:0;;;14903:21:1;14960:2;14940:18;;;14933:30;14999:34;14979:18;;;14972:62;15070:6;15050:18;;;15043:34;15094:19;;14991:68:0;14719:400:1;14991:68:0;-1:-1:-1;;;;;15078:21:0;;15070:68;;;;-1:-1:-1;;;15070:68:0;;15326:2:1;15070:68:0;;;15308:21:1;15365:2;15345:18;;;15338:30;15404:34;15384:18;;;15377:62;15475:4;15455:18;;;15448:32;15497:19;;15070:68:0;15124:398:1;15070:68:0;-1:-1:-1;;;;;15149:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15201:32;;2218:25:1;;;15201:32:0;;2191:18:1;15201:32:0;;;;;;;14906:335;;;:::o;15249:1563::-;-1:-1:-1;;;;;15337:18:0;;15329:68;;;;-1:-1:-1;;;15329:68:0;;15729:2:1;15329:68:0;;;15711:21:1;15768:2;15748:18;;;15741:30;15807:34;15787:18;;;15780:62;15878:7;15858:18;;;15851:35;15903:19;;15329:68:0;15527:401:1;15329:68:0;-1:-1:-1;;;;;15416:16:0;;15408:64;;;;-1:-1:-1;;;15408:64:0;;16135:2:1;15408:64:0;;;16117:21:1;16174:2;16154:18;;;16147:30;16213:34;16193:18;;;16186:62;16284:5;16264:18;;;16257:33;16307:19;;15408:64:0;15933:399:1;15408:64:0;15500:1;15491:6;:10;15483:64;;;;-1:-1:-1;;;15483:64:0;;16539:2:1;15483:64:0;;;16521:21:1;16578:2;16558:18;;;16551:30;16617:34;16597:18;;;16590:62;16688:11;16668:18;;;16661:39;16717:19;;15483:64:0;16337:405:1;15483:64:0;15576:15;15586:4;15576:9;:15::i;:::-;15566:6;:25;;15558:86;;;;-1:-1:-1;;;15558:86:0;;16949:2:1;15558:86:0;;;16931:21:1;16988:2;16968:18;;;16961:30;17027:34;17007:18;;;17000:62;17098:19;17078:18;;;17071:47;17135:19;;15558:86:0;16747:413:1;15558:86:0;-1:-1:-1;;;;;15664:12:0;;;;;;:6;:12;;;;;;;;15663:13;:28;;;;-1:-1:-1;;;;;;15681:10:0;;;;;;:6;:10;;;;;;;;15680:11;15663:28;15655:54;;;;-1:-1:-1;;;15655:54:0;;17367:2:1;15655:54:0;;;17349:21:1;17406:2;17386:18;;;17379:30;17445:15;17425:18;;;17418:43;17478:18;;15655:54:0;17165:337:1;15655:54:0;-1:-1:-1;;;;;15736:24:0;;;;;;:18;:24;;;;;;;;15735:25;:52;;;;-1:-1:-1;;;;;;15765:22:0;;;;;;:18;:22;;;;;;;;15764:23;15735:52;:65;;;;-1:-1:-1;15792:8:0;;;;;;;15791:9;15735:65;15732:709;;;15834:11;;15824:6;:21;;15816:65;;;;-1:-1:-1;;;15816:65:0;;17709:2:1;15816:65:0;;;17691:21:1;17748:2;17728:18;;;17721:30;17787:33;17767:18;;;17760:61;17838:18;;15816:65:0;17507:355:1;15816:65:0;15909:4;;-1:-1:-1;;;;;15901:12:0;;;15909:4;;15901:12;;;;:31;;-1:-1:-1;15917:15:0;;;;15901:31;15898:261;;;-1:-1:-1;;;;;15991:16:0;;15952:18;15991:16;;;:10;:16;;;;;;15973:34;;:15;:34;:::i;:::-;15952:55;;16047:12;;16034:10;:25;16026:64;;;;-1:-1:-1;;;16026:64:0;;18069:2:1;16026:64:0;;;18051:21:1;18108:2;18088:18;;;18081:30;18147:28;18127:18;;;18120:56;18193:18;;16026:64:0;17867:350:1;16026:64:0;-1:-1:-1;;;;;;16109:16:0;;;;;;:10;:16;;;;;16128:15;16109:34;;15898:261;16182:4;;-1:-1:-1;;;;;16176:10:0;;;16182:4;;16176:10;;;;:29;;-1:-1:-1;16190:15:0;;;;16176:29;16173:257;;;-1:-1:-1;;;;;16265:14:0;;16225:19;16265:14;;;:10;:14;;;;;;16247:32;;:15;:32;:::i;:::-;16225:54;;16320:12;;16306:11;:26;16298:65;;;;-1:-1:-1;;;16298:65:0;;18069:2:1;16298:65:0;;;18051:21:1;18108:2;18088:18;;;18081:30;18147:28;18127:18;;;18120:56;18193:18;;16298:65:0;17867:350:1;16298:65:0;-1:-1:-1;;;;;;16382:14:0;;;;;;:10;:14;;;;;16399:15;16382:32;;16173:257;16461:12;16504:18;;16476:24;16494:4;16476:9;:24::i;:::-;16537:8;;-1:-1:-1;;16476:46:0;;-1:-1:-1;16537:8:0;;;;;16536:9;:24;;;;-1:-1:-1;16549:11:0;;;;16536:24;:35;;;;;16564:7;16536:35;:51;;;;-1:-1:-1;16583:4:0;;-1:-1:-1;;;;;16575:12:0;;;16583:4;;16575:12;;16536:51;:80;;;;-1:-1:-1;;;;;;16592:24:0;;;;;;:18;:24;;;;;;;;16591:25;16536:80;:107;;;;-1:-1:-1;;;;;;16621:22:0;;;;;;:18;:22;;;;;;;;16620:23;16536:107;16533:172;;;16659:34;16674:18;;16659:14;:34::i;:::-;-1:-1:-1;;;;;16752:24:0;;;;;;:18;:24;;;;;;16717:87;;16732:4;;16738:2;;16742:6;;16752:24;;;:50;;-1:-1:-1;;;;;;16780:22:0;;;;;;:18;:22;;;;;;;;16752:50;16750:53;16717:14;:87::i;14192:158::-;14233:7;14254:15;14271;14290:19;:17;:19::i;:::-;14253:56;;-1:-1:-1;14253:56:0;-1:-1:-1;14327:15:0;14253:56;;14327:15;:::i;:::-;14320:22;;;;14192:158;:::o;12642:381::-;12715:36;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12715:36:0;12776:29;12788:7;12797;12776:11;:29::i;:::-;12764:41;;12936:52;12948:9;12959:7;12968;12977:10;:8;:10::i;:::-;12936:11;:52::i;:::-;12917:15;;;12816:172;12895:20;;;12816:172;12879:14;;;12816:172;12863:14;;;12816:172;12836:25;;;12816:172;;;12642:381;;;;:::o;3568:173::-;3624:16;3643:6;;-1:-1:-1;;;;;3660:17:0;;;-1:-1:-1;;3660:17:0;;;;;;3693:40;;3643:6;;;;;;;3693:40;;3624:16;3693:40;3613:128;3568:173;:::o;18059:965::-;6587:8;:15;;-1:-1:-1;;6587:15:0;;;;;18220:9;;18202:15;;6587;;18202:27:::1;::::0;::::1;:::i;:::-;18201:34;::::0;18234:1:::1;18201:34;:::i;:::-;18179:56;;18246:32;18308:11;18290:5;:15;;;18281:6;:24;;;;:::i;:::-;:38;;;;:::i;:::-;18246:73:::0;-1:-1:-1;18330:14:0::1;18347:33;18246:73:::0;18347:6;:33:::1;:::i;:::-;18330:50:::0;-1:-1:-1;18418:21:0::1;18452:25;18330:50:::0;18452:17:::1;:25::i;:::-;18490:20;18513:38;18537:14:::0;18513:21:::1;:38;:::i;:::-;18613:15:::0;;18490:61;;-1:-1:-1;18562:19:0::1;::::0;18599:29:::1;::::0;:11;:29:::1;:::i;:::-;18583:46;::::0;:12;:46:::1;:::i;:::-;18687:15:::0;;18562:67;;-1:-1:-1;18640:30:0::1;::::0;18673:29:::1;::::0;18562:67;18673:29:::1;:::i;:::-;18640:62:::0;-1:-1:-1;18718:26:0;;18715:156:::1;;18797:62;18810:24;18836:22;18797:12;:62::i;:::-;18918:9:::0;;18883:14:::1;::::0;18900:15:::1;:11:::0;18914:1:::1;18900:15;:::i;:::-;:27;;;;:::i;:::-;18883:44:::0;-1:-1:-1;18941:10:0;;18938:77:::1;;18975:10;::::0;18967:36:::1;::::0;-1:-1:-1;;;;;18975:10:0;;::::1;::::0;18967:36;::::1;;;::::0;18996:6;;18975:10:::1;18967:36:::0;18975:10;18967:36;18996:6;18975:10;18967:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18938:77;-1:-1:-1::0;;6625:8:0;:16;;-1:-1:-1;;6625:16:0;;;-1:-1:-1;;;;;;;18059:965:0:o;16893:1158::-;17004:28;17035;17046:7;17055;17035:10;:28::i;:::-;-1:-1:-1;;;;;17080:19:0;;;;;;:11;:19;;;;;;17004:59;;-1:-1:-1;17080:19:0;;17076:115;;;-1:-1:-1;;;;;17156:15:0;;;;;;:7;:15;;;;;;:23;;17172:7;;17156:23;:::i;:::-;-1:-1:-1;;;;;17138:15:0;;;;;;:7;:15;;;;;:41;17076:115;-1:-1:-1;;;;;17205:22:0;;;;;;:11;:22;;;;;;;;17201:130;;;17302:17;;;;-1:-1:-1;;;;;17283:18:0;;;;;;:7;:18;;;;;;:36;;17302:17;17283:36;:::i;:::-;-1:-1:-1;;;;;17262:18:0;;;;;;:7;:18;;;;;:57;17201:130;17377:9;;-1:-1:-1;;;;;17361:15:0;;17377:9;17361:15;;;:7;:15;;;;;;:25;;17377:9;17361:25;:::i;:::-;-1:-1:-1;;;;;17343:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;17437:17;;;17418:18;;;;;;;;;;:36;;17437:17;17418:36;:::i;:::-;-1:-1:-1;;;;;17397:18:0;;;;;;:7;:18;;;;;;;:57;;;;17478:6;;;:10;;;:24;;;17501:1;17492;:6;;;:10;17478:24;17475:56;;;17504:27;17516:1;:6;;;17524:1;:6;;;17504:11;:27::i;:::-;17560:1;17545;:12;;;:16;:36;;;;17580:1;17565;:12;;;:16;17545:36;17542:109;;;17598:41;17613:1;:12;;;17626:1;:12;;;17598:14;:41::i;:::-;17673:1;17664;:6;;;:10;:24;;;;17687:1;17678;:6;;;:10;17664:24;17661:79;;;17704:24;17713:1;:6;;;17721:1;:6;;;17704:8;:24::i;:::-;17763:1;17753;:7;;;:11;:26;;;;17778:1;17768;:7;;;:11;17753:26;17750:142;;;17795:27;17805:1;:7;;;17814:1;:7;;;17795:9;:27::i;:::-;5587:42;-1:-1:-1;;;;;17842:38:0;17851:6;-1:-1:-1;;;;;17842:38:0;;17872:1;:7;;;17842:38;;;;2218:25:1;;2206:2;2191:18;;2072:177;17842:38:0;;;;;;;;17750:142;17934:9;-1:-1:-1;;;;;17917:46:0;17926:6;-1:-1:-1;;;;;17917:46:0;;17945:1;:17;;;17917:46;;;;2218:25:1;;2206:2;2191:18;;2072:177;17917:46:0;;;;;;;;18004:4;-1:-1:-1;;;;;17979:54:0;17988:6;-1:-1:-1;;;;;17979:54:0;;18026:1;:6;;;18011:1;:12;;;:21;;;;:::i;:::-;17979:54;;2218:25:1;;;2206:2;2191:18;17979:54:0;;;;;;;16991:1060;16893:1158;;;;:::o;14358:540::-;14455:7;;14491;;14408;;;;;14509:279;14533:9;:16;14529:20;;14509:279;;;14599:7;14575;:21;14583:9;14593:1;14583:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14583:12:0;14575:21;;;;;;;;;;;;;:31;;:66;;;14634:7;14610;:21;14618:9;14628:1;14618:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14618:12:0;14610:21;;;;;;;;;;;;;:31;14575:66;14571:97;;;14651:7;;14660;;14643:25;;;;;;;14358:540;;:::o;14571:97::-;14701:7;:21;14709:9;14719:1;14709:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14709:12:0;14701:21;;;;;;;;;;;;;14693:29;;:7;:29;:::i;:::-;14683:39;;14755:7;:21;14763:9;14773:1;14763:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;14763:12:0;14755:21;;;;;;;;;;;;;14747:29;;:7;:29;:::i;:::-;14737:39;-1:-1:-1;14551:3:0;;;;:::i;:::-;;;;14509:279;;;;14820:7;;14812;;:15;;;;:::i;:::-;14802:7;:25;14798:56;;;14837:7;;14846;;14829:25;;;;;;14358:540;;:::o;14798:56::-;14873:7;;14882;;-1:-1:-1;14358:540:0;-1:-1:-1;14358:540:0:o;13031:488::-;13105:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13105:28:0;13150:7;13146:86;;13172:17;;;:27;;;13212:8;;13146:86;13269:5;:9;13279:3;;13261:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;13252:6;;;:30;13310:9;;13320:3;;13302:17;;:7;:17;:::i;:::-;:21;;;;:::i;:::-;13293:6;;;:30;13357:15;;13373:3;;13349:23;;:7;:23;:::i;:::-;:27;;;;:::i;:::-;13334:12;;;:42;13405:10;;13416:3;;13397:18;;:7;:18;:::i;:::-;:22;;;;:::i;:::-;13387:7;;;:32;;;13472:12;;;;13465:6;;;;13458;;;;13450:14;;:7;:14;:::i;:::-;:21;;;;:::i;:::-;:34;;;;:::i;:::-;:42;;;;:::i;:::-;13430:17;;;:62;13031:488;;;;:::o;13527:657::-;13652:15;;;;;;13777:19;13785:11;13777:7;:19;:::i;:::-;13767:29;;13813:7;13809:71;;-1:-1:-1;13842:7:0;;-1:-1:-1;13860:1:0;;-1:-1:-1;13860:1:0;;-1:-1:-1;13860:1:0;;-1:-1:-1;13860:1:0;13835:33;;13809:71;13906:11;13899:1;:6;;;:18;;;;:::i;:::-;13892:25;;13942:11;13935:1;:6;;;:18;;;;:::i;:::-;13928:25;;13990:11;13977:1;:12;;;:24;;;;:::i;:::-;13964:37;;14028:11;14020:1;:7;;;:19;;;;:::i;:::-;14012:27;-1:-1:-1;14012:27:0;14087:10;14082:4;14069:12;14077:4;14069:7;:12;:::i;:::-;:17;;;;:::i;:::-;:28;;;;:::i;:::-;:34;;;;:::i;:::-;14050:53;;13527:657;;;;;;;;;;;;:::o;19537:563::-;19688:16;;;19702:1;19688:16;;;;;;;;19664:21;;19688:16;;;;;;;;;;-1:-1:-1;19688:16:0;19664:40;;19733:4;19715;19720:1;19715:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19715:23:0;;;-1:-1:-1;;;;;19715:23:0;;;;;19759:6;;;;;;;;;-1:-1:-1;;;;;19759:6:0;-1:-1:-1;;;;;19759:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19749:4;19754:1;19749:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19749:23:0;;;:7;;;;;;;;;:23;19817:6;;19785:53;;19802:4;;19817:6;;;;19826:11;19785:8;:53::i;:::-;19877:6;;:215;;;;;:6;;;;-1:-1:-1;;;;;19877:6:0;;:57;;:215;;19949:11;;19975:1;;20019:4;;20046;;20066:15;;19877:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19593:507;19537:563;:::o;19032:497::-;19213:6;;19181:53;;19198:4;;19213:6;;;-1:-1:-1;;;;;19213:6:0;19222:11;19181:8;:53::i;:::-;19277:6;;-1:-1:-1;;;;;19277:6:0;;;;;:22;19307:10;19341:4;19361:11;19387:1;;19473:7;3089;3116:6;-1:-1:-1;;;;;3116:6:0;;3043:87;19473:7;19277:244;;;;;;;;;;-1:-1:-1;;;;;19891:15:1;;;19277:244:0;;;19873:34:1;19923:18;;;19916:34;;;;19966:18;;;19959:34;;;;20009:18;;;20002:34;20073:15;;;20052:19;;;20045:44;19495:15:0;20105:19:1;;;20098:35;19784:19;;19277:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19032:497;;:::o;11715:123::-;11793:4;11783:7;;:14;;;;;;;:::i;:::-;;;;-1:-1:-1;;11808:11:0;:22;;11826:4;;11808:11;:15;;:22;;11826:4;;11808:22;:::i;:::-;;;;-1:-1:-1;;;;11715:123:0:o;11846:284::-;11953:10;11929:11;:21;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;11999:4:0;11979:26;;;;:11;:26;;;;;;;;11976:101;;;12047:4;12031:22;;;;:7;:22;;;;;:34;;12055:10;;12031:22;:34;;12055:10;;12031:34;:::i;:::-;;;;-1:-1:-1;;11976:101:0;12103:4;12087:22;;;;:7;:22;;;;;:35;;12112:10;;12087:22;:35;;12112:10;;12087:35;:::i;12138:242::-;12221:4;12203:11;:15;;;:22;;;;;;;:::i;12392:242::-;12478:5;12459:11;:16;;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;5587:42:0;12499:24;;:11;:24;;;;;;12496:92;;;5587:42;12549:20;;;;:7;:20;;;:27;;12571:5;;12549:20;:27;;12571:5;;12549:27;:::i;:::-;;;;-1:-1:-1;;12496:92:0;5587:42;12598:20;;;;:7;:20;;;:28;;12621:5;;12598:20;:28;;12621:5;;12598:28;:::i;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:154::-;-1:-1:-1;;;;;695:5:1;691:54;684:5;681:65;671:93;;760:1;757;750:12;775:134;843:20;;872:31;843:20;872:31;:::i;:::-;775:134;;;:::o;914:315::-;982:6;990;1043:2;1031:9;1022:7;1018:23;1014:32;1011:52;;;1059:1;1056;1049:12;1011:52;1098:9;1085:23;1117:31;1142:5;1117:31;:::i;:::-;1167:5;1219:2;1204:18;;;;1191:32;;-1:-1:-1;;;914:315:1:o;1426:456::-;1503:6;1511;1519;1572:2;1560:9;1551:7;1547:23;1543:32;1540:52;;;1588:1;1585;1578:12;1540:52;1627:9;1614:23;1646:31;1671:5;1646:31;:::i;:::-;1696:5;-1:-1:-1;1753:2:1;1738:18;;1725:32;1766:33;1725:32;1766:33;:::i;:::-;1426:456;;1818:7;;-1:-1:-1;;;1872:2:1;1857:18;;;;1844:32;;1426:456::o;1887:180::-;1946:6;1999:2;1987:9;1978:7;1974:23;1970:32;1967:52;;;2015:1;2012;2005:12;1967:52;-1:-1:-1;2038:23:1;;1887:180;-1:-1:-1;1887:180:1:o;2674:247::-;2733:6;2786:2;2774:9;2765:7;2761:23;2757:32;2754:52;;;2802:1;2799;2792:12;2754:52;2841:9;2828:23;2860:31;2885:5;2860:31;:::i;2926:388::-;2994:6;3002;3055:2;3043:9;3034:7;3030:23;3026:32;3023:52;;;3071:1;3068;3061:12;3023:52;3110:9;3097:23;3129:31;3154:5;3129:31;:::i;:::-;3179:5;-1:-1:-1;3236:2:1;3221:18;;3208:32;3249:33;3208:32;3249:33;:::i;:::-;3301:7;3291:17;;;2926:388;;;;;:::o;3319:118::-;3405:5;3398:13;3391:21;3384:5;3381:32;3371:60;;3427:1;3424;3417:12;3442:128;3507:20;;3536:28;3507:20;3536:28;:::i;3575:309::-;3640:6;3648;3701:2;3689:9;3680:7;3676:23;3672:32;3669:52;;;3717:1;3714;3707:12;3669:52;3753:9;3740:23;3730:33;;3813:2;3802:9;3798:18;3785:32;3826:28;3848:5;3826:28;:::i;4285:309::-;4350:6;4358;4411:2;4399:9;4390:7;4386:23;4382:32;4379:52;;;4427:1;4424;4417:12;4379:52;4466:9;4453:23;4485:28;4507:5;4485:28;:::i;4599:241::-;4655:6;4708:2;4696:9;4687:7;4683:23;4679:32;4676:52;;;4724:1;4721;4714:12;4676:52;4763:9;4750:23;4782:28;4804:5;4782:28;:::i;4845:385::-;4931:6;4939;4947;4955;5008:3;4996:9;4987:7;4983:23;4979:33;4976:53;;;5025:1;5022;5015:12;4976:53;-1:-1:-1;;5048:23:1;;;5118:2;5103:18;;5090:32;;-1:-1:-1;5169:2:1;5154:18;;5141:32;;5220:2;5205:18;5192:32;;-1:-1:-1;4845:385:1;-1:-1:-1;4845:385:1:o;5235:184::-;-1:-1:-1;;;5284:1:1;5277:88;5384:4;5381:1;5374:15;5408:4;5405:1;5398:15;5424:1191;5514:6;5522;5575:2;5563:9;5554:7;5550:23;5546:32;5543:52;;;5591:1;5588;5581:12;5543:52;5631:9;5618:23;5660:18;5701:2;5693:6;5690:14;5687:34;;;5717:1;5714;5707:12;5687:34;5755:6;5744:9;5740:22;5730:32;;5800:7;5793:4;5789:2;5785:13;5781:27;5771:55;;5822:1;5819;5812:12;5771:55;5858:2;5845:16;5880:4;5903:2;5899;5896:10;5893:36;;;5909:18;;:::i;:::-;5955:2;5952:1;5948:10;5987:2;5981:9;6050:2;6046:7;6041:2;6037;6033:11;6029:25;6021:6;6017:38;6105:6;6093:10;6090:22;6085:2;6073:10;6070:18;6067:46;6064:72;;;6116:18;;:::i;:::-;6152:2;6145:22;6202:18;;;6236:15;;;;-1:-1:-1;6278:11:1;;;6274:20;;;6306:19;;;6303:39;;;6338:1;6335;6328:12;6303:39;6362:11;;;;6382:148;6398:6;6393:3;6390:15;6382:148;;;6464:23;6483:3;6464:23;:::i;:::-;6452:36;;6415:12;;;;6508;;;;6382:148;;;6549:6;-1:-1:-1;6574:35:1;;-1:-1:-1;6590:18:1;;;6574:35;:::i;:::-;6564:45;;;;;;5424:1191;;;;;:::o;6620:382::-;6685:6;6693;6746:2;6734:9;6725:7;6721:23;6717:32;6714:52;;;6762:1;6759;6752:12;6714:52;6801:9;6788:23;6820:31;6845:5;6820:31;:::i;:::-;6870:5;-1:-1:-1;6927:2:1;6912:18;;6899:32;6940:30;6899:32;6940:30;:::i;7916:245::-;7983:6;8036:2;8024:9;8015:7;8011:23;8007:32;8004:52;;;8052:1;8049;8042:12;8004:52;8084:9;8078:16;8103:28;8125:5;8103:28;:::i;8929:184::-;-1:-1:-1;;;8978:1:1;8971:88;9078:4;9075:1;9068:15;9102:4;9099:1;9092:15;9118:125;9158:4;9186:1;9183;9180:8;9177:34;;;9191:18;;:::i;:::-;-1:-1:-1;9228:9:1;;9118:125::o;9659:274::-;9699:1;9725;9715:189;;-1:-1:-1;;;9757:1:1;9750:88;9861:4;9858:1;9851:15;9889:4;9886:1;9879:15;9715:189;-1:-1:-1;9918:9:1;;9659:274::o;9938:422::-;10027:1;10070:5;10027:1;10084:270;10105:7;10095:8;10092:21;10084:270;;;10164:4;10160:1;10156:6;10152:17;10146:4;10143:27;10140:53;;;10173:18;;:::i;:::-;10223:7;10213:8;10209:22;10206:55;;;10243:16;;;;10206:55;10322:22;;;;10282:15;;;;10084:270;;;10088:3;9938:422;;;;;:::o;10365:806::-;10414:5;10444:8;10434:80;;-1:-1:-1;10485:1:1;10499:5;;10434:80;10533:4;10523:76;;-1:-1:-1;10570:1:1;10584:5;;10523:76;10615:4;10633:1;10628:59;;;;10701:1;10696:130;;;;10608:218;;10628:59;10658:1;10649:10;;10672:5;;;10696:130;10733:3;10723:8;10720:17;10717:43;;;10740:18;;:::i;:::-;-1:-1:-1;;10796:1:1;10782:16;;10811:5;;10608:218;;10910:2;10900:8;10897:16;10891:3;10885:4;10882:13;10878:36;10872:2;10862:8;10859:16;10854:2;10848:4;10845:12;10841:35;10838:77;10835:159;;;-1:-1:-1;10947:19:1;;;10979:5;;10835:159;11026:34;11051:8;11045:4;11026:34;:::i;:::-;11096:6;11092:1;11088:6;11084:19;11075:7;11072:32;11069:58;;;11107:18;;:::i;:::-;11145:20;;10365:806;-1:-1:-1;;;10365:806:1:o;11176:140::-;11234:5;11263:47;11304:4;11294:8;11290:19;11284:4;11263:47;:::i;11321:168::-;11361:7;11427:1;11423;11419:6;11415:14;11412:1;11409:21;11404:1;11397:9;11390:17;11386:45;11383:71;;;11434:18;;:::i;:::-;-1:-1:-1;11474:9:1;;11321:168::o;11846:184::-;-1:-1:-1;;;11895:1:1;11888:88;11995:4;11992:1;11985:15;12019:4;12016:1;12009:15;12035:184;-1:-1:-1;;;12084:1:1;12077:88;12184:4;12181:1;12174:15;12208:4;12205:1;12198:15;12224:135;12263:3;-1:-1:-1;;12284:17:1;;12281:43;;;12304:18;;:::i;:::-;-1:-1:-1;12351:1:1;12340:13;;12224:135::o;12364:128::-;12404:3;12435:1;12431:6;12428:1;12425:13;12422:39;;;12441:18;;:::i;:::-;-1:-1:-1;12477:9:1;;12364:128::o;18222:251::-;18292:6;18345:2;18333:9;18324:7;18320:23;18316:32;18313:52;;;18361:1;18358;18351:12;18313:52;18393:9;18387:16;18412:31;18437:5;18412:31;:::i;18478:1026::-;18740:4;18788:3;18777:9;18773:19;18819:6;18808:9;18801:25;18845:2;18883:6;18878:2;18867:9;18863:18;18856:34;18926:3;18921:2;18910:9;18906:18;18899:31;18950:6;18985;18979:13;19016:6;19008;19001:22;19054:3;19043:9;19039:19;19032:26;;19093:2;19085:6;19081:15;19067:29;;19114:1;19124:218;19138:6;19135:1;19132:13;19124:218;;;19203:13;;-1:-1:-1;;;;;19199:62:1;19187:75;;19317:15;;;;19282:12;;;;19160:1;19153:9;19124:218;;;-1:-1:-1;;;;;;;19398:55:1;;;;19393:2;19378:18;;19371:83;-1:-1:-1;;;19485:3:1;19470:19;19463:35;19359:3;18478:1026;-1:-1:-1;;;18478:1026:1:o;20144:306::-;20232:6;20240;20248;20301:2;20289:9;20280:7;20276:23;20272:32;20269:52;;;20317:1;20314;20307:12;20269:52;20346:9;20340:16;20330:26;;20396:2;20385:9;20381:18;20375:25;20365:35;;20440:2;20429:9;20425:18;20419:25;20409:35;;20144:306;;;;;:::o

Swarm Source

ipfs://fafe675daa2541eb27a229e870e3ae99e54a3f70fc42f1ed8547e1d3fb7d05b2
Loading