ETH Price: $3,425.66 (-1.62%)
Gas: 6 Gwei

Contract

0x579822Ec6C77756776Ea541766AFe11905041893
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer200514142024-06-09 2:54:3539 days ago1717901675IN
0x579822Ec...905041893
0 ETH0.000344775.90907567
Approve200513012024-06-09 2:31:2339 days ago1717900283IN
0x579822Ec...905041893
0 ETH0.000304356.47760026
Transfer198225722024-05-08 3:10:1171 days ago1715137811IN
0x579822Ec...905041893
0 ETH0.000480476.3664436
Approve195247332024-03-27 9:19:47112 days ago1711531187IN
0x579822Ec...905041893
0 ETH0.0012214725.96338403
Approve188511892023-12-23 21:28:35207 days ago1703366915IN
0x579822Ec...905041893
0 ETH0.0005470622.09295821
Transfer187843042023-12-14 12:12:23216 days ago1702555943IN
0x579822Ec...905041893
0 ETH0.0023917548.66727417
Transfer187796692023-12-13 20:37:23217 days ago1702499843IN
0x579822Ec...905041893
0 ETH0.0035011452.85141954
Transfer187793202023-12-13 19:26:59217 days ago1702495619IN
0x579822Ec...905041893
0 ETH0.0029111360.33567653
Approve187551432023-12-10 10:14:11220 days ago1702203251IN
0x579822Ec...905041893
0 ETH0.0014509130.8403837
Approve187232852023-12-05 23:00:47225 days ago1701817247IN
0x579822Ec...905041893
0 ETH0.0028065759.73209709
Approve187124902023-12-04 10:45:35226 days ago1701686735IN
0x579822Ec...905041893
0 ETH0.0016091734.24801382
Transfer187108812023-12-04 5:20:59226 days ago1701667259IN
0x579822Ec...905041893
0 ETH0.0021079136.14264259
Approve187095602023-12-04 0:54:59227 days ago1701651299IN
0x579822Ec...905041893
0 ETH0.0015682233.33396244
Transfer187095522023-12-04 0:53:23227 days ago1701651203IN
0x579822Ec...905041893
0 ETH0.0015783632.11647623
Transfer187095072023-12-04 0:44:11227 days ago1701650651IN
0x579822Ec...905041893
0 ETH0.0014903130.32490177
Transfer187094972023-12-04 0:42:11227 days ago1701650531IN
0x579822Ec...905041893
0 ETH0.0014694829.90101396
Approve187092932023-12-04 0:01:11227 days ago1701648071IN
0x579822Ec...905041893
0 ETH0.0021159944.97715457
Approve187092902023-12-04 0:00:35227 days ago1701648035IN
0x579822Ec...905041893
0 ETH0.0018234938.75984139
Approve187092092023-12-03 23:43:47227 days ago1701647027IN
0x579822Ec...905041893
0 ETH0.0016165734.36161776
Transfer187092082023-12-03 23:43:35227 days ago1701647015IN
0x579822Ec...905041893
0 ETH0.0022192338.05138424
Approve187091602023-12-03 23:33:59227 days ago1701646439IN
0x579822Ec...905041893
0 ETH0.0019303941.03204015
Approve187090652023-12-03 23:14:59227 days ago1701645299IN
0x579822Ec...905041893
0 ETH0.001553833.02745658
Approve187090592023-12-03 23:13:47227 days ago1701645227IN
0x579822Ec...905041893
0 ETH0.0017753237.73591657
Approve187090452023-12-03 23:10:59227 days ago1701645059IN
0x579822Ec...905041893
0 ETH0.0016761235.62738193
Approve187090122023-12-03 23:04:23227 days ago1701644663IN
0x579822Ec...905041893
0 ETH0.0018379439.11695464
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
186996422023-12-02 15:34:11228 days ago1701531251
0x579822Ec...905041893
0.1201248 ETH
186996422023-12-02 15:34:11228 days ago1701531251
0x579822Ec...905041893
0.1201248 ETH
186995612023-12-02 15:17:47228 days ago1701530267
0x579822Ec...905041893
0.11723322 ETH
186995612023-12-02 15:17:47228 days ago1701530267
0x579822Ec...905041893
0.11723322 ETH
186995002023-12-02 15:05:35228 days ago1701529535
0x579822Ec...905041893
0.09107888 ETH
186995002023-12-02 15:05:35228 days ago1701529535
0x579822Ec...905041893
0.09107888 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Money

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: UNLICENSED

/*

TG: https://t.me/OfficialMoneyErc20

*/

pragma solidity 0.8.21;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

interface ERC20 {
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address public owner;

    constructor(address _owner) {
        owner = _owner;
    }

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

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

    function renounceOwnership() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

contract Money is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "Scared Money dont make Money";
    string public constant symbol = "MONEY";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 10_000_000_000 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 50;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 100;
    uint256 public operationsFee = 0;
    uint256 public totalFee = marketingFee + operationsFee;
    uint256 public constant feeDenominator = 1000;
    
    uint256 buyMultiplier = 200;
    uint256 sellMultiplier = 200;
    uint256 transferMultiplier = 0;

