ETH Price: $3,897.77 (-2.11%)

Contract

0x78381Fb23d171D29AA4109ad562F4e1B611C8360
 

Overview

ETH Balance

0.1 ETH

Eth Value

$389.78 (@ $3,897.77/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve180399902023-09-01 6:43:59465 days ago1693550639IN
0x78381Fb2...B611C8360
0 ETH0.0004838310.78492376
Approve180398472023-09-01 6:15:23465 days ago1693548923IN
0x78381Fb2...B611C8360
0 ETH0.0005117111.40636989
Approve178583642023-08-06 20:41:59490 days ago1691354519IN
0x78381Fb2...B611C8360
0 ETH0.0009776721.64820745
Approve178330952023-08-03 7:50:35494 days ago1691049035IN
0x78381Fb2...B611C8360
0 ETH0.0007757417.17704994
Approve178329492023-08-03 7:21:11494 days ago1691047271IN
0x78381Fb2...B611C8360
0 ETH0.000633214.00218135
Approve178321472023-08-03 4:40:23494 days ago1691037623IN
0x78381Fb2...B611C8360
0 ETH0.0006374614.20956275
Approve178317762023-08-03 3:25:47494 days ago1691033147IN
0x78381Fb2...B611C8360
0 ETH0.0008061417.85
Approve178283812023-08-02 16:03:47494 days ago1690992227IN
0x78381Fb2...B611C8360
0 ETH0.0020193944.71446764
Approve178281972023-08-02 15:26:59494 days ago1690990019IN
0x78381Fb2...B611C8360
0 ETH0.0019772543.78145309
Approve178281142023-08-02 15:10:23494 days ago1690989023IN
0x78381Fb2...B611C8360
0 ETH0.0010081540.29071902
Approve178280472023-08-02 14:56:59494 days ago1690988219IN
0x78381Fb2...B611C8360
0 ETH0.0007399329.67117988
Approve178279932023-08-02 14:45:35494 days ago1690987535IN
0x78381Fb2...B611C8360
0 ETH0.0013849730.83075975
Approve178279232023-08-02 14:31:23494 days ago1690986683IN
0x78381Fb2...B611C8360
0 ETH0.0019820643.88796325
Transfer178278912023-08-02 14:24:59494 days ago1690986299IN
0x78381Fb2...B611C8360
0 ETH0.0016994231.70619657
Approve178278832023-08-02 14:23:23494 days ago1690986203IN
0x78381Fb2...B611C8360
0 ETH0.0015415634.08873746
Approve178278782023-08-02 14:22:23494 days ago1690986143IN
0x78381Fb2...B611C8360
0 ETH0.0016267835.97339968
Approve178278742023-08-02 14:21:35494 days ago1690986095IN
0x78381Fb2...B611C8360
0 ETH0.001819340.2306016
Approve178278552023-08-02 14:17:35494 days ago1690985855IN
0x78381Fb2...B611C8360
0 ETH0.002016644.59338837
Enable Trading178278522023-08-02 14:16:59494 days ago1690985819IN
0x78381Fb2...B611C8360
0 ETH0.0022002142
Transfer178278172023-08-02 14:09:47494 days ago1690985387IN
0x78381Fb2...B611C8360
0 ETH0.0010526746.43672592
Approve178277732023-08-02 14:00:59495 days ago1690984859IN
0x78381Fb2...B611C8360
0 ETH0.0019518243.16096275
Set Presale Addr...178276112023-08-02 13:28:23495 days ago1690982903IN
0x78381Fb2...B611C8360
0 ETH0.0022098423.72351275
Transfer178272652023-08-02 12:18:47495 days ago1690978727IN
0x78381Fb2...B611C8360
0.1 ETH0.0005031323.89622879
Approve178092282023-07-30 23:50:47497 days ago1690761047IN
0x78381Fb2...B611C8360
0 ETH0.0008086318.00568369
Set No Fee Walle...178092192023-07-30 23:48:59497 days ago1690760939IN
0x78381Fb2...B611C8360
0 ETH0.000841417.98136847
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Xeth

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: No
// Website: https://xeth.vip

// Twitter: https://twitter.com/xethvip

// Telegram: https://t.me/xethvip

// pragma solidity = 0.8.19;
pragma solidity >=0.7.0 <0.9.0;
//--- Context ---//
abstract contract Context {
    constructor() {}

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

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

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IFactoryV2 {
    event PairCreated(
        address indexed token0,
        address indexed token1,
        address lpPair,
        uint
    );

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

    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);

    function getReserves()
        external
        view
        returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);

    function sync() external;
}

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

    function WETH() external pure returns (address);

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

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

    function swapExactETHForTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable returns (uint[] memory amounts);

    function getAmountsOut(
        uint amountIn,
        address[] calldata path
    ) external view returns (uint[] memory amounts);

    function getAmountsIn(
        uint amountOut,
        address[] calldata path
    ) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

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

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

    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

//--- Interface for ERC20 ---//
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
    );
}

