BNB Price: $695.71 (-2.00%)
Gas: 1 GWei
 
Transaction Hash
Method
Block
From
To
Transfer453253802024-12-30 11:14:4313 secs ago1735557283IN
0x3a30A8D7...D74be7856
0 BNB0.000099262
Transfer453253792024-12-30 11:14:4016 secs ago1735557280IN
0x3a30A8D7...D74be7856
0 BNB0.000134772.02
Transfer453253762024-12-30 11:14:3125 secs ago1735557271IN
0x3a30A8D7...D74be7856
0 BNB0.000061931
Transfer453253732024-12-30 11:14:2234 secs ago1735557262IN
0x3a30A8D7...D74be7856
0 BNB0.000099242
Transfer453253652024-12-30 11:13:5858 secs ago1735557238IN
0x3a30A8D7...D74be7856
0 BNB0.000066731
Transfer453253592024-12-30 11:13:401 min ago1735557220IN
0x3a30A8D7...D74be7856
0 BNB0.000066731
Transfer453253562024-12-30 11:13:311 min ago1735557211IN
0x3a30A8D7...D74be7856
0 BNB0.000049621
Transfer453253552024-12-30 11:13:281 min ago1735557208IN
0x3a30A8D7...D74be7856
0 BNB0.000089822.004
Transfer453253502024-12-30 11:13:131 min ago1735557193IN
0x3a30A8D7...D74be7856
0 BNB0.000044821
Transfer453253412024-12-30 11:12:462 mins ago1735557166IN
0x3a30A8D7...D74be7856
0 BNB0.000124052.5
Transfer453253362024-12-30 11:12:312 mins ago1735557151IN
0x3a30A8D7...D74be7856
0 BNB0.000049631
Transfer453253322024-12-30 11:12:192 mins ago1735557139IN
0x3a30A8D7...D74be7856
0 BNB0.000112052.5
Transfer453253272024-12-30 11:12:042 mins ago1735557124IN
0x3a30A8D7...D74be7856
0 BNB0.000099242
Transfer453253272024-12-30 11:12:042 mins ago1735557124IN
0x3a30A8D7...D74be7856
0 BNB0.000134772.02
Transfer453253202024-12-30 11:11:433 mins ago1735557103IN
0x3a30A8D7...D74be7856
0 BNB0.000089642
Transfer453253182024-12-30 11:11:373 mins ago1735557097IN
0x3a30A8D7...D74be7856
0 BNB0.000049621
Transfer453253122024-12-30 11:11:193 mins ago1735557079IN
0x3a30A8D7...D74be7856
0 BNB0.000089842.004
Transfer453253102024-12-30 11:11:133 mins ago1735557073IN
0x3a30A8D7...D74be7856
0 BNB0.000099262
Transfer453253092024-12-30 11:11:103 mins ago1735557070IN
0x3a30A8D7...D74be7856
0 BNB0.000099242
Transfer453253022024-12-30 11:10:494 mins ago1735557049IN
0x3a30A8D7...D74be7856
0 BNB0.000066731
Transfer453252972024-12-30 11:10:344 mins ago1735557034IN
0x3a30A8D7...D74be7856
0 BNB0.000049631
Transfer453252952024-12-30 11:10:284 mins ago1735557028IN
0x3a30A8D7...D74be7856
0 BNB0.000049621
Transfer453252942024-12-30 11:10:254 mins ago1735557025IN
0x3a30A8D7...D74be7856
0 BNB0.000099242
Transfer453252902024-12-30 11:10:134 mins ago1735557013IN
0x3a30A8D7...D74be7856
0 BNB0.000066731
Transfer453252862024-12-30 11:10:014 mins ago1735557001IN
0x3a30A8D7...D74be7856
0 BNB0.000099262
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CAT

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, OSL-3.0 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2024-09-20
*/

/**
 *Submitted for verification at BscScan.com on 2024-09-10
*/

/**
 *Submitted for verification at BscScan.com on 2024-05-18
 */