    address public marketingFeeReceiver;
    address public operationsFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 500;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0x0df314e3ee2fA6D26a397B921ae27FE33A2D1149;
        operationsFeeReceiver = 0x0df314e3ee2fA6D26a397B921ae27FE33A2D1149;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[marketingFeeReceiver] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

    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 approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, 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] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent(uint256 _newmaxwallet) external onlyOwner {
        require(_newmaxwallet >= 1,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * _newmaxwallet ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender]){
            require(tradingOpen,"trading not open yet");
        }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function manualSwap() external {
        payable(operationsFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHOps = (amountETH * operationsFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(operationsFeeReceiver).transfer(amountETHOps);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operationsFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operationsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxwallet","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c060405260326012600a620000169190620009a2565b6402540be400620000289190620009f2565b62000034919062000a69565b60015560646006555f60075560075460065462000052919062000aa0565b60085560c860095560c8600a555f600b555f600e60146101000a81548160ff0219169083151502179055506001600e60156101000a81548160ff0219169083151502179055506101f46012600a620000ab9190620009a2565b6402540be400620000bd9190620009f2565b620000c9919062000a69565b600f55348015620000d8575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ff919062000b3f565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c3919062000b3f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396608051306040518363ffffffff1660e01b81526004016200030192919062000b80565b6020604051808303815f875af11580156200031e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000344919062000b3f565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550730df314e3ee2fa6d26a397b921ae27fe33a2d1149600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730df314e3ee2fa6d26a397b921ae27fe33a2d1149600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506012600a6200072f9190620009a2565b6402540be400620007419190620009f2565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620007e19190620009a2565b6402540be400620007f39190620009f2565b60405162000802919062000bbc565b60405180910390a362000bd7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200089a5780860481111562000872576200087162000810565b5b6001851615620008825780820291505b808102905062000892856200083d565b945062000852565b94509492505050565b5f82620008b4576001905062000986565b81620008c3575f905062000986565b8160018114620008dc5760028114620008e7576200091d565b600191505062000986565b60ff841115620008fc57620008fb62000810565b5b8360020a91508482111562000916576200091562000810565b5b5062000986565b5060208310610133831016604e8410600b8410161715620009575782820a90508381111562000951576200095062000810565b5b62000986565b62000966848484600162000849565b9250905081840481111562000980576200097f62000810565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620009ae826200098d565b9150620009bb8362000996565b9250620009ea7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008a3565b905092915050565b5f620009fe826200098d565b915062000a0b836200098d565b925082820262000a1b816200098d565b9150828204841483151762000a355762000a3462000810565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a75826200098d565b915062000a82836200098d565b92508262000a955762000a9462000a3c565b5b828204905092915050565b5f62000aac826200098d565b915062000ab9836200098d565b925082820190508082111562000ad45762000ad362000810565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b098262000ade565b9050919050565b62000b1b8162000afd565b811462000b26575f80fd5b50565b5f8151905062000b398162000b10565b92915050565b5f6020828403121562000b575762000b5662000ada565b5b5f62000b668482850162000b29565b91505092915050565b62000b7a8162000afd565b82525050565b5f60408201905062000b955f83018562000b6f565b62000ba4602083018462000b6f565b9392505050565b62000bb6816200098d565b82525050565b5f60208201905062000bd15f83018462000bab565b92915050565b60805160a051612c6f62000c155f395f8181610ffe015281816113f80152818161193c01528181611d0d0152611d6a01525f611ac10152612c6f5ff3fe6080604052600436106101fc575f3560e01c80636ddd17131161010c578063a8aa1b311161009f578063dd62ed3e1161006e578063dd62ed3e14610719578063df20fd4914610755578063e96fada21461077d578063f887ea40146107a7578063ffb54a99146107d157610203565b8063a8aa1b3114610661578063a9059cbb1461068b578063c867d60b146106c7578063c9567bf91461070357610203565b806382bf293c116100db57806382bf293c146105bb578063893d20e8146105e35780638da5cb5b1461060d57806395d89b411461063757610203565b80636ddd17131461051557806370a082311461053f578063715018a61461057b57806378109e541461059157610203565b806323b872dd1161018f5780633f4218e01161015e5780633f4218e01461043557806351bc3c8514610471578063571ac8b0146104875780636b67c4df146104c35780636ce46bc3146104ed57610203565b806323b872dd146103695780632b112e49146103a55780632f54bf6e146103cf578063313ce5671461040b57610203565b8063095ea7b3116101cb578063095ea7b3146102af578063180b0d7e146102eb57806318160ddd146103155780631df4ccfc1461033f57610203565b806303382cbb146102075780630445b6671461023157806306fdde031461025b578063090896be1461028557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107fb565b6040516102289190612130565b60405180910390f35b34801561023c575f80fd5b50610245610820565b6040516102529190612161565b60405180910390f35b348015610266575f80fd5b5061026f610826565b60405161027c9190612204565b60405180910390f35b348015610290575f80fd5b5061029961085f565b6040516102a69190612161565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d0919061227c565b610865565b6040516102e291906122d4565b60405180910390f35b3480156102f6575f80fd5b506102ff610952565b60405161030c9190612161565b60405180910390f35b348015610320575f80fd5b50610329610958565b6040516103369190612161565b60405180910390f35b34801561034a575f80fd5b50610353610979565b6040516103609190612161565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a91906122ed565b61097f565b60405161039c91906122d4565b60405180910390f35b3480156103b0575f80fd5b506103b9610b72565b6040516103c69190612161565b60405180910390f35b3480156103da575f80fd5b506103f560048036038101906103f0919061233d565b610c28565b60405161040291906122d4565b60405180910390f35b348015610416575f80fd5b5061041f610c7f565b60405161042c9190612383565b60405180910390f35b348015610440575f80fd5b5061045b6004803603810190610456919061233d565b610c84565b60405161046891906122d4565b60405180910390f35b34801561047c575f80fd5b50610485610ca1565b005b348015610492575f80fd5b506104ad60048036038101906104a8919061233d565b610d08565b6040516104ba91906122d4565b60405180910390f35b3480156104ce575f80fd5b506104d7610d3a565b6040516104e49190612161565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e919061239c565b610d40565b005b348015610520575f80fd5b50610529610da2565b60405161053691906122d4565b60405180910390f35b34801561054a575f80fd5b506105656004803603810190610560919061233d565b610db5565b6040516105729190612161565b60405180910390f35b348015610586575f80fd5b5061058f610dca565b005b34801561059c575f80fd5b506105a5610ea9565b6040516105b29190612161565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc91906123ec565b610eaf565b005b3480156105ee575f80fd5b506105f7610f79565b6040516106049190612130565b60405180910390f35b348015610618575f80fd5b50610621610fa0565b60405161062e9190612130565b60405180910390f35b348015610642575f80fd5b5061064b610fc3565b6040516106589190612204565b60405180910390f35b34801561066c575f80fd5b50610675610ffc565b6040516106829190612130565b60405180910390f35b348015610696575f80fd5b506106b160048036038101906106ac919061227c565b611020565b6040516106be91906122d4565b60405180910390f35b3480156106d2575f80fd5b506106ed60048036038101906106e8919061233d565b611034565b6040516106fa91906122d4565b60405180910390f35b34801561070e575f80fd5b50610717611051565b005b348015610724575f80fd5b5061073f600480360381019061073a9190612417565b6110b6565b60405161074c9190612161565b60405180910390f35b348015610760575f80fd5b5061077b6004803603810190610776919061247f565b611138565b005b348015610788575f80fd5b506107916111cd565b60405161079e9190612130565b60405180910390f35b3480156107b2575f80fd5b506107bb6111f2565b6040516107c89190612518565b60405180910390f35b3480156107dc575f80fd5b506107e5611217565b6040516107f291906122d4565b60405180910390f35b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b6040518060400160405280601c81526020017f536361726564204d6f6e657920646f6e74206d616b65204d6f6e65790000000081525081565b60075481565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109409190612161565b60405180910390a36001905092915050565b6103e881565b6012600a610966919061268d565b6402540be40061097691906126d7565b81565b60085481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b5e57610ae1826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461122a9092919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b6984848461128c565b90509392505050565b5f60025f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546012600a610bff919061268d565b6402540be400610c0f91906126d7565b610c199190612718565b610c239190612718565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b601281565b6004602052805f5260405f205f915054906101000a900460ff1681565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d05573d5f803e3d5ffd5b50565b5f610d33827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610865565b9050919050565b60065481565b610d4933610c28565b610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f90612795565b60405180910390fd5b81600a819055508260098190555080600b81905550505050565b600e60159054906101000a900460ff1681565b6002602052805f5260405f205f915090505481565b610dd333610c28565b610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990612795565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610e9f9190612130565b60405180910390a1565b60015481565b610eb833610c28565b610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612795565b60405180910390fd5b6001811015610f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3290612823565b60405180910390fd5b6064816012600a610f4c919061268d565b6402540be400610f5c91906126d7565b610f6691906126d7565b610f70919061286e565b60018190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600581526020017f4d4f4e455900000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f61102c33848461128c565b905092915050565b6005602052805f5260405f205f915054906101000a900460ff1681565b61105a33610c28565b611099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109090612795565b60405180910390fd5b6001600e60146101000a81548160ff021916908315150217905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61114133610c28565b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612795565b60405180910390fd5b81600e60156101000a81548160ff021916908315150217905550806012600a6111a9919061268d565b6402540be4006111b991906126d7565b6111c3919061286e565b600f819055505050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60149054906101000a900460ff1681565b5f838311158290611271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112689190612204565b60405180910390fd5b505f838561127f9190612718565b9050809150509392505050565b5f60105f9054906101000a900460ff16156112b3576112ac84848461176f565b9050611768565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661135157600e60149054906101000a900460ff16611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906128e8565b60405180910390fd5b5b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113ef575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561144757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114da576001548260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114989190612906565b11156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612983565b60405180910390fd5b5b6114e2611939565b156114f0576114ef611a0a565b5b611577826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461122a9092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611654575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61166857611663858486611ce8565b61166a565b825b90506116bc8160025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f2a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161175a9190612161565b60405180910390a360019150505b9392505050565b5f6117f7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461122a9092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118888260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f2a90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119269190612161565b60405180910390a3600190509392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156119a2575060105f9054906101000a900460ff16155b80156119ba5750600e60159054906101000a900460ff165b8015611a055750600f5460025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160105f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a4057611a3f6129a1565b5b604051908082528060200260200182016040528015611a6e5781602001602082028036833780820191505090505b50905030815f81518110611a8557611a846129ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110611af457611af36129ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947600f545f8430426040518663ffffffff1660e01b8152600401611b92959493929190612aeb565b5f604051808303815f87803b158015611ba9575f80fd5b505af1158015611bbb573d5f803e3d5ffd5b505050505f4790505f60085460065483611bd591906126d7565b611bdf919061286e565b90505f60085460075484611bf391906126d7565b611bfd919061286e565b9050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611c63573d5f803e3d5ffd5b50600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cc8573d5f803e3d5ffd5b50505050505f60105f6101000a81548160ff021916908315150217905550565b5f80831480611cf857505f600854145b15611d0557829050611f23565b5f600b5490507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6857600a549050611dc2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611dc15760095490505b5b5f611e0a60646103e8611dd591906126d7565b611dfc84611dee6008548a611f8790919063ffffffff16565b611f8790919063ffffffff16565b611ffe90919063ffffffff16565b90505f811115611f0b57611e648160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f2a90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f029190612161565b60405180910390a35b611f1e818661204790919063ffffffff16565b925050505b9392505050565b5f808284611f389190612906565b905083811015611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7490612b8d565b60405180910390fd5b8091505092915050565b5f808303611f97575f9050611ff8565b5f8284611fa491906126d7565b9050828482611fb3919061286e565b14611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90612c1b565b60405180910390fd5b809150505b92915050565b5f61203f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612090565b905092915050565b5f61208883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122a565b905092915050565b5f80831182906120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9190612204565b60405180910390fd5b505f83856120e4919061286e565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61211a826120f1565b9050919050565b61212a81612110565b82525050565b5f6020820190506121435f830184612121565b92915050565b5f819050919050565b61215b81612149565b82525050565b5f6020820190506121745f830184612152565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121b1578082015181840152602081019050612196565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121d68261217a565b6121e08185612184565b93506121f0818560208601612194565b6121f9816121bc565b840191505092915050565b5f6020820190508181035f83015261221c81846121cc565b905092915050565b5f80fd5b61223181612110565b811461223b575f80fd5b50565b5f8135905061224c81612228565b92915050565b61225b81612149565b8114612265575f80fd5b50565b5f8135905061227681612252565b92915050565b5f806040838503121561229257612291612224565b5b5f61229f8582860161223e565b92505060206122b085828601612268565b9150509250929050565b5f8115159050919050565b6122ce816122ba565b82525050565b5f6020820190506122e75f8301846122c5565b92915050565b5f805f6060848603121561230457612303612224565b5b5f6123118682870161223e565b93505060206123228682870161223e565b925050604061233386828701612268565b9150509250925092565b5f6020828403121561235257612351612224565b5b5f61235f8482850161223e565b91505092915050565b5f60ff82169050919050565b61237d81612368565b82525050565b5f6020820190506123965f830184612374565b92915050565b5f805f606084860312156123b3576123b2612224565b5b5f6123c086828701612268565b93505060206123d186828701612268565b92505060406123e286828701612268565b9150509250925092565b5f6020828403121561240157612400612224565b5b5f61240e84828501612268565b91505092915050565b5f806040838503121561242d5761242c612224565b5b5f61243a8582860161223e565b925050602061244b8582860161223e565b9150509250929050565b61245e816122ba565b8114612468575f80fd5b50565b5f8135905061247981612455565b92915050565b5f806040838503121561249557612494612224565b5b5f6124a28582860161246b565b92505060206124b385828601612268565b9150509250929050565b5f819050919050565b5f6124e06124db6124d6846120f1565b6124bd565b6120f1565b9050919050565b5f6124f1826124c6565b9050919050565b5f612502826124e7565b9050919050565b612512816124f8565b82525050565b5f60208201905061252b5f830184612509565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125b35780860481111561258f5761258e612531565b5b600185161561259e5780820291505b80810290506125ac8561255e565b9450612573565b94509492505050565b5f826125cb5760019050612686565b816125d8575f9050612686565b81600181146125ee57600281146125f857612627565b6001915050612686565b60ff84111561260a57612609612531565b5b8360020a91508482111561262157612620612531565b5b50612686565b5060208310610133831016604e8410600b841016171561265c5782820a90508381111561265757612656612531565b5b612686565b612669848484600161256a565b925090508184048111156126805761267f612531565b5b81810290505b9392505050565b5f61269782612149565b91506126a283612368565b92506126cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b5f6126e182612149565b91506126ec83612149565b92508282026126fa81612149565b9150828204841483151761271157612710612531565b5b5092915050565b5f61272282612149565b915061272d83612149565b925082820390508181111561274557612744612531565b5b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f61277f600683612184565b915061278a8261274b565b602082019050919050565b5f6020820190508181035f8301526127ac81612773565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e205f8201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b5f61280d602283612184565b9150612818826127b3565b604082019050919050565b5f6020820190508181035f83015261283a81612801565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61287882612149565b915061288383612149565b92508261289357612892612841565b5b828204905092915050565b7f74726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6128d2601483612184565b91506128dd8261289e565b602082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b5f61291082612149565b915061291b83612149565b925082820190508082111561293357612932612531565b5b92915050565b7f6d61782077616c6c6574206c696d6974207265616368656400000000000000005f82015250565b5f61296d601883612184565b915061297882612939565b602082019050919050565b5f6020820190508181035f83015261299a81612961565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612a1e612a19612a14846129fb565b6124bd565b612149565b9050919050565b612a2e81612a04565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a6681612110565b82525050565b5f612a778383612a5d565b60208301905092915050565b5f602082019050919050565b5f612a9982612a34565b612aa38185612a3e565b9350612aae83612a4e565b805f5b83811015612ade578151612ac58882612a6c565b9750612ad083612a83565b925050600181019050612ab1565b5085935050505092915050565b5f60a082019050612afe5f830188612152565b612b0b6020830187612a25565b8181036040830152612b1d8186612a8f565b9050612b2c6060830185612121565b612b396080830184612152565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b77601b83612184565b9150612b8282612b43565b602082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602183612184565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b905091905056fea26469706673582212208f1df8517354ce88d1646fe7c1bb225216c4ab9371e2dbc9fb2440f97436561664736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101fc575f3560e01c80636ddd17131161010c578063a8aa1b311161009f578063dd62ed3e1161006e578063dd62ed3e14610719578063df20fd4914610755578063e96fada21461077d578063f887ea40146107a7578063ffb54a99146107d157610203565b8063a8aa1b3114610661578063a9059cbb1461068b578063c867d60b146106c7578063c9567bf91461070357610203565b806382bf293c116100db57806382bf293c146105bb578063893d20e8146105e35780638da5cb5b1461060d57806395d89b411461063757610203565b80636ddd17131461051557806370a082311461053f578063715018a61461057b57806378109e541461059157610203565b806323b872dd1161018f5780633f4218e01161015e5780633f4218e01461043557806351bc3c8514610471578063571ac8b0146104875780636b67c4df146104c35780636ce46bc3146104ed57610203565b806323b872dd146103695780632b112e49146103a55780632f54bf6e146103cf578063313ce5671461040b57610203565b8063095ea7b3116101cb578063095ea7b3146102af578063180b0d7e146102eb57806318160ddd146103155780631df4ccfc1461033f57610203565b806303382cbb146102075780630445b6671461023157806306fdde031461025b578063090896be1461028557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107fb565b6040516102289190612130565b60405180910390f35b34801561023c575f80fd5b50610245610820565b6040516102529190612161565b60405180910390f35b348015610266575f80fd5b5061026f610826565b60405161027c9190612204565b60405180910390f35b348015610290575f80fd5b5061029961085f565b6040516102a69190612161565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d0919061227c565b610865565b6040516102e291906122d4565b60405180910390f35b3480156102f6575f80fd5b506102ff610952565b60405161030c9190612161565b60405180910390f35b348015610320575f80fd5b50610329610958565b6040516103369190612161565b60405180910390f35b34801561034a575f80fd5b50610353610979565b6040516103609190612161565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a91906122ed565b61097f565b60405161039c91906122d4565b60405180910390f35b3480156103b0575f80fd5b506103b9610b72565b6040516103c69190612161565b60405180910390f35b3480156103da575f80fd5b506103f560048036038101906103f0919061233d565b610c28565b60405161040291906122d4565b60405180910390f35b348015610416575f80fd5b5061041f610c7f565b60405161042c9190612383565b60405180910390f35b348015610440575f80fd5b5061045b6004803603810190610456919061233d565b610c84565b60405161046891906122d4565b60405180910390f35b34801561047c575f80fd5b50610485610ca1565b005b348015610492575f80fd5b506104ad60048036038101906104a8919061233d565b610d08565b6040516104ba91906122d4565b60405180910390f35b3480156104ce575f80fd5b506104d7610d3a565b6040516104e49190612161565b60405180910390f35b3480156104f8575f80fd5b50610513600480360381019061050e919061239c565b610d40565b005b348015610520575f80fd5b50610529610da2565b60405161053691906122d4565b60405180910390f35b34801561054a575f80fd5b506105656004803603810190610560919061233d565b610db5565b6040516105729190612161565b60405180910390f35b348015610586575f80fd5b5061058f610dca565b005b34801561059c575f80fd5b506105a5610ea9565b6040516105b29190612161565b60405180910390f35b3480156105c6575f80fd5b506105e160048036038101906105dc91906123ec565b610eaf565b005b3480156105ee575f80fd5b506105f7610f79565b6040516106049190612130565b60405180910390f35b348015610618575f80fd5b50610621610fa0565b60405161062e9190612130565b60405180910390f35b348015610642575f80fd5b5061064b610fc3565b6040516106589190612204565b60405180910390f35b34801561066c575f80fd5b50610675610ffc565b6040516106829190612130565b60405180910390f35b348015610696575f80fd5b506106b160048036038101906106ac919061227c565b611020565b6040516106be91906122d4565b60405180910390f35b3480156106d2575f80fd5b506106ed60048036038101906106e8919061233d565b611034565b6040516106fa91906122d4565b60405180910390f35b34801561070e575f80fd5b50610717611051565b005b348015610724575f80fd5b5061073f600480360381019061073a9190612417565b6110b6565b60405161074c9190612161565b60405180910390f35b348015610760575f80fd5b5061077b6004803603810190610776919061247f565b611138565b005b348015610788575f80fd5b506107916111cd565b60405161079e9190612130565b60405180910390f35b3480156107b2575f80fd5b506107bb6111f2565b6040516107c89190612518565b60405180910390f35b3480156107dc575f80fd5b506107e5611217565b6040516107f291906122d4565b60405180910390f35b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b6040518060400160405280601c81526020017f536361726564204d6f6e657920646f6e74206d616b65204d6f6e65790000000081525081565b60075481565b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109409190612161565b60405180910390a36001905092915050565b6103e881565b6012600a610966919061268d565b6402540be40061097691906126d7565b81565b60085481565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205414610b5e57610ae1826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e63650000000000000000000081525060035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461122a9092919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b610b6984848461128c565b90509392505050565b5f60025f8073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546012600a610bff919061268d565b6402540be400610c0f91906126d7565b610c199190612718565b610c239190612718565b905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b601281565b6004602052805f5260405f205f915054906101000a900460ff1681565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610d05573d5f803e3d5ffd5b50565b5f610d33827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610865565b9050919050565b60065481565b610d4933610c28565b610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f90612795565b60405180910390fd5b81600a819055508260098190555080600b81905550505050565b600e60159054906101000a900460ff1681565b6002602052805f5260405f205f915090505481565b610dd333610c28565b610e12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0990612795565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610e9f9190612130565b60405180910390a1565b60015481565b610eb833610c28565b610ef7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90612795565b60405180910390fd5b6001811015610f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3290612823565b60405180910390fd5b6064816012600a610f4c919061268d565b6402540be400610f5c91906126d7565b610f6691906126d7565b610f70919061286e565b60018190555050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600581526020017f4d4f4e455900000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000cbe894417b8992613605f109e2ef64c20c0c2c7d81565b5f61102c33848461128c565b905092915050565b6005602052805f5260405f205f915054906101000a900460ff1681565b61105a33610c28565b611099576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109090612795565b60405180910390fd5b6001600e60146101000a81548160ff021916908315150217905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61114133610c28565b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117790612795565b60405180910390fd5b81600e60156101000a81548160ff021916908315150217905550806012600a6111a9919061268d565b6402540be4006111b991906126d7565b6111c3919061286e565b600f819055505050565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60149054906101000a900460ff1681565b5f838311158290611271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112689190612204565b60405180910390fd5b505f838561127f9190612718565b9050809150509392505050565b5f60105f9054906101000a900460ff16156112b3576112ac84848461176f565b9050611768565b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661135157600e60149054906101000a900460ff16611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906128e8565b60405180910390fd5b5b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113ef575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561144757507f000000000000000000000000cbe894417b8992613605f109e2ef64c20c0c2c7d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114da576001548260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114989190612906565b11156114d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d090612983565b60405180910390fd5b5b6114e2611939565b156114f0576114ef611a0a565b5b611577826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461122a9092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611654575060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61166857611663858486611ce8565b61166a565b825b90506116bc8160025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f2a90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161175a9190612161565b60405180910390a360019150505b9392505050565b5f6117f7826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461122a9092919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506118888260025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f2a90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119269190612161565b60405180910390a3600190509392505050565b5f7f000000000000000000000000cbe894417b8992613605f109e2ef64c20c0c2c7d73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156119a2575060105f9054906101000a900460ff16155b80156119ba5750600e60159054906101000a900460ff165b8015611a055750600f5460025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b905090565b600160105f6101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611a4057611a3f6129a1565b5b604051908082528060200260200182016040528015611a6e5781602001602082028036833780820191505090505b50905030815f81518110611a8557611a846129ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110611af457611af36129ce565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947600f545f8430426040518663ffffffff1660e01b8152600401611b92959493929190612aeb565b5f604051808303815f87803b158015611ba9575f80fd5b505af1158015611bbb573d5f803e3d5ffd5b505050505f4790505f60085460065483611bd591906126d7565b611bdf919061286e565b90505f60085460075484611bf391906126d7565b611bfd919061286e565b9050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611c63573d5f803e3d5ffd5b50600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611cc8573d5f803e3d5ffd5b50505050505f60105f6101000a81548160ff021916908315150217905550565b5f80831480611cf857505f600854145b15611d0557829050611f23565b5f600b5490507f000000000000000000000000cbe894417b8992613605f109e2ef64c20c0c2c7d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d6857600a549050611dc2565b7f000000000000000000000000cbe894417b8992613605f109e2ef64c20c0c2c7d73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611dc15760095490505b5b5f611e0a60646103e8611dd591906126d7565b611dfc84611dee6008548a611f8790919063ffffffff16565b611f8790919063ffffffff16565b611ffe90919063ffffffff16565b90505f811115611f0b57611e648160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f2a90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f029190612161565b60405180910390a35b611f1e818661204790919063ffffffff16565b925050505b9392505050565b5f808284611f389190612906565b905083811015611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7490612b8d565b60405180910390fd5b8091505092915050565b5f808303611f97575f9050611ff8565b5f8284611fa491906126d7565b9050828482611fb3919061286e565b14611ff3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fea90612c1b565b60405180910390fd5b809150505b92915050565b5f61203f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612090565b905092915050565b5f61208883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061122a565b905092915050565b5f80831182906120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd9190612204565b60405180910390fd5b505f83856120e4919061286e565b9050809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61211a826120f1565b9050919050565b61212a81612110565b82525050565b5f6020820190506121435f830184612121565b92915050565b5f819050919050565b61215b81612149565b82525050565b5f6020820190506121745f830184612152565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121b1578082015181840152602081019050612196565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6121d68261217a565b6121e08185612184565b93506121f0818560208601612194565b6121f9816121bc565b840191505092915050565b5f6020820190508181035f83015261221c81846121cc565b905092915050565b5f80fd5b61223181612110565b811461223b575f80fd5b50565b5f8135905061224c81612228565b92915050565b61225b81612149565b8114612265575f80fd5b50565b5f8135905061227681612252565b92915050565b5f806040838503121561229257612291612224565b5b5f61229f8582860161223e565b92505060206122b085828601612268565b9150509250929050565b5f8115159050919050565b6122ce816122ba565b82525050565b5f6020820190506122e75f8301846122c5565b92915050565b5f805f6060848603121561230457612303612224565b5b5f6123118682870161223e565b93505060206123228682870161223e565b925050604061233386828701612268565b9150509250925092565b5f6020828403121561235257612351612224565b5b5f61235f8482850161223e565b91505092915050565b5f60ff82169050919050565b61237d81612368565b82525050565b5f6020820190506123965f830184612374565b92915050565b5f805f606084860312156123b3576123b2612224565b5b5f6123c086828701612268565b93505060206123d186828701612268565b92505060406123e286828701612268565b9150509250925092565b5f6020828403121561240157612400612224565b5b5f61240e84828501612268565b91505092915050565b5f806040838503121561242d5761242c612224565b5b5f61243a8582860161223e565b925050602061244b8582860161223e565b9150509250929050565b61245e816122ba565b8114612468575f80fd5b50565b5f8135905061247981612455565b92915050565b5f806040838503121561249557612494612224565b5b5f6124a28582860161246b565b92505060206124b385828601612268565b9150509250929050565b5f819050919050565b5f6124e06124db6124d6846120f1565b6124bd565b6120f1565b9050919050565b5f6124f1826124c6565b9050919050565b5f612502826124e7565b9050919050565b612512816124f8565b82525050565b5f60208201905061252b5f830184612509565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125b35780860481111561258f5761258e612531565b5b600185161561259e5780820291505b80810290506125ac8561255e565b9450612573565b94509492505050565b5f826125cb5760019050612686565b816125d8575f9050612686565b81600181146125ee57600281146125f857612627565b6001915050612686565b60ff84111561260a57612609612531565b5b8360020a91508482111561262157612620612531565b5b50612686565b5060208310610133831016604e8410600b841016171561265c5782820a90508381111561265757612656612531565b5b612686565b612669848484600161256a565b925090508184048111156126805761267f612531565b5b81810290505b9392505050565b5f61269782612149565b91506126a283612368565b92506126cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125bc565b905092915050565b5f6126e182612149565b91506126ec83612149565b92508282026126fa81612149565b9150828204841483151761271157612710612531565b5b5092915050565b5f61272282612149565b915061272d83612149565b925082820390508181111561274557612744612531565b5b92915050565b7f214f574e455200000000000000000000000000000000000000000000000000005f82015250565b5f61277f600683612184565b915061278a8261274b565b602082019050919050565b5f6020820190508181035f8301526127ac81612773565b9050919050565b7f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e205f8201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b5f61280d602283612184565b9150612818826127b3565b604082019050919050565b5f6020820190508181035f83015261283a81612801565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61287882612149565b915061288383612149565b92508261289357612892612841565b5b828204905092915050565b7f74726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6128d2601483612184565b91506128dd8261289e565b602082019050919050565b5f6020820190508181035f8301526128ff816128c6565b9050919050565b5f61291082612149565b915061291b83612149565b925082820190508082111561293357612932612531565b5b92915050565b7f6d61782077616c6c6574206c696d6974207265616368656400000000000000005f82015250565b5f61296d601883612184565b915061297882612939565b602082019050919050565b5f6020820190508181035f83015261299a81612961565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612a1e612a19612a14846129fb565b6124bd565b612149565b9050919050565b612a2e81612a04565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612a6681612110565b82525050565b5f612a778383612a5d565b60208301905092915050565b5f602082019050919050565b5f612a9982612a34565b612aa38185612a3e565b9350612aae83612a4e565b805f5b83811015612ade578151612ac58882612a6c565b9750612ad083612a83565b925050600181019050612ab1565b5085935050505092915050565b5f60a082019050612afe5f830188612152565b612b0b6020830187612a25565b8181036040830152612b1d8186612a8f565b9050612b2c6060830185612121565b612b396080830184612152565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612b77601b83612184565b9150612b8282612b43565b602082019050919050565b5f6020820190508181035f830152612ba481612b6b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c05602183612184565b9150612c1082612bab565b604082019050919050565b5f6020820190508181035f830152612c3281612bf9565b905091905056fea26469706673582212208f1df8517354ce88d1646fe7c1bb225216c4ab9371e2dbc9fb2440f97436561664736f6c63430008150033

Deployed Bytecode Sourcemap

2921:7371:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4043:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4234:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3170:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3735:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3835:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3327:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3774:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6030:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10152:137;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2152:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3283:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3583:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8844:112;;;;;;;;;;;;;:::i;:::-;;5736:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3695:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9759:198;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4197:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3461:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2263:128;;;;;;;;;;;;;:::i;:::-;;3403:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6408:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5287:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1965:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3237:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4119:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5866:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3634:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8964:79;;;;;;;;;;;;;:::i;:::-;;5371:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9965:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4001:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4088:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4157:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4043:36;;;;;;;;;;;;;:::o;4234:48::-;;;;:::o;3170:60::-;;;;;;;;;;;;;;;;;;;:::o;3735:32::-;;;;:::o;5512:216::-;5587:4;5639:6;5604:11;:23;5616:10;5604:23;;;;;;;;;;;;;;;:32;5628:7;5604:32;;;;;;;;;;;;;;;:41;;;;5682:7;5661:37;;5670:10;5661:37;;;5691:6;5661:37;;;;;;:::i;:::-;;;;;;;;5716:4;5709:11;;5512:216;;;;:::o;3835:45::-;3876:4;3835:45;:::o;3327:67::-;3316:2;3382;:12;;;;:::i;:::-;3365:14;:29;;;;:::i;:::-;3327:67;:::o;3774:54::-;;;;:::o;6030:370::-;6130:4;6185:17;6150:11;:19;6162:6;6150:19;;;;;;;;;;;;;;;:31;6170:10;6150:31;;;;;;;;;;;;;;;;:52;6147:186;;6252:69;6288:6;6252:69;;;;;;;;;;;;;;;;;:11;:19;6264:6;6252:19;;;;;;;;;;;;;;;:31;6272:10;6252:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;6218:11;:19;6230:6;6218:19;;;;;;;;;;;;;;;:31;6238:10;6218:31;;;;;;;;;;;;;;;:103;;;;6147:186;6352:40;6366:6;6374:9;6385:6;6352:13;:40::i;:::-;6345:47;;6030:370;;;;;:::o;10152:137::-;10205:7;10265:9;:15;3119:42;10265:15;;;;;;;;;;;;;;;;10247:9;:15;3046:42;10247:15;;;;;;;;;;;;;;;;3316:2;3382;:12;;;;:::i;:::-;3365:14;:29;;;;:::i;:::-;10233;;;;:::i;:::-;:47;;;;:::i;:::-;10225:56;;10152:137;:::o;2152:103::-;2207:4;2242:5;;;;;;;;;;;2231:16;;:7;:16;;;2224:23;;2152:103;;;:::o;3283:35::-;3316:2;3283:35;:::o;3583:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8844:112::-;8894:21;;;;;;;;;;;8886:39;;:62;8926:21;8886:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8844:112::o;5736:122::-;5791:4;5815:35;5823:7;5832:17;5815:7;:35::i;:::-;5808:42;;5736:122;;;:::o;3695:33::-;;;;:::o;9759:198::-;2103:19;2111:10;2103:7;:19::i;:::-;2095:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9875:5:::1;9858:14;:22;;;;9907:4;9891:13;:20;;;;9943:6;9922:18;:27;;;;9759:198:::0;;;:::o;4197:30::-;;;;;;;;;;;;;:::o;3461:45::-;;;;;;;;;;;;;;;;;:::o;2263:128::-;2103:19;2111:10;2103:7;:19::i;:::-;2095:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2338:1:::1;2322:5:::0;::::1;:18;;;;;;;;;;;;;;;;;;2356:27;2377:5;::::0;::::1;;;;;;;;2356:27;;;;;;:::i;:::-;;;;;;;;2263:128::o:0;3403:49::-;;;;:::o;6408:219::-;2103:19;2111:10;2103:7;:19::i;:::-;2095:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6515:1:::1;6498:13;:18;;6490:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6616:3;6598:13;3316:2;3382;:12;;;;:::i;:::-;3365:14;:29;;;;:::i;:::-;6584:27;;;;:::i;:::-;6583:36;;;;:::i;:::-;6565:15;:54;;;;6408:219:::0;:::o;5287:78::-;5339:7;5357:5;;;;;;;;;;;5350:12;;5287:78;:::o;1965:20::-;;;;;;;;;;;;:::o;3237:39::-;;;;;;;;;;;;;;;;;;;:::o;4119:29::-;;;:::o;5866:156::-;5946:4;5970:44;5984:10;5996:9;6007:6;5970:13;:44::i;:::-;5963:51;;5866:156;;;;:::o;3634:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;8964:79::-;2103:19;2111:10;2103:7;:19::i;:::-;2095:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;9031:4:::1;9017:11;;:18;;;;;;;;;;;;;;;;;;8964:79::o:0;5371:133::-;5455:7;5473:11;:19;5485:6;5473:19;;;;;;;;;;;;;;;:28;5493:7;5473:28;;;;;;;;;;;;;;;;5466:35;;5371:133;;;;:::o;9965:179::-;2103:19;2111:10;2103:7;:19::i;:::-;2095:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10075:8:::1;10061:11;;:22;;;;;;;;;;;;;;;;;;10124:12;3316:2;3382;:12;;;;:::i;:::-;3365:14;:29;;;;:::i;:::-;10110:26;;;;:::i;:::-;10094:13;:42;;;;9965:179:::0;;:::o;4001:35::-;;;;;;;;;;;;;:::o;4088:24::-;;;;;;;;;;;;;:::o;4157:31::-;;;;;;;;;;;;;:::o;473:192::-;559:7;592:1;587;:6;;595:12;579:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;619:9;635:1;631;:5;;;;:::i;:::-;619:17;;656:1;649:8;;;473:192;;;;;:::o;6635:923::-;6727:4;6747:6;;;;;;;;;;;6744:63;;;6763:41;6778:6;6786:9;6797:6;6763:14;:41::i;:::-;6756:48;;;;6744:63;6823:11;:19;6835:6;6823:19;;;;;;;;;;;;;;;;;;;;;;;;;6819:94;;6866:11;;;;;;;;;;;6858:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;6819:94;6930:19;:27;6950:6;6930:27;;;;;;;;;;;;;;;;;;;;;;;;;6929:28;:63;;;;;6962:19;:30;6982:9;6962:30;;;;;;;;;;;;;;;;;;;;;;;;;6961:31;6929:63;:84;;;;;7009:4;6996:17;;:9;:17;;;;6929:84;6925:203;;;7073:15;;7062:6;7039:9;:20;7049:9;7039:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;7038:50;;7030:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;6925:203;7143:16;:14;:16::i;:::-;7140:35;;;7162:10;:8;:10::i;:::-;7140:35;7207:53;7229:6;7207:53;;;;;;;;;;;;;;;;;:9;:17;7217:6;7207:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7187:9;:17;7197:6;7187:17;;;;;;;;;;;;;;;:73;;;;7273:22;7299:11;:19;7311:6;7299:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;7322:11;:22;7334:9;7322:22;;;;;;;;;;;;;;;;;;;;;;;;;7299:45;7298:93;;7357:34;7365:6;7373;7381:9;7357:7;:34::i;:::-;7298:93;;;7348:6;7298:93;7273:118;;7427:40;7452:14;7427:9;:20;7437:9;7427:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;7404:9;:20;7414:9;7404:20;;;;;;;;;;;;;;;:63;;;;7502:9;7485:43;;7494:6;7485:43;;;7513:14;7485:43;;;;;;:::i;:::-;;;;;;;;7546:4;7539:11;;;6635:923;;;;;;:::o;7570:330::-;7663:4;7700:53;7722:6;7700:53;;;;;;;;;;;;;;;;;:9;:17;7710:6;7700:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;7680:9;:17;7690:6;7680:17;;;;;;;;;;;;;;;:73;;;;7787:32;7812:6;7787:9;:20;7797:9;7787:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7764:9;:20;7774:9;7764:20;;;;;;;;;;;;;;;:55;;;;7852:9;7835:35;;7844:6;7835:35;;;7863:6;7835:35;;;;;;:::i;:::-;;;;;;;;7888:4;7881:11;;7570:330;;;;;:::o;8639:197::-;8688:4;8726;8712:18;;:10;:18;;;;:38;;;;;8744:6;;;;;;;;;;;8743:7;8712:38;:62;;;;;8763:11;;;;;;;;;;;8712:62;:116;;;;;8815:13;;8787:9;:24;8805:4;8787:24;;;;;;;;;;;;;;;;:41;;8712:116;8705:123;;8639:197;:::o;9051:700::-;4344:4;4335:6;;:13;;;;;;;;;;;;;;;;;;9102:21:::1;9140:1;9126:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9102:40;;9171:4;9153;9158:1;9153:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9197:4;9187;9192:1;9187:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;9214:6;;;;;;;;;;;:57;;;9286:13;;9314:1;9330:4;9357;9377:15;9214:189;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9416:17;9436:21;9416:41;;9470:26;9528:8;;9512:12;;9500:9;:24;;;;:::i;:::-;9499:37;;;;:::i;:::-;9470:66;;9547:20;9600:8;;9583:13;;9571:9;:25;;;;:::i;:::-;9570:38;;;;:::i;:::-;9547:61;;9629:20;;;;;;;;;;;9621:38;;:58;9660:18;9621:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9698:21;;;;;;;;;;;9690:39;;:53;9730:12;9690:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9089:662;;;;4362:5:::0;4353:6;;:14;;;;;;;;;;;;;;;;;;9051:700::o;7908:723::-;7994:7;8027:1;8017:6;:11;:28;;;;8044:1;8032:8;;:13;8017:28;8014:72;;;8068:6;8061:13;;;;8014:72;8098:18;8119;;8098:39;;8166:4;8153:17;;:9;:17;;;8150:154;;8200:14;;8187:27;;8150:154;;;8245:4;8235:14;;:6;:14;;;8232:72;;8279:13;;8266:26;;8232:72;8150:154;8316:17;8336:62;8394:3;3876:4;8377:20;;;;:::i;:::-;8336:36;8361:10;8336:20;8347:8;;8336:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;8316:82;;8426:1;8414:9;:13;8411:172;;;8470:39;8499:9;8470;:24;8488:4;8470:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8443:9;:24;8461:4;8443:24;;;;;;;;;;;;;;;:66;;;;8554:4;8529:42;;8538:6;8529:42;;;8561:9;8529:42;;;;;;:::i;:::-;;;;;;;;8411:172;8602:21;8613:9;8602:6;:10;;:21;;;;:::i;:::-;8595:28;;;;7908:723;;;;;;:::o;144:181::-;202:7;222:9;238:1;234;:5;;;;:::i;:::-;222:17;;263:1;258;:6;;250:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;316:1;309:8;;;144:181;;;;:::o;671:250::-;729:7;758:1;753;:6;749:47;;783:1;776:8;;;;749:47;808:9;824:1;820;:5;;;;:::i;:::-;808:17;;853:1;848;844;:5;;;;:::i;:::-;:10;836:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;912:1;905:8;;;671:250;;;;;:::o;927:132::-;985:7;1012:39;1016:1;1019;1012:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1005:46;;927:132;;;;:::o;331:136::-;389:7;416:43;420:1;423;416:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;409:50;;331:136;;;;:::o;1065:189::-;1151:7;1183:1;1179;:5;1186:12;1171:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1210:9;1226:1;1222;:5;;;;:::i;:::-;1210:17;;1245:1;1238:8;;;1065:189;;;;;:::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:99::-;1080:6;1114:5;1108:12;1098:22;;1028:99;;;:::o;1133:169::-;1217:11;1251:6;1246:3;1239:19;1291:4;1286:3;1282:14;1267:29;;1133:169;;;;:::o;1308:246::-;1389:1;1399:113;1413:6;1410:1;1407:13;1399:113;;;1498:1;1493:3;1489:11;1483:18;1479:1;1474:3;1470:11;1463:39;1435:2;1432:1;1428:10;1423:15;;1399:113;;;1546:1;1537:6;1532:3;1528:16;1521:27;1370:184;1308:246;;;:::o;1560:102::-;1601:6;1652:2;1648:7;1643:2;1636:5;1632:14;1628:28;1618:38;;1560:102;;;:::o;1668:377::-;1756:3;1784:39;1817:5;1784:39;:::i;:::-;1839:71;1903:6;1898:3;1839:71;:::i;:::-;1832:78;;1919:65;1977:6;1972:3;1965:4;1958:5;1954:16;1919:65;:::i;:::-;2009:29;2031:6;2009:29;:::i;:::-;2004:3;2000:39;1993:46;;1760:285;1668:377;;;;:::o;2051:313::-;2164:4;2202:2;2191:9;2187:18;2179:26;;2251:9;2245:4;2241:20;2237:1;2226:9;2222:17;2215:47;2279:78;2352:4;2343:6;2279:78;:::i;:::-;2271:86;;2051:313;;;;:::o;2451:117::-;2560:1;2557;2550:12;2697:122;2770:24;2788:5;2770:24;:::i;:::-;2763:5;2760:35;2750:63;;2809:1;2806;2799:12;2750:63;2697:122;:::o;2825:139::-;2871:5;2909:6;2896:20;2887:29;;2925:33;2952:5;2925:33;:::i;:::-;2825:139;;;;:::o;2970:122::-;3043:24;3061:5;3043:24;:::i;:::-;3036:5;3033:35;3023:63;;3082:1;3079;3072:12;3023:63;2970:122;:::o;3098:139::-;3144:5;3182:6;3169:20;3160:29;;3198:33;3225:5;3198:33;:::i;:::-;3098:139;;;;:::o;3243:474::-;3311:6;3319;3368:2;3356:9;3347:7;3343:23;3339:32;3336:119;;;3374:79;;:::i;:::-;3336:119;3494:1;3519:53;3564:7;3555:6;3544:9;3540:22;3519:53;:::i;:::-;3509:63;;3465:117;3621:2;3647:53;3692:7;3683:6;3672:9;3668:22;3647:53;:::i;:::-;3637:63;;3592:118;3243:474;;;;;:::o;3723:90::-;3757:7;3800:5;3793:13;3786:21;3775:32;;3723:90;;;:::o;3819:109::-;3900:21;3915:5;3900:21;:::i;:::-;3895:3;3888:34;3819:109;;:::o;3934:210::-;4021:4;4059:2;4048:9;4044:18;4036:26;;4072:65;4134:1;4123:9;4119:17;4110:6;4072:65;:::i;:::-;3934:210;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:329::-;4834:6;4883:2;4871:9;4862:7;4858:23;4854:32;4851:119;;;4889:79;;:::i;:::-;4851:119;5009:1;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4980:117;4775:329;;;;:::o;5110:86::-;5145:7;5185:4;5178:5;5174:16;5163:27;;5110:86;;;:::o;5202:112::-;5285:22;5301:5;5285:22;:::i;:::-;5280:3;5273:35;5202:112;;:::o;5320:214::-;5409:4;5447:2;5436:9;5432:18;5424:26;;5460:67;5524:1;5513:9;5509:17;5500:6;5460:67;:::i;:::-;5320:214;;;;:::o;5540:619::-;5617:6;5625;5633;5682:2;5670:9;5661:7;5657:23;5653:32;5650:119;;;5688:79;;:::i;:::-;5650:119;5808:1;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5779:117;5935:2;5961:53;6006:7;5997:6;5986:9;5982:22;5961:53;:::i;:::-;5951:63;;5906:118;6063:2;6089:53;6134:7;6125:6;6114:9;6110:22;6089:53;:::i;:::-;6079:63;;6034:118;5540:619;;;;;:::o;6165:329::-;6224:6;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6370:117;6165:329;;;;:::o;6500:474::-;6568:6;6576;6625:2;6613:9;6604:7;6600:23;6596:32;6593:119;;;6631:79;;:::i;:::-;6593:119;6751:1;6776:53;6821:7;6812:6;6801:9;6797:22;6776:53;:::i;:::-;6766:63;;6722:117;6878:2;6904:53;6949:7;6940:6;6929:9;6925:22;6904:53;:::i;:::-;6894:63;;6849:118;6500:474;;;;;:::o;6980:116::-;7050:21;7065:5;7050:21;:::i;:::-;7043:5;7040:32;7030:60;;7086:1;7083;7076:12;7030:60;6980:116;:::o;7102:133::-;7145:5;7183:6;7170:20;7161:29;;7199:30;7223:5;7199:30;:::i;:::-;7102:133;;;;:::o;7241:468::-;7306:6;7314;7363:2;7351:9;7342:7;7338:23;7334:32;7331:119;;;7369:79;;:::i;:::-;7331:119;7489:1;7514:50;7556:7;7547:6;7536:9;7532:22;7514:50;:::i;:::-;7504:60;;7460:114;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7241:468;;;;;:::o;7715:60::-;7743:3;7764:5;7757:12;;7715:60;;;:::o;7781:142::-;7831:9;7864:53;7882:34;7891:24;7909:5;7891:24;:::i;:::-;7882:34;:::i;:::-;7864:53;:::i;:::-;7851:66;;7781:142;;;:::o;7929:126::-;7979:9;8012:37;8043:5;8012:37;:::i;:::-;7999:50;;7929:126;;;:::o;8061:144::-;8129:9;8162:37;8193:5;8162:37;:::i;:::-;8149:50;;8061:144;;;:::o;8211:167::-;8316:55;8365:5;8316:55;:::i;:::-;8311:3;8304:68;8211:167;;:::o;8384:258::-;8495:4;8533:2;8522:9;8518:18;8510:26;;8546:89;8632:1;8621:9;8617:17;8608:6;8546:89;:::i;:::-;8384:258;;;;:::o;8648:180::-;8696:77;8693:1;8686:88;8793:4;8790:1;8783:15;8817:4;8814:1;8807:15;8834:102;8876:8;8923:5;8920:1;8916:13;8895:34;;8834:102;;;:::o;8942:848::-;9003:5;9010:4;9034:6;9025:15;;9058:5;9049:14;;9072:712;9093:1;9083:8;9080:15;9072:712;;;9188:4;9183:3;9179:14;9173:4;9170:24;9167:50;;;9197:18;;:::i;:::-;9167:50;9247:1;9237:8;9233:16;9230:451;;;9662:4;9655:5;9651:16;9642:25;;9230:451;9712:4;9706;9702:15;9694:23;;9742:32;9765:8;9742:32;:::i;:::-;9730:44;;9072:712;;;8942:848;;;;;;;:::o;9796:1073::-;9850:5;10041:8;10031:40;;10062:1;10053:10;;10064:5;;10031:40;10090:4;10080:36;;10107:1;10098:10;;10109:5;;10080:36;10176:4;10224:1;10219:27;;;;10260:1;10255:191;;;;10169:277;;10219:27;10237:1;10228:10;;10239:5;;;10255:191;10300:3;10290:8;10287:17;10284:43;;;10307:18;;:::i;:::-;10284:43;10356:8;10353:1;10349:16;10340:25;;10391:3;10384:5;10381:14;10378:40;;;10398:18;;:::i;:::-;10378:40;10431:5;;;10169:277;;10555:2;10545:8;10542:16;10536:3;10530:4;10527:13;10523:36;10505:2;10495:8;10492:16;10487:2;10481:4;10478:12;10474:35;10458:111;10455:246;;;10611:8;10605:4;10601:19;10592:28;;10646:3;10639:5;10636:14;10633:40;;;10653:18;;:::i;:::-;10633:40;10686:5;;10455:246;10726:42;10764:3;10754:8;10748:4;10745:1;10726:42;:::i;:::-;10711:57;;;;10800:4;10795:3;10791:14;10784:5;10781:25;10778:51;;;10809:18;;:::i;:::-;10778:51;10858:4;10851:5;10847:16;10838:25;;9796:1073;;;;;;:::o;10875:281::-;10933:5;10957:23;10975:4;10957:23;:::i;:::-;10949:31;;11001:25;11017:8;11001:25;:::i;:::-;10989:37;;11045:104;11082:66;11072:8;11066:4;11045:104;:::i;:::-;11036:113;;10875:281;;;;:::o;11162:410::-;11202:7;11225:20;11243:1;11225:20;:::i;:::-;11220:25;;11259:20;11277:1;11259:20;:::i;:::-;11254:25;;11314:1;11311;11307:9;11336:30;11354:11;11336:30;:::i;:::-;11325:41;;11515:1;11506:7;11502:15;11499:1;11496:22;11476:1;11469:9;11449:83;11426:139;;11545:18;;:::i;:::-;11426:139;11210:362;11162:410;;;;:::o;11578:194::-;11618:4;11638:20;11656:1;11638:20;:::i;:::-;11633:25;;11672:20;11690:1;11672:20;:::i;:::-;11667:25;;11716:1;11713;11709:9;11701:17;;11740:1;11734:4;11731:11;11728:37;;;11745:18;;:::i;:::-;11728:37;11578:194;;;;:::o;11778:156::-;11918:8;11914:1;11906:6;11902:14;11895:32;11778:156;:::o;11940:365::-;12082:3;12103:66;12167:1;12162:3;12103:66;:::i;:::-;12096:73;;12178:93;12267:3;12178:93;:::i;:::-;12296:2;12291:3;12287:12;12280:19;;11940:365;;;:::o;12311:419::-;12477:4;12515:2;12504:9;12500:18;12492:26;;12564:9;12558:4;12554:20;12550:1;12539:9;12535:17;12528:47;12592:131;12718:4;12592:131;:::i;:::-;12584:139;;12311:419;;;:::o;12736:221::-;12876:34;12872:1;12864:6;12860:14;12853:58;12945:4;12940:2;12932:6;12928:15;12921:29;12736:221;:::o;12963:366::-;13105:3;13126:67;13190:2;13185:3;13126:67;:::i;:::-;13119:74;;13202:93;13291:3;13202:93;:::i;:::-;13320:2;13315:3;13311:12;13304:19;;12963:366;;;:::o;13335:419::-;13501:4;13539:2;13528:9;13524:18;13516:26;;13588:9;13582:4;13578:20;13574:1;13563:9;13559:17;13552:47;13616:131;13742:4;13616:131;:::i;:::-;13608:139;;13335:419;;;:::o;13760:180::-;13808:77;13805:1;13798:88;13905:4;13902:1;13895:15;13929:4;13926:1;13919:15;13946:185;13986:1;14003:20;14021:1;14003:20;:::i;:::-;13998:25;;14037:20;14055:1;14037:20;:::i;:::-;14032:25;;14076:1;14066:35;;14081:18;;:::i;:::-;14066:35;14123:1;14120;14116:9;14111:14;;13946:185;;;;:::o;14137:170::-;14277:22;14273:1;14265:6;14261:14;14254:46;14137:170;:::o;14313:366::-;14455:3;14476:67;14540:2;14535:3;14476:67;:::i;:::-;14469:74;;14552:93;14641:3;14552:93;:::i;:::-;14670:2;14665:3;14661:12;14654:19;;14313:366;;;:::o;14685:419::-;14851:4;14889:2;14878:9;14874:18;14866:26;;14938:9;14932:4;14928:20;14924:1;14913:9;14909:17;14902:47;14966:131;15092:4;14966:131;:::i;:::-;14958:139;;14685:419;;;:::o;15110:191::-;15150:3;15169:20;15187:1;15169:20;:::i;:::-;15164:25;;15203:20;15221:1;15203:20;:::i;:::-;15198:25;;15246:1;15243;15239:9;15232:16;;15267:3;15264:1;15261:10;15258:36;;;15274:18;;:::i;:::-;15258:36;15110:191;;;;:::o;15307:174::-;15447:26;15443:1;15435:6;15431:14;15424:50;15307:174;:::o;15487:366::-;15629:3;15650:67;15714:2;15709:3;15650:67;:::i;:::-;15643:74;;15726:93;15815:3;15726:93;:::i;:::-;15844:2;15839:3;15835:12;15828:19;;15487:366;;;:::o;15859:419::-;16025:4;16063:2;16052:9;16048:18;16040:26;;16112:9;16106:4;16102:20;16098:1;16087:9;16083:17;16076:47;16140:131;16266:4;16140:131;:::i;:::-;16132:139;;15859:419;;;:::o;16284:180::-;16332:77;16329:1;16322:88;16429:4;16426:1;16419:15;16453:4;16450:1;16443:15;16470:180;16518:77;16515:1;16508:88;16615:4;16612:1;16605:15;16639:4;16636:1;16629:15;16656:85;16701:7;16730:5;16719:16;;16656:85;;;:::o;16747:158::-;16805:9;16838:61;16856:42;16865:32;16891:5;16865:32;:::i;:::-;16856:42;:::i;:::-;16838:61;:::i;:::-;16825:74;;16747:158;;;:::o;16911:147::-;17006:45;17045:5;17006:45;:::i;:::-;17001:3;16994:58;16911:147;;:::o;17064:114::-;17131:6;17165:5;17159:12;17149:22;;17064:114;;;:::o;17184:184::-;17283:11;17317:6;17312:3;17305:19;17357:4;17352:3;17348:14;17333:29;;17184:184;;;;:::o;17374:132::-;17441:4;17464:3;17456:11;;17494:4;17489:3;17485:14;17477:22;;17374:132;;;:::o;17512:108::-;17589:24;17607:5;17589:24;:::i;:::-;17584:3;17577:37;17512:108;;:::o;17626:179::-;17695:10;17716:46;17758:3;17750:6;17716:46;:::i;:::-;17794:4;17789:3;17785:14;17771:28;;17626:179;;;;:::o;17811:113::-;17881:4;17913;17908:3;17904:14;17896:22;;17811:113;;;:::o;17960:732::-;18079:3;18108:54;18156:5;18108:54;:::i;:::-;18178:86;18257:6;18252:3;18178:86;:::i;:::-;18171:93;;18288:56;18338:5;18288:56;:::i;:::-;18367:7;18398:1;18383:284;18408:6;18405:1;18402:13;18383:284;;;18484:6;18478:13;18511:63;18570:3;18555:13;18511:63;:::i;:::-;18504:70;;18597:60;18650:6;18597:60;:::i;:::-;18587:70;;18443:224;18430:1;18427;18423:9;18418:14;;18383:284;;;18387:14;18683:3;18676:10;;18084:608;;;17960:732;;;;:::o;18698:831::-;18961:4;18999:3;18988:9;18984:19;18976:27;;19013:71;19081:1;19070:9;19066:17;19057:6;19013:71;:::i;:::-;19094:80;19170:2;19159:9;19155:18;19146:6;19094:80;:::i;:::-;19221:9;19215:4;19211:20;19206:2;19195:9;19191:18;19184:48;19249:108;19352:4;19343:6;19249:108;:::i;:::-;19241:116;;19367:72;19435:2;19424:9;19420:18;19411:6;19367:72;:::i;:::-;19449:73;19517:3;19506:9;19502:19;19493:6;19449:73;:::i;:::-;18698:831;;;;;;;;:::o;19535:177::-;19675:29;19671:1;19663:6;19659:14;19652:53;19535:177;:::o;19718:366::-;19860:3;19881:67;19945:2;19940:3;19881:67;:::i;:::-;19874:74;;19957:93;20046:3;19957:93;:::i;:::-;20075:2;20070:3;20066:12;20059:19;;19718:366;;;:::o;20090:419::-;20256:4;20294:2;20283:9;20279:18;20271:26;;20343:9;20337:4;20333:20;20329:1;20318:9;20314:17;20307:47;20371:131;20497:4;20371:131;:::i;:::-;20363:139;;20090:419;;;:::o;20515:220::-;20655:34;20651:1;20643:6;20639:14;20632:58;20724:3;20719:2;20711:6;20707:15;20700:28;20515:220;:::o;20741:366::-;20883:3;20904:67;20968:2;20963:3;20904:67;:::i;:::-;20897:74;;20980:93;21069:3;20980:93;:::i;:::-;21098:2;21093:3;21089:12;21082:19;;20741:366;;;:::o;21113:419::-;21279:4;21317:2;21306:9;21302:18;21294:26;;21366:9;21360:4;21356:20;21352:1;21341:9;21337:17;21330:47;21394:131;21520:4;21394:131;:::i;:::-;21386:139;;21113:419;;;:::o

Swarm Source

ipfs://8f1df8517354ce88d1646fe7c1bb225216c4ab9371e2dbc9fb2440f974365616

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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