ETH Price: $3,118.93 (-5.47%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve167497272023-03-03 18:21:35701 days ago1677867695IN
0xAB3f1e53...BaE639B50
0 ETH0.0015956733.80877267
Set Structure167497272023-03-03 18:21:35701 days ago1677867695IN
0xAB3f1e53...BaE639B50
0 ETH0.01015812230.80877267
Approve167497202023-03-03 18:20:11701 days ago1677867611IN
0xAB3f1e53...BaE639B50
0 ETH0.0014461830.64143799
Set Structure167497182023-03-03 18:19:47701 days ago1677867587IN
0xAB3f1e53...BaE639B50
0 ETH0.0012570429.92187901
Approve167497152023-03-03 18:19:11701 days ago1677867551IN
0xAB3f1e53...BaE639B50
0 ETH0.0016092934.09739427
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Approve167497132023-03-03 18:18:47701 days ago1677867527IN
0xAB3f1e53...BaE639B50
0 ETH0.0016352734.64778316
Start Trading167497122023-03-03 18:18:35701 days ago1677867515IN
0xAB3f1e53...BaE639B50
0 ETH0.0009035631.61213089
Approve167497042023-03-03 18:16:59701 days ago1677867419IN
0xAB3f1e53...BaE639B50
0 ETH0.0015252532.31686064

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
167497282023-03-03 18:21:47701 days ago1677867707
0xAB3f1e53...BaE639B50
0.00756379 ETH
167497282023-03-03 18:21:47701 days ago1677867707
0xAB3f1e53...BaE639B50
0.00752616 ETH
167497282023-03-03 18:21:47701 days ago1677867707
0xAB3f1e53...BaE639B50
0.01508995 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SHIBLOCKER

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-03
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

abstract contract Ownable {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER");
        _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

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

contract SHIBLOCKER is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Shibarium Locker";
    string private constant _symbol = "SHIBLOCKER";
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000 * (10**_decimals);
    uint256 private _maxTxAmountPercent = 200; // 10000;
    uint256 private _maxTransferPercent = 200;
    uint256 private _maxWalletPercent = 200;
    mapping(address => uint256) _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 200;
    uint256 private developmentFee = 200;
    uint256 private burnFee = 0;
    uint256 private totalFee = 1500;
    uint256 private sellFee = 3500;
    uint256 private transferFee = 3000;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 private swapThreshold = (_totalSupply * 500) / 100000;
    uint256 private _minTokenAmount = (_totalSupply * 10) / 100000;
    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver =
        0xD9Ce4d225a1CDD9F1b294d16C8Cd15bCab80D98C;
    address internal constant marketing_receiver =
        0xD9Ce4d225a1CDD9F1b294d16C8Cd15bCab80D98C;
    address internal constant liquidity_receiver =
        0xD9Ce4d225a1CDD9F1b294d16C8Cd15bCab80D98C;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(
            address(this),
            _router.WETH()
        );
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function startTrading() external onlyOwner {
        tradingAllowed = true;
    }

    function getOwner() external view override returns (address) {
        return owner;
    }

    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 isCont(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    function setisBot(address _address, bool _enabled) external onlyOwner {
        isBot[_address] = _enabled;
    }

    function setisExempt(address _address, bool _enabled) external onlyOwner {
        isFeeExempt[_address] = _enabled;
    }

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));
    }

    function _maxWalletToken() public view returns (uint256) {
        return (totalSupply() * _maxWalletPercent) / denominator;
    }

    function _maxTxAmount() public view returns (uint256) {
        return (totalSupply() * _maxTxAmountPercent) / denominator;
    }

    function _maxTransferAmount() public view returns (uint256) {
        return (totalSupply() * _maxTransferPercent) / denominator;
    }

    function preTxCheck(
        address sender,
        address recipient,
        uint256 amount
    ) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(
            amount > uint256(0),
            "Transfer amount must be greater than zero"
        );
        require(
            amount <= balanceOf(sender),
            "You are trying to transfer more than your balance"
        );
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount);
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount);
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient)
            ? takeFee(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setStructure(
        uint256 _liquidity,
        uint256 _marketing,
        uint256 _burn,
        uint256 _development,
        uint256 _total,
        uint256 _sell,
        uint256 _trans
    ) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        burnFee = _burn;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
    }

    function setParameters(
        uint256 _buy,
        uint256 _trans,
        uint256 _wallet
    ) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000;
        uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(
            newTx >= limit && newTransfer >= limit && newWallet >= limit,
            "Max TXs and Max Wallet cannot be less than .5%"
        );
    }

    function checkTradingAllowed(address sender, address recipient)
        internal
        view
    {
        if (!isFeeExempt[sender] && !isFeeExempt[recipient]) {
            require(tradingAllowed, "tradingAllowed");
        }
    }

    function checkMaxWallet(
        address sender,
        address recipient,
        uint256 amount
    ) internal view {
        if (
            !isFeeExempt[sender] &&
            !isFeeExempt[recipient] &&
            recipient != address(pair) &&
            recipient != address(DEAD)
        ) {
            require(
                (_balances[recipient].add(amount)) <= _maxWalletToken(),
                "Exceeds maximum wallet amount."
            );
        }
    }

    function swapbackCounters(address sender, address recipient) internal {
        if (recipient == pair && !isFeeExempt[sender]) {
            swapTimes += uint256(1);
        }
    }

    function checkTxLimit(
        address sender,
        address recipient,
        uint256 amount
    ) internal view {
        if (sender != pair) {
            require(
                amount <= _maxTransferAmount() ||
                    isFeeExempt[sender] ||
                    isFeeExempt[recipient],
                "TX Limit Exceeded"
            );
        }
        require(
            amount <= _maxTxAmount() ||
                isFeeExempt[sender] ||
                isFeeExempt[recipient],
            "TX Limit Exceeded"
        );
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (
            liquidityFee.add(1).add(marketingFee).add(developmentFee)
        ).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(
            _denominator
        );
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance = deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if (ETHToAddLiquidityWith > uint256(0)) {
            addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith);
        }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if (marketingAmt > 0) {
            payable(marketing_receiver).transfer(marketingAmt);
        }
        uint256 remainingBalance = address(this).balance;
        if (remainingBalance > uint256(0)) {
            payable(development_receiver).transfer(remainingBalance);
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp
        );
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function shouldSwapBack(
        address sender,
        address recipient,
        uint256 amount
    ) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return
            !swapping &&
            swapEnabled &&
            tradingAllowed &&
            aboveMin &&
            !isFeeExempt[sender] &&
            recipient == pair &&
            swapTimes >= uint256(1) &&
            aboveThreshold;
    }

    function swapBack(
        address sender,
        address recipient,
        uint256 amount
    ) internal {
        if (shouldSwapBack(sender, recipient, amount)) {
            swapAndLiquify(swapThreshold);
            swapTimes = uint256(0);
        }
    }

    function shouldTakeFee(address sender, address recipient)
        internal
        view
        returns (bool)
    {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function getTotalFee(address sender, address recipient)
        internal
        view
        returns (uint256)
    {
        if (isBot[sender] || isBot[recipient]) {
            return denominator.sub(uint256(100));
        }
        if (recipient == pair) {
            return sellFee;
        }
        if (sender == pair) {
            return totalFee;
        }
        return transferFee;
    }

    function takeFee(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        if (getTotalFee(sender, recipient) > 0) {
            uint256 feeAmount = amount.div(denominator).mul(
                getTotalFee(sender, recipient)
            );
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
            if (burnFee > uint256(0)) {
                _transfer(
                    address(this),
                    address(DEAD),
                    amount.div(denominator).mul(burnFee)
                );
            }
            return amount.sub(feeAmount);
        }
        return amount;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            msg.sender,
            _allowances[sender][msg.sender].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}

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":false,"internalType":"address","name":"owner","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":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a6200001491906200070f565b620f424062000024919062000760565b60015560c860025560c860035560c86004556000600a60146101000a81548160ff0219169083151502179055506000600b5560c8600c5560c8600d556000600e556105dc600f55610dac601055610bb86011556127106012556001601360006101000a81548160ff021916908315150217905550620186a06101f4600154620000ae919062000760565b620000ba9190620007f0565b601655620186a0600a600154620000d2919062000760565b620000de9190620007f0565b601755348015620000ee57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000198573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001be919062000892565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000226573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024c919062000892565b6040518363ffffffff1660e01b81526004016200026b929190620008d5565b6020604051808303816000875af11580156200028b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b1919062000892565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000565919062000913565b60405180910390a3505062000930565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060357808604811115620005db57620005da62000575565b5b6001851615620005eb5780820291505b8081029050620005fb85620005a4565b9450620005bb565b94509492505050565b6000826200061e5760019050620006f1565b816200062e5760009050620006f1565b8160018114620006475760028114620006525762000688565b6001915050620006f1565b60ff84111562000667576200066662000575565b5b8360020a91508482111562000681576200068062000575565b5b50620006f1565b5060208310610133831016604e8410600b8410161715620006c25782820a905083811115620006bc57620006bb62000575565b5b620006f1565b620006d18484846001620005b1565b92509050818404811115620006eb57620006ea62000575565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200071c82620006f8565b9150620007298362000702565b9250620007587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200060c565b905092915050565b60006200076d82620006f8565b91506200077a83620006f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007b657620007b562000575565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007fd82620006f8565b91506200080a83620006f8565b9250826200081d576200081c620007c1565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200085a826200082d565b9050919050565b6200086c816200084d565b81146200087857600080fd5b50565b6000815190506200088c8162000861565b92915050565b600060208284031215620008ab57620008aa62000828565b5b6000620008bb848285016200087b565b91505092915050565b620008cf816200084d565b82525050565b6000604082019050620008ec6000830185620008c4565b620008fb6020830184620008c4565b9392505050565b6200090d81620006f8565b82525050565b60006020820190506200092a600083018462000902565b92915050565b61337380620009406000396000f3fe6080604052600436106101395760003560e01c806348ff2b8b116100ab5780638c41180e1161006f5780638c41180e1461043557806395d89b411461045e578063a8aa1b3114610489578063a9059cbb146104b4578063dd62ed3e146104f1578063f2fde38b1461052e57610140565b806348ff2b8b1461034e57806370a082311461037757806378109e54146103b45780637d1db4a5146103df578063893d20e81461040a57610140565b806323b872dd116100fd57806323b872dd1461022c578063293230b8146102695780632f54bf6e14610280578063313ce567146102bd57806334c5d2ce146102e85780633f4218e01461031157610140565b8063044019301461014557806306fdde031461016e578063095ea7b31461019957806318160ddd146101d65780631f976b7e1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612443565b610557565b005b34801561017a57600080fd5b506101836105d9565b6040516101909190612575565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb91906125f5565b610616565b6040516101cd9190612650565b60405180910390f35b3480156101e257600080fd5b506101eb61062d565b6040516101f8919061267a565b60405180910390f35b34801561020d57600080fd5b5061021661066e565b604051610223919061267a565b60405180910390f35b34801561023857600080fd5b50610253600480360381019061024e9190612695565b610697565b6040516102609190612650565b60405180910390f35b34801561027557600080fd5b5061027e610762565b005b34801561028c57600080fd5b506102a760048036038101906102a291906126e8565b6107c7565b6040516102b49190612650565b60405180910390f35b3480156102c957600080fd5b506102d2610820565b6040516102df9190612731565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061274c565b610829565b005b34801561031d57600080fd5b50610338600480360381019061033391906126e8565b610989565b6040516103459190612650565b60405180910390f35b34801561035a57600080fd5b50610375600480360381019061037091906127cb565b6109a9565b005b34801561038357600080fd5b5061039e600480360381019061039991906126e8565b610a4c565b6040516103ab919061267a565b60405180910390f35b3480156103c057600080fd5b506103c9610a95565b6040516103d6919061267a565b60405180910390f35b3480156103eb57600080fd5b506103f4610abe565b604051610401919061267a565b60405180910390f35b34801561041657600080fd5b5061041f610ae7565b60405161042c919061281a565b60405180910390f35b34801561044157600080fd5b5061045c600480360381019061045791906127cb565b610b10565b005b34801561046a57600080fd5b50610473610bb3565b6040516104809190612575565b60405180910390f35b34801561049557600080fd5b5061049e610bf0565b6040516104ab919061281a565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d691906125f5565b610c16565b6040516104e89190612650565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612835565b610c2d565b604051610525919061267a565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906128b3565b610cb4565b005b610560336107c7565b61059f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105969061292c565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f81905550816010819055508060118190555050505050505050565b60606040518060400160405280601081526020017f53686962617269756d204c6f636b657200000000000000000000000000000000815250905090565b6000610623338484610d76565b6001905092915050565b600061066961063c6000610a4c565b61065b61064a61dead610a4c565b600154610f3f90919063ffffffff16565b610f3f90919063ffffffff16565b905090565b600060125460035461067e61062d565b610688919061297b565b6106929190612a04565b905090565b60006106a4848484610f55565b61075784336107528560405180606001604052806028815260200161331660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114e9092919063ffffffff16565b610d76565b600190509392505050565b61076b336107c7565b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a19061292c565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610832336107c7565b610871576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108689061292c565b60405180910390fd5b60006127108461087f61062d565b610889919061297b565b6108939190612a04565b90506000612710846108a361062d565b6108ad919061297b565b6108b79190612a04565b90506000612710846108c761062d565b6108d1919061297b565b6108db9190612a04565b905085600281905550846003819055508360048190555060006109236103e8610915600561090761062d565b6111a390919063ffffffff16565b6111b990919063ffffffff16565b90508084101580156109355750808310155b80156109415750808210155b610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790612aa7565b60405180910390fd5b50505050505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6109b2336107c7565b6109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e89061292c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610aa561062d565b610aaf919061297b565b610ab99190612a04565b905090565b6000601254600254610ace61062d565b610ad8919061297b565b610ae29190612a04565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b19336107c7565b610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f9061292c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600a81526020017f534849424c4f434b455200000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c23338484610f55565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cbd336107c7565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf39061292c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610d6b9190612b26565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc90612bb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90612c45565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f32919061267a565b60405180910390a3505050565b60008183610f4d9190612c65565b905092915050565b610f608383836111cf565b610f6a8383611340565b610f7583838361143d565b610f7f838361161b565b610f8a8383836116e6565b610f95838383611925565b610fe781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f3f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611036848461194e565b611040578161104c565b61104b8484846119fc565b5b90506110a081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611140919061267a565b60405180910390a350505050565b6000838311158290611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d9190612575565b60405180910390fd5b5082840390509392505050565b600081836111b1919061297b565b905092915050565b600081836111c79190612a04565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612d0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612d9d565b60405180910390fd5b600081116112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612e2f565b60405180910390fd5b6112f983610a4c565b81111561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612ec1565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113e45750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561143957600a60149054906101000a900460ff16611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90612f2d565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114e15750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561153b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611575575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561161657611582610a95565b6115d482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba490919063ffffffff16565b1115611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90612f99565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156116c25750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116e2576001601460008282546116da9190612fb9565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461182e5761174361066e565b8111158061179a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117ee5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61182d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182490613039565b60405180910390fd5b5b611836610abe565b8111158061188d5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118e15750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613039565b60405180910390fd5b505050565b611930838383611bba565b1561194957611940601654611cf3565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119f45750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a098585611f44565b1115611b99576000611a41611a1e8686611f44565b611a33601254866111b990919063ffffffff16565b6111a390919063ffffffff16565b9050611a9581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b35919061267a565b60405180910390a36000600e541115611b7e57611b7d3061dead611b78600e54611b6a601254896111b990919063ffffffff16565b6111a390919063ffffffff16565b610f55565b5b611b918184610f3f90919063ffffffff16565b915050611b9d565b8190505b9392505050565b60008183611bb29190612fb9565b905092915050565b60008060175483101590506000601654611bd330610a4c565b10159050601560009054906101000a900460ff16158015611c005750601360009054906101000a900460ff165b8015611c185750600a60149054906101000a900460ff165b8015611c215750815b8015611c775750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cd05750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611cdf5750600160145410155b8015611ce85750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611d616002611d53600d54611d45600c54611d376001600b54611ba490919063ffffffff16565b611ba490919063ffffffff16565b611ba490919063ffffffff16565b6111a390919063ffffffff16565b90506000611d8c82611d7e600b54866111a390919063ffffffff16565b6111b990919063ffffffff16565b90506000611da38285610f3f90919063ffffffff16565b90506000479050611db3826120d3565b6000611dc88247610f3f90919063ffffffff16565b90506000611df3611de4600b5488610f3f90919063ffffffff16565b836111b990919063ffffffff16565b90506000611e0c600b54836111a390919063ffffffff16565b90506000811115611e2257611e218682612316565b5b6000611e4c600c54611e3e6002866111a390919063ffffffff16565b6111a390919063ffffffff16565b90506000811115611eb35773d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611eb1573d6000803e3d6000fd5b505b60004790506000811115611f1d5773d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f1b573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fe75750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612009576120026064601254610f3f90919063ffffffff16565b90506120cd565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120685760105490506120cd565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c757600f5490506120cd565b60115490505b92915050565b6000600267ffffffffffffffff8111156120f0576120ef613059565b5b60405190808252806020026020018201604052801561211e5781602001602082028036833780820191505090505b509050308160008151811061213657612135613088565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220191906130cc565b8160018151811061221557612214613088565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227c30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d76565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122e09594939291906131f2565b600060405180830381600087803b1580156122fa57600080fd5b505af115801561230e573d6000803e3d6000fd5b505050505050565b61234330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d76565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c426040518863ffffffff1660e01b81526004016123be9695949392919061324c565b60606040518083038185885af11580156123dc573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061240191906132c2565b5050505050565b600080fd5b6000819050919050565b6124208161240d565b811461242b57600080fd5b50565b60008135905061243d81612417565b92915050565b600080600080600080600060e0888a03121561246257612461612408565b5b60006124708a828b0161242e565b97505060206124818a828b0161242e565b96505060406124928a828b0161242e565b95505060606124a38a828b0161242e565b94505060806124b48a828b0161242e565b93505060a06124c58a828b0161242e565b92505060c06124d68a828b0161242e565b91505092959891949750929550565b600081519050919050565b600082825260208201905092915050565b60005b8381101561251f578082015181840152602081019050612504565b60008484015250505050565b6000601f19601f8301169050919050565b6000612547826124e5565b61255181856124f0565b9350612561818560208601612501565b61256a8161252b565b840191505092915050565b6000602082019050818103600083015261258f818461253c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125c282612597565b9050919050565b6125d2816125b7565b81146125dd57600080fd5b50565b6000813590506125ef816125c9565b92915050565b6000806040838503121561260c5761260b612408565b5b600061261a858286016125e0565b925050602061262b8582860161242e565b9150509250929050565b60008115159050919050565b61264a81612635565b82525050565b60006020820190506126656000830184612641565b92915050565b6126748161240d565b82525050565b600060208201905061268f600083018461266b565b92915050565b6000806000606084860312156126ae576126ad612408565b5b60006126bc868287016125e0565b93505060206126cd868287016125e0565b92505060406126de8682870161242e565b9150509250925092565b6000602082840312156126fe576126fd612408565b5b600061270c848285016125e0565b91505092915050565b600060ff82169050919050565b61272b81612715565b82525050565b60006020820190506127466000830184612722565b92915050565b60008060006060848603121561276557612764612408565b5b60006127738682870161242e565b93505060206127848682870161242e565b92505060406127958682870161242e565b9150509250925092565b6127a881612635565b81146127b357600080fd5b50565b6000813590506127c58161279f565b92915050565b600080604083850312156127e2576127e1612408565b5b60006127f0858286016125e0565b9250506020612801858286016127b6565b9150509250929050565b612814816125b7565b82525050565b600060208201905061282f600083018461280b565b92915050565b6000806040838503121561284c5761284b612408565b5b600061285a858286016125e0565b925050602061286b858286016125e0565b9150509250929050565b600061288082612597565b9050919050565b61289081612875565b811461289b57600080fd5b50565b6000813590506128ad81612887565b92915050565b6000602082840312156128c9576128c8612408565b5b60006128d78482850161289e565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006129166006836124f0565b9150612921826128e0565b602082019050919050565b6000602082019050818103600083015261294581612909565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129868261240d565b91506129918361240d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129ca576129c961294c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a0f8261240d565b9150612a1a8361240d565b925082612a2a57612a296129d5565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612a91602e836124f0565b9150612a9c82612a35565b604082019050919050565b60006020820190508181036000830152612ac081612a84565b9050919050565b6000819050919050565b6000612aec612ae7612ae284612597565b612ac7565b612597565b9050919050565b6000612afe82612ad1565b9050919050565b6000612b1082612af3565b9050919050565b612b2081612b05565b82525050565b6000602082019050612b3b6000830184612b17565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b9d6024836124f0565b9150612ba882612b41565b604082019050919050565b60006020820190508181036000830152612bcc81612b90565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c2f6022836124f0565b9150612c3a82612bd3565b604082019050919050565b60006020820190508181036000830152612c5e81612c22565b9050919050565b6000612c708261240d565b9150612c7b8361240d565b9250828203905081811115612c9357612c9261294c565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cf56025836124f0565b9150612d0082612c99565b604082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d876023836124f0565b9150612d9282612d2b565b604082019050919050565b60006020820190508181036000830152612db681612d7a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e196029836124f0565b9150612e2482612dbd565b604082019050919050565b60006020820190508181036000830152612e4881612e0c565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612eab6031836124f0565b9150612eb682612e4f565b604082019050919050565b60006020820190508181036000830152612eda81612e9e565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000612f17600e836124f0565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000612f83601e836124f0565b9150612f8e82612f4d565b602082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b6000612fc48261240d565b9150612fcf8361240d565b9250828201905080821115612fe757612fe661294c565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006130236011836124f0565b915061302e82612fed565b602082019050919050565b6000602082019050818103600083015261305281613016565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130c6816125c9565b92915050565b6000602082840312156130e2576130e1612408565b5b60006130f0848285016130b7565b91505092915050565b6000819050919050565b600061311e613119613114846130f9565b612ac7565b61240d565b9050919050565b61312e81613103565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613169816125b7565b82525050565b600061317b8383613160565b60208301905092915050565b6000602082019050919050565b600061319f82613134565b6131a9818561313f565b93506131b483613150565b8060005b838110156131e55781516131cc888261316f565b97506131d783613187565b9250506001810190506131b8565b5085935050505092915050565b600060a082019050613207600083018861266b565b6132146020830187613125565b81810360408301526132268186613194565b9050613235606083018561280b565b613242608083018461266b565b9695505050505050565b600060c082019050613261600083018961280b565b61326e602083018861266b565b61327b6040830187613125565b6132886060830186613125565b613295608083018561280b565b6132a260a083018461266b565b979650505050505050565b6000815190506132bc81612417565b92915050565b6000806000606084860312156132db576132da612408565b5b60006132e9868287016132ad565b93505060206132fa868287016132ad565b925050604061330b868287016132ad565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b08124ee3725d039642498ffcfcebecc943b147fd531d8b6ca9ffccaa4f998364736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806348ff2b8b116100ab5780638c41180e1161006f5780638c41180e1461043557806395d89b411461045e578063a8aa1b3114610489578063a9059cbb146104b4578063dd62ed3e146104f1578063f2fde38b1461052e57610140565b806348ff2b8b1461034e57806370a082311461037757806378109e54146103b45780637d1db4a5146103df578063893d20e81461040a57610140565b806323b872dd116100fd57806323b872dd1461022c578063293230b8146102695780632f54bf6e14610280578063313ce567146102bd57806334c5d2ce146102e85780633f4218e01461031157610140565b8063044019301461014557806306fdde031461016e578063095ea7b31461019957806318160ddd146101d65780631f976b7e1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190612443565b610557565b005b34801561017a57600080fd5b506101836105d9565b6040516101909190612575565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb91906125f5565b610616565b6040516101cd9190612650565b60405180910390f35b3480156101e257600080fd5b506101eb61062d565b6040516101f8919061267a565b60405180910390f35b34801561020d57600080fd5b5061021661066e565b604051610223919061267a565b60405180910390f35b34801561023857600080fd5b50610253600480360381019061024e9190612695565b610697565b6040516102609190612650565b60405180910390f35b34801561027557600080fd5b5061027e610762565b005b34801561028c57600080fd5b506102a760048036038101906102a291906126e8565b6107c7565b6040516102b49190612650565b60405180910390f35b3480156102c957600080fd5b506102d2610820565b6040516102df9190612731565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061274c565b610829565b005b34801561031d57600080fd5b50610338600480360381019061033391906126e8565b610989565b6040516103459190612650565b60405180910390f35b34801561035a57600080fd5b50610375600480360381019061037091906127cb565b6109a9565b005b34801561038357600080fd5b5061039e600480360381019061039991906126e8565b610a4c565b6040516103ab919061267a565b60405180910390f35b3480156103c057600080fd5b506103c9610a95565b6040516103d6919061267a565b60405180910390f35b3480156103eb57600080fd5b506103f4610abe565b604051610401919061267a565b60405180910390f35b34801561041657600080fd5b5061041f610ae7565b60405161042c919061281a565b60405180910390f35b34801561044157600080fd5b5061045c600480360381019061045791906127cb565b610b10565b005b34801561046a57600080fd5b50610473610bb3565b6040516104809190612575565b60405180910390f35b34801561049557600080fd5b5061049e610bf0565b6040516104ab919061281a565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d691906125f5565b610c16565b6040516104e89190612650565b60405180910390f35b3480156104fd57600080fd5b5061051860048036038101906105139190612835565b610c2d565b604051610525919061267a565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906128b3565b610cb4565b005b610560336107c7565b61059f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105969061292c565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f81905550816010819055508060118190555050505050505050565b60606040518060400160405280601081526020017f53686962617269756d204c6f636b657200000000000000000000000000000000815250905090565b6000610623338484610d76565b6001905092915050565b600061066961063c6000610a4c565b61065b61064a61dead610a4c565b600154610f3f90919063ffffffff16565b610f3f90919063ffffffff16565b905090565b600060125460035461067e61062d565b610688919061297b565b6106929190612a04565b905090565b60006106a4848484610f55565b61075784336107528560405180606001604052806028815260200161331660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461114e9092919063ffffffff16565b610d76565b600190509392505050565b61076b336107c7565b6107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a19061292c565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610832336107c7565b610871576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108689061292c565b60405180910390fd5b60006127108461087f61062d565b610889919061297b565b6108939190612a04565b90506000612710846108a361062d565b6108ad919061297b565b6108b79190612a04565b90506000612710846108c761062d565b6108d1919061297b565b6108db9190612a04565b905085600281905550846003819055508360048190555060006109236103e8610915600561090761062d565b6111a390919063ffffffff16565b6111b990919063ffffffff16565b90508084101580156109355750808310155b80156109415750808210155b610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790612aa7565b60405180910390fd5b50505050505050565b60076020528060005260406000206000915054906101000a900460ff1681565b6109b2336107c7565b6109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e89061292c565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610aa561062d565b610aaf919061297b565b610ab99190612a04565b905090565b6000601254600254610ace61062d565b610ad8919061297b565b610ae29190612a04565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b19336107c7565b610b58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4f9061292c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600a81526020017f534849424c4f434b455200000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610c23338484610f55565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cbd336107c7565b610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf39061292c565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610d6b9190612b26565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc90612bb3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90612c45565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f32919061267a565b60405180910390a3505050565b60008183610f4d9190612c65565b905092915050565b610f608383836111cf565b610f6a8383611340565b610f7583838361143d565b610f7f838361161b565b610f8a8383836116e6565b610f95838383611925565b610fe781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f3f90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611036848461194e565b611040578161104c565b61104b8484846119fc565b5b90506110a081600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611140919061267a565b60405180910390a350505050565b6000838311158290611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d9190612575565b60405180910390fd5b5082840390509392505050565b600081836111b1919061297b565b905092915050565b600081836111c79190612a04565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361123e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123590612d0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490612d9d565b60405180910390fd5b600081116112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790612e2f565b60405180910390fd5b6112f983610a4c565b81111561133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612ec1565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113e45750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561143957600a60149054906101000a900460ff16611438576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142f90612f2d565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114e15750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561153b5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611575575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561161657611582610a95565b6115d482600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba490919063ffffffff16565b1115611615576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160c90612f99565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156116c25750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116e2576001601460008282546116da9190612fb9565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461182e5761174361066e565b8111158061179a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806117ee5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61182d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182490613039565b60405180910390fd5b5b611836610abe565b8111158061188d5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806118e15750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613039565b60405180910390fd5b505050565b611930838383611bba565b1561194957611940601654611cf3565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119f45750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a098585611f44565b1115611b99576000611a41611a1e8686611f44565b611a33601254866111b990919063ffffffff16565b6111a390919063ffffffff16565b9050611a9581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ba490919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b35919061267a565b60405180910390a36000600e541115611b7e57611b7d3061dead611b78600e54611b6a601254896111b990919063ffffffff16565b6111a390919063ffffffff16565b610f55565b5b611b918184610f3f90919063ffffffff16565b915050611b9d565b8190505b9392505050565b60008183611bb29190612fb9565b905092915050565b60008060175483101590506000601654611bd330610a4c565b10159050601560009054906101000a900460ff16158015611c005750601360009054906101000a900460ff165b8015611c185750600a60149054906101000a900460ff165b8015611c215750815b8015611c775750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cd05750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611cdf5750600160145410155b8015611ce85750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611d616002611d53600d54611d45600c54611d376001600b54611ba490919063ffffffff16565b611ba490919063ffffffff16565b611ba490919063ffffffff16565b6111a390919063ffffffff16565b90506000611d8c82611d7e600b54866111a390919063ffffffff16565b6111b990919063ffffffff16565b90506000611da38285610f3f90919063ffffffff16565b90506000479050611db3826120d3565b6000611dc88247610f3f90919063ffffffff16565b90506000611df3611de4600b5488610f3f90919063ffffffff16565b836111b990919063ffffffff16565b90506000611e0c600b54836111a390919063ffffffff16565b90506000811115611e2257611e218682612316565b5b6000611e4c600c54611e3e6002866111a390919063ffffffff16565b6111a390919063ffffffff16565b90506000811115611eb35773d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611eb1573d6000803e3d6000fd5b505b60004790506000811115611f1d5773d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f1b573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611fe75750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612009576120026064601254610f3f90919063ffffffff16565b90506120cd565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120685760105490506120cd565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120c757600f5490506120cd565b60115490505b92915050565b6000600267ffffffffffffffff8111156120f0576120ef613059565b5b60405190808252806020026020018201604052801561211e5781602001602082028036833780820191505090505b509050308160008151811061213657612135613088565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061220191906130cc565b8160018151811061221557612214613088565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227c30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d76565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122e09594939291906131f2565b600060405180830381600087803b1580156122fa57600080fd5b505af115801561230e573d6000803e3d6000fd5b505050505050565b61234330600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d76565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073d9ce4d225a1cdd9f1b294d16c8cd15bcab80d98c426040518863ffffffff1660e01b81526004016123be9695949392919061324c565b60606040518083038185885af11580156123dc573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061240191906132c2565b5050505050565b600080fd5b6000819050919050565b6124208161240d565b811461242b57600080fd5b50565b60008135905061243d81612417565b92915050565b600080600080600080600060e0888a03121561246257612461612408565b5b60006124708a828b0161242e565b97505060206124818a828b0161242e565b96505060406124928a828b0161242e565b95505060606124a38a828b0161242e565b94505060806124b48a828b0161242e565b93505060a06124c58a828b0161242e565b92505060c06124d68a828b0161242e565b91505092959891949750929550565b600081519050919050565b600082825260208201905092915050565b60005b8381101561251f578082015181840152602081019050612504565b60008484015250505050565b6000601f19601f8301169050919050565b6000612547826124e5565b61255181856124f0565b9350612561818560208601612501565b61256a8161252b565b840191505092915050565b6000602082019050818103600083015261258f818461253c565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125c282612597565b9050919050565b6125d2816125b7565b81146125dd57600080fd5b50565b6000813590506125ef816125c9565b92915050565b6000806040838503121561260c5761260b612408565b5b600061261a858286016125e0565b925050602061262b8582860161242e565b9150509250929050565b60008115159050919050565b61264a81612635565b82525050565b60006020820190506126656000830184612641565b92915050565b6126748161240d565b82525050565b600060208201905061268f600083018461266b565b92915050565b6000806000606084860312156126ae576126ad612408565b5b60006126bc868287016125e0565b93505060206126cd868287016125e0565b92505060406126de8682870161242e565b9150509250925092565b6000602082840312156126fe576126fd612408565b5b600061270c848285016125e0565b91505092915050565b600060ff82169050919050565b61272b81612715565b82525050565b60006020820190506127466000830184612722565b92915050565b60008060006060848603121561276557612764612408565b5b60006127738682870161242e565b93505060206127848682870161242e565b92505060406127958682870161242e565b9150509250925092565b6127a881612635565b81146127b357600080fd5b50565b6000813590506127c58161279f565b92915050565b600080604083850312156127e2576127e1612408565b5b60006127f0858286016125e0565b9250506020612801858286016127b6565b9150509250929050565b612814816125b7565b82525050565b600060208201905061282f600083018461280b565b92915050565b6000806040838503121561284c5761284b612408565b5b600061285a858286016125e0565b925050602061286b858286016125e0565b9150509250929050565b600061288082612597565b9050919050565b61289081612875565b811461289b57600080fd5b50565b6000813590506128ad81612887565b92915050565b6000602082840312156128c9576128c8612408565b5b60006128d78482850161289e565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006129166006836124f0565b9150612921826128e0565b602082019050919050565b6000602082019050818103600083015261294581612909565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129868261240d565b91506129918361240d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129ca576129c961294c565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a0f8261240d565b9150612a1a8361240d565b925082612a2a57612a296129d5565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612a91602e836124f0565b9150612a9c82612a35565b604082019050919050565b60006020820190508181036000830152612ac081612a84565b9050919050565b6000819050919050565b6000612aec612ae7612ae284612597565b612ac7565b612597565b9050919050565b6000612afe82612ad1565b9050919050565b6000612b1082612af3565b9050919050565b612b2081612b05565b82525050565b6000602082019050612b3b6000830184612b17565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b9d6024836124f0565b9150612ba882612b41565b604082019050919050565b60006020820190508181036000830152612bcc81612b90565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c2f6022836124f0565b9150612c3a82612bd3565b604082019050919050565b60006020820190508181036000830152612c5e81612c22565b9050919050565b6000612c708261240d565b9150612c7b8361240d565b9250828203905081811115612c9357612c9261294c565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cf56025836124f0565b9150612d0082612c99565b604082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d876023836124f0565b9150612d9282612d2b565b604082019050919050565b60006020820190508181036000830152612db681612d7a565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e196029836124f0565b9150612e2482612dbd565b604082019050919050565b60006020820190508181036000830152612e4881612e0c565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612eab6031836124f0565b9150612eb682612e4f565b604082019050919050565b60006020820190508181036000830152612eda81612e9e565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000612f17600e836124f0565b9150612f2282612ee1565b602082019050919050565b60006020820190508181036000830152612f4681612f0a565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b6000612f83601e836124f0565b9150612f8e82612f4d565b602082019050919050565b60006020820190508181036000830152612fb281612f76565b9050919050565b6000612fc48261240d565b9150612fcf8361240d565b9250828201905080821115612fe757612fe661294c565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006130236011836124f0565b915061302e82612fed565b602082019050919050565b6000602082019050818103600083015261305281613016565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506130c6816125c9565b92915050565b6000602082840312156130e2576130e1612408565b5b60006130f0848285016130b7565b91505092915050565b6000819050919050565b600061311e613119613114846130f9565b612ac7565b61240d565b9050919050565b61312e81613103565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613169816125b7565b82525050565b600061317b8383613160565b60208301905092915050565b6000602082019050919050565b600061319f82613134565b6131a9818561313f565b93506131b483613150565b8060005b838110156131e55781516131cc888261316f565b97506131d783613187565b9250506001810190506131b8565b5085935050505092915050565b600060a082019050613207600083018861266b565b6132146020830187613125565b81810360408301526132268186613194565b9050613235606083018561280b565b613242608083018461266b565b9695505050505050565b600060c082019050613261600083018961280b565b61326e602083018861266b565b61327b6040830187613125565b6132886060830186613125565b613295608083018561280b565b6132a260a083018461266b565b979650505050505050565b6000815190506132bc81612417565b92915050565b6000806000606084860312156132db576132da612408565b5b60006132e9868287016132ad565b93505060206132fa868287016132ad565b925050604061330b868287016132ad565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208b08124ee3725d039642498ffcfcebecc943b147fd531d8b6ca9ffccaa4f998364736f6c63430008100033

Deployed Bytecode Sourcemap

5784:13689:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11758:466;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8230:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9671:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9870:148;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10305:137;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18651:442;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8507:83;;;;;;;;;;;;;:::i;:::-;;3911:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8416:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12232:655;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6349:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9539:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8698:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10026:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10166:131;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8598:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9416:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8321:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6465:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8825:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9030:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4022:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11758:466;3853:19;3861:10;3853:7;:19::i;:::-;3845:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12019:10:::1;12004:12;:25;;;;12055:10;12040:12;:25;;;;12086:5;12076:7;:15;;;;12119:12;12102:14;:29;;;;12153:6;12142:8;:17;;;;12180:5;12170:7;:15;;;;12210:6;12196:11;:20;;;;11758:466:::0;;;;;;;:::o;8230:83::-;8267:13;8300:5;;;;;;;;;;;;;;;;;8293:12;;8230:83;:::o;9671:191::-;9773:4;9795:37;9804:10;9816:7;9825:6;9795:8;:37::i;:::-;9850:4;9843:11;;9671:191;;;;:::o;9870:148::-;9923:7;9950:60;9988:21;10006:1;9988:9;:21::i;:::-;9950:33;9967:15;7220:42;9967:9;:15::i;:::-;9950:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;9943:67;;9870:148;:::o;10305:137::-;10356:7;10423:11;;10400:19;;10384:13;:11;:13::i;:::-;:35;;;;:::i;:::-;10383:51;;;;:::i;:::-;10376:58;;10305:137;:::o;18651:442::-;18783:4;18800:36;18810:6;18818:9;18829:6;18800:9;:36::i;:::-;18847:216;18870:6;18891:10;18916:136;18970:6;18916:136;;;;;;;;;;;;;;;;;:11;:19;18928:6;18916:19;;;;;;;;;;;;;;;:31;18936:10;18916:31;;;;;;;;;;;;;;;;:35;;:136;;;;;:::i;:::-;18847:8;:216::i;:::-;19081:4;19074:11;;18651:442;;;;;:::o;8507:83::-;3853:19;3861:10;3853:7;:19::i;:::-;3845:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8578:4:::1;8561:14;;:21;;;;;;;;;;;;;;;;;;8507:83::o:0;3911:103::-;3966:4;4001:5;;;;;;;;;;;3990:16;;:7;:16;;;3983:23;;3911:103;;;:::o;8416:83::-;8457:5;6008:1;8475:16;;8416:83;:::o;12232:655::-;3853:19;3861:10;3853:7;:19::i;:::-;3845:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12366:13:::1;12407:5;12399:4;12383:13;:11;:13::i;:::-;:20;;;;:::i;:::-;12382:30;;;;:::i;:::-;12366:46;;12423:19;12472:5;12462:6;12446:13;:11;:13::i;:::-;:22;;;;:::i;:::-;12445:32;;;;:::i;:::-;12423:54;;12488:17;12536:5;12525:7;12509:13;:11;:13::i;:::-;:23;;;;:::i;:::-;12508:33;;;;:::i;:::-;12488:53;;12574:4;12552:19;:26;;;;12611:6;12589:19;:28;;;;12648:7;12628:17;:27;;;;12666:13;12682:30;12707:4;12682:20;12700:1;12682:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;12666:46;;12754:5;12745;:14;;:38;;;;;12778:5;12763:11;:20;;12745:38;:60;;;;;12800:5;12787:9;:18;;12745:60;12723:156;;;;;;;;;;;;:::i;:::-;;;;;;;;;12355:532;;;;12232:655:::0;;;:::o;6349:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;9539:124::-;3853:19;3861:10;3853:7;:19::i;:::-;3845:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9647:8:::1;9623:11;:21;9635:8;9623:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;9539:124:::0;;:::o;8698:119::-;8764:7;8791:9;:18;8801:7;8791:18;;;;;;;;;;;;;;;;8784:25;;8698:119;;;:::o;10026:132::-;10074:7;10139:11;;10118:17;;10102:13;:11;:13::i;:::-;:33;;;;:::i;:::-;10101:49;;;;:::i;:::-;10094:56;;10026:132;:::o;10166:131::-;10211:7;10278:11;;10255:19;;10239:13;:11;:13::i;:::-;:35;;;;:::i;:::-;10238:51;;;;:::i;:::-;10231:58;;10166:131;:::o;8598:92::-;8650:7;8677:5;;;;;;;;;;;8670:12;;8598:92;:::o;9416:115::-;3853:19;3861:10;3853:7;:19::i;:::-;3845:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9515:8:::1;9497:5;:15;9503:8;9497:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9416:115:::0;;:::o;8321:87::-;8360:13;8393:7;;;;;;;;;;;;;;;;;8386:14;;8321:87;:::o;6465:19::-;;;;;;;;;;;;;:::o;8825:197::-;8930:4;8952:40;8962:10;8974:9;8985:6;8952:9;:40::i;:::-;9010:4;9003:11;;8825:197;;;;:::o;9030:184::-;9147:7;9179:11;:18;9191:5;9179:18;;;;;;;;;;;;;;;:27;9198:7;9179:27;;;;;;;;;;;;;;;;9172:34;;9030:184;;;;:::o;4022:136::-;3853:19;3861:10;3853:7;:19::i;:::-;3845:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;4106:3:::1;4098:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;4125:25;4146:3;4125:25;;;;;;:::i;:::-;;;;;;;;4022:136:::0;:::o;19101:369::-;19245:1;19228:19;;:5;:19;;;19220:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19326:1;19307:21;;:7;:21;;;19299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19408:6;19378:11;:18;19390:5;19378:18;;;;;;;;;;;;;;;:27;19397:7;19378:27;;;;;;;;;;;;;;;:36;;;;19446:7;19430:32;;19439:5;19430:32;;;19455:6;19430:32;;;;;;:::i;:::-;;;;;;;;19101:369;;;:::o;192:98::-;250:7;281:1;277;:5;;;;:::i;:::-;270:12;;192:98;;;;:::o;11006:744::-;11129:37;11140:6;11148:9;11159:6;11129:10;:37::i;:::-;11177:38;11197:6;11205:9;11177:19;:38::i;:::-;11226:41;11241:6;11249:9;11260:6;11226:14;:41::i;:::-;11278:35;11295:6;11303:9;11278:16;:35::i;:::-;11324:39;11337:6;11345:9;11356:6;11324:12;:39::i;:::-;11374:35;11383:6;11391:9;11402:6;11374:8;:35::i;:::-;11440:29;11462:6;11440:9;:17;11450:6;11440:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11420:9;:17;11430:6;11420:17;;;;;;;;;;;;;;;:49;;;;11480:22;11505:32;11519:6;11527:9;11505:13;:32::i;:::-;:104;;11603:6;11505:104;;;11553:34;11561:6;11569:9;11580:6;11553:7;:34::i;:::-;11505:104;11480:129;;11643:40;11668:14;11643:9;:20;11653:9;11643:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;11620:9;:20;11630:9;11620:20;;;;;;;;;;;;;;;:63;;;;11716:9;11699:43;;11708:6;11699:43;;;11727:14;11699:43;;;;;;:::i;:::-;;;;;;;;11118:632;11006:744;;;:::o;1892:240::-;2012:7;2070:1;2065;:6;;2073:12;2057:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2112:1;2108;:5;2101:12;;1892:240;;;;;:::o;298:98::-;356:7;387:1;383;:5;;;;:::i;:::-;376:12;;298:98;;;;:::o;404:::-;462:7;493:1;489;:5;;;;:::i;:::-;482:12;;404:98;;;;:::o;10450:548::-;10606:1;10588:20;;:6;:20;;;10580:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10690:1;10669:23;;:9;:23;;;10661:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10782:1;10765:6;:19;10743:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10896:17;10906:6;10896:9;:17::i;:::-;10886:6;:27;;10864:126;;;;;;;;;;;;:::i;:::-;;;;;;;;;10450:548;;;:::o;12895:240::-;13012:11;:19;13024:6;13012:19;;;;;;;;;;;;;;;;;;;;;;;;;13011:20;:47;;;;;13036:11;:22;13048:9;13036:22;;;;;;;;;;;;;;;;;;;;;;;;;13035:23;13011:47;13007:121;;;13083:14;;;;;;;;;;;13075:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;13007:121;12895:240;;:::o;13143:491::-;13296:11;:19;13308:6;13296:19;;;;;;;;;;;;;;;;;;;;;;;;;13295:20;:60;;;;;13333:11;:22;13345:9;13333:22;;;;;;;;;;;;;;;;;;;;;;;;;13332:23;13295:60;:103;;;;;13393:4;;;;;;;;;;;13372:26;;:9;:26;;;;13295:103;:146;;;;;7220:42;13415:26;;:9;:26;;;;13295:146;13277:350;;;13532:17;:15;:17::i;:::-;13495:32;13520:6;13495:9;:20;13505:9;13495:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13494:55;;13468:147;;;;;;;;;;;;:::i;:::-;;;;;;;;;13277:350;13143:491;;;:::o;13642:185::-;13740:4;;;;;;;;;;;13727:17;;:9;:17;;;:41;;;;;13749:11;:19;13761:6;13749:19;;;;;;;;;;;;;;;;;;;;;;;;;13748:20;13727:41;13723:97;;;13806:1;13785:9;;:23;;;;;;;:::i;:::-;;;;;;;;13723:97;13642:185;;:::o;13835:571::-;13981:4;;;;;;;;;;;13971:14;;:6;:14;;;13967:247;;14038:20;:18;:20::i;:::-;14028:6;:30;;:74;;;;14083:11;:19;14095:6;14083:19;;;;;;;;;;;;;;;;;;;;;;;;;14028:74;:121;;;;14127:11;:22;14139:9;14127:22;;;;;;;;;;;;;;;;;;;;;;;;;14028:121;14002:200;;;;;;;;;;;;:::i;:::-;;;;;;;;;13967:247;14256:14;:12;:14::i;:::-;14246:6;:24;;:64;;;;14291:11;:19;14303:6;14291:19;;;;;;;;;;;;;;;;;;;;;;;;;14246:64;:107;;;;14331:11;:22;14343:9;14331:22;;;;;;;;;;;;;;;;;;;;;;;;;14246:107;14224:174;;;;;;;;;;;;:::i;:::-;;;;;;;;;13835:571;;;:::o;16973:270::-;17100:41;17115:6;17123:9;17134:6;17100:14;:41::i;:::-;17096:140;;;17158:29;17173:13;;17158:14;:29::i;:::-;17222:1;17202:9;:22;;;;17096:140;16973:270;;;:::o;17251:192::-;17359:4;17389:11;:19;17401:6;17389:19;;;;;;;;;;;;;;;;;;;;;;;;;17388:20;:47;;;;;17413:11;:22;17425:9;17413:22;;;;;;;;;;;;;;;;;;;;;;;;;17412:23;17388:47;17381:54;;17251:192;;;;:::o;17874:769::-;17994:7;18051:1;18018:30;18030:6;18038:9;18018:11;:30::i;:::-;:34;18014:598;;;18069:17;18089:91;18135:30;18147:6;18155:9;18135:11;:30::i;:::-;18089:23;18100:11;;18089:6;:10;;:23;;;;:::i;:::-;:27;;:91;;;;:::i;:::-;18069:111;;18222:39;18251:9;18222;:24;18240:4;18222:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18195:9;:24;18213:4;18195:24;;;;;;;;;;;;;;;:66;;;;18306:4;18281:42;;18290:6;18281:42;;;18313:9;18281:42;;;;;;:::i;:::-;;;;;;;;18360:1;18342:7;;:20;18338:220;;;18383:159;18423:4;7220:42;18487:36;18515:7;;18487:23;18498:11;;18487:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;18383:9;:159::i;:::-;18338:220;18579:21;18590:9;18579:6;:10;;:21;;;;:::i;:::-;18572:28;;;;;18014:598;18629:6;18622:13;;17874:769;;;;;;:::o;86:98::-;144:7;175:1;171;:5;;;;:::i;:::-;164:12;;86:98;;;;:::o;16427:538::-;16559:4;16576:13;16602:15;;16592:6;:25;;16576:41;;16628:19;16678:13;;16650:24;16668:4;16650:9;:24::i;:::-;:41;;16628:63;;16723:8;;;;;;;;;;;16722:9;:37;;;;;16748:11;;;;;;;;;;;16722:37;:68;;;;;16776:14;;;;;;;;;;;16722:68;:93;;;;;16807:8;16722:93;:130;;;;;16833:11;:19;16845:6;16833:19;;;;;;;;;;;;;;;;;;;;;;;;;16832:20;16722:130;:164;;;;;16882:4;;;;;;;;;;;16869:17;;:9;:17;;;16722:164;:204;;;;;16924:1;16903:9;;:23;;16722:204;:235;;;;;16943:14;16722:235;16702:255;;;;16427:538;;;;;:::o;14414:1192::-;7128:4;7117:8;;:15;;;;;;;;;;;;;;;;;;14485:20:::1;14508:90;14596:1;14523:57;14565:14;;14523:37;14547:12;;14523:19;14540:1;14523:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;14508:87;;:90;;;;:::i;:::-;14485:113;;14609:32;14644:66;14687:12;14644:24;14655:12;;14644:6;:10;;:24;;;;:::i;:::-;:28;;:66;;;;:::i;:::-;14609:101;;14721:14;14738:36;14749:24;14738:6;:10;;:36;;;;:::i;:::-;14721:53;;14785:22;14810:21;14785:46;;14842:24;14859:6;14842:16;:24::i;:::-;14877:20;14900:41;14926:14;14900:21;:25;;:41;;;;:::i;:::-;14877:64;;14952:19;14974:48;14991:30;15008:12;;14991;:16;;:30;;;;:::i;:::-;14974:12;:16;;:48;;;;:::i;:::-;14952:70;;15033:29;15065;15081:12;;15065:11;:15;;:29;;;;:::i;:::-;15033:61;;15141:1;15109:21;:34;15105:128;;;15160:61;15173:24;15199:21;15160:12;:61::i;:::-;15105:128;15243:20;15266:36;15289:12;;15266:18;15282:1;15266:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;15243:59;;15332:1;15317:12;:16;15313:99;;;7432:42;15350:36;;:50;15387:12;15350:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15313:99;15422:24;15449:21;15422:48;;15512:1;15485:16;:29;15481:118;;;7327:42;15531:38;;:56;15570:16;15531:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15481:118;14474:1132;;;;;;;;;7166:5:::0;7155:8;;:16;;;;;;;;;;;;;;;;;;14414:1192;:::o;17451:415::-;17557:7;17586:5;:13;17592:6;17586:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;17603:5;:16;17609:9;17603:16;;;;;;;;;;;;;;;;;;;;;;;;;17586:33;17582:102;;;17643:29;17667:3;17643:11;;:15;;:29;;;;:::i;:::-;17636:36;;;;17582:102;17711:4;;;;;;;;;;;17698:17;;:9;:17;;;17694:64;;17739:7;;17732:14;;;;17694:64;17782:4;;;;;;;;;;;17772:14;;:6;:14;;;17768:62;;17810:8;;17803:15;;;;17768:62;17847:11;;17840:18;;17451:415;;;;;:::o;15975:444::-;16041:21;16079:1;16065:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16041:40;;16110:4;16092;16097:1;16092:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16136:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16126:4;16131:1;16126:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16160:53;16177:4;16192:6;;;;;;;;;;;16201:11;16160:8;:53::i;:::-;16224:6;;;;;;;;;;;:57;;;16296:11;16322:1;16338:4;16365;16385:15;16224:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16030:389;15975:444;:::o;15614:353::-;15695:53;15712:4;15727:6;;;;;;;;;;;15736:11;15695:8;:53::i;:::-;15759:6;;;;;;;;;;;:22;;;15789:9;15822:4;15842:11;15868:1;15884;7537:42;15933:15;15759:200;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15614:353;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:1203::-;803:6;811;819;827;835;843;851;900:3;888:9;879:7;875:23;871:33;868:120;;;907:79;;:::i;:::-;868:120;1027:1;1052:53;1097:7;1088:6;1077:9;1073:22;1052:53;:::i;:::-;1042:63;;998:117;1154:2;1180:53;1225:7;1216:6;1205:9;1201:22;1180:53;:::i;:::-;1170:63;;1125:118;1282:2;1308:53;1353:7;1344:6;1333:9;1329:22;1308:53;:::i;:::-;1298:63;;1253:118;1410:2;1436:53;1481:7;1472:6;1461:9;1457:22;1436:53;:::i;:::-;1426:63;;1381:118;1538:3;1565:53;1610:7;1601:6;1590:9;1586:22;1565:53;:::i;:::-;1555:63;;1509:119;1667:3;1694:53;1739:7;1730:6;1719:9;1715:22;1694:53;:::i;:::-;1684:63;;1638:119;1796:3;1823:53;1868:7;1859:6;1848:9;1844:22;1823:53;:::i;:::-;1813:63;;1767:119;690:1203;;;;;;;;;;:::o;1899:99::-;1951:6;1985:5;1979:12;1969:22;;1899:99;;;:::o;2004:169::-;2088:11;2122:6;2117:3;2110:19;2162:4;2157:3;2153:14;2138:29;;2004:169;;;;:::o;2179:246::-;2260:1;2270:113;2284:6;2281:1;2278:13;2270:113;;;2369:1;2364:3;2360:11;2354:18;2350:1;2345:3;2341:11;2334:39;2306:2;2303:1;2299:10;2294:15;;2270:113;;;2417:1;2408:6;2403:3;2399:16;2392:27;2241:184;2179:246;;;:::o;2431:102::-;2472:6;2523:2;2519:7;2514:2;2507:5;2503:14;2499:28;2489:38;;2431:102;;;:::o;2539:377::-;2627:3;2655:39;2688:5;2655:39;:::i;:::-;2710:71;2774:6;2769:3;2710:71;:::i;:::-;2703:78;;2790:65;2848:6;2843:3;2836:4;2829:5;2825:16;2790:65;:::i;:::-;2880:29;2902:6;2880:29;:::i;:::-;2875:3;2871:39;2864:46;;2631:285;2539:377;;;;:::o;2922:313::-;3035:4;3073:2;3062:9;3058:18;3050:26;;3122:9;3116:4;3112:20;3108:1;3097:9;3093:17;3086:47;3150:78;3223:4;3214:6;3150:78;:::i;:::-;3142:86;;2922:313;;;;:::o;3241:126::-;3278:7;3318:42;3311:5;3307:54;3296:65;;3241:126;;;:::o;3373:96::-;3410:7;3439:24;3457:5;3439:24;:::i;:::-;3428:35;;3373:96;;;:::o;3475:122::-;3548:24;3566:5;3548:24;:::i;:::-;3541:5;3538:35;3528:63;;3587:1;3584;3577:12;3528:63;3475:122;:::o;3603:139::-;3649:5;3687:6;3674:20;3665:29;;3703:33;3730:5;3703:33;:::i;:::-;3603:139;;;;:::o;3748:474::-;3816:6;3824;3873:2;3861:9;3852:7;3848:23;3844:32;3841:119;;;3879:79;;:::i;:::-;3841:119;3999:1;4024:53;4069:7;4060:6;4049:9;4045:22;4024:53;:::i;:::-;4014:63;;3970:117;4126:2;4152:53;4197:7;4188:6;4177:9;4173:22;4152:53;:::i;:::-;4142:63;;4097:118;3748:474;;;;;:::o;4228:90::-;4262:7;4305:5;4298:13;4291:21;4280:32;;4228:90;;;:::o;4324:109::-;4405:21;4420:5;4405:21;:::i;:::-;4400:3;4393:34;4324:109;;:::o;4439:210::-;4526:4;4564:2;4553:9;4549:18;4541:26;;4577:65;4639:1;4628:9;4624:17;4615:6;4577:65;:::i;:::-;4439:210;;;;:::o;4655:118::-;4742:24;4760:5;4742:24;:::i;:::-;4737:3;4730:37;4655:118;;:::o;4779:222::-;4872:4;4910:2;4899:9;4895:18;4887:26;;4923:71;4991:1;4980:9;4976:17;4967:6;4923:71;:::i;:::-;4779:222;;;;:::o;5007:619::-;5084:6;5092;5100;5149:2;5137:9;5128:7;5124:23;5120:32;5117:119;;;5155:79;;:::i;:::-;5117:119;5275:1;5300:53;5345:7;5336:6;5325:9;5321:22;5300:53;:::i;:::-;5290:63;;5246:117;5402:2;5428:53;5473:7;5464:6;5453:9;5449:22;5428:53;:::i;:::-;5418:63;;5373:118;5530:2;5556:53;5601:7;5592:6;5581:9;5577:22;5556:53;:::i;:::-;5546:63;;5501:118;5007:619;;;;;:::o;5632:329::-;5691:6;5740:2;5728:9;5719:7;5715:23;5711:32;5708:119;;;5746:79;;:::i;:::-;5708:119;5866:1;5891:53;5936:7;5927:6;5916:9;5912:22;5891:53;:::i;:::-;5881:63;;5837:117;5632:329;;;;:::o;5967:86::-;6002:7;6042:4;6035:5;6031:16;6020:27;;5967:86;;;:::o;6059:112::-;6142:22;6158:5;6142:22;:::i;:::-;6137:3;6130:35;6059:112;;:::o;6177:214::-;6266:4;6304:2;6293:9;6289:18;6281:26;;6317:67;6381:1;6370:9;6366:17;6357:6;6317:67;:::i;:::-;6177:214;;;;:::o;6397:619::-;6474:6;6482;6490;6539:2;6527:9;6518:7;6514:23;6510:32;6507:119;;;6545:79;;:::i;:::-;6507:119;6665:1;6690:53;6735:7;6726:6;6715:9;6711:22;6690:53;:::i;:::-;6680:63;;6636:117;6792:2;6818:53;6863:7;6854:6;6843:9;6839:22;6818:53;:::i;:::-;6808:63;;6763:118;6920:2;6946:53;6991:7;6982:6;6971:9;6967:22;6946:53;:::i;:::-;6936:63;;6891:118;6397:619;;;;;:::o;7022:116::-;7092:21;7107:5;7092:21;:::i;:::-;7085:5;7082:32;7072:60;;7128:1;7125;7118:12;7072:60;7022:116;:::o;7144:133::-;7187:5;7225:6;7212:20;7203:29;;7241:30;7265:5;7241:30;:::i;:::-;7144:133;;;;:::o;7283:468::-;7348:6;7356;7405:2;7393:9;7384:7;7380:23;7376:32;7373:119;;;7411:79;;:::i;:::-;7373:119;7531:1;7556:53;7601:7;7592:6;7581:9;7577:22;7556:53;:::i;:::-;7546:63;;7502:117;7658:2;7684:50;7726:7;7717:6;7706:9;7702:22;7684:50;:::i;:::-;7674:60;;7629:115;7283:468;;;;;:::o;7757:118::-;7844:24;7862:5;7844:24;:::i;:::-;7839:3;7832:37;7757:118;;:::o;7881:222::-;7974:4;8012:2;8001:9;7997:18;7989:26;;8025:71;8093:1;8082:9;8078:17;8069:6;8025:71;:::i;:::-;7881:222;;;;:::o;8109:474::-;8177:6;8185;8234:2;8222:9;8213:7;8209:23;8205:32;8202:119;;;8240:79;;:::i;:::-;8202:119;8360:1;8385:53;8430:7;8421:6;8410:9;8406:22;8385:53;:::i;:::-;8375:63;;8331:117;8487:2;8513:53;8558:7;8549:6;8538:9;8534:22;8513:53;:::i;:::-;8503:63;;8458:118;8109:474;;;;;:::o;8589:104::-;8634:7;8663:24;8681:5;8663:24;:::i;:::-;8652:35;;8589:104;;;:::o;8699:138::-;8780:32;8806:5;8780:32;:::i;:::-;8773:5;8770:43;8760:71;;8827:1;8824;8817:12;8760:71;8699:138;:::o;8843:155::-;8897:5;8935:6;8922:20;8913:29;;8951:41;8986:5;8951:41;:::i;:::-;8843:155;;;;:::o;9004:345::-;9071:6;9120:2;9108:9;9099:7;9095:23;9091:32;9088:119;;;9126:79;;:::i;:::-;9088:119;9246:1;9271:61;9324:7;9315:6;9304:9;9300:22;9271:61;:::i;:::-;9261:71;;9217:125;9004:345;;;;:::o;9355:156::-;9495:8;9491:1;9483:6;9479:14;9472:32;9355:156;:::o;9517:365::-;9659:3;9680:66;9744:1;9739:3;9680:66;:::i;:::-;9673:73;;9755:93;9844:3;9755:93;:::i;:::-;9873:2;9868:3;9864:12;9857:19;;9517:365;;;:::o;9888:419::-;10054:4;10092:2;10081:9;10077:18;10069:26;;10141:9;10135:4;10131:20;10127:1;10116:9;10112:17;10105:47;10169:131;10295:4;10169:131;:::i;:::-;10161:139;;9888:419;;;:::o;10313:180::-;10361:77;10358:1;10351:88;10458:4;10455:1;10448:15;10482:4;10479:1;10472:15;10499:348;10539:7;10562:20;10580:1;10562:20;:::i;:::-;10557:25;;10596:20;10614:1;10596:20;:::i;:::-;10591:25;;10784:1;10716:66;10712:74;10709:1;10706:81;10701:1;10694:9;10687:17;10683:105;10680:131;;;10791:18;;:::i;:::-;10680:131;10839:1;10836;10832:9;10821:20;;10499:348;;;;:::o;10853:180::-;10901:77;10898:1;10891:88;10998:4;10995:1;10988:15;11022:4;11019:1;11012:15;11039:185;11079:1;11096:20;11114:1;11096:20;:::i;:::-;11091:25;;11130:20;11148:1;11130:20;:::i;:::-;11125:25;;11169:1;11159:35;;11174:18;;:::i;:::-;11159:35;11216:1;11213;11209:9;11204:14;;11039:185;;;;:::o;11230:233::-;11370:34;11366:1;11358:6;11354:14;11347:58;11439:16;11434:2;11426:6;11422:15;11415:41;11230:233;:::o;11469:366::-;11611:3;11632:67;11696:2;11691:3;11632:67;:::i;:::-;11625:74;;11708:93;11797:3;11708:93;:::i;:::-;11826:2;11821:3;11817:12;11810:19;;11469:366;;;:::o;11841:419::-;12007:4;12045:2;12034:9;12030:18;12022:26;;12094:9;12088:4;12084:20;12080:1;12069:9;12065:17;12058:47;12122:131;12248:4;12122:131;:::i;:::-;12114:139;;11841:419;;;:::o;12266:60::-;12294:3;12315:5;12308:12;;12266:60;;;:::o;12332:142::-;12382:9;12415:53;12433:34;12442:24;12460:5;12442:24;:::i;:::-;12433:34;:::i;:::-;12415:53;:::i;:::-;12402:66;;12332:142;;;:::o;12480:126::-;12530:9;12563:37;12594:5;12563:37;:::i;:::-;12550:50;;12480:126;;;:::o;12612:134::-;12670:9;12703:37;12734:5;12703:37;:::i;:::-;12690:50;;12612:134;;;:::o;12752:147::-;12847:45;12886:5;12847:45;:::i;:::-;12842:3;12835:58;12752:147;;:::o;12905:238::-;13006:4;13044:2;13033:9;13029:18;13021:26;;13057:79;13133:1;13122:9;13118:17;13109:6;13057:79;:::i;:::-;12905:238;;;;:::o;13149:223::-;13289:34;13285:1;13277:6;13273:14;13266:58;13358:6;13353:2;13345:6;13341:15;13334:31;13149:223;:::o;13378:366::-;13520:3;13541:67;13605:2;13600:3;13541:67;:::i;:::-;13534:74;;13617:93;13706:3;13617:93;:::i;:::-;13735:2;13730:3;13726:12;13719:19;;13378:366;;;:::o;13750:419::-;13916:4;13954:2;13943:9;13939:18;13931:26;;14003:9;13997:4;13993:20;13989:1;13978:9;13974:17;13967:47;14031:131;14157:4;14031:131;:::i;:::-;14023:139;;13750:419;;;:::o;14175:221::-;14315:34;14311:1;14303:6;14299:14;14292:58;14384:4;14379:2;14371:6;14367:15;14360:29;14175:221;:::o;14402:366::-;14544:3;14565:67;14629:2;14624:3;14565:67;:::i;:::-;14558:74;;14641:93;14730:3;14641:93;:::i;:::-;14759:2;14754:3;14750:12;14743:19;;14402:366;;;:::o;14774:419::-;14940:4;14978:2;14967:9;14963:18;14955:26;;15027:9;15021:4;15017:20;15013:1;15002:9;14998:17;14991:47;15055:131;15181:4;15055:131;:::i;:::-;15047:139;;14774:419;;;:::o;15199:194::-;15239:4;15259:20;15277:1;15259:20;:::i;:::-;15254:25;;15293:20;15311:1;15293:20;:::i;:::-;15288:25;;15337:1;15334;15330:9;15322:17;;15361:1;15355:4;15352:11;15349:37;;;15366:18;;:::i;:::-;15349:37;15199:194;;;;:::o;15399:224::-;15539:34;15535:1;15527:6;15523:14;15516:58;15608:7;15603:2;15595:6;15591:15;15584:32;15399:224;:::o;15629:366::-;15771:3;15792:67;15856:2;15851:3;15792:67;:::i;:::-;15785:74;;15868:93;15957:3;15868:93;:::i;:::-;15986:2;15981:3;15977:12;15970:19;;15629:366;;;:::o;16001:419::-;16167:4;16205:2;16194:9;16190:18;16182:26;;16254:9;16248:4;16244:20;16240:1;16229:9;16225:17;16218:47;16282:131;16408:4;16282:131;:::i;:::-;16274:139;;16001:419;;;:::o;16426:222::-;16566:34;16562:1;16554:6;16550:14;16543:58;16635:5;16630:2;16622:6;16618:15;16611:30;16426:222;:::o;16654:366::-;16796:3;16817:67;16881:2;16876:3;16817:67;:::i;:::-;16810:74;;16893:93;16982:3;16893:93;:::i;:::-;17011:2;17006:3;17002:12;16995:19;;16654:366;;;:::o;17026:419::-;17192:4;17230:2;17219:9;17215:18;17207:26;;17279:9;17273:4;17269:20;17265:1;17254:9;17250:17;17243:47;17307:131;17433:4;17307:131;:::i;:::-;17299:139;;17026:419;;;:::o;17451:228::-;17591:34;17587:1;17579:6;17575:14;17568:58;17660:11;17655:2;17647:6;17643:15;17636:36;17451:228;:::o;17685:366::-;17827:3;17848:67;17912:2;17907:3;17848:67;:::i;:::-;17841:74;;17924:93;18013:3;17924:93;:::i;:::-;18042:2;18037:3;18033:12;18026:19;;17685:366;;;:::o;18057:419::-;18223:4;18261:2;18250:9;18246:18;18238:26;;18310:9;18304:4;18300:20;18296:1;18285:9;18281:17;18274:47;18338:131;18464:4;18338:131;:::i;:::-;18330:139;;18057:419;;;:::o;18482:236::-;18622:34;18618:1;18610:6;18606:14;18599:58;18691:19;18686:2;18678:6;18674:15;18667:44;18482:236;:::o;18724:366::-;18866:3;18887:67;18951:2;18946:3;18887:67;:::i;:::-;18880:74;;18963:93;19052:3;18963:93;:::i;:::-;19081:2;19076:3;19072:12;19065:19;;18724:366;;;:::o;19096:419::-;19262:4;19300:2;19289:9;19285:18;19277:26;;19349:9;19343:4;19339:20;19335:1;19324:9;19320:17;19313:47;19377:131;19503:4;19377:131;:::i;:::-;19369:139;;19096:419;;;:::o;19521:164::-;19661:16;19657:1;19649:6;19645:14;19638:40;19521:164;:::o;19691:366::-;19833:3;19854:67;19918:2;19913:3;19854:67;:::i;:::-;19847:74;;19930:93;20019:3;19930:93;:::i;:::-;20048:2;20043:3;20039:12;20032:19;;19691:366;;;:::o;20063:419::-;20229:4;20267:2;20256:9;20252:18;20244:26;;20316:9;20310:4;20306:20;20302:1;20291:9;20287:17;20280:47;20344:131;20470:4;20344:131;:::i;:::-;20336:139;;20063:419;;;:::o;20488:180::-;20628:32;20624:1;20616:6;20612:14;20605:56;20488:180;:::o;20674:366::-;20816:3;20837:67;20901:2;20896:3;20837:67;:::i;:::-;20830:74;;20913:93;21002:3;20913:93;:::i;:::-;21031:2;21026:3;21022:12;21015:19;;20674:366;;;:::o;21046:419::-;21212:4;21250:2;21239:9;21235:18;21227:26;;21299:9;21293:4;21289:20;21285:1;21274:9;21270:17;21263:47;21327:131;21453:4;21327:131;:::i;:::-;21319:139;;21046:419;;;:::o;21471:191::-;21511:3;21530:20;21548:1;21530:20;:::i;:::-;21525:25;;21564:20;21582:1;21564:20;:::i;:::-;21559:25;;21607:1;21604;21600:9;21593:16;;21628:3;21625:1;21622:10;21619:36;;;21635:18;;:::i;:::-;21619:36;21471:191;;;;:::o;21668:167::-;21808:19;21804:1;21796:6;21792:14;21785:43;21668:167;:::o;21841:366::-;21983:3;22004:67;22068:2;22063:3;22004:67;:::i;:::-;21997:74;;22080:93;22169:3;22080:93;:::i;:::-;22198:2;22193:3;22189:12;22182:19;;21841:366;;;:::o;22213:419::-;22379:4;22417:2;22406:9;22402:18;22394:26;;22466:9;22460:4;22456:20;22452:1;22441:9;22437:17;22430:47;22494:131;22620:4;22494:131;:::i;:::-;22486:139;;22213:419;;;:::o;22638:180::-;22686:77;22683:1;22676:88;22783:4;22780:1;22773:15;22807:4;22804:1;22797:15;22824:180;22872:77;22869:1;22862:88;22969:4;22966:1;22959:15;22993:4;22990:1;22983:15;23010:143;23067:5;23098:6;23092:13;23083:22;;23114:33;23141:5;23114:33;:::i;:::-;23010:143;;;;:::o;23159:351::-;23229:6;23278:2;23266:9;23257:7;23253:23;23249:32;23246:119;;;23284:79;;:::i;:::-;23246:119;23404:1;23429:64;23485:7;23476:6;23465:9;23461:22;23429:64;:::i;:::-;23419:74;;23375:128;23159:351;;;;:::o;23516:85::-;23561:7;23590:5;23579:16;;23516:85;;;:::o;23607:158::-;23665:9;23698:61;23716:42;23725:32;23751:5;23725:32;:::i;:::-;23716:42;:::i;:::-;23698:61;:::i;:::-;23685:74;;23607:158;;;:::o;23771:147::-;23866:45;23905:5;23866:45;:::i;:::-;23861:3;23854:58;23771:147;;:::o;23924:114::-;23991:6;24025:5;24019:12;24009:22;;23924:114;;;:::o;24044:184::-;24143:11;24177:6;24172:3;24165:19;24217:4;24212:3;24208:14;24193:29;;24044:184;;;;:::o;24234:132::-;24301:4;24324:3;24316:11;;24354:4;24349:3;24345:14;24337:22;;24234:132;;;:::o;24372:108::-;24449:24;24467:5;24449:24;:::i;:::-;24444:3;24437:37;24372:108;;:::o;24486:179::-;24555:10;24576:46;24618:3;24610:6;24576:46;:::i;:::-;24654:4;24649:3;24645:14;24631:28;;24486:179;;;;:::o;24671:113::-;24741:4;24773;24768:3;24764:14;24756:22;;24671:113;;;:::o;24820:732::-;24939:3;24968:54;25016:5;24968:54;:::i;:::-;25038:86;25117:6;25112:3;25038:86;:::i;:::-;25031:93;;25148:56;25198:5;25148:56;:::i;:::-;25227:7;25258:1;25243:284;25268:6;25265:1;25262:13;25243:284;;;25344:6;25338:13;25371:63;25430:3;25415:13;25371:63;:::i;:::-;25364:70;;25457:60;25510:6;25457:60;:::i;:::-;25447:70;;25303:224;25290:1;25287;25283:9;25278:14;;25243:284;;;25247:14;25543:3;25536:10;;24944:608;;;24820:732;;;;:::o;25558:831::-;25821:4;25859:3;25848:9;25844:19;25836:27;;25873:71;25941:1;25930:9;25926:17;25917:6;25873:71;:::i;:::-;25954:80;26030:2;26019:9;26015:18;26006:6;25954:80;:::i;:::-;26081:9;26075:4;26071:20;26066:2;26055:9;26051:18;26044:48;26109:108;26212:4;26203:6;26109:108;:::i;:::-;26101:116;;26227:72;26295:2;26284:9;26280:18;26271:6;26227:72;:::i;:::-;26309:73;26377:3;26366:9;26362:19;26353:6;26309:73;:::i;:::-;25558:831;;;;;;;;:::o;26395:807::-;26644:4;26682:3;26671:9;26667:19;26659:27;;26696:71;26764:1;26753:9;26749:17;26740:6;26696:71;:::i;:::-;26777:72;26845:2;26834:9;26830:18;26821:6;26777:72;:::i;:::-;26859:80;26935:2;26924:9;26920:18;26911:6;26859:80;:::i;:::-;26949;27025:2;27014:9;27010:18;27001:6;26949:80;:::i;:::-;27039:73;27107:3;27096:9;27092:19;27083:6;27039:73;:::i;:::-;27122;27190:3;27179:9;27175:19;27166:6;27122:73;:::i;:::-;26395:807;;;;;;;;;:::o;27208:143::-;27265:5;27296:6;27290:13;27281:22;;27312:33;27339:5;27312:33;:::i;:::-;27208:143;;;;:::o;27357:663::-;27445:6;27453;27461;27510:2;27498:9;27489:7;27485:23;27481:32;27478:119;;;27516:79;;:::i;:::-;27478:119;27636:1;27661:64;27717:7;27708:6;27697:9;27693:22;27661:64;:::i;:::-;27651:74;;27607:128;27774:2;27800:64;27856:7;27847:6;27836:9;27832:22;27800:64;:::i;:::-;27790:74;;27745:129;27913:2;27939:64;27995:7;27986:6;27975:9;27971:22;27939:64;:::i;:::-;27929:74;;27884:129;27357:663;;;;;:::o

Swarm Source

ipfs://8b08124ee3725d039642498ffcfcebecc943b147fd531d8b6ca9ffccaa4f9983

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.