/**
 *Submitted for verification at BscScan.com on 2024-05-17
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    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);
}

interface ISwapPair {
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function token0() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
}

interface ISwapRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
}

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

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

abstract contract AbsToken is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludedFromFee;

    uint256 private _tTotal;

    ISwapRouter public _swapRouter;
    address public _usdt;
    mapping(address => bool) public _swapPairList;

    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyLPFee = 50;
    uint256 public _buyLPDividendFee = 50;

    uint256 public _sellLPFee = 200;
    uint256 public _sellLPDividendFee = 300;

    address public _mainPair;

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(
        address RouterAddress,
        address USDTAddress,
        string memory Name,
        string memory Symbol,
        uint8 Decimals,
        uint256 Supply,
        address ReceiveAddress
    ) {
        _name = Name;
        _symbol = Symbol;
        _decimals = Decimals;

        ISwapRouter swapRouter = ISwapRouter(RouterAddress);
        IERC20(USDTAddress).approve(address(swapRouter), MAX);

        _usdt = USDTAddress;
        _swapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;
        //require(address(this) > USDTAddress);

        ISwapFactory swapFactory = ISwapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), USDTAddress);
        _mainPair = swapPair;
        _swapPairList[swapPair] = true;

        uint256 total = Supply * 10**Decimals;
        _tTotal = total;
        swapAtAmount = 0;

        _balances[ReceiveAddress] = total;

        emit Transfer(address(0), ReceiveAddress, total);

        _isExcludedFromFee[ReceiveAddress] = true;
        _isExcludedFromFee[address(this)] = true;
        // _isExcludedFromFee[address(swapRouter)] = true;
        _isExcludedFromFee[msg.sender] = true;

        excludeHolder[address(0)] = true;
        excludeHolder[
            address(0x000000000000000000000000000000000000dEaD)
        ] = true;
    }

    function symbol() external view override returns (string memory) {
        return _symbol;
    }

    function name() external view override returns (string memory) {
        return _name;
    }

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] =
                _allowances[sender][msg.sender] -
                amount;
        }
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    uint256 public swapAtAmount;

    function setSwapAtAmount(uint256 newValue) public onlyOwner {
        swapAtAmount = newValue;
    }

    function setBuy(uint256 newLp, uint256 newLpDividend) public onlyOwner {
        _buyLPFee = newLp;
        _buyLPDividendFee = newLpDividend;
    }

    function setSell(uint256 newLp, uint256 newLpDividend) public onlyOwner {
        _sellLPFee = newLp;
        _sellLPDividendFee = newLpDividend;
    }

    function _funTransfer(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount = (tAmount * 99) / 100;
        _takeTransfer(sender, address(this), feeAmount);
        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");
        bool takeFee;
        bool isSell;

        if (
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to] &&
            !_swapPairList[from] &&
            !_swapPairList[to]
        ) {}

        bool isRemove;
        bool isAdd;

        if (_swapPairList[to]) {
            isAdd = _isAddLiquidity();
        } else if (_swapPairList[from]) {
            isRemove = _isRemoveLiquidity();
        }

        if (_swapPairList[from] || _swapPairList[to]) {
            if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                if (_swapPairList[from]) {}
                if (_swapPairList[to]) {
                    if (!inSwap && !isAdd) {
                        uint256 contractTokenBalance = balanceOf(address(this));
                        if (contractTokenBalance > swapAtAmount) {
                            uint256 numTokensSellToFund = amount * 5;
                            if (numTokensSellToFund > contractTokenBalance) {
                                numTokensSellToFund = contractTokenBalance;
                            }
                        }
                    }
                }
                if (!isAdd && !isRemove) takeFee = true; // just swap fee
            }
            if (_swapPairList[to]) {
                isSell = true;
            }
        }

        _tokenTransfer(from, to, amount, takeFee, isSell, isAdd, isRemove);

        if (from != address(this)) {
            if (isSell) {
                addHolder(from);
            }
        }
    }

    function _isAddLiquidity() internal view returns (bool isAdd) {
        ISwapPair mainPair = ISwapPair(_mainPair);
        (uint256 r0, uint256 r1, ) = mainPair.getReserves();

        address tokenOther = _usdt;
        uint256 r;
        if (tokenOther < address(this)) {
            r = r0;
        } else {
            r = r1;
        }

        uint256 bal = IERC20(tokenOther).balanceOf(address(mainPair));
        isAdd = bal > r;
    }

    function _isRemoveLiquidity() internal view returns (bool isRemove) {
        ISwapPair mainPair = ISwapPair(_mainPair);
        (uint256 r0, uint256 r1, ) = mainPair.getReserves();

        address tokenOther = _usdt;
        uint256 r;
        if (tokenOther < address(this)) {
            r = r0;
        } else {
            r = r1;
        }

        uint256 bal = IERC20(tokenOther).balanceOf(address(mainPair));
        isRemove = r >= bal;
    }

    uint256 public buy_burnFee = 0;
    uint256 public sell_burnFee = 0;

    function setBurnFee(uint256 newBuyBurn, uint256 newSellBurn)
        public
        onlyOwner
    {
        buy_burnFee = newBuyBurn;
        sell_burnFee = newSellBurn;
    }

    uint256 public transferFee = 1000;

    function setTransferFee(uint256 newValue) public onlyOwner {
        transferFee = newValue;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee,
        bool isSell,
        bool isAdd,
        bool isRemove
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 swapFee;
            if (isSell) {
                swapFee = _sellLPDividendFee + _sellLPFee;
            } else {
                swapFee = _buyLPDividendFee + _buyLPFee;
            }

            uint256 swapAmount = (tAmount * swapFee) / 10000;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _takeTransfer(sender, address(this), swapAmount);
            }

            uint256 burnAmount;
            if (!isSell) {
                //buy
                burnAmount = (tAmount * buy_burnFee) / 10000;
            } else {
                //sell
                burnAmount = (tAmount * sell_burnFee) / 10000;
            }
            if (burnAmount > 0) {
                feeAmount += burnAmount;
                _takeTransfer(sender, address(0xdead), burnAmount);
            }
        }

        if (
            isAdd &&
            !_isExcludedFromFee[sender] &&
            !_isExcludedFromFee[recipient]
        ) {
            uint256 addLiquidityFeeAmount;
            addLiquidityFeeAmount = (tAmount * getAddlpFee()) / 10000;

            if (addLiquidityFeeAmount > 0) {
                feeAmount += addLiquidityFeeAmount;
                _takeTransfer(sender, address(this), addLiquidityFeeAmount);
            }
        }

        if (
            isRemove &&
            !_isExcludedFromFee[sender] &&
            !_isExcludedFromFee[recipient]
        ) {
            uint256 removeLiquidityFeeAmount;
            removeLiquidityFeeAmount = (tAmount * getRemovelpFee()) / 10000;

            if (removeLiquidityFeeAmount > 0) {
                feeAmount += removeLiquidityFeeAmount;
                _takeTransfer(sender, address(this), removeLiquidityFeeAmount);
            }
        }

        if (
            !_swapPairList[sender] &&
            !_swapPairList[recipient] &&
            !_isExcludedFromFee[sender] &&
            !_isExcludedFromFee[recipient]
        ) {
            uint256 transferFeeAmount;
            transferFeeAmount = (tAmount * transferFee) / 10000;

            if (transferFeeAmount > 0) {
                feeAmount += transferFeeAmount;
                _takeTransfer(sender, address(0xdead), transferFeeAmount);
            }
        }

        _takeTransfer(sender, recipient, tAmount - feeAmount);
    }

    uint256 public addLiquidityFee;
    uint256 public removeLiquidityFee;

    function setAddLiquidityFee(uint256 newValue) public onlyOwner {
        require(newValue <= 10000, "add Lp > 100 !");
        addLiquidityFee = newValue;
    }

    function setRemoveLiquidityFee(uint256 newValue) public onlyOwner {
        // require(newValue <= 10000, "remove Lp> 100 !");
        removeLiquidityFee = newValue;
    }

    function getAddlpFee() public view returns (uint256) {
        return addLiquidityFee;
    }

    function getRemovelpFee() public view returns (uint256) {
        return removeLiquidityFee;
    }

    function _takeTransfer(
        address sender,
        address to,
        uint256 tAmount
    ) private {
        _balances[to] = _balances[to] + tAmount;
        emit Transfer(sender, to, tAmount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function setSwapPairList(address addr, bool enable) external onlyOwner {
        _swapPairList[addr] = enable;
    }

    receive() external payable {}

    // dividend
    address[] private holders;
    mapping(address => uint256) holderIndex;
    mapping(address => bool) excludeHolder;

    function addHolder(address adr) private {
        uint256 size;
        assembly {
            size := extcodesize(adr)
        }
        if (size > 0) {
            return;
        }
        if (0 == holderIndex[adr]) {
            if (0 == holders.length || holders[0] != adr) {
                holderIndex[adr] = holders.length;
                holders.push(adr);
            }
        }
    }

    function setExcludeHolder(address addr, bool enable) external onlyOwner {
        excludeHolder[addr] = enable;
    }
}
contract CAT is AbsToken {
    constructor() AbsToken(
        address(0x10ED43C718714eb63d5aA57B78B54704E256024E),
        address(0x55d398326f99059fF775485246999027B3197955),
            "CAT",
            "CAT",
            6,
            21000000,
            address(0xF9B36683dEf19Ac0757D3FDc6AAC110cBf16B66B)
        )
    {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPDividendFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLPFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_swapPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_usdt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buy_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddlpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemovelpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sell_burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setAddLiquidityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyBurn","type":"uint256"},{"internalType":"uint256","name":"newSellBurn","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLp","type":"uint256"},{"internalType":"uint256","name":"newLpDividend","type":"uint256"}],"name":"setBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setExcludeHolder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setRemoveLiquidityFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLp","type":"uint256"},{"internalType":"uint256","name":"newLpDividend","type":"uint256"}],"name":"setSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"enable","type":"bool"}],"name":"setSwapPairList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setTransferFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"transferFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526032600c556032600d5560c8600e5561012c600f55600060125560006013556103e86014553480156200003657600080fd5b507310ed43c718714eb63d5aa57b78b54704e256024e7355d398326f99059ff775485246999027b31979556040518060400160405280600381526020017f43415400000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434154000000000000000000000000000000000000000000000000000000000081525060066301406f4073f9b36683def19ac0757d3fdc6aac110cbf16b66b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460039080519060200190620001a2929190620007d3565b508360049080519060200190620001bb929190620007d3565b5082600560006101000a81548160ff021916908360ff16021790555060008790508673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3826000196040518363ffffffff1660e01b81526004016200021b92919062000964565b602060405180830381600087803b1580156200023657600080fd5b505af11580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002719190620008e3565b5086600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c057600080fd5b505afa158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb9190620008b1565b905060008173ffffffffffffffffffffffffffffffffffffffff1663c9c65396308b6040518363ffffffff1660e01b81526004016200043c92919062000937565b602060405180830381600087803b1580156200045757600080fd5b505af11580156200046c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004929190620008b1565b905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600086600a6200053e919062000a09565b866200054b919062000b46565b905080600781905550600060118190555080600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000600919062000991565b60405180910390a36001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601960008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016019600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050505050505062000cd8565b828054620007e19062000bfe565b90600052602060002090601f01602090048101928262000805576000855562000851565b82601f106200082057805160ff191683800117855562000851565b8280016001018555821562000851579182015b828111156200085057825182559160200191906001019062000833565b5b50905062000860919062000864565b5090565b5b808211156200087f57600081600090555060010162000865565b5090565b600081519050620008948162000ca4565b92915050565b600081519050620008ab8162000cbe565b92915050565b600060208284031215620008ca57620008c962000c92565b5b6000620008da8482850162000883565b91505092915050565b600060208284031215620008fc57620008fb62000c92565b5b60006200090c848285016200089a565b91505092915050565b620009208162000ba7565b82525050565b620009318162000be7565b82525050565b60006040820190506200094e600083018562000915565b6200095d602083018462000915565b9392505050565b60006040820190506200097b600083018562000915565b6200098a602083018462000926565b9392505050565b6000602082019050620009a8600083018462000926565b92915050565b6000808291508390505b600185111562000a0057808604811115620009d857620009d762000c34565b5b6001851615620009e85780820291505b8081029050620009f88562000c97565b9450620009b8565b94509492505050565b600062000a168262000be7565b915062000a238362000bf1565b925062000a527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a5a565b905092915050565b60008262000a6c576001905062000b3f565b8162000a7c576000905062000b3f565b816001811462000a95576002811462000aa05762000ad6565b600191505062000b3f565b60ff84111562000ab55762000ab462000c34565b5b8360020a91508482111562000acf5762000ace62000c34565b5b5062000b3f565b5060208310610133831016604e8410600b841016171562000b105782820a90508381111562000b0a5762000b0962000c34565b5b62000b3f565b62000b1f8484846001620009ae565b9250905081840481111562000b395762000b3862000c34565b5b81810290505b9392505050565b600062000b538262000be7565b915062000b608362000be7565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b9c5762000b9b62000c34565b5b828202905092915050565b600062000bb48262000bc7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000c1757607f821691505b6020821081141562000c2e5762000c2d62000c63565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000caf8162000ba7565b811462000cbb57600080fd5b50565b62000cc98162000bbb565b811462000cd557600080fd5b50565b6132698062000ce86000396000f3fe6080604052600436106102295760003560e01c806379dc880c11610123578063a925a6bd116100ab578063be3601f81161006f578063be3601f814610808578063bfc3137e14610833578063d0f0c57c1461085e578063dd62ed3e14610887578063f2fde38b146108c457610230565b8063a925a6bd14610733578063acb2ad6f1461075e578063adc7955d14610789578063b9fbc49d146107b4578063bba30f8f146107df57610230565b806395d89b41116100f257806395d89b411461064e5780639aa60c7b14610679578063a0821ee5146106a4578063a8424861146106cd578063a9059cbb146106f657610230565b806379dc880c146105a657806386917524146105cf5780638da5cb5b146105fa5780638f02bb5b1461062557610230565b8063313ce567116101b15780636402511e116101755780636402511e146104c15780636b611368146104ea57806370a0823114610515578063715018a614610552578063768dc7101461056957610230565b8063313ce567146103d85780633b1cd187146104035780633c11100d1461042e5780634188bf5a1461046b5780635a25ac4f1461049657610230565b80630b504da3116101f85780630b504da3146102f157806318160ddd1461031a578063206c17bb1461034557806323b872dd14610370578063255412d9146103ad57610230565b806305833c2b1461023557806306fdde031461025e578063095ea7b3146102895780630a607930146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190612a59565b6108ed565b005b34801561026a57600080fd5b506102736109d6565b6040516102809190612d27565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab9190612a99565b610a68565b6040516102bd9190612cf1565b60405180910390f35b3480156102d257600080fd5b506102db610a7f565b6040516102e89190612dc9565b60405180910390f35b3480156102fd57600080fd5b5061031860048036038101906103139190612b86565b610a85565b005b34801561032657600080fd5b5061032f610b25565b60405161033c9190612dc9565b60405180910390f35b34801561035157600080fd5b5061035a610b2f565b6040516103679190612d0c565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190612a06565b610b55565b6040516103a49190612cf1565b60405180910390f35b3480156103b957600080fd5b506103c2610cfb565b6040516103cf9190612dc9565b60405180910390f35b3480156103e457600080fd5b506103ed610d01565b6040516103fa9190612de4565b60405180910390f35b34801561040f57600080fd5b50610418610d18565b6040516104259190612dc9565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612999565b610d1e565b6040516104629190612cf1565b60405180910390f35b34801561047757600080fd5b50610480610d3e565b60405161048d9190612cd6565b60405180910390f35b3480156104a257600080fd5b506104ab610d64565b6040516104b89190612dc9565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190612b2c565b610d6e565b005b3480156104f657600080fd5b506104ff610e06565b60405161050c9190612dc9565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612999565b610e0c565b6040516105499190612dc9565b60405180910390f35b34801561055e57600080fd5b50610567610e55565b005b34801561057557600080fd5b50610590600480360381019061058b9190612999565b610fa1565b60405161059d9190612cf1565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612b2c565b610fc1565b005b3480156105db57600080fd5b506105e461109e565b6040516105f19190612dc9565b60405180910390f35b34801561060657600080fd5b5061060f6110a4565b60405161061c9190612cd6565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190612b2c565b6110cd565b005b34801561065a57600080fd5b50610663611165565b6040516106709190612d27565b60405180910390f35b34801561068557600080fd5b5061068e6111f7565b60405161069b9190612dc9565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190612b86565b611201565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190612a59565b6112a1565b005b34801561070257600080fd5b5061071d60048036038101906107189190612a99565b61138a565b60405161072a9190612cf1565b60405180910390f35b34801561073f57600080fd5b506107486113a1565b6040516107559190612dc9565b60405180910390f35b34801561076a57600080fd5b506107736113a7565b6040516107809190612dc9565b60405180910390f35b34801561079557600080fd5b5061079e6113ad565b6040516107ab9190612dc9565b60405180910390f35b3480156107c057600080fd5b506107c96113b3565b6040516107d69190612dc9565b60405180910390f35b3480156107eb57600080fd5b5061080660048036038101906108019190612b2c565b6113b9565b005b34801561081457600080fd5b5061081d611451565b60405161082a9190612cd6565b60405180910390f35b34801561083f57600080fd5b50610848611477565b6040516108559190612dc9565b60405180910390f35b34801561086a57600080fd5b5061088560048036038101906108809190612b86565b61147d565b005b34801561089357600080fd5b506108ae60048036038101906108a991906129c6565b61151d565b6040516108bb9190612dc9565b60405180910390f35b3480156108d057600080fd5b506108eb60048036038101906108e69190612999565b6115a4565b005b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097290612da9565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600380546109e590613018565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1190613018565b8015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050905090565b6000610a7533848461175f565b6001905092915050565b600f5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90612da9565b60405180910390fd5b81601281905550806013819055505050565b6000600754905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b6284848461184a565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cf05781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6f9190612efc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b60125481565b6000600560009054906101000a900460ff16905090565b60155481565b600a6020528060005260406000206000915054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601654905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390612da9565b60405180910390fd5b8060118190555050565b60135481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60066020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612da9565b60405180910390fd5b612710811115611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612d89565b60405180910390fd5b8060158190555050565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115290612da9565b60405180910390fd5b8060148190555050565b60606004805461117490613018565b80601f01602080910402602001604051908101604052809291908181526020018280546111a090613018565b80156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b5050505050905090565b6000601554905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128690612da9565b60405180910390fd5b81600e8190555080600f819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132690612da9565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061139733848461184a565b6001905092915050565b600d5481565b60145481565b600e5481565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90612da9565b60405180910390fd5b8060168190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612da9565b60405180910390fd5b81600c8190555080600d819055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990612da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169990612d69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161183d9190612dc9565b60405180910390a3505050565b600061185584610e0c565b90508181101561189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190612d49565b60405180910390fd5b600080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119415750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119975750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119ed5750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b50600080600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a5257611a4b611dc1565b9050611ab0565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611aaf57611aac611f93565b91505b5b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b515750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d6457600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bfa5750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0c57600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cf557600b60009054906101000a900460ff16158015611cb7575080155b15611cf4576000611cc730610e0c565b9050601154811115611cf2576000600588611ce29190612ea2565b905081811115611cf0578190505b505b505b5b80158015611d01575081155b15611d0b57600193505b5b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d6357600192505b5b611d7388888887878688612166565b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611db7578215611db657611db58861268f565b5b5b5050505050505050565b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611e3257600080fd5b505afa158015611e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6a9190612ad9565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161015611ef457839050611ef8565b8290505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401611f339190612cd6565b60206040518083038186803b158015611f4b57600080fd5b505afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f839190612b59565b9050818111965050505050505090565b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561200457600080fd5b505afa158015612018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203c9190612ad9565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1610156120c6578390506120ca565b8290505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016121059190612cd6565b60206040518083038186803b15801561211d57600080fd5b505afa158015612131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121559190612b59565b905080821015965050505050505090565b84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b19190612efc565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600084156122de576000841561221b57600e54600f546122149190612e1b565b905061222e565b600c54600d5461222b9190612e1b565b90505b6000612710828961223f9190612ea2565b6122499190612e71565b9050600081111561226e5780836122609190612e1b565b925061226d8a3083612823565b5b600086612297576127106012548a6122869190612ea2565b6122909190612e71565b90506122b5565b6127106013548a6122a89190612ea2565b6122b29190612e71565b90505b60008111156122da5780846122ca9190612e1b565b93506122d98b61dead83612823565b5b5050505b8280156123355750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561238b5750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d957600061271061239d6111f7565b886123a89190612ea2565b6123b29190612e71565b905060008111156123d75780826123c99190612e1b565b91506123d6893083612823565b5b505b8180156124305750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124865750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124d4576000612710612498610d64565b886124a39190612ea2565b6124ad9190612e71565b905060008111156124d25780826124c49190612e1b565b91506124d1893083612823565b5b505b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125785750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125ce5750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126245750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561266f5760006127106014548861263c9190612ea2565b6126469190612e71565b9050600081111561266d57808261265d9190612e1b565b915061266c8961dead83612823565b5b505b612685888883896126809190612efc565b612823565b5050505050505050565b6000813b905060008111156126a45750612820565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000141561281e576017805490506000148061276b57508173ffffffffffffffffffffffffffffffffffffffff166017600081548110612727576127266130d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561281d57601780549050601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506017829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286e9190612e1b565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161290e9190612dc9565b60405180910390a3505050565b60008135905061292a816131c0565b92915050565b60008135905061293f816131d7565b92915050565b600081519050612954816131ee565b92915050565b60008135905061296981613205565b92915050565b60008151905061297e81613205565b92915050565b6000815190506129938161321c565b92915050565b6000602082840312156129af576129ae613106565b5b60006129bd8482850161291b565b91505092915050565b600080604083850312156129dd576129dc613106565b5b60006129eb8582860161291b565b92505060206129fc8582860161291b565b9150509250929050565b600080600060608486031215612a1f57612a1e613106565b5b6000612a2d8682870161291b565b9350506020612a3e8682870161291b565b9250506040612a4f8682870161295a565b9150509250925092565b60008060408385031215612a7057612a6f613106565b5b6000612a7e8582860161291b565b9250506020612a8f85828601612930565b9150509250929050565b60008060408385031215612ab057612aaf613106565b5b6000612abe8582860161291b565b9250506020612acf8582860161295a565b9150509250929050565b600080600060608486031215612af257612af1613106565b5b6000612b0086828701612945565b9350506020612b1186828701612945565b9250506040612b2286828701612984565b9150509250925092565b600060208284031215612b4257612b41613106565b5b6000612b508482850161295a565b91505092915050565b600060208284031215612b6f57612b6e613106565b5b6000612b7d8482850161296f565b91505092915050565b60008060408385031215612b9d57612b9c613106565b5b6000612bab8582860161295a565b9250506020612bbc8582860161295a565b9150509250929050565b612bcf81612f30565b82525050565b612bde81612f42565b82525050565b612bed81612faf565b82525050565b6000612bfe82612dff565b612c088185612e0a565b9350612c18818560208601612fe5565b612c218161310b565b840191505092915050565b6000612c39601083612e0a565b9150612c448261311c565b602082019050919050565b6000612c5c600883612e0a565b9150612c6782613145565b602082019050919050565b6000612c7f600e83612e0a565b9150612c8a8261316e565b602082019050919050565b6000612ca2600683612e0a565b9150612cad82613197565b602082019050919050565b612cc181612f88565b82525050565b612cd081612fa2565b82525050565b6000602082019050612ceb6000830184612bc6565b92915050565b6000602082019050612d066000830184612bd5565b92915050565b6000602082019050612d216000830184612be4565b92915050565b60006020820190508181036000830152612d418184612bf3565b905092915050565b60006020820190508181036000830152612d6281612c2c565b9050919050565b60006020820190508181036000830152612d8281612c4f565b9050919050565b60006020820190508181036000830152612da281612c72565b9050919050565b60006020820190508181036000830152612dc281612c95565b9050919050565b6000602082019050612dde6000830184612cb8565b92915050565b6000602082019050612df96000830184612cc7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612e2682612f88565b9150612e3183612f88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e6657612e6561304a565b5b828201905092915050565b6000612e7c82612f88565b9150612e8783612f88565b925082612e9757612e96613079565b5b828204905092915050565b6000612ead82612f88565b9150612eb883612f88565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ef157612ef061304a565b5b828202905092915050565b6000612f0782612f88565b9150612f1283612f88565b925082821015612f2557612f2461304a565b5b828203905092915050565b6000612f3b82612f68565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612fba82612fc1565b9050919050565b6000612fcc82612fd3565b9050919050565b6000612fde82612f68565b9050919050565b60005b83811015613003578082015181840152602081019050612fe8565b83811115613012576000848401525b50505050565b6000600282049050600182168061303057607f821691505b60208210811415613044576130436130a8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f616464204c70203e203130302021000000000000000000000000000000000000600082015250565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6131c981612f30565b81146131d457600080fd5b50565b6131e081612f42565b81146131eb57600080fd5b50565b6131f781612f4e565b811461320257600080fd5b50565b61320e81612f88565b811461321957600080fd5b50565b61322581612f92565b811461323057600080fd5b5056fea26469706673582212203066358a14e3e9e72205c60d05f24e1e88bff736a0f649c8b1bc3c06adff914f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806379dc880c11610123578063a925a6bd116100ab578063be3601f81161006f578063be3601f814610808578063bfc3137e14610833578063d0f0c57c1461085e578063dd62ed3e14610887578063f2fde38b146108c457610230565b8063a925a6bd14610733578063acb2ad6f1461075e578063adc7955d14610789578063b9fbc49d146107b4578063bba30f8f146107df57610230565b806395d89b41116100f257806395d89b411461064e5780639aa60c7b14610679578063a0821ee5146106a4578063a8424861146106cd578063a9059cbb146106f657610230565b806379dc880c146105a657806386917524146105cf5780638da5cb5b146105fa5780638f02bb5b1461062557610230565b8063313ce567116101b15780636402511e116101755780636402511e146104c15780636b611368146104ea57806370a0823114610515578063715018a614610552578063768dc7101461056957610230565b8063313ce567146103d85780633b1cd187146104035780633c11100d1461042e5780634188bf5a1461046b5780635a25ac4f1461049657610230565b80630b504da3116101f85780630b504da3146102f157806318160ddd1461031a578063206c17bb1461034557806323b872dd14610370578063255412d9146103ad57610230565b806305833c2b1461023557806306fdde031461025e578063095ea7b3146102895780630a607930146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061025c60048036038101906102579190612a59565b6108ed565b005b34801561026a57600080fd5b506102736109d6565b6040516102809190612d27565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab9190612a99565b610a68565b6040516102bd9190612cf1565b60405180910390f35b3480156102d257600080fd5b506102db610a7f565b6040516102e89190612dc9565b60405180910390f35b3480156102fd57600080fd5b5061031860048036038101906103139190612b86565b610a85565b005b34801561032657600080fd5b5061032f610b25565b60405161033c9190612dc9565b60405180910390f35b34801561035157600080fd5b5061035a610b2f565b6040516103679190612d0c565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190612a06565b610b55565b6040516103a49190612cf1565b60405180910390f35b3480156103b957600080fd5b506103c2610cfb565b6040516103cf9190612dc9565b60405180910390f35b3480156103e457600080fd5b506103ed610d01565b6040516103fa9190612de4565b60405180910390f35b34801561040f57600080fd5b50610418610d18565b6040516104259190612dc9565b60405180910390f35b34801561043a57600080fd5b5061045560048036038101906104509190612999565b610d1e565b6040516104629190612cf1565b60405180910390f35b34801561047757600080fd5b50610480610d3e565b60405161048d9190612cd6565b60405180910390f35b3480156104a257600080fd5b506104ab610d64565b6040516104b89190612dc9565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190612b2c565b610d6e565b005b3480156104f657600080fd5b506104ff610e06565b60405161050c9190612dc9565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612999565b610e0c565b6040516105499190612dc9565b60405180910390f35b34801561055e57600080fd5b50610567610e55565b005b34801561057557600080fd5b50610590600480360381019061058b9190612999565b610fa1565b60405161059d9190612cf1565b60405180910390f35b3480156105b257600080fd5b506105cd60048036038101906105c89190612b2c565b610fc1565b005b3480156105db57600080fd5b506105e461109e565b6040516105f19190612dc9565b60405180910390f35b34801561060657600080fd5b5061060f6110a4565b60405161061c9190612cd6565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190612b2c565b6110cd565b005b34801561065a57600080fd5b50610663611165565b6040516106709190612d27565b60405180910390f35b34801561068557600080fd5b5061068e6111f7565b60405161069b9190612dc9565b60405180910390f35b3480156106b057600080fd5b506106cb60048036038101906106c69190612b86565b611201565b005b3480156106d957600080fd5b506106f460048036038101906106ef9190612a59565b6112a1565b005b34801561070257600080fd5b5061071d60048036038101906107189190612a99565b61138a565b60405161072a9190612cf1565b60405180910390f35b34801561073f57600080fd5b506107486113a1565b6040516107559190612dc9565b60405180910390f35b34801561076a57600080fd5b506107736113a7565b6040516107809190612dc9565b60405180910390f35b34801561079557600080fd5b5061079e6113ad565b6040516107ab9190612dc9565b60405180910390f35b3480156107c057600080fd5b506107c96113b3565b6040516107d69190612dc9565b60405180910390f35b3480156107eb57600080fd5b5061080660048036038101906108019190612b2c565b6113b9565b005b34801561081457600080fd5b5061081d611451565b60405161082a9190612cd6565b60405180910390f35b34801561083f57600080fd5b50610848611477565b6040516108559190612dc9565b60405180910390f35b34801561086a57600080fd5b5061088560048036038101906108809190612b86565b61147d565b005b34801561089357600080fd5b506108ae60048036038101906108a991906129c6565b61151d565b6040516108bb9190612dc9565b60405180910390f35b3480156108d057600080fd5b506108eb60048036038101906108e69190612999565b6115a4565b005b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097290612da9565b60405180910390fd5b80601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600380546109e590613018565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1190613018565b8015610a5e5780601f10610a3357610100808354040283529160200191610a5e565b820191906000526020600020905b815481529060010190602001808311610a4157829003601f168201915b5050505050905090565b6000610a7533848461175f565b6001905092915050565b600f5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90612da9565b60405180910390fd5b81601281905550806013819055505050565b6000600754905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b6284848461184a565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cf05781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6f9190612efc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b60125481565b6000600560009054906101000a900460ff16905090565b60155481565b600a6020528060005260406000206000915054906101000a900460ff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601654905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390612da9565b60405180910390fd5b8060118190555050565b60135481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90612da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60066020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612da9565b60405180910390fd5b612710811115611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90612d89565b60405180910390fd5b8060158190555050565b60115481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461115b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115290612da9565b60405180910390fd5b8060148190555050565b60606004805461117490613018565b80601f01602080910402602001604051908101604052809291908181526020018280546111a090613018565b80156111ed5780601f106111c2576101008083540402835291602001916111ed565b820191906000526020600020905b8154815290600101906020018083116111d057829003601f168201915b5050505050905090565b6000601554905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128690612da9565b60405180910390fd5b81600e8190555080600f819055505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132690612da9565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600061139733848461184a565b6001905092915050565b600d5481565b60145481565b600e5481565b600c5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143e90612da9565b60405180910390fd5b8060168190555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60165481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612da9565b60405180910390fd5b81600c8190555080600d819055505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990612da9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169990612d69565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161183d9190612dc9565b60405180910390a3505050565b600061185584610e0c565b90508181101561189a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189190612d49565b60405180910390fd5b600080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119415750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119975750600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119ed5750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b50600080600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a5257611a4b611dc1565b9050611ab0565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611aaf57611aac611f93565b91505b5b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b515750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d6457600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bfa5750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d0c57600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a905050600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611cf557600b60009054906101000a900460ff16158015611cb7575080155b15611cf4576000611cc730610e0c565b9050601154811115611cf2576000600588611ce29190612ea2565b905081811115611cf0578190505b505b505b5b80158015611d01575081155b15611d0b57600193505b5b600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611d6357600192505b5b611d7388888887878688612166565b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611db7578215611db657611db58861268f565b5b5b5050505050505050565b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b158015611e3257600080fd5b505afa158015611e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6a9190612ad9565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161015611ef457839050611ef8565b8290505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b8152600401611f339190612cd6565b60206040518083038186803b158015611f4b57600080fd5b505afa158015611f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f839190612b59565b9050818111965050505050505090565b600080601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561200457600080fd5b505afa158015612018573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203c9190612ad9565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1610156120c6578390506120ca565b8290505b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231876040518263ffffffff1660e01b81526004016121059190612cd6565b60206040518083038186803b15801561211d57600080fd5b505afa158015612131573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121559190612b59565b905080821015965050505050505090565b84600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b19190612efc565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600084156122de576000841561221b57600e54600f546122149190612e1b565b905061222e565b600c54600d5461222b9190612e1b565b90505b6000612710828961223f9190612ea2565b6122499190612e71565b9050600081111561226e5780836122609190612e1b565b925061226d8a3083612823565b5b600086612297576127106012548a6122869190612ea2565b6122909190612e71565b90506122b5565b6127106013548a6122a89190612ea2565b6122b29190612e71565b90505b60008111156122da5780846122ca9190612e1b565b93506122d98b61dead83612823565b5b5050505b8280156123355750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561238b5750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156123d957600061271061239d6111f7565b886123a89190612ea2565b6123b29190612e71565b905060008111156123d75780826123c99190612e1b565b91506123d6893083612823565b5b505b8180156124305750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124865750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124d4576000612710612498610d64565b886124a39190612ea2565b6124ad9190612e71565b905060008111156124d25780826124c49190612e1b565b91506124d1893083612823565b5b505b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125785750600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156125ce5750600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156126245750600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561266f5760006127106014548861263c9190612ea2565b6126469190612e71565b9050600081111561266d57808261265d9190612e1b565b915061266c8961dead83612823565b5b505b612685888883896126809190612efc565b612823565b5050505050505050565b6000813b905060008111156126a45750612820565b601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546000141561281e576017805490506000148061276b57508173ffffffffffffffffffffffffffffffffffffffff166017600081548110612727576127266130d7565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561281d57601780549050601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506017829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b505b50565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286e9190612e1b565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161290e9190612dc9565b60405180910390a3505050565b60008135905061292a816131c0565b92915050565b60008135905061293f816131d7565b92915050565b600081519050612954816131ee565b92915050565b60008135905061296981613205565b92915050565b60008151905061297e81613205565b92915050565b6000815190506129938161321c565b92915050565b6000602082840312156129af576129ae613106565b5b60006129bd8482850161291b565b91505092915050565b600080604083850312156129dd576129dc613106565b5b60006129eb8582860161291b565b92505060206129fc8582860161291b565b9150509250929050565b600080600060608486031215612a1f57612a1e613106565b5b6000612a2d8682870161291b565b9350506020612a3e8682870161291b565b9250506040612a4f8682870161295a565b9150509250925092565b60008060408385031215612a7057612a6f613106565b5b6000612a7e8582860161291b565b9250506020612a8f85828601612930565b9150509250929050565b60008060408385031215612ab057612aaf613106565b5b6000612abe8582860161291b565b9250506020612acf8582860161295a565b9150509250929050565b600080600060608486031215612af257612af1613106565b5b6000612b0086828701612945565b9350506020612b1186828701612945565b9250506040612b2286828701612984565b9150509250925092565b600060208284031215612b4257612b41613106565b5b6000612b508482850161295a565b91505092915050565b600060208284031215612b6f57612b6e613106565b5b6000612b7d8482850161296f565b91505092915050565b60008060408385031215612b9d57612b9c613106565b5b6000612bab8582860161295a565b9250506020612bbc8582860161295a565b9150509250929050565b612bcf81612f30565b82525050565b612bde81612f42565b82525050565b612bed81612faf565b82525050565b6000612bfe82612dff565b612c088185612e0a565b9350612c18818560208601612fe5565b612c218161310b565b840191505092915050565b6000612c39601083612e0a565b9150612c448261311c565b602082019050919050565b6000612c5c600883612e0a565b9150612c6782613145565b602082019050919050565b6000612c7f600e83612e0a565b9150612c8a8261316e565b602082019050919050565b6000612ca2600683612e0a565b9150612cad82613197565b602082019050919050565b612cc181612f88565b82525050565b612cd081612fa2565b82525050565b6000602082019050612ceb6000830184612bc6565b92915050565b6000602082019050612d066000830184612bd5565b92915050565b6000602082019050612d216000830184612be4565b92915050565b60006020820190508181036000830152612d418184612bf3565b905092915050565b60006020820190508181036000830152612d6281612c2c565b9050919050565b60006020820190508181036000830152612d8281612c4f565b9050919050565b60006020820190508181036000830152612da281612c72565b9050919050565b60006020820190508181036000830152612dc281612c95565b9050919050565b6000602082019050612dde6000830184612cb8565b92915050565b6000602082019050612df96000830184612cc7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000612e2682612f88565b9150612e3183612f88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e6657612e6561304a565b5b828201905092915050565b6000612e7c82612f88565b9150612e8783612f88565b925082612e9757612e96613079565b5b828204905092915050565b6000612ead82612f88565b9150612eb883612f88565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ef157612ef061304a565b5b828202905092915050565b6000612f0782612f88565b9150612f1283612f88565b925082821015612f2557612f2461304a565b5b828203905092915050565b6000612f3b82612f68565b9050919050565b60008115159050919050565b60006dffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b6000612fba82612fc1565b9050919050565b6000612fcc82612fd3565b9050919050565b6000612fde82612f68565b9050919050565b60005b83811015613003578082015181840152602081019050612fe8565b83811115613012576000848401525b50505050565b6000600282049050600182168061303057607f821691505b60208210811415613044576130436130a8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b7f616464204c70203e203130302021000000000000000000000000000000000000600082015250565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6131c981612f30565b81146131d457600080fd5b50565b6131e081612f42565b81146131eb57600080fd5b50565b6131f781612f4e565b811461320257600080fd5b50565b61320e81612f88565b811461321957600080fd5b50565b61322581612f92565b811461323057600080fd5b5056fea26469706673582212203066358a14e3e9e72205c60d05f24e1e88bff736a0f649c8b1bc3c06adff914f64736f6c63430008070033

Deployed Bytecode Sourcemap

15909:345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15785:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5524:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6355:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3806:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10835:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5728:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3489:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6554:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10758:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5626:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13898:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3553:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3854:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14432:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7221:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10795:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5831:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2752:148;;;;;;;;;;;;;:::i;:::-;;3398:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13977:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7185:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2566:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11066:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5418:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14330:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7490:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15062:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5958:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3722:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11024:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3768:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3686:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14148:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3526:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13935:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7331:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6163:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2908:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15785:119;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;15890:6:::1;15868:13;:19;15882:4;15868:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15785:119:::0;;:::o;5524:94::-;5572:13;5605:5;5598:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5524:94;:::o;6355:191::-;6457:4;6479:37;6488:10;6500:7;6509:6;6479:8;:37::i;:::-;6534:4;6527:11;;6355:191;;;;:::o;3806:39::-;;;;:::o;10835:181::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10961:10:::1;10947:11;:24;;;;10997:11;10982:12;:26;;;;10835:181:::0;;:::o;5728:95::-;5781:7;5808;;5801:14;;5728:95;:::o;3489:30::-;;;;;;;;;;;;;:::o;6554:404::-;6686:4;6703:36;6713:6;6721:9;6732:6;6703:9;:36::i;:::-;3675:1;3666:11;6754;:19;6766:6;6754:19;;;;;;;;;;;;;;;:31;6774:10;6754:31;;;;;;;;;;;;;;;;:38;6750:179;;6911:6;6860:11;:19;6872:6;6860:19;;;;;;;;;;;;;;;:31;6880:10;6860:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;6809:11;:19;6821:6;6809:19;;;;;;;;;;;;;;;:31;6829:10;6809:31;;;;;;;;;;;;;;;:108;;;;6750:179;6946:4;6939:11;;6554:404;;;;;:::o;10758:30::-;;;;:::o;5626:94::-;5678:5;5703:9;;;;;;;;;;;5696:16;;5626:94;:::o;13898:30::-;;;;:::o;3553:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;3854:24::-;;;;;;;;;;;;;:::o;14432:100::-;14479:7;14506:18;;14499:25;;14432:100;:::o;7221:102::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7307:8:::1;7292:12;:23;;;;7221:102:::0;:::o;10795:31::-;;;;:::o;5831:119::-;5897:7;5924:9;:18;5934:7;5924:18;;;;;;;;;;;;;;;;5917:25;;5831:119;;;:::o;2752:148::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2859:1:::1;2822:40;;2843:6;::::0;::::1;;;;;;;;2822:40;;;;;;;;;;;;2890:1;2873:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2752:148::o:0;3398:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;13977:163::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14071:5:::1;14059:8;:17;;14051:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14124:8;14106:15;:26;;;;13977:163:::0;:::o;7185:27::-;;;;:::o;2566:79::-;2604:7;2631:6;;;;;;;;;;;2624:13;;2566:79;:::o;11066:100::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11150:8:::1;11136:11;:22;;;;11066:100:::0;:::o;5418:98::-;5468:13;5501:7;5494:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5418:98;:::o;14330:94::-;14374:7;14401:15;;14394:22;;14330:94;:::o;7490:154::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7586:5:::1;7573:10;:18;;;;7623:13;7602:18;:34;;;;7490:154:::0;;:::o;15062:118::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;15166:6:::1;15144:13;:19;15158:4;15144:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15062:118:::0;;:::o;5958:197::-;6063:4;6085:40;6095:10;6107:9;6118:6;6085:9;:40::i;:::-;6143:4;6136:11;;5958:197;;;;:::o;3722:37::-;;;;:::o;11024:33::-;;;;:::o;3768:31::-;;;;:::o;3686:29::-;;;;:::o;14148:174::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;14306:8:::1;14285:18;:29;;;;14148:174:::0;:::o;3526:20::-;;;;;;;;;;;;;:::o;13935:33::-;;;;:::o;7331:151::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;7425:5:::1;7413:9;:17;;;;7461:13;7441:17;:33;;;;7331:151:::0;;:::o;6163:184::-;6280:7;6312:11;:18;6324:5;6312:18;;;;;;;;;;;;;;;:27;6331:7;6312:27;;;;;;;;;;;;;;;;6305:34;;6163:184;;;;:::o;2908:214::-;2703:10;2693:20;;:6;;;;;;;;;;:20;;;2685:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;3017:1:::1;2997:22;;:8;:22;;;;2989:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;3077:8;3048:38;;3069:6;::::0;::::1;;;;;;;;3048:38;;;;;;;;;;;;3106:8;3097:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2908:214:::0;:::o;6966:211::-;7115:6;7085:11;:18;7097:5;7085:18;;;;;;;;;;;;;;;:27;7104:7;7085:27;;;;;;;;;;;;;;;:36;;;;7153:7;7137:32;;7146:5;7137:32;;;7162:6;7137:32;;;;;;:::i;:::-;;;;;;;;6966:211;;;:::o;8015:1795::-;8129:15;8147;8157:4;8147:9;:15::i;:::-;8129:33;;8192:6;8181:7;:17;;8173:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8230:12;8253:11;8296:18;:24;8315:4;8296:24;;;;;;;;;;;;;;;;;;;;;;;;;8295:25;:65;;;;;8338:18;:22;8357:2;8338:22;;;;;;;;;;;;;;;;;;;;;;;;;8337:23;8295:65;:102;;;;;8378:13;:19;8392:4;8378:19;;;;;;;;;;;;;;;;;;;;;;;;;8377:20;8295:102;:137;;;;;8415:13;:17;8429:2;8415:17;;;;;;;;;;;;;;;;;;;;;;;;;8414:18;8295:137;8277:169;8458:13;8482:10;8509:13;:17;8523:2;8509:17;;;;;;;;;;;;;;;;;;;;;;;;;8505:164;;;8551:17;:15;:17::i;:::-;8543:25;;8505:164;;;8590:13;:19;8604:4;8590:19;;;;;;;;;;;;;;;;;;;;;;;;;8586:83;;;8637:20;:18;:20::i;:::-;8626:31;;8586:83;8505:164;8685:13;:19;8699:4;8685:19;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;8708:13;:17;8722:2;8708:17;;;;;;;;;;;;;;;;;;;;;;;;;8685:40;8681:916;;;8747:18;:24;8766:4;8747:24;;;;;;;;;;;;;;;;;;;;;;;;;8746:25;:52;;;;;8776:18;:22;8795:2;8776:22;;;;;;;;;;;;;;;;;;;;;;;;;8775:23;8746:52;8742:759;;;8823:13;:19;8837:4;8823:19;;;;;;;;;;;;;;;;;;;;;;;;8868:13;:17;8882:2;8868:17;;;;;;;;;;;;;;;;;;;;;;;;;8864:547;;;8915:6;;;;;;;;;;;8914:7;:17;;;;;8926:5;8925:6;8914:17;8910:482;;;8960:28;8991:24;9009:4;8991:9;:24::i;:::-;8960:55;;9069:12;;9046:20;:35;9042:327;;;9114:27;9153:1;9144:6;:10;;;;:::i;:::-;9114:40;;9211:20;9189:19;:42;9185:157;;;9290:20;9268:42;;9185:157;9083:286;9042:327;8933:459;8910:482;8864:547;9434:5;9433:6;:19;;;;;9444:8;9443:9;9433:19;9429:39;;;9464:4;9454:14;;9429:39;8742:759;9519:13;:17;9533:2;9519:17;;;;;;;;;;;;;;;;;;;;;;;;;9515:71;;;9566:4;9557:13;;9515:71;8681:916;9609:66;9624:4;9630:2;9634:6;9642:7;9651:6;9659:5;9666:8;9609:14;:66::i;:::-;9708:4;9692:21;;:4;:21;;;9688:115;;9734:6;9730:62;;;9761:15;9771:4;9761:9;:15::i;:::-;9730:62;9688:115;8118:1692;;;;;8015:1795;;;:::o;9818:457::-;9868:10;9891:18;9922:9;;;;;;;;;;;9891:41;;9944:10;9956;9972:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9943:51;;;;;;;;;10007:18;10028:5;;;;;;;;;;;10007:26;;10044:9;10089:4;10068:26;;:10;:26;;;10064:104;;;10115:2;10111:6;;10064:104;;;10154:2;10150:6;;10064:104;10180:11;10201:10;10194:28;;;10231:8;10194:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10180:61;;10266:1;10260:3;:7;10252:15;;9880:395;;;;;;9818:457;:::o;10283:467::-;10336:13;10362:18;10393:9;;;;;;;;;;;10362:41;;10415:10;10427;10443:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10414:51;;;;;;;;;10478:18;10499:5;;;;;;;;;;;10478:26;;10515:9;10560:4;10539:26;;:10;:26;;;10535:104;;;10586:2;10582:6;;10535:104;;;10625:2;10621:6;;10535:104;10651:11;10672:10;10665:28;;;10702:8;10665:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10651:61;;10739:3;10734:1;:8;;10723:19;;10351:399;;;;;;10283:467;:::o;11174:2716::-;11433:7;11413:9;:17;11423:6;11413:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;11393:9;:17;11403:6;11393:17;;;;;;;;;;;;;;;:47;;;;11451:17;11485:7;11481:896;;;11509:15;11543:6;11539:168;;;11601:10;;11580:18;;:31;;;;:::i;:::-;11570:41;;11539:168;;;11682:9;;11662:17;;:29;;;;:::i;:::-;11652:39;;11539:168;11723:18;11766:5;11755:7;11745;:17;;;;:::i;:::-;11744:27;;;;:::i;:::-;11723:48;;11803:1;11790:10;:14;11786:145;;;11838:10;11825:23;;;;;:::i;:::-;;;11867:48;11881:6;11897:4;11904:10;11867:13;:48::i;:::-;11786:145;11947:18;11985:6;11980:225;;12074:5;12059:11;;12049:7;:21;;;;:::i;:::-;12048:31;;;;:::i;:::-;12035:44;;11980:225;;;12184:5;12168:12;;12158:7;:22;;;;:::i;:::-;12157:32;;;;:::i;:::-;12144:45;;11980:225;12236:1;12223:10;:14;12219:147;;;12271:10;12258:23;;;;;:::i;:::-;;;12300:50;12314:6;12330;12339:10;12300:13;:50::i;:::-;12219:147;11494:883;;;11481:896;12407:5;:49;;;;;12430:18;:26;12449:6;12430:26;;;;;;;;;;;;;;;;;;;;;;;;;12429:27;12407:49;:96;;;;;12474:18;:29;12493:9;12474:29;;;;;;;;;;;;;;;;;;;;;;;;;12473:30;12407:96;12389:448;;;12530:29;12626:5;12609:13;:11;:13::i;:::-;12599:7;:23;;;;:::i;:::-;12598:33;;;;:::i;:::-;12574:57;;12676:1;12652:21;:25;12648:178;;;12711:21;12698:34;;;;;:::i;:::-;;;12751:59;12765:6;12781:4;12788:21;12751:13;:59::i;:::-;12648:178;12515:322;12389:448;12867:8;:52;;;;;12893:18;:26;12912:6;12893:26;;;;;;;;;;;;;;;;;;;;;;;;;12892:27;12867:52;:99;;;;;12937:18;:29;12956:9;12937:29;;;;;;;;;;;;;;;;;;;;;;;;;12936:30;12867:99;12849:469;;;12993:32;13098:5;13078:16;:14;:16::i;:::-;13068:7;:26;;;;:::i;:::-;13067:36;;;;:::i;:::-;13040:63;;13151:1;13124:24;:28;13120:187;;;13186:24;13173:37;;;;;:::i;:::-;;;13229:62;13243:6;13259:4;13266:24;13229:13;:62::i;:::-;13120:187;12978:340;12849:469;13349:13;:21;13363:6;13349:21;;;;;;;;;;;;;;;;;;;;;;;;;13348:22;:64;;;;;13388:13;:24;13402:9;13388:24;;;;;;;;;;;;;;;;;;;;;;;;;13387:25;13348:64;:108;;;;;13430:18;:26;13449:6;13430:26;;;;;;;;;;;;;;;;;;;;;;;;;13429:27;13348:108;:155;;;;;13474:18;:29;13493:9;13474:29;;;;;;;;;;;;;;;;;;;;;;;;;13473:30;13348:155;13330:487;;;13530:25;13616:5;13601:11;;13591:7;:21;;;;:::i;:::-;13590:31;;;;:::i;:::-;13570:51;;13662:1;13642:17;:21;13638:168;;;13697:17;13684:30;;;;;:::i;:::-;;;13733:57;13747:6;13763;13772:17;13733:13;:57::i;:::-;13638:168;13515:302;13330:487;13829:53;13843:6;13851:9;13872;13862:7;:19;;;;:::i;:::-;13829:13;:53::i;:::-;11382:2508;11174:2716;;;;;;;:::o;15367:410::-;15418:12;15485:3;15473:16;15465:24;;15521:1;15514:4;:8;15510:47;;;15539:7;;;15510:47;15576:11;:16;15588:3;15576:16;;;;;;;;;;;;;;;;15571:1;:21;15567:203;;;15618:7;:14;;;;15613:1;:19;:40;;;;15650:3;15636:17;;:7;15644:1;15636:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:17;;;;15613:40;15609:150;;;15693:7;:14;;;;15674:11;:16;15686:3;15674:16;;;;;;;;;;;;;;;:33;;;;15726:7;15739:3;15726:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15609:150;15567:203;15407:370;15367:410;;:::o;14540:213::-;14693:7;14677:9;:13;14687:2;14677:13;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;14661:9;:13;14671:2;14661:13;;;;;;;;;;;;;;;:39;;;;14733:2;14716:29;;14725:6;14716:29;;;14737:7;14716:29;;;;;;:::i;:::-;;;;;;;;14540:213;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;152:133;;;;:::o;291:143::-;348:5;379:6;373:13;364:22;;395:33;422:5;395:33;:::i;:::-;291:143;;;;:::o;440:139::-;486:5;524:6;511:20;502:29;;540:33;567:5;540:33;:::i;:::-;440:139;;;;:::o;585:143::-;642:5;673:6;667:13;658:22;;689:33;716:5;689:33;:::i;:::-;585:143;;;;:::o;734:141::-;790:5;821:6;815:13;806:22;;837:32;863:5;837:32;:::i;:::-;734:141;;;;:::o;881:329::-;940:6;989:2;977:9;968:7;964:23;960:32;957:119;;;995:79;;:::i;:::-;957:119;1115:1;1140:53;1185:7;1176:6;1165:9;1161:22;1140:53;:::i;:::-;1130:63;;1086:117;881:329;;;;:::o;1216:474::-;1284:6;1292;1341:2;1329:9;1320:7;1316:23;1312:32;1309:119;;;1347:79;;:::i;:::-;1309:119;1467:1;1492:53;1537:7;1528:6;1517:9;1513:22;1492:53;:::i;:::-;1482:63;;1438:117;1594:2;1620:53;1665:7;1656:6;1645:9;1641:22;1620:53;:::i;:::-;1610:63;;1565:118;1216:474;;;;;:::o;1696:619::-;1773:6;1781;1789;1838:2;1826:9;1817:7;1813:23;1809:32;1806:119;;;1844:79;;:::i;:::-;1806:119;1964:1;1989:53;2034:7;2025:6;2014:9;2010:22;1989:53;:::i;:::-;1979:63;;1935:117;2091:2;2117:53;2162:7;2153:6;2142:9;2138:22;2117:53;:::i;:::-;2107:63;;2062:118;2219:2;2245:53;2290:7;2281:6;2270:9;2266:22;2245:53;:::i;:::-;2235:63;;2190:118;1696:619;;;;;:::o;2321:468::-;2386:6;2394;2443:2;2431:9;2422:7;2418:23;2414:32;2411:119;;;2449:79;;:::i;:::-;2411:119;2569:1;2594:53;2639:7;2630:6;2619:9;2615:22;2594:53;:::i;:::-;2584:63;;2540:117;2696:2;2722:50;2764:7;2755:6;2744:9;2740:22;2722:50;:::i;:::-;2712:60;;2667:115;2321:468;;;;;:::o;2795:474::-;2863:6;2871;2920:2;2908:9;2899:7;2895:23;2891:32;2888:119;;;2926:79;;:::i;:::-;2888:119;3046:1;3071:53;3116:7;3107:6;3096:9;3092:22;3071:53;:::i;:::-;3061:63;;3017:117;3173:2;3199:53;3244:7;3235:6;3224:9;3220:22;3199:53;:::i;:::-;3189:63;;3144:118;2795:474;;;;;:::o;3275:661::-;3362:6;3370;3378;3427:2;3415:9;3406:7;3402:23;3398:32;3395:119;;;3433:79;;:::i;:::-;3395:119;3553:1;3578:64;3634:7;3625:6;3614:9;3610:22;3578:64;:::i;:::-;3568:74;;3524:128;3691:2;3717:64;3773:7;3764:6;3753:9;3749:22;3717:64;:::i;:::-;3707:74;;3662:129;3830:2;3856:63;3911:7;3902:6;3891:9;3887:22;3856:63;:::i;:::-;3846:73;;3801:128;3275:661;;;;;:::o;3942:329::-;4001:6;4050:2;4038:9;4029:7;4025:23;4021:32;4018:119;;;4056:79;;:::i;:::-;4018:119;4176:1;4201:53;4246:7;4237:6;4226:9;4222:22;4201:53;:::i;:::-;4191:63;;4147:117;3942:329;;;;:::o;4277:351::-;4347:6;4396:2;4384:9;4375:7;4371:23;4367:32;4364:119;;;4402:79;;:::i;:::-;4364:119;4522:1;4547:64;4603:7;4594:6;4583:9;4579:22;4547:64;:::i;:::-;4537:74;;4493:128;4277:351;;;;:::o;4634:474::-;4702:6;4710;4759:2;4747:9;4738:7;4734:23;4730:32;4727:119;;;4765:79;;:::i;:::-;4727:119;4885:1;4910:53;4955:7;4946:6;4935:9;4931:22;4910:53;:::i;:::-;4900:63;;4856:117;5012:2;5038:53;5083:7;5074:6;5063:9;5059:22;5038:53;:::i;:::-;5028:63;;4983:118;4634:474;;;;;:::o;5114:118::-;5201:24;5219:5;5201:24;:::i;:::-;5196:3;5189:37;5114:118;;:::o;5238:109::-;5319:21;5334:5;5319:21;:::i;:::-;5314:3;5307:34;5238:109;;:::o;5353:169::-;5459:56;5509:5;5459:56;:::i;:::-;5454:3;5447:69;5353:169;;:::o;5528:364::-;5616:3;5644:39;5677:5;5644:39;:::i;:::-;5699:71;5763:6;5758:3;5699:71;:::i;:::-;5692:78;;5779:52;5824:6;5819:3;5812:4;5805:5;5801:16;5779:52;:::i;:::-;5856:29;5878:6;5856:29;:::i;:::-;5851:3;5847:39;5840:46;;5620:272;5528:364;;;;:::o;5898:366::-;6040:3;6061:67;6125:2;6120:3;6061:67;:::i;:::-;6054:74;;6137:93;6226:3;6137:93;:::i;:::-;6255:2;6250:3;6246:12;6239:19;;5898:366;;;:::o;6270:365::-;6412:3;6433:66;6497:1;6492:3;6433:66;:::i;:::-;6426:73;;6508:93;6597:3;6508:93;:::i;:::-;6626:2;6621:3;6617:12;6610:19;;6270:365;;;:::o;6641:366::-;6783:3;6804:67;6868:2;6863:3;6804:67;:::i;:::-;6797:74;;6880:93;6969:3;6880:93;:::i;:::-;6998:2;6993:3;6989:12;6982:19;;6641:366;;;:::o;7013:365::-;7155:3;7176:66;7240:1;7235:3;7176:66;:::i;:::-;7169:73;;7251:93;7340:3;7251:93;:::i;:::-;7369:2;7364:3;7360:12;7353:19;;7013:365;;;:::o;7384:118::-;7471:24;7489:5;7471:24;:::i;:::-;7466:3;7459:37;7384:118;;:::o;7508:112::-;7591:22;7607:5;7591:22;:::i;:::-;7586:3;7579:35;7508:112;;:::o;7626:222::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7770:71;7838:1;7827:9;7823:17;7814:6;7770:71;:::i;:::-;7626:222;;;;:::o;7854:210::-;7941:4;7979:2;7968:9;7964:18;7956:26;;7992:65;8054:1;8043:9;8039:17;8030:6;7992:65;:::i;:::-;7854:210;;;;:::o;8070:260::-;8182:4;8220:2;8209:9;8205:18;8197:26;;8233:90;8320:1;8309:9;8305:17;8296:6;8233:90;:::i;:::-;8070:260;;;;:::o;8336:313::-;8449:4;8487:2;8476:9;8472:18;8464:26;;8536:9;8530:4;8526:20;8522:1;8511:9;8507:17;8500:47;8564:78;8637:4;8628:6;8564:78;:::i;:::-;8556:86;;8336:313;;;;:::o;8655:419::-;8821:4;8859:2;8848:9;8844:18;8836:26;;8908:9;8902:4;8898:20;8894:1;8883:9;8879:17;8872:47;8936:131;9062:4;8936:131;:::i;:::-;8928:139;;8655:419;;;:::o;9080:::-;9246:4;9284:2;9273:9;9269:18;9261:26;;9333:9;9327:4;9323:20;9319:1;9308:9;9304:17;9297:47;9361:131;9487:4;9361:131;:::i;:::-;9353:139;;9080:419;;;:::o;9505:::-;9671:4;9709:2;9698:9;9694:18;9686:26;;9758:9;9752:4;9748:20;9744:1;9733:9;9729:17;9722:47;9786:131;9912:4;9786:131;:::i;:::-;9778:139;;9505:419;;;:::o;9930:::-;10096:4;10134:2;10123:9;10119:18;10111:26;;10183:9;10177:4;10173:20;10169:1;10158:9;10154:17;10147:47;10211:131;10337:4;10211:131;:::i;:::-;10203:139;;9930:419;;;:::o;10355:222::-;10448:4;10486:2;10475:9;10471:18;10463:26;;10499:71;10567:1;10556:9;10552:17;10543:6;10499:71;:::i;:::-;10355:222;;;;:::o;10583:214::-;10672:4;10710:2;10699:9;10695:18;10687:26;;10723:67;10787:1;10776:9;10772:17;10763:6;10723:67;:::i;:::-;10583:214;;;;:::o;10884:99::-;10936:6;10970:5;10964:12;10954:22;;10884:99;;;:::o;10989:169::-;11073:11;11107:6;11102:3;11095:19;11147:4;11142:3;11138:14;11123:29;;10989:169;;;;:::o;11164:305::-;11204:3;11223:20;11241:1;11223:20;:::i;:::-;11218:25;;11257:20;11275:1;11257:20;:::i;:::-;11252:25;;11411:1;11343:66;11339:74;11336:1;11333:81;11330:107;;;11417:18;;:::i;:::-;11330:107;11461:1;11458;11454:9;11447:16;;11164:305;;;;:::o;11475:185::-;11515:1;11532:20;11550:1;11532:20;:::i;:::-;11527:25;;11566:20;11584:1;11566:20;:::i;:::-;11561:25;;11605:1;11595:35;;11610:18;;:::i;:::-;11595:35;11652:1;11649;11645:9;11640:14;;11475:185;;;;:::o;11666:348::-;11706:7;11729:20;11747:1;11729:20;:::i;:::-;11724:25;;11763:20;11781:1;11763:20;:::i;:::-;11758:25;;11951:1;11883:66;11879:74;11876:1;11873:81;11868:1;11861:9;11854:17;11850:105;11847:131;;;11958:18;;:::i;:::-;11847:131;12006:1;12003;11999:9;11988:20;;11666:348;;;;:::o;12020:191::-;12060:4;12080:20;12098:1;12080:20;:::i;:::-;12075:25;;12114:20;12132:1;12114:20;:::i;:::-;12109:25;;12153:1;12150;12147:8;12144:34;;;12158:18;;:::i;:::-;12144:34;12203:1;12200;12196:9;12188:17;;12020:191;;;;:::o;12217:96::-;12254:7;12283:24;12301:5;12283:24;:::i;:::-;12272:35;;12217:96;;;:::o;12319:90::-;12353:7;12396:5;12389:13;12382:21;12371:32;;12319:90;;;:::o;12415:114::-;12452:7;12492:30;12485:5;12481:42;12470:53;;12415:114;;;:::o;12535:126::-;12572:7;12612:42;12605:5;12601:54;12590:65;;12535:126;;;:::o;12667:77::-;12704:7;12733:5;12722:16;;12667:77;;;:::o;12750:93::-;12786:7;12826:10;12819:5;12815:22;12804:33;;12750:93;;;:::o;12849:86::-;12884:7;12924:4;12917:5;12913:16;12902:27;;12849:86;;;:::o;12941:145::-;13010:9;13043:37;13074:5;13043:37;:::i;:::-;13030:50;;12941:145;;;:::o;13092:126::-;13142:9;13175:37;13206:5;13175:37;:::i;:::-;13162:50;;13092:126;;;:::o;13224:113::-;13274:9;13307:24;13325:5;13307:24;:::i;:::-;13294:37;;13224:113;;;:::o;13343:307::-;13411:1;13421:113;13435:6;13432:1;13429:13;13421:113;;;13520:1;13515:3;13511:11;13505:18;13501:1;13496:3;13492:11;13485:39;13457:2;13454:1;13450:10;13445:15;;13421:113;;;13552:6;13549:1;13546:13;13543:101;;;13632:1;13623:6;13618:3;13614:16;13607:27;13543:101;13392:258;13343:307;;;:::o;13656:320::-;13700:6;13737:1;13731:4;13727:12;13717:22;;13784:1;13778:4;13774:12;13805:18;13795:81;;13861:4;13853:6;13849:17;13839:27;;13795:81;13923:2;13915:6;13912:14;13892:18;13889:38;13886:84;;;13942:18;;:::i;:::-;13886:84;13707:269;13656:320;;;:::o;13982:180::-;14030:77;14027:1;14020:88;14127:4;14124:1;14117:15;14151:4;14148:1;14141:15;14168:180;14216:77;14213:1;14206:88;14313:4;14310:1;14303:15;14337:4;14334:1;14327:15;14354:180;14402:77;14399:1;14392:88;14499:4;14496:1;14489:15;14523:4;14520:1;14513:15;14540:180;14588:77;14585:1;14578:88;14685:4;14682:1;14675:15;14709:4;14706:1;14699:15;14849:117;14958:1;14955;14948:12;14972:102;15013:6;15064:2;15060:7;15055:2;15048:5;15044:14;15040:28;15030:38;;14972:102;;;:::o;15080:166::-;15220:18;15216:1;15208:6;15204:14;15197:42;15080:166;:::o;15252:158::-;15392:10;15388:1;15380:6;15376:14;15369:34;15252:158;:::o;15416:164::-;15556:16;15552:1;15544:6;15540:14;15533:40;15416:164;:::o;15586:156::-;15726:8;15722:1;15714:6;15710:14;15703:32;15586:156;:::o;15748:122::-;15821:24;15839:5;15821:24;:::i;:::-;15814:5;15811:35;15801:63;;15860:1;15857;15850:12;15801:63;15748:122;:::o;15876:116::-;15946:21;15961:5;15946:21;:::i;:::-;15939:5;15936:32;15926:60;;15982:1;15979;15972:12;15926:60;15876:116;:::o;15998:122::-;16071:24;16089:5;16071:24;:::i;:::-;16064:5;16061:35;16051:63;;16110:1;16107;16100:12;16051:63;15998:122;:::o;16126:::-;16199:24;16217:5;16199:24;:::i;:::-;16192:5;16189:35;16179:63;;16238:1;16235;16228:12;16179:63;16126:122;:::o;16254:120::-;16326:23;16343:5;16326:23;:::i;:::-;16319:5;16316:34;16306:62;;16364:1;16361;16354:12;16306:62;16254:120;:::o

Swarm Source

ipfs://3066358a14e3e9e72205c60d05f24e1e88bff736a0f649c8b1bc3c06adff914f

Block Transaction Gas Used Reward
view all blocks produced
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
View All Validatorset

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.