//--- Contract v2 ---//
contract Xeth is Context, Ownable, IERC20 {
    function totalSupply() external view override returns (uint256) {
        if (_totalSupply == 0) {
            revert();
        }
        return _totalSupply - balanceOf(address(DEAD));
    }

    function decimals() external pure override returns (uint8) {
        if (_totalSupply == 0) {
            revert();
        }
        return _decimals;
    }

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

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

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

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

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

    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _noFee;
    mapping(address => bool) private liquidityAdd;
    mapping(address => bool) private isLpPair;
    mapping(address => bool) private isPresaleAddress;
    mapping(address => uint256) private balance;

    uint256 public constant _totalSupply = 1_000_000_000 * 10 ** 8;
    // uint256 public constant swapThreshold = _totalSupply / 2_500;
    uint256 public constant swapThreshold = 1; // change into 1 so there will be no more threshold for swap control.
    uint256 public  buyfee = 10; // constant to normal variable so we can able to change
    uint256 public  sellfee = 10; // constant to normal variable so we can able to change
    uint256 public constant transferfee = 0;
    uint256 public constant botFee = 890;
    uint256 private _deadline;
    uint256 public constant fee_denominator = 1_000;
    bool private canSwapFees = false;
    address payable private marketingAddress =
        payable(0x986aC081Ae218978C1ca9871eCadd2063969Cdbe);

    IRouter02 public swapRouter;
    string private constant _name = "Xeth";
    string private constant _symbol = "XE";
    uint8 private constant _decimals = 8;
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private AntiMEV = false;
    bool private inSwap;

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

    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeThreshold(uint256 newThreshold);
    event _changeWallets(address marketing);

    constructor() {
        _noFee[msg.sender] = true;

       if (
            block.chainid == 1 || block.chainid == 4 || block.chainid == 3
        ) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 5) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else {
            // revert("Chain not valid");
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        }
        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IFactoryV2(swapRouter.factory()).createPair(
            swapRouter.WETH(),
            address(this)
        );
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);
    }

    receive() external payable {}

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

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

    function _approve(
        address sender,
        address spender,
        uint256 amount
    ) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }

    function isNoFeeWallet(address account) external view returns (bool) {
        return _noFee[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        _noFee[account] = enabled;
    }
    // new function added to control buy fee
    function setBuyFee(uint256 fee) public onlyOwner {
        require(fee>=1 && fee<=10, "fee should be in between 1 to 10");
        buyfee=fee;
    }
     // new function added to control sell fee
     function setSellFee(uint256 fee) public onlyOwner {
        require(fee>=1 && fee<=10, "fee should be in between 1 to 10");
        sellfee=fee;
    }

    function isLimitedAddress(
        address ins,
        address out
    ) internal view returns (bool) {
        bool isLimited = ins != owner() &&
            out != owner() &&
            msg.sender != owner() &&
            !liquidityAdd[ins] &&
            !liquidityAdd[out] &&
            out != DEAD &&
            out != address(0) &&
            out != address(this);
        return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) {
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    }

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees &&
            !isPresaleAddress[ins] &&
            !isPresaleAddress[out];

        return canswap;
    }

    function changeLpPair(address newPair) external onlyOwner {
        isLpPair[newPair] = true;
        emit _changePair(newPair);
    }

    function toggleCanSwapFees(bool yesno) external onlyOwner {
        require(canSwapFees != yesno, "Bool is the same");
        canSwapFees = yesno;
        emit _toggleCanSwapFees(yesno);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        bool launchtax = isLimitedAddress(from, to) &&
            isTradingEnabled &&
            block.number <= _deadline;

        if (isLimitedAddress(from, to)) {
            require(isTradingEnabled, "Trading is not enabled");
        }

        if (is_sell(from, to) && !inSwap && canSwap(from, to)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance >= swapThreshold) {
                internalSwap(contractTokenBalance);
            }
        }

        if (_noFee[from] || _noFee[to]) {
            takeFee = false;
        }

        balance[from] -= amount;
        uint256 amountAfterFee = (takeFee)
            ? takeTaxes(
                from,
                is_buy(from, to),
                is_sell(from, to),
                amount,
                launchtax
            )
            : amount;
        balance[to] += amountAfterFee;
        emit Transfer(from, to, amountAfterFee);

        return true;
    }

    function changeWallets(address marketing) external onlyOwner {
        marketingAddress = payable(marketing);
        emit _changeWallets(marketing);
    }

    function takeTaxes(
        address from,
        bool isbuy,
        bool issell,
        uint256 amount,
        bool _launchtax
    ) internal returns (uint256) {
        uint256 fee;
        if (isbuy) fee = buyfee;
        else if (issell) fee = sellfee;
        else fee = transferfee;
        if (_launchtax) fee = botFee;
        if (fee == 0) return amount;
        uint256 feeAmount = (amount * fee) / fee_denominator;
        if (feeAmount > 0) {
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (
            _allowances[address(this)][address(swapRouter)] != type(uint256).max
        ) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try
            swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
                contractTokenBalance,
                0,
                path,
                address(this),
                block.timestamp
            )
        {} catch {
            return;
        }
        bool success;

        if (address(this).balance > 0) {
            (success, ) = marketingAddress.call{
                value: address(this).balance,
                gas: 35000
            }("");
        }
    }

    function setPresaleAddress(address presale, bool yesno) external onlyOwner {
        require(isPresaleAddress[presale] != yesno, "Same bool");
        isPresaleAddress[presale] = yesno;
        _noFee[presale] = yesno;
        liquidityAdd[presale] = yesno;
        emit _setPresaleAddress(presale, yesno);
    }

    function enableTrading(uint256 deadline) external onlyOwner {
        require(deadline < 5, "Deadline too high");
        require(!isTradingEnabled, "Trading already enabled");
        isTradingEnabled = true;
        _deadline = block.number + deadline;
        emit _enableTrading();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketing","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"botFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"changeLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presale","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600755600a6008556000600a60006101000a81548160ff02191690831515021790555073986ac081ae218978c1ca9871ecadd2063969cdbe600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60146101000a81548160ff0219169083151502179055506000600c60156101000a81548160ff021916908315150217905550348015620000c157600080fd5b50620000e2620000d66200069960201b60201c565b620006a160201b60201c565b6001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060014614806200014a5750600446145b80620001565750600346145b15620001b757737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000272565b600546036200021b57737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000271565b737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555067016345785d8a0000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200037e9190620008ea565b60405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041a919062000971565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c9919062000971565b306040518363ffffffff1660e01b8152600401620004e9929190620009b4565b6020604051808303816000875af115801562000509573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200052f919062000971565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200063e33600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200076560201b60201c565b6200069330600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200076560201b60201c565b62000a64565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620007d7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007ce9062000a42565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008409062000a42565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6000819050919050565b620008e481620008cf565b82525050565b6000602082019050620009016000830184620008d9565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000939826200090c565b9050919050565b6200094b816200092c565b81146200095757600080fd5b50565b6000815190506200096b8162000940565b92915050565b6000602082840312156200098a576200098962000907565b5b60006200099a848285016200095a565b91505092915050565b620009ae816200092c565b82525050565b6000604082019050620009cb6000830185620009a3565b620009da6020830184620009a3565b9392505050565b600082825260208201905092915050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600062000a2a601383620009e1565b915062000a3782620009f2565b602082019050919050565b6000602082019050818103600083015262000a5d8162000a1b565b9050919050565b6134fd8062000a746000396000f3fe6080604052600436106101f25760003560e01c806354de7bee1161010d578063a9059cbb116100a0578063d5914dc01161006f578063d5914dc0146106ea578063dc9d75b014610713578063dd62ed3e1461073e578063e9451f5f1461077b578063f2fde38b146107a6576101f9565b8063a9059cbb1461062e578063bf8623911461066b578063c31c9c0714610696578063c4ab12b5146106c1576101f9565b8063893d20e8116100dc578063893d20e8146105845780638b4cee08146105af5780638da5cb5b146105d857806395d89b4114610603576101f9565b806354de7bee146104dc57806370a0823114610507578063715018a61461054457806382aa7c681461055b576101f9565b806318160ddd11610185578063313ce56711610154578063313ce567146104325780633cd17c961461045d5780633eaaf86b14610486578063452ed4f1146104b1576101f9565b806318160ddd146103625780631dc369451461038d57806323b872dd146103b857806327889862146103f5576101f9565b8063095ea7b3116101c1578063095ea7b3146102aa5780630cc835a3146102e75780630faba55414610310578063111a60b014610339576101f9565b806303fd2a45146101fe5780630445b66714610229578063064a59d01461025457806306fdde031461027f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107cf565b6040516102209190612779565b60405180910390f35b34801561023557600080fd5b5061023e6107d5565b60405161024b91906127ad565b60405180910390f35b34801561026057600080fd5b506102696107da565b60405161027691906127e3565b60405180910390f35b34801561028b57600080fd5b506102946107ed565b6040516102a1919061288e565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc919061290d565b61082a565b6040516102de91906127e3565b60405180910390f35b3480156102f357600080fd5b5061030e6004803603810190610309919061294d565b610841565b005b34801561031c57600080fd5b50610337600480360381019061033291906129a6565b610918565b005b34801561034557600080fd5b50610360600480360381019061035b91906129e6565b6109ef565b005b34801561036e57600080fd5b50610377610b14565b60405161038491906127ad565b60405180910390f35b34801561039957600080fd5b506103a2610b4d565b6040516103af91906127ad565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612a13565b610b53565b6040516103ec91906127e3565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612a66565b610ca0565b60405161042991906127e3565b60405180910390f35b34801561043e57600080fd5b50610447610cf6565b6040516104549190612aaf565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f91906129a6565b610d13565b005b34801561049257600080fd5b5061049b610f63565b6040516104a891906127ad565b60405180910390f35b3480156104bd57600080fd5b506104c6610f6f565b6040516104d39190612779565b60405180910390f35b3480156104e857600080fd5b506104f1610f95565b6040516104fe91906127ad565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190612a66565b610f9a565b60405161053b91906127ad565b60405180910390f35b34801561055057600080fd5b50610559610fe3565b005b34801561056757600080fd5b50610582600480360381019061057d919061294d565b61106b565b005b34801561059057600080fd5b506105996111d6565b6040516105a69190612779565b60405180910390f35b3480156105bb57600080fd5b506105d660048036038101906105d1919061294d565b6111e5565b005b3480156105e457600080fd5b506105ed6112bc565b6040516105fa9190612779565b60405180910390f35b34801561060f57600080fd5b506106186112e5565b604051610625919061288e565b60405180910390f35b34801561063a57600080fd5b506106556004803603810190610650919061290d565b611322565b60405161066291906127e3565b60405180910390f35b34801561067757600080fd5b5061068061133a565b60405161068d91906127ad565b60405180910390f35b3480156106a257600080fd5b506106ab611340565b6040516106b89190612b29565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190612a66565b611366565b005b3480156106f657600080fd5b50610711600480360381019061070c9190612a66565b61145d565b005b34801561071f57600080fd5b5061072861156b565b60405161073591906127ad565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190612b44565b611571565b60405161077291906127ad565b60405180910390f35b34801561078757600080fd5b506107906115f8565b60405161079d91906127ad565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190612a66565b6115fe565b005b61dead81565b600181565b600c60149054906101000a900460ff1681565b60606040518060400160405280600481526020017f5865746800000000000000000000000000000000000000000000000000000000815250905090565b60006108373384846116f5565b6001905092915050565b610849611859565b73ffffffffffffffffffffffffffffffffffffffff166108676112bc565b73ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b490612bd0565b60405180910390fd5b600181101580156108cf5750600a8111155b61090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090590612c3c565b60405180910390fd5b8060078190555050565b610920611859565b73ffffffffffffffffffffffffffffffffffffffff1661093e6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098b90612bd0565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6109f7611859565b73ffffffffffffffffffffffffffffffffffffffff16610a156112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290612bd0565b60405180910390fd5b801515600a60009054906101000a900460ff16151503610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790612ca8565b60405180910390fd5b80600a60006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e881604051610b0991906127e3565b60405180910390a150565b60008067016345785d8a000003610b2a57600080fd5b610b3561dead610f9a565b67016345785d8a0000610b489190612cf7565b905090565b60075481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8c5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c849190612cf7565b925050819055505b610c97848484611861565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008067016345785d8a000003610d0c57600080fd5b6008905090565b610d1b611859565b73ffffffffffffffffffffffffffffffffffffffff16610d396112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8690612bd0565b60405180910390fd5b801515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890612d77565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610f57929190612d97565b60405180910390a15050565b67016345785d8a000081565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610feb611859565b73ffffffffffffffffffffffffffffffffffffffff166110096112bc565b73ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612bd0565b60405180910390fd5b6110696000611c70565b565b611073611859565b73ffffffffffffffffffffffffffffffffffffffff166110916112bc565b73ffffffffffffffffffffffffffffffffffffffff16146110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90612bd0565b60405180910390fd5b6005811061112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190612e0c565b60405180910390fd5b600c60149054906101000a900460ff161561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612e78565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555080436111a19190612e98565b6009819055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a150565b60006111e06112bc565b905090565b6111ed611859565b73ffffffffffffffffffffffffffffffffffffffff1661120b6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125890612bd0565b60405180910390fd5b600181101580156112735750600a8111155b6112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612c3c565b60405180910390fd5b8060088190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f5845000000000000000000000000000000000000000000000000000000000000815250905090565b600061132f338484611861565b506001905092915050565b61037a81565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61136e611859565b73ffffffffffffffffffffffffffffffffffffffff1661138c6112bc565b73ffffffffffffffffffffffffffffffffffffffff16146113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612bd0565b60405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe816040516114529190612779565b60405180910390a150565b611465611859565b73ffffffffffffffffffffffffffffffffffffffff166114836112bc565b73ffffffffffffffffffffffffffffffffffffffff16146114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612bd0565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f7816040516115609190612779565b60405180910390a150565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611606611859565b73ffffffffffffffffffffffffffffffffffffffff166116246112bc565b73ffffffffffffffffffffffffffffffffffffffff161461167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190612bd0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090612f3e565b60405180910390fd5b6116f281611c70565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90612faa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90612faa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce9061303c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d906130ce565b60405180910390fd5b60008311611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613160565b60405180910390fd5b60006119958686611d34565b80156119ad5750600c60149054906101000a900460ff165b80156119bb57506009544311155b90506119c78686611d34565b15611a1c57600c60149054906101000a900460ff16611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a12906131cc565b60405180910390fd5b5b611a268686611f4f565b8015611a3f5750600c60169054906101000a900460ff16155b8015611a515750611a508686612001565b5b15611a77576000611a6130610f9a565b905060018110611a7557611a74816120cc565b5b505b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b185750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b2257600091505b83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b719190612cf7565b92505081905550600082611b855784611ba5565b611ba487611b938989612544565b611b9d8a8a611f4f565b88866125f6565b5b905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf69190612e98565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5a91906127ad565b60405180910390a3600193505050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611d3f6112bc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611dad5750611d7d6112bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dec5750611dbc6112bc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e425750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e985750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ed2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f0b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ff55750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600a60009054906101000a900460ff16801561206a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c05750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612104576121036131ec565b5b6040519080825280602002602001820160405280156121325781602001602082028036833780820191505090505b509050308160008151811061214a5761214961321b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612215919061325f565b816001815181106122295761222861321b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146123ec577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612450959493929190613385565b600060405180830381600087803b15801561246a57600080fd5b505af192505050801561247b575060015b6124855750612526565b60008047111561252357600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476188b8906040516124d990613410565b600060405180830381858888f193505050503d8060008114612517576040519150601f19603f3d011682016040523d82523d6000602084013e61251c565b606091505b5050809150505b50505b6000600c60166101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125ea5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080851561260957600754905061261f565b841561261957600854905061261e565b600090505b5b821561262b5761037a90505b6000810361263c578391505061272f565b60006103e8828661264d9190613425565b6126579190613496565b9050600081111561271e5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126b19190612e98565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161271591906127ad565b60405180910390a35b808561272a9190612cf7565b925050505b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061276382612738565b9050919050565b61277381612758565b82525050565b600060208201905061278e600083018461276a565b92915050565b6000819050919050565b6127a781612794565b82525050565b60006020820190506127c2600083018461279e565b92915050565b60008115159050919050565b6127dd816127c8565b82525050565b60006020820190506127f860008301846127d4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561283857808201518184015260208101905061281d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612860826127fe565b61286a8185612809565b935061287a81856020860161281a565b61288381612844565b840191505092915050565b600060208201905081810360008301526128a88184612855565b905092915050565b600080fd5b6128be81612758565b81146128c957600080fd5b50565b6000813590506128db816128b5565b92915050565b6128ea81612794565b81146128f557600080fd5b50565b600081359050612907816128e1565b92915050565b60008060408385031215612924576129236128b0565b5b6000612932858286016128cc565b9250506020612943858286016128f8565b9150509250929050565b600060208284031215612963576129626128b0565b5b6000612971848285016128f8565b91505092915050565b612983816127c8565b811461298e57600080fd5b50565b6000813590506129a08161297a565b92915050565b600080604083850312156129bd576129bc6128b0565b5b60006129cb858286016128cc565b92505060206129dc85828601612991565b9150509250929050565b6000602082840312156129fc576129fb6128b0565b5b6000612a0a84828501612991565b91505092915050565b600080600060608486031215612a2c57612a2b6128b0565b5b6000612a3a868287016128cc565b9350506020612a4b868287016128cc565b9250506040612a5c868287016128f8565b9150509250925092565b600060208284031215612a7c57612a7b6128b0565b5b6000612a8a848285016128cc565b91505092915050565b600060ff82169050919050565b612aa981612a93565b82525050565b6000602082019050612ac46000830184612aa0565b92915050565b6000819050919050565b6000612aef612aea612ae584612738565b612aca565b612738565b9050919050565b6000612b0182612ad4565b9050919050565b6000612b1382612af6565b9050919050565b612b2381612b08565b82525050565b6000602082019050612b3e6000830184612b1a565b92915050565b60008060408385031215612b5b57612b5a6128b0565b5b6000612b69858286016128cc565b9250506020612b7a858286016128cc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bba602083612809565b9150612bc582612b84565b602082019050919050565b60006020820190508181036000830152612be981612bad565b9050919050565b7f6665652073686f756c6420626520696e206265747765656e203120746f203130600082015250565b6000612c26602083612809565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b6000612c92601083612809565b9150612c9d82612c5c565b602082019050919050565b60006020820190508181036000830152612cc181612c85565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d0282612794565b9150612d0d83612794565b9250828203905081811115612d2557612d24612cc8565b5b92915050565b7f53616d6520626f6f6c0000000000000000000000000000000000000000000000600082015250565b6000612d61600983612809565b9150612d6c82612d2b565b602082019050919050565b60006020820190508181036000830152612d9081612d54565b9050919050565b6000604082019050612dac600083018561276a565b612db960208301846127d4565b9392505050565b7f446561646c696e6520746f6f2068696768000000000000000000000000000000600082015250565b6000612df6601183612809565b9150612e0182612dc0565b602082019050919050565b60006020820190508181036000830152612e2581612de9565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612e62601783612809565b9150612e6d82612e2c565b602082019050919050565b60006020820190508181036000830152612e9181612e55565b9050919050565b6000612ea382612794565b9150612eae83612794565b9250828201905080821115612ec657612ec5612cc8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f28602683612809565b9150612f3382612ecc565b604082019050919050565b60006020820190508181036000830152612f5781612f1b565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612f94601383612809565b9150612f9f82612f5e565b602082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613026602383612809565b915061303182612fca565b604082019050919050565b6000602082019050818103600083015261305581613019565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130b8602583612809565b91506130c38261305c565b604082019050919050565b600060208201905081810360008301526130e7816130ab565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061314a602983612809565b9150613155826130ee565b604082019050919050565b600060208201905081810360008301526131798161313d565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b60006131b6601683612809565b91506131c182613180565b602082019050919050565b600060208201905081810360008301526131e5816131a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613259816128b5565b92915050565b600060208284031215613275576132746128b0565b5b60006132838482850161324a565b91505092915050565b6000819050919050565b60006132b16132ac6132a78461328c565b612aca565b612794565b9050919050565b6132c181613296565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132fc81612758565b82525050565b600061330e83836132f3565b60208301905092915050565b6000602082019050919050565b6000613332826132c7565b61333c81856132d2565b9350613347836132e3565b8060005b8381101561337857815161335f8882613302565b975061336a8361331a565b92505060018101905061334b565b5085935050505092915050565b600060a08201905061339a600083018861279e565b6133a760208301876132b8565b81810360408301526133b98186613327565b90506133c8606083018561276a565b6133d5608083018461279e565b9695505050505050565b600081905092915050565b50565b60006133fa6000836133df565b9150613405826133ea565b600082019050919050565b600061341b826133ed565b9150819050919050565b600061343082612794565b915061343b83612794565b925082820261344981612794565b915082820484148315176134605761345f612cc8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134a182612794565b91506134ac83612794565b9250826134bc576134bb613467565b5b82820490509291505056fea26469706673582212204380dcc5dbc7fd35b24cb32e5b00654d7e6e3f36b2ff057da592894f9485312d64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c806354de7bee1161010d578063a9059cbb116100a0578063d5914dc01161006f578063d5914dc0146106ea578063dc9d75b014610713578063dd62ed3e1461073e578063e9451f5f1461077b578063f2fde38b146107a6576101f9565b8063a9059cbb1461062e578063bf8623911461066b578063c31c9c0714610696578063c4ab12b5146106c1576101f9565b8063893d20e8116100dc578063893d20e8146105845780638b4cee08146105af5780638da5cb5b146105d857806395d89b4114610603576101f9565b806354de7bee146104dc57806370a0823114610507578063715018a61461054457806382aa7c681461055b576101f9565b806318160ddd11610185578063313ce56711610154578063313ce567146104325780633cd17c961461045d5780633eaaf86b14610486578063452ed4f1146104b1576101f9565b806318160ddd146103625780631dc369451461038d57806323b872dd146103b857806327889862146103f5576101f9565b8063095ea7b3116101c1578063095ea7b3146102aa5780630cc835a3146102e75780630faba55414610310578063111a60b014610339576101f9565b806303fd2a45146101fe5780630445b66714610229578063064a59d01461025457806306fdde031461027f576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b506102136107cf565b6040516102209190612779565b60405180910390f35b34801561023557600080fd5b5061023e6107d5565b60405161024b91906127ad565b60405180910390f35b34801561026057600080fd5b506102696107da565b60405161027691906127e3565b60405180910390f35b34801561028b57600080fd5b506102946107ed565b6040516102a1919061288e565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc919061290d565b61082a565b6040516102de91906127e3565b60405180910390f35b3480156102f357600080fd5b5061030e6004803603810190610309919061294d565b610841565b005b34801561031c57600080fd5b50610337600480360381019061033291906129a6565b610918565b005b34801561034557600080fd5b50610360600480360381019061035b91906129e6565b6109ef565b005b34801561036e57600080fd5b50610377610b14565b60405161038491906127ad565b60405180910390f35b34801561039957600080fd5b506103a2610b4d565b6040516103af91906127ad565b60405180910390f35b3480156103c457600080fd5b506103df60048036038101906103da9190612a13565b610b53565b6040516103ec91906127e3565b60405180910390f35b34801561040157600080fd5b5061041c60048036038101906104179190612a66565b610ca0565b60405161042991906127e3565b60405180910390f35b34801561043e57600080fd5b50610447610cf6565b6040516104549190612aaf565b60405180910390f35b34801561046957600080fd5b50610484600480360381019061047f91906129a6565b610d13565b005b34801561049257600080fd5b5061049b610f63565b6040516104a891906127ad565b60405180910390f35b3480156104bd57600080fd5b506104c6610f6f565b6040516104d39190612779565b60405180910390f35b3480156104e857600080fd5b506104f1610f95565b6040516104fe91906127ad565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190612a66565b610f9a565b60405161053b91906127ad565b60405180910390f35b34801561055057600080fd5b50610559610fe3565b005b34801561056757600080fd5b50610582600480360381019061057d919061294d565b61106b565b005b34801561059057600080fd5b506105996111d6565b6040516105a69190612779565b60405180910390f35b3480156105bb57600080fd5b506105d660048036038101906105d1919061294d565b6111e5565b005b3480156105e457600080fd5b506105ed6112bc565b6040516105fa9190612779565b60405180910390f35b34801561060f57600080fd5b506106186112e5565b604051610625919061288e565b60405180910390f35b34801561063a57600080fd5b506106556004803603810190610650919061290d565b611322565b60405161066291906127e3565b60405180910390f35b34801561067757600080fd5b5061068061133a565b60405161068d91906127ad565b60405180910390f35b3480156106a257600080fd5b506106ab611340565b6040516106b89190612b29565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190612a66565b611366565b005b3480156106f657600080fd5b50610711600480360381019061070c9190612a66565b61145d565b005b34801561071f57600080fd5b5061072861156b565b60405161073591906127ad565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190612b44565b611571565b60405161077291906127ad565b60405180910390f35b34801561078757600080fd5b506107906115f8565b60405161079d91906127ad565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c89190612a66565b6115fe565b005b61dead81565b600181565b600c60149054906101000a900460ff1681565b60606040518060400160405280600481526020017f5865746800000000000000000000000000000000000000000000000000000000815250905090565b60006108373384846116f5565b6001905092915050565b610849611859565b73ffffffffffffffffffffffffffffffffffffffff166108676112bc565b73ffffffffffffffffffffffffffffffffffffffff16146108bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b490612bd0565b60405180910390fd5b600181101580156108cf5750600a8111155b61090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090590612c3c565b60405180910390fd5b8060078190555050565b610920611859565b73ffffffffffffffffffffffffffffffffffffffff1661093e6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098b90612bd0565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6109f7611859565b73ffffffffffffffffffffffffffffffffffffffff16610a156112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290612bd0565b60405180910390fd5b801515600a60009054906101000a900460ff16151503610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab790612ca8565b60405180910390fd5b80600a60006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e881604051610b0991906127e3565b60405180910390a150565b60008067016345785d8a000003610b2a57600080fd5b610b3561dead610f9a565b67016345785d8a0000610b489190612cf7565b905090565b60075481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c8c5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c849190612cf7565b925050819055505b610c97848484611861565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008067016345785d8a000003610d0c57600080fd5b6008905090565b610d1b611859565b73ffffffffffffffffffffffffffffffffffffffff16610d396112bc565b73ffffffffffffffffffffffffffffffffffffffff1614610d8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8690612bd0565b60405180910390fd5b801515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890612d77565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610f57929190612d97565b60405180910390a15050565b67016345785d8a000081565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610feb611859565b73ffffffffffffffffffffffffffffffffffffffff166110096112bc565b73ffffffffffffffffffffffffffffffffffffffff161461105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612bd0565b60405180910390fd5b6110696000611c70565b565b611073611859565b73ffffffffffffffffffffffffffffffffffffffff166110916112bc565b73ffffffffffffffffffffffffffffffffffffffff16146110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de90612bd0565b60405180910390fd5b6005811061112a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112190612e0c565b60405180910390fd5b600c60149054906101000a900460ff161561117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117190612e78565b60405180910390fd5b6001600c60146101000a81548160ff02191690831515021790555080436111a19190612e98565b6009819055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a150565b60006111e06112bc565b905090565b6111ed611859565b73ffffffffffffffffffffffffffffffffffffffff1661120b6112bc565b73ffffffffffffffffffffffffffffffffffffffff1614611261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125890612bd0565b60405180910390fd5b600181101580156112735750600a8111155b6112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990612c3c565b60405180910390fd5b8060088190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600281526020017f5845000000000000000000000000000000000000000000000000000000000000815250905090565b600061132f338484611861565b506001905092915050565b61037a81565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61136e611859565b73ffffffffffffffffffffffffffffffffffffffff1661138c6112bc565b73ffffffffffffffffffffffffffffffffffffffff16146113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d990612bd0565b60405180910390fd5b80600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe816040516114529190612779565b60405180910390a150565b611465611859565b73ffffffffffffffffffffffffffffffffffffffff166114836112bc565b73ffffffffffffffffffffffffffffffffffffffff16146114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612bd0565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f7816040516115609190612779565b60405180910390a150565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b611606611859565b73ffffffffffffffffffffffffffffffffffffffff166116246112bc565b73ffffffffffffffffffffffffffffffffffffffff161461167a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167190612bd0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e090612f3e565b60405180910390fd5b6116f281611c70565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611764576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175b90612faa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ca90612faa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce9061303c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d906130ce565b60405180910390fd5b60008311611989576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198090613160565b60405180910390fd5b60006119958686611d34565b80156119ad5750600c60149054906101000a900460ff165b80156119bb57506009544311155b90506119c78686611d34565b15611a1c57600c60149054906101000a900460ff16611a1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a12906131cc565b60405180910390fd5b5b611a268686611f4f565b8015611a3f5750600c60169054906101000a900460ff16155b8015611a515750611a508686612001565b5b15611a77576000611a6130610f9a565b905060018110611a7557611a74816120cc565b5b505b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b185750600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b2257600091505b83600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b719190612cf7565b92505081905550600082611b855784611ba5565b611ba487611b938989612544565b611b9d8a8a611f4f565b88866125f6565b5b905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf69190612e98565b925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5a91906127ad565b60405180910390a3600193505050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611d3f6112bc565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611dad5750611d7d6112bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dec5750611dbc6112bc565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e425750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611e985750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ed2575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f0b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611ff55750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600a60009054906101000a900460ff16801561206a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120c05750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612104576121036131ec565b5b6040519080825280602002602001820160405280156121325781602001602082028036833780820191505090505b509050308160008151811061214a5761214961321b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612215919061325f565b816001815181106122295761222861321b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146123ec577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612450959493929190613385565b600060405180830381600087803b15801561246a57600080fd5b505af192505050801561247b575060015b6124855750612526565b60008047111561252357600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476188b8906040516124d990613410565b600060405180830381858888f193505050503d8060008114612517576040519150601f19603f3d011682016040523d82523d6000602084013e61251c565b606091505b5050809150505b50505b6000600c60166101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125ea5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080851561260957600754905061261f565b841561261957600854905061261e565b600090505b5b821561262b5761037a90505b6000810361263c578391505061272f565b60006103e8828661264d9190613425565b6126579190613496565b9050600081111561271e5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126b19190612e98565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161271591906127ad565b60405180910390a35b808561272a9190612cf7565b925050505b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061276382612738565b9050919050565b61277381612758565b82525050565b600060208201905061278e600083018461276a565b92915050565b6000819050919050565b6127a781612794565b82525050565b60006020820190506127c2600083018461279e565b92915050565b60008115159050919050565b6127dd816127c8565b82525050565b60006020820190506127f860008301846127d4565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561283857808201518184015260208101905061281d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612860826127fe565b61286a8185612809565b935061287a81856020860161281a565b61288381612844565b840191505092915050565b600060208201905081810360008301526128a88184612855565b905092915050565b600080fd5b6128be81612758565b81146128c957600080fd5b50565b6000813590506128db816128b5565b92915050565b6128ea81612794565b81146128f557600080fd5b50565b600081359050612907816128e1565b92915050565b60008060408385031215612924576129236128b0565b5b6000612932858286016128cc565b9250506020612943858286016128f8565b9150509250929050565b600060208284031215612963576129626128b0565b5b6000612971848285016128f8565b91505092915050565b612983816127c8565b811461298e57600080fd5b50565b6000813590506129a08161297a565b92915050565b600080604083850312156129bd576129bc6128b0565b5b60006129cb858286016128cc565b92505060206129dc85828601612991565b9150509250929050565b6000602082840312156129fc576129fb6128b0565b5b6000612a0a84828501612991565b91505092915050565b600080600060608486031215612a2c57612a2b6128b0565b5b6000612a3a868287016128cc565b9350506020612a4b868287016128cc565b9250506040612a5c868287016128f8565b9150509250925092565b600060208284031215612a7c57612a7b6128b0565b5b6000612a8a848285016128cc565b91505092915050565b600060ff82169050919050565b612aa981612a93565b82525050565b6000602082019050612ac46000830184612aa0565b92915050565b6000819050919050565b6000612aef612aea612ae584612738565b612aca565b612738565b9050919050565b6000612b0182612ad4565b9050919050565b6000612b1382612af6565b9050919050565b612b2381612b08565b82525050565b6000602082019050612b3e6000830184612b1a565b92915050565b60008060408385031215612b5b57612b5a6128b0565b5b6000612b69858286016128cc565b9250506020612b7a858286016128cc565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bba602083612809565b9150612bc582612b84565b602082019050919050565b60006020820190508181036000830152612be981612bad565b9050919050565b7f6665652073686f756c6420626520696e206265747765656e203120746f203130600082015250565b6000612c26602083612809565b9150612c3182612bf0565b602082019050919050565b60006020820190508181036000830152612c5581612c19565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b6000612c92601083612809565b9150612c9d82612c5c565b602082019050919050565b60006020820190508181036000830152612cc181612c85565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d0282612794565b9150612d0d83612794565b9250828203905081811115612d2557612d24612cc8565b5b92915050565b7f53616d6520626f6f6c0000000000000000000000000000000000000000000000600082015250565b6000612d61600983612809565b9150612d6c82612d2b565b602082019050919050565b60006020820190508181036000830152612d9081612d54565b9050919050565b6000604082019050612dac600083018561276a565b612db960208301846127d4565b9392505050565b7f446561646c696e6520746f6f2068696768000000000000000000000000000000600082015250565b6000612df6601183612809565b9150612e0182612dc0565b602082019050919050565b60006020820190508181036000830152612e2581612de9565b9050919050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612e62601783612809565b9150612e6d82612e2c565b602082019050919050565b60006020820190508181036000830152612e9181612e55565b9050919050565b6000612ea382612794565b9150612eae83612794565b9250828201905080821115612ec657612ec5612cc8565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f28602683612809565b9150612f3382612ecc565b604082019050919050565b60006020820190508181036000830152612f5781612f1b565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612f94601383612809565b9150612f9f82612f5e565b602082019050919050565b60006020820190508181036000830152612fc381612f87565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613026602383612809565b915061303182612fca565b604082019050919050565b6000602082019050818103600083015261305581613019565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130b8602583612809565b91506130c38261305c565b604082019050919050565b600060208201905081810360008301526130e7816130ab565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061314a602983612809565b9150613155826130ee565b604082019050919050565b600060208201905081810360008301526131798161313d565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b60006131b6601683612809565b91506131c182613180565b602082019050919050565b600060208201905081810360008301526131e5816131a9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613259816128b5565b92915050565b600060208284031215613275576132746128b0565b5b60006132838482850161324a565b91505092915050565b6000819050919050565b60006132b16132ac6132a78461328c565b612aca565b612794565b9050919050565b6132c181613296565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132fc81612758565b82525050565b600061330e83836132f3565b60208301905092915050565b6000602082019050919050565b6000613332826132c7565b61333c81856132d2565b9350613347836132e3565b8060005b8381101561337857815161335f8882613302565b975061336a8361331a565b92505060018101905061334b565b5085935050505092915050565b600060a08201905061339a600083018861279e565b6133a760208301876132b8565b81810360408301526133b98186613327565b90506133c8606083018561276a565b6133d5608083018461279e565b9695505050505050565b600081905092915050565b50565b60006133fa6000836133df565b9150613405826133ea565b600082019050919050565b600061341b826133ed565b9150819050919050565b600061343082612794565b915061343b83612794565b925082820261344981612794565b915082820484148315176134605761345f612cc8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134a182612794565b91506134ac83612794565b9250826134bc576134bb613467565b5b82820490509291505056fea26469706673582212204380dcc5dbc7fd35b24cb32e5b00654d7e6e3f36b2ff057da592894f9485312d64736f6c63430008120033

Deployed Bytecode Sourcemap

5437:10753:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7735:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6943:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7843:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9552:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10683:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10515:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12195:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5486;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7061:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:340;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10397:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5691:162;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15564:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6804:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7815:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7242:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6351:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1013:94;;;;;;;;;;;;;:::i;:::-;;15890:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6069:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10889:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;790:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5861:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9354:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7288:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7568:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13812:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12050:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7363:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6171:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7151:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1115:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7735:73;7766:42;7735:73;:::o;6943:41::-;6983:1;6943:41;:::o;7843:36::-;;;;;;;;;;;;;:::o;5967:94::-;6015:13;6048:5;;;;;;;;;;;;;;;;;6041:12;;5967:94;:::o;9552:186::-;9654:4;9671:37;9680:10;9692:7;9701:6;9671:8;:37::i;:::-;9726:4;9719:11;;9552:186;;;;:::o;10683:151::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10756:1:::1;10751:3;:6;;:17;;;;;10766:2;10761:3;:7;;10751:17;10743:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;10823:3;10816:6;:10;;;;10683:151:::0;:::o;10515:116::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10616:7:::1;10598:6;:15;10605:7;10598:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;10515:116:::0;;:::o;12195:197::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12287:5:::1;12272:20;;:11;;;;;;;;;;;:20;;::::0;12264:49:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12338:5;12324:11;;:19;;;;;;;;;;;;;;;;;;12359:25;12378:5;12359:25;;;;;;:::i;:::-;;;;;;;;12195:197:::0;:::o;5486:::-;5541:7;5581:1;6843:23;5565:17;5561:58;;5599:8;;;5561:58;5651:24;7766:42;5651:9;:24::i;:::-;6843:23;5636:39;;;;:::i;:::-;5629:46;;5486:197;:::o;7061:27::-;;;;:::o;10049:340::-;10183:4;10239:17;10204:11;:19;10216:6;10204:19;;;;;;;;;;;;;;;:31;10224:10;10204:31;;;;;;;;;;;;;;;;:52;10200:126;;10308:6;10273:11;:19;10285:6;10273:19;;;;;;;;;;;;;;;:31;10293:10;10273:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;10200:126;10345:36;10355:6;10363:9;10374:6;10345:9;:36::i;:::-;10338:43;;10049:340;;;;;:::o;10397:110::-;10460:4;10484:6;:15;10491:7;10484:15;;;;;;;;;;;;;;;;;;;;;;;;;10477:22;;10397:110;;;:::o;5691:162::-;5743:5;5781:1;6843:23;5765:17;5761:58;;5799:8;;;5761:58;7727:1;5829:16;;5691:162;:::o;15564:318::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15687:5:::1;15658:34;;:16;:25;15675:7;15658:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;15650:56:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15745:5;15717:16;:25;15734:7;15717:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;15779:5;15761:6;:15;15768:7;15761:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15819:5;15795:12;:21;15808:7;15795:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15840:34;15859:7;15868:5;15840:34;;;;;;;:::i;:::-;;;;;;;;15564:318:::0;;:::o;6804:62::-;6843:23;6804:62;:::o;7815:21::-;;;;;;;;;;;;;:::o;7242:39::-;7280:1;7242:39;:::o;6351:117::-;6417:7;6444;:16;6452:7;6444:16;;;;;;;;;;;;;;;;6437:23;;6351:117;;;:::o;1013:94::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:21:::1;1096:1;1078:9;:21::i;:::-;1013:94::o:0;15890:297::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15980:1:::1;15969:8;:12;15961:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;16023:16;;;;;;;;;;;16022:17;16014:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;16097:4;16078:16;;:23;;;;;;;;;;;;;;;;;;16139:8;16124:12;:23;;;;:::i;:::-;16112:9;:35;;;;16163:16;;;;;;;;;;15890:297:::0;:::o;6069:94::-;6121:7;6148;:5;:7::i;:::-;6141:14;;6069:94;:::o;10889:153::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10963:1:::1;10958:3;:6;;:17;;;;;10973:2;10968:3;:7;;10958:17;10950:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11031:3;11023:7;:11;;;;10889:153:::0;:::o;790:87::-;836:7;863:6;;;;;;;;;;;856:13;;790:87;:::o;5861:98::-;5911:13;5944:7;;;;;;;;;;;;;;;;;5937:14;;5861:98;:::o;9354:190::-;9457:4;9474:40;9484:10;9496:9;9507:6;9474:9;:40::i;:::-;;9532:4;9525:11;;9354:190;;;;:::o;7288:36::-;7321:3;7288:36;:::o;7568:27::-;;;;;;;;;;;;;:::o;13812:158::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13911:9:::1;13884:16;;:37;;;;;;;;;;;;;;;;;;13937:25;13952:9;13937:25;;;;;;:::i;:::-;;;;;;;;13812:158:::0;:::o;12050:137::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12139:4:::1;12119:8;:17;12128:7;12119:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12159:20;12171:7;12159:20;;;;;;:::i;:::-;;;;;;;;12050:137:::0;:::o;7363:47::-;7405:5;7363:47;:::o;6171:172::-;6280:7;6307:11;:19;6319:6;6307:19;;;;;;;;;;;;;;;:28;6327:7;6307:28;;;;;;;;;;;;;;;;6300:35;;6171:172;;;;:::o;7151:28::-;;;;:::o;1115:229::-;936:12;:10;:12::i;:::-;925:23;;:7;:5;:7::i;:::-;:23;;;917:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1238:1:::1;1218:22;;:8;:22;;::::0;1196:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1317:19;1327:8;1317:9;:19::i;:::-;1115:229:::0;:::o;9746:295::-;9893:1;9875:20;;:6;:20;;;9867:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9957:1;9938:21;;:7;:21;;;9930:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;10027:6;9996:11;:19;10008:6;9996:19;;;;;;;;;;;;;;;:28;10016:7;9996:28;;;;;;;;;;;;;;;:37;;;;9746:295;;;:::o;285:107::-;330:15;373:10;358:26;;285:107;:::o;12400:1404::-;12513:4;12530:12;12545:4;12530:19;;12582:1;12568:16;;:2;:16;;;12560:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12659:1;12643:18;;:4;:18;;;12635:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12731:1;12722:6;:10;12714:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12791:14;12808:26;12825:4;12831:2;12808:16;:26::i;:::-;:59;;;;;12851:16;;;;;;;;;;;12808:59;:101;;;;;12900:9;;12884:12;:25;;12808:101;12791:118;;12926:26;12943:4;12949:2;12926:16;:26::i;:::-;12922:110;;;12977:16;;;;;;;;;;;12969:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;12922:110;13048:17;13056:4;13062:2;13048:7;:17::i;:::-;:28;;;;;13070:6;;;;;;;;;;;13069:7;13048:28;:49;;;;;13080:17;13088:4;13094:2;13080:7;:17::i;:::-;13048:49;13044:263;;;13114:28;13145:24;13163:4;13145:9;:24::i;:::-;13114:55;;6983:1;13188:20;:37;13184:112;;13246:34;13259:20;13246:12;:34::i;:::-;13184:112;13099:208;13044:263;13323:6;:12;13330:4;13323:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;13339:6;:10;13346:2;13339:10;;;;;;;;;;;;;;;;;;;;;;;;;13323:26;13319:74;;;13376:5;13366:15;;13319:74;13422:6;13405:7;:13;13413:4;13405:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;13439:22;13465:7;13464:218;;13676:6;13464:218;;;13489:171;13517:4;13540:16;13547:4;13553:2;13540:6;:16::i;:::-;13575:17;13583:4;13589:2;13575:7;:17::i;:::-;13611:6;13636:9;13489;:171::i;:::-;13464:218;13439:243;;13708:14;13693:7;:11;13701:2;13693:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;13753:2;13738:34;;13747:4;13738:34;;;13757:14;13738:34;;;;;;:::i;:::-;;;;;;;;13792:4;13785:11;;;;;12400:1404;;;;;:::o;1352:173::-;1408:16;1427:6;;;;;;;;;;;1408:25;;1453:8;1444:6;;:17;;;;;;;;;;;;;;;;;;1508:8;1477:40;;1498:8;1477:40;;;;;;;;;;;;1397:128;1352:173;:::o;11050:421::-;11150:4;11167:14;11191:7;:5;:7::i;:::-;11184:14;;:3;:14;;;;:45;;;;;11222:7;:5;:7::i;:::-;11215:14;;:3;:14;;;;11184:45;:83;;;;;11260:7;:5;:7::i;:::-;11246:21;;:10;:21;;;;11184:83;:118;;;;;11285:12;:17;11298:3;11285:17;;;;;;;;;;;;;;;;;;;;;;;;;11284:18;11184:118;:153;;;;;11320:12;:17;11333:3;11320:17;;;;;;;;;;;;;;;;;;;;;;;;;11319:18;11184:153;:181;;;;;7766:42;11354:11;;:3;:11;;;;11184:181;:215;;;;;11397:1;11382:17;;:3;:17;;;;11184:215;:252;;;;;11431:4;11416:20;;:3;:20;;;;11184:252;11167:269;;11454:9;11447:16;;;11050:421;;;;:::o;11648:164::-;11714:4;11731:13;11747:8;:13;11756:3;11747:13;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;11765:8;:13;11774:3;11765:13;;;;;;;;;;;;;;;;;;;;;;;;;11764:14;11747:31;11731:47;;11796:8;11789:15;;;11648:164;;;;:::o;11820:222::-;11886:4;11903:12;11918:11;;;;;;;;;;;:50;;;;;11947:16;:21;11964:3;11947:21;;;;;;;;;;;;;;;;;;;;;;;;;11946:22;11918:50;:89;;;;;11986:16;:21;12003:3;11986:21;;;;;;;;;;;;;;;;;;;;;;;;;11985:22;11918:89;11903:104;;12027:7;12020:14;;;11820:222;;;;:::o;14621:935::-;7991:4;7982:6;;:13;;;;;;;;;;;;;;;;;;14704:21:::1;14742:1;14728:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14704:40;;14773:4;14755;14760:1;14755:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14799:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14789:4;14794:1;14789:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;14898:17;14847:11;:26;14867:4;14847:26;;;;;;;;;;;;;;;:47;14882:10;;;;;;;;;;;14847:47;;;;;;;;;;;;;;;;:68;14829:192;;14992:17;14942:11;:26;14962:4;14942:26;;;;;;;;;;;;;;;:47;14977:10;;;;;;;;;;;14942:47;;;;;;;;;;;;;;;:67;;;;14829:192;15050:10;;;;;;;;;;;:61;;;15130:20;15169:1;15189:4;15220;15244:15;15050:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;15033:293;;15308:7;;;15033:293;15336:12;15389:1:::0;15365:21:::1;:25;15361:188;;;15421:16;;;;;;;;;;;:21;;15468;15513:5;15421:116;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15407:130;;;;;15361:188;14693:863;;8006:1;8027:5:::0;8018:6;;:14;;;;;;;;;;;;;;;;;;14621:935;:::o;11479:161::-;11544:4;11561:12;11577:8;:13;11586:3;11577:13;;;;;;;;;;;;;;;;;;;;;;;;;11576:14;:31;;;;;11594:8;:13;11603:3;11594:13;;;;;;;;;;;;;;;;;;;;;;;;;11576:31;11561:46;;11625:7;11618:14;;;11479:161;;;;:::o;13978:635::-;14139:7;14159:11;14185:5;14181:97;;;14198:6;;14192:12;;14181:97;;;14224:6;14220:58;;;14238:7;;14232:13;;14220:58;;;7280:1;14261:17;;14220:58;14181:97;14293:10;14289:28;;;7321:3;14305:12;;14289:28;14339:1;14332:3;:8;14328:27;;14349:6;14342:13;;;;;14328:27;14366:17;7405:5;14396:3;14387:6;:12;;;;:::i;:::-;14386:32;;;;:::i;:::-;14366:52;;14445:1;14433:9;:13;14429:141;;;14489:9;14463:7;:22;14479:4;14463:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;14541:4;14518:40;;14527:4;14518:40;;;14548:9;14518:40;;;;;;:::i;:::-;;;;;;;;14429:141;14596:9;14587:6;:18;;;;:::i;:::-;14580:25;;;;13978:635;;;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:77::-;630:7;659:5;648:16;;593:77;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:90::-;1062:7;1105:5;1098:13;1091:21;1080:32;;1028:90;;;:::o;1124:109::-;1205:21;1220:5;1205:21;:::i;:::-;1200:3;1193:34;1124:109;;:::o;1239:210::-;1326:4;1364:2;1353:9;1349:18;1341:26;;1377:65;1439:1;1428:9;1424:17;1415:6;1377:65;:::i;:::-;1239:210;;;;:::o;1455:99::-;1507:6;1541:5;1535:12;1525:22;;1455:99;;;:::o;1560:169::-;1644:11;1678:6;1673:3;1666:19;1718:4;1713:3;1709:14;1694:29;;1560:169;;;;:::o;1735:246::-;1816:1;1826:113;1840:6;1837:1;1834:13;1826:113;;;1925:1;1920:3;1916:11;1910:18;1906:1;1901:3;1897:11;1890:39;1862:2;1859:1;1855:10;1850:15;;1826:113;;;1973:1;1964:6;1959:3;1955:16;1948:27;1797:184;1735:246;;;:::o;1987:102::-;2028:6;2079:2;2075:7;2070:2;2063:5;2059:14;2055:28;2045:38;;1987:102;;;:::o;2095:377::-;2183:3;2211:39;2244:5;2211:39;:::i;:::-;2266:71;2330:6;2325:3;2266:71;:::i;:::-;2259:78;;2346:65;2404:6;2399:3;2392:4;2385:5;2381:16;2346:65;:::i;:::-;2436:29;2458:6;2436:29;:::i;:::-;2431:3;2427:39;2420:46;;2187:285;2095:377;;;;:::o;2478:313::-;2591:4;2629:2;2618:9;2614:18;2606:26;;2678:9;2672:4;2668:20;2664:1;2653:9;2649:17;2642:47;2706:78;2779:4;2770:6;2706:78;:::i;:::-;2698:86;;2478:313;;;;:::o;2878:117::-;2987:1;2984;2977:12;3124:122;3197:24;3215:5;3197:24;:::i;:::-;3190:5;3187:35;3177:63;;3236:1;3233;3226:12;3177:63;3124:122;:::o;3252:139::-;3298:5;3336:6;3323:20;3314:29;;3352:33;3379:5;3352:33;:::i;:::-;3252:139;;;;:::o;3397:122::-;3470:24;3488:5;3470:24;:::i;:::-;3463:5;3460:35;3450:63;;3509:1;3506;3499:12;3450:63;3397:122;:::o;3525:139::-;3571:5;3609:6;3596:20;3587:29;;3625:33;3652:5;3625:33;:::i;:::-;3525:139;;;;:::o;3670:474::-;3738:6;3746;3795:2;3783:9;3774:7;3770:23;3766:32;3763:119;;;3801:79;;:::i;:::-;3763:119;3921:1;3946:53;3991:7;3982:6;3971:9;3967:22;3946:53;:::i;:::-;3936:63;;3892:117;4048:2;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4019:118;3670:474;;;;;:::o;4150:329::-;4209:6;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4150:329;;;;:::o;4485:116::-;4555:21;4570:5;4555:21;:::i;:::-;4548:5;4545:32;4535:60;;4591:1;4588;4581:12;4535:60;4485:116;:::o;4607:133::-;4650:5;4688:6;4675:20;4666:29;;4704:30;4728:5;4704:30;:::i;:::-;4607:133;;;;:::o;4746:468::-;4811:6;4819;4868:2;4856:9;4847:7;4843:23;4839:32;4836:119;;;4874:79;;:::i;:::-;4836:119;4994:1;5019:53;5064:7;5055:6;5044:9;5040:22;5019:53;:::i;:::-;5009:63;;4965:117;5121:2;5147:50;5189:7;5180:6;5169:9;5165:22;5147:50;:::i;:::-;5137:60;;5092:115;4746:468;;;;;:::o;5220:323::-;5276:6;5325:2;5313:9;5304:7;5300:23;5296:32;5293:119;;;5331:79;;:::i;:::-;5293:119;5451:1;5476:50;5518:7;5509:6;5498:9;5494:22;5476:50;:::i;:::-;5466:60;;5422:114;5220:323;;;;:::o;5549:619::-;5626:6;5634;5642;5691:2;5679:9;5670:7;5666:23;5662:32;5659:119;;;5697:79;;:::i;:::-;5659:119;5817:1;5842:53;5887:7;5878:6;5867:9;5863:22;5842:53;:::i;:::-;5832:63;;5788:117;5944:2;5970:53;6015:7;6006:6;5995:9;5991:22;5970:53;:::i;:::-;5960:63;;5915:118;6072:2;6098:53;6143:7;6134:6;6123:9;6119:22;6098:53;:::i;:::-;6088:63;;6043:118;5549:619;;;;;:::o;6174:329::-;6233:6;6282:2;6270:9;6261:7;6257:23;6253:32;6250:119;;;6288:79;;:::i;:::-;6250:119;6408:1;6433:53;6478:7;6469:6;6458:9;6454:22;6433:53;:::i;:::-;6423:63;;6379:117;6174:329;;;;:::o;6509:86::-;6544:7;6584:4;6577:5;6573:16;6562:27;;6509:86;;;:::o;6601:112::-;6684:22;6700:5;6684:22;:::i;:::-;6679:3;6672:35;6601:112;;:::o;6719:214::-;6808:4;6846:2;6835:9;6831:18;6823:26;;6859:67;6923:1;6912:9;6908:17;6899:6;6859:67;:::i;:::-;6719:214;;;;:::o;6939:60::-;6967:3;6988:5;6981:12;;6939:60;;;:::o;7005:142::-;7055:9;7088:53;7106:34;7115:24;7133:5;7115:24;:::i;:::-;7106:34;:::i;:::-;7088:53;:::i;:::-;7075:66;;7005:142;;;:::o;7153:126::-;7203:9;7236:37;7267:5;7236:37;:::i;:::-;7223:50;;7153:126;;;:::o;7285:143::-;7352:9;7385:37;7416:5;7385:37;:::i;:::-;7372:50;;7285:143;;;:::o;7434:165::-;7538:54;7586:5;7538:54;:::i;:::-;7533:3;7526:67;7434:165;;:::o;7605:256::-;7715:4;7753:2;7742:9;7738:18;7730:26;;7766:88;7851:1;7840:9;7836:17;7827:6;7766:88;:::i;:::-;7605:256;;;;:::o;7867:474::-;7935:6;7943;7992:2;7980:9;7971:7;7967:23;7963:32;7960:119;;;7998:79;;:::i;:::-;7960:119;8118:1;8143:53;8188:7;8179:6;8168:9;8164:22;8143:53;:::i;:::-;8133:63;;8089:117;8245:2;8271:53;8316:7;8307:6;8296:9;8292:22;8271:53;:::i;:::-;8261:63;;8216:118;7867:474;;;;;:::o;8347:182::-;8487:34;8483:1;8475:6;8471:14;8464:58;8347:182;:::o;8535:366::-;8677:3;8698:67;8762:2;8757:3;8698:67;:::i;:::-;8691:74;;8774:93;8863:3;8774:93;:::i;:::-;8892:2;8887:3;8883:12;8876:19;;8535:366;;;:::o;8907:419::-;9073:4;9111:2;9100:9;9096:18;9088:26;;9160:9;9154:4;9150:20;9146:1;9135:9;9131:17;9124:47;9188:131;9314:4;9188:131;:::i;:::-;9180:139;;8907:419;;;:::o;9332:182::-;9472:34;9468:1;9460:6;9456:14;9449:58;9332:182;:::o;9520:366::-;9662:3;9683:67;9747:2;9742:3;9683:67;:::i;:::-;9676:74;;9759:93;9848:3;9759:93;:::i;:::-;9877:2;9872:3;9868:12;9861:19;;9520:366;;;:::o;9892:419::-;10058:4;10096:2;10085:9;10081:18;10073:26;;10145:9;10139:4;10135:20;10131:1;10120:9;10116:17;10109:47;10173:131;10299:4;10173:131;:::i;:::-;10165:139;;9892:419;;;:::o;10317:166::-;10457:18;10453:1;10445:6;10441:14;10434:42;10317:166;:::o;10489:366::-;10631:3;10652:67;10716:2;10711:3;10652:67;:::i;:::-;10645:74;;10728:93;10817:3;10728:93;:::i;:::-;10846:2;10841:3;10837:12;10830:19;;10489:366;;;:::o;10861:419::-;11027:4;11065:2;11054:9;11050:18;11042:26;;11114:9;11108:4;11104:20;11100:1;11089:9;11085:17;11078:47;11142:131;11268:4;11142:131;:::i;:::-;11134:139;;10861:419;;;:::o;11286:180::-;11334:77;11331:1;11324:88;11431:4;11428:1;11421:15;11455:4;11452:1;11445:15;11472:194;11512:4;11532:20;11550:1;11532:20;:::i;:::-;11527:25;;11566:20;11584:1;11566:20;:::i;:::-;11561:25;;11610:1;11607;11603:9;11595:17;;11634:1;11628:4;11625:11;11622:37;;;11639:18;;:::i;:::-;11622:37;11472:194;;;;:::o;11672:159::-;11812:11;11808:1;11800:6;11796:14;11789:35;11672:159;:::o;11837:365::-;11979:3;12000:66;12064:1;12059:3;12000:66;:::i;:::-;11993:73;;12075:93;12164:3;12075:93;:::i;:::-;12193:2;12188:3;12184:12;12177:19;;11837:365;;;:::o;12208:419::-;12374:4;12412:2;12401:9;12397:18;12389:26;;12461:9;12455:4;12451:20;12447:1;12436:9;12432:17;12425:47;12489:131;12615:4;12489:131;:::i;:::-;12481:139;;12208:419;;;:::o;12633:320::-;12748:4;12786:2;12775:9;12771:18;12763:26;;12799:71;12867:1;12856:9;12852:17;12843:6;12799:71;:::i;:::-;12880:66;12942:2;12931:9;12927:18;12918:6;12880:66;:::i;:::-;12633:320;;;;;:::o;12959:167::-;13099:19;13095:1;13087:6;13083:14;13076:43;12959:167;:::o;13132:366::-;13274:3;13295:67;13359:2;13354:3;13295:67;:::i;:::-;13288:74;;13371:93;13460:3;13371:93;:::i;:::-;13489:2;13484:3;13480:12;13473:19;;13132:366;;;:::o;13504:419::-;13670:4;13708:2;13697:9;13693:18;13685:26;;13757:9;13751:4;13747:20;13743:1;13732:9;13728:17;13721:47;13785:131;13911:4;13785:131;:::i;:::-;13777:139;;13504:419;;;:::o;13929:173::-;14069:25;14065:1;14057:6;14053:14;14046:49;13929:173;:::o;14108:366::-;14250:3;14271:67;14335:2;14330:3;14271:67;:::i;:::-;14264:74;;14347:93;14436:3;14347:93;:::i;:::-;14465:2;14460:3;14456:12;14449:19;;14108:366;;;:::o;14480:419::-;14646:4;14684:2;14673:9;14669:18;14661:26;;14733:9;14727:4;14723:20;14719:1;14708:9;14704:17;14697:47;14761:131;14887:4;14761:131;:::i;:::-;14753:139;;14480:419;;;:::o;14905:191::-;14945:3;14964:20;14982:1;14964:20;:::i;:::-;14959:25;;14998:20;15016:1;14998:20;:::i;:::-;14993:25;;15041:1;15038;15034:9;15027:16;;15062:3;15059:1;15056:10;15053:36;;;15069:18;;:::i;:::-;15053:36;14905:191;;;;:::o;15102:225::-;15242:34;15238:1;15230:6;15226:14;15219:58;15311:8;15306:2;15298:6;15294:15;15287:33;15102:225;:::o;15333:366::-;15475:3;15496:67;15560:2;15555:3;15496:67;:::i;:::-;15489:74;;15572:93;15661:3;15572:93;:::i;:::-;15690:2;15685:3;15681:12;15674:19;;15333:366;;;:::o;15705:419::-;15871:4;15909:2;15898:9;15894:18;15886:26;;15958:9;15952:4;15948:20;15944:1;15933:9;15929:17;15922:47;15986:131;16112:4;15986:131;:::i;:::-;15978:139;;15705:419;;;:::o;16130:169::-;16270:21;16266:1;16258:6;16254:14;16247:45;16130:169;:::o;16305:366::-;16447:3;16468:67;16532:2;16527:3;16468:67;:::i;:::-;16461:74;;16544:93;16633:3;16544:93;:::i;:::-;16662:2;16657:3;16653:12;16646:19;;16305:366;;;:::o;16677:419::-;16843:4;16881:2;16870:9;16866:18;16858:26;;16930:9;16924:4;16920:20;16916:1;16905:9;16901:17;16894:47;16958:131;17084:4;16958:131;:::i;:::-;16950:139;;16677:419;;;:::o;17102:222::-;17242:34;17238:1;17230:6;17226:14;17219:58;17311:5;17306:2;17298:6;17294:15;17287:30;17102:222;:::o;17330:366::-;17472:3;17493:67;17557:2;17552:3;17493:67;:::i;:::-;17486:74;;17569:93;17658:3;17569:93;:::i;:::-;17687:2;17682:3;17678:12;17671:19;;17330:366;;;:::o;17702:419::-;17868:4;17906:2;17895:9;17891:18;17883:26;;17955:9;17949:4;17945:20;17941:1;17930:9;17926:17;17919:47;17983:131;18109:4;17983:131;:::i;:::-;17975:139;;17702:419;;;:::o;18127:224::-;18267:34;18263:1;18255:6;18251:14;18244:58;18336:7;18331:2;18323:6;18319:15;18312:32;18127:224;:::o;18357:366::-;18499:3;18520:67;18584:2;18579:3;18520:67;:::i;:::-;18513:74;;18596:93;18685:3;18596:93;:::i;:::-;18714:2;18709:3;18705:12;18698:19;;18357:366;;;:::o;18729:419::-;18895:4;18933:2;18922:9;18918:18;18910:26;;18982:9;18976:4;18972:20;18968:1;18957:9;18953:17;18946:47;19010:131;19136:4;19010:131;:::i;:::-;19002:139;;18729:419;;;:::o;19154:228::-;19294:34;19290:1;19282:6;19278:14;19271:58;19363:11;19358:2;19350:6;19346:15;19339:36;19154:228;:::o;19388:366::-;19530:3;19551:67;19615:2;19610:3;19551:67;:::i;:::-;19544:74;;19627:93;19716:3;19627:93;:::i;:::-;19745:2;19740:3;19736:12;19729:19;;19388:366;;;:::o;19760:419::-;19926:4;19964:2;19953:9;19949:18;19941:26;;20013:9;20007:4;20003:20;19999:1;19988:9;19984:17;19977:47;20041:131;20167:4;20041:131;:::i;:::-;20033:139;;19760:419;;;:::o;20185:172::-;20325:24;20321:1;20313:6;20309:14;20302:48;20185:172;:::o;20363:366::-;20505:3;20526:67;20590:2;20585:3;20526:67;:::i;:::-;20519:74;;20602:93;20691:3;20602:93;:::i;:::-;20720:2;20715:3;20711:12;20704:19;;20363:366;;;:::o;20735:419::-;20901:4;20939:2;20928:9;20924:18;20916:26;;20988:9;20982:4;20978:20;20974:1;20963:9;20959:17;20952:47;21016:131;21142:4;21016:131;:::i;:::-;21008:139;;20735:419;;;:::o;21160:180::-;21208:77;21205:1;21198:88;21305:4;21302:1;21295:15;21329:4;21326:1;21319:15;21346:180;21394:77;21391:1;21384:88;21491:4;21488:1;21481:15;21515:4;21512:1;21505:15;21532:143;21589:5;21620:6;21614:13;21605:22;;21636:33;21663:5;21636:33;:::i;:::-;21532:143;;;;:::o;21681:351::-;21751:6;21800:2;21788:9;21779:7;21775:23;21771:32;21768:119;;;21806:79;;:::i;:::-;21768:119;21926:1;21951:64;22007:7;21998:6;21987:9;21983:22;21951:64;:::i;:::-;21941:74;;21897:128;21681:351;;;;:::o;22038:85::-;22083:7;22112:5;22101:16;;22038:85;;;:::o;22129:158::-;22187:9;22220:61;22238:42;22247:32;22273:5;22247:32;:::i;:::-;22238:42;:::i;:::-;22220:61;:::i;:::-;22207:74;;22129:158;;;:::o;22293:147::-;22388:45;22427:5;22388:45;:::i;:::-;22383:3;22376:58;22293:147;;:::o;22446:114::-;22513:6;22547:5;22541:12;22531:22;;22446:114;;;:::o;22566:184::-;22665:11;22699:6;22694:3;22687:19;22739:4;22734:3;22730:14;22715:29;;22566:184;;;;:::o;22756:132::-;22823:4;22846:3;22838:11;;22876:4;22871:3;22867:14;22859:22;;22756:132;;;:::o;22894:108::-;22971:24;22989:5;22971:24;:::i;:::-;22966:3;22959:37;22894:108;;:::o;23008:179::-;23077:10;23098:46;23140:3;23132:6;23098:46;:::i;:::-;23176:4;23171:3;23167:14;23153:28;;23008:179;;;;:::o;23193:113::-;23263:4;23295;23290:3;23286:14;23278:22;;23193:113;;;:::o;23342:732::-;23461:3;23490:54;23538:5;23490:54;:::i;:::-;23560:86;23639:6;23634:3;23560:86;:::i;:::-;23553:93;;23670:56;23720:5;23670:56;:::i;:::-;23749:7;23780:1;23765:284;23790:6;23787:1;23784:13;23765:284;;;23866:6;23860:13;23893:63;23952:3;23937:13;23893:63;:::i;:::-;23886:70;;23979:60;24032:6;23979:60;:::i;:::-;23969:70;;23825:224;23812:1;23809;23805:9;23800:14;;23765:284;;;23769:14;24065:3;24058:10;;23466:608;;;23342:732;;;;:::o;24080:831::-;24343:4;24381:3;24370:9;24366:19;24358:27;;24395:71;24463:1;24452:9;24448:17;24439:6;24395:71;:::i;:::-;24476:80;24552:2;24541:9;24537:18;24528:6;24476:80;:::i;:::-;24603:9;24597:4;24593:20;24588:2;24577:9;24573:18;24566:48;24631:108;24734:4;24725:6;24631:108;:::i;:::-;24623:116;;24749:72;24817:2;24806:9;24802:18;24793:6;24749:72;:::i;:::-;24831:73;24899:3;24888:9;24884:19;24875:6;24831:73;:::i;:::-;24080:831;;;;;;;;:::o;24917:147::-;25018:11;25055:3;25040:18;;24917:147;;;;:::o;25070:114::-;;:::o;25190:398::-;25349:3;25370:83;25451:1;25446:3;25370:83;:::i;:::-;25363:90;;25462:93;25551:3;25462:93;:::i;:::-;25580:1;25575:3;25571:11;25564:18;;25190:398;;;:::o;25594:379::-;25778:3;25800:147;25943:3;25800:147;:::i;:::-;25793:154;;25964:3;25957:10;;25594:379;;;:::o;25979:410::-;26019:7;26042:20;26060:1;26042:20;:::i;:::-;26037:25;;26076:20;26094:1;26076:20;:::i;:::-;26071:25;;26131:1;26128;26124:9;26153:30;26171:11;26153:30;:::i;:::-;26142:41;;26332:1;26323:7;26319:15;26316:1;26313:22;26293:1;26286:9;26266:83;26243:139;;26362:18;;:::i;:::-;26243:139;26027:362;25979:410;;;;:::o;26395:180::-;26443:77;26440:1;26433:88;26540:4;26537:1;26530:15;26564:4;26561:1;26554:15;26581:185;26621:1;26638:20;26656:1;26638:20;:::i;:::-;26633:25;;26672:20;26690:1;26672:20;:::i;:::-;26667:25;;26711:1;26701:35;;26716:18;;:::i;:::-;26701:35;26758:1;26755;26751:9;26746:14;;26581:185;;;;:::o

Swarm Source

ipfs://4380dcc5dbc7fd35b24cb32e5b00654d7e6e3f36b2ff057da592894f9485312d

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  ]

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.