ETH Price: $2,688.56 (+2.68%)

Contract

0xCA13D0A5BF4425706C8D9824b5DF76EdbDBd119C
 

Overview

ETH Balance

0.043692147002936005 ETH

Eth Value

$117.47 (@ $2,688.56/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve130096132021-08-12 9:48:591280 days ago1628761739IN
0xCA13D0A5...dbDBd119C
0 ETH0.0015601433.04274421
Approve130040022021-08-11 12:55:411281 days ago1628686541IN
0xCA13D0A5...dbDBd119C
0 ETH0.0025496654
Approve130037652021-08-11 12:05:001281 days ago1628683500IN
0xCA13D0A5...dbDBd119C
0 ETH0.0022191547
Approve130036622021-08-11 11:42:171281 days ago1628682137IN
0xCA13D0A5...dbDBd119C
0 ETH0.0016375834.68290084
Approve130035932021-08-11 11:29:301281 days ago1628681370IN
0xCA13D0A5...dbDBd119C
0 ETH0.0019610541.53379305
Approve130035852021-08-11 11:27:421281 days ago1628681262IN
0xCA13D0A5...dbDBd119C
0 ETH0.0020302843
Manualsend130035182021-08-11 11:15:281281 days ago1628680528IN
0xCA13D0A5...dbDBd119C
0 ETH0.002562752.07800032
Approve130034342021-08-11 10:53:171281 days ago1628679197IN
0xCA13D0A5...dbDBd119C
0 ETH0.0024552352
Renounce Ownersh...130034222021-08-11 10:49:301281 days ago1628678970IN
0xCA13D0A5...dbDBd119C
0 ETH0.0009727541.57093581
Approve130033902021-08-11 10:43:221281 days ago1628678602IN
0xCA13D0A5...dbDBd119C
0 ETH0.0025658654.34313194
Approve130033862021-08-11 10:42:171281 days ago1628678537IN
0xCA13D0A5...dbDBd119C
0 ETH0.0022663648
Approve130033742021-08-11 10:38:371281 days ago1628678317IN
0xCA13D0A5...dbDBd119C
0 ETH0.0019830742
Approve130033742021-08-11 10:38:371281 days ago1628678317IN
0xCA13D0A5...dbDBd119C
0 ETH0.0019830742
Approve130033742021-08-11 10:38:371281 days ago1628678317IN
0xCA13D0A5...dbDBd119C
0 ETH0.0019830742
Approve130033742021-08-11 10:38:371281 days ago1628678317IN
0xCA13D0A5...dbDBd119C
0 ETH0.0024080151
Approve130033622021-08-11 10:34:351281 days ago1628678075IN
0xCA13D0A5...dbDBd119C
0 ETH0.0021247245
Approve130033622021-08-11 10:34:351281 days ago1628678075IN
0xCA13D0A5...dbDBd119C
0 ETH0.0021247245
Approve130033522021-08-11 10:33:041281 days ago1628677984IN
0xCA13D0A5...dbDBd119C
0 ETH0.001728236.60200221
Approve130033522021-08-11 10:33:041281 days ago1628677984IN
0xCA13D0A5...dbDBd119C
0 ETH0.002077544
Approve130033422021-08-11 10:31:451281 days ago1628677905IN
0xCA13D0A5...dbDBd119C
0 ETH0.0021247245
Approve130033382021-08-11 10:31:071281 days ago1628677867IN
0xCA13D0A5...dbDBd119C
0 ETH0.0018886440
Approve130033292021-08-11 10:29:371281 days ago1628677777IN
0xCA13D0A5...dbDBd119C
0 ETH0.0018914840.06023122
Approve130033232021-08-11 10:28:371281 days ago1628677717IN
0xCA13D0A5...dbDBd119C
0 ETH0.0023891250.6
Approve130033212021-08-11 10:28:121281 days ago1628677692IN
0xCA13D0A5...dbDBd119C
0 ETH0.0019830742
Approve130033162021-08-11 10:26:521281 days ago1628677612IN
0xCA13D0A5...dbDBd119C
0 ETH0.0024080151
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
130100752021-08-12 11:27:041280 days ago1628767624
0xCA13D0A5...dbDBd119C
0.00360966 ETH
130098172021-08-12 10:30:331280 days ago1628764233
0xCA13D0A5...dbDBd119C
0.00164726 ETH
130091862021-08-12 8:09:101280 days ago1628755750
0xCA13D0A5...dbDBd119C
0.00318489 ETH
130037692021-08-11 12:05:441281 days ago1628683544
0xCA13D0A5...dbDBd119C
0.00384863 ETH
130037392021-08-11 12:00:321281 days ago1628683232
0xCA13D0A5...dbDBd119C
0.00218485 ETH
130037132021-08-11 11:51:171281 days ago1628682677
0xCA13D0A5...dbDBd119C
0.0071452 ETH
130037132021-08-11 11:51:171281 days ago1628682677
0xCA13D0A5...dbDBd119C
0.00804543 ETH
130036392021-08-11 11:38:461281 days ago1628681926
0xCA13D0A5...dbDBd119C
0.01402619 ETH
130035182021-08-11 11:15:281281 days ago1628680528
0xCA13D0A5...dbDBd119C
0.04685014 ETH
130035182021-08-11 11:15:281281 days ago1628680528
0xCA13D0A5...dbDBd119C
0.04685014 ETH
130035182021-08-11 11:15:281281 days ago1628680528
0xCA13D0A5...dbDBd119C
0.04685014 ETH
130034852021-08-11 11:08:121281 days ago1628680092
0xCA13D0A5...dbDBd119C
0.00565864 ETH
130034722021-08-11 11:02:091281 days ago1628679729
0xCA13D0A5...dbDBd119C
0.00237437 ETH
130034702021-08-11 11:01:151281 days ago1628679675
0xCA13D0A5...dbDBd119C
0.00645097 ETH
130034612021-08-11 10:58:271281 days ago1628679507
0xCA13D0A5...dbDBd119C
0.00254446 ETH
130034592021-08-11 10:56:301281 days ago1628679390
0xCA13D0A5...dbDBd119C
0.00778168 ETH
130034592021-08-11 10:56:301281 days ago1628679390
0xCA13D0A5...dbDBd119C
0.00890428 ETH
130034492021-08-11 10:55:391281 days ago1628679339
0xCA13D0A5...dbDBd119C
0.01049619 ETH
130034462021-08-11 10:55:061281 days ago1628679306
0xCA13D0A5...dbDBd119C
0.01733291 ETH
130034292021-08-11 10:51:091281 days ago1628679069
0xCA13D0A5...dbDBd119C
0.00797058 ETH
130034252021-08-11 10:49:471281 days ago1628678987
0xCA13D0A5...dbDBd119C
0.00446401 ETH
130034252021-08-11 10:49:471281 days ago1628678987
0xCA13D0A5...dbDBd119C
0.00617706 ETH
130034252021-08-11 10:49:471281 days ago1628678987
0xCA13D0A5...dbDBd119C
0.00617706 ETH
130034202021-08-11 10:48:551281 days ago1628678935
0xCA13D0A5...dbDBd119C
0.01103325 ETH
130034192021-08-11 10:48:511281 days ago1628678931
0xCA13D0A5...dbDBd119C
0.02606133 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BabyPudgyPenguin

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-11
*/

/**
 *Submitted for verification at Etherscan.io on 2021-08-11
*/


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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

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;
    }

}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract BabyPudgyPenguin  is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 8888888  * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    
    string private constant _name = "BabyPudgyPenguin";
    string private constant _symbol = "BPP";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xF4efDaA432903DE1A4A58567f035a2969D473C78);
        _feeAddrWallet2 = payable(0xF4efDaA432903DE1A4A58567f035a2969D473C78);
        _feeAddrWallet3 = payable(0xF4efDaA432903DE1A4A58567f035a2969D473C78);
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from]);
        if (from != address(this)) {
            _feeAddr1 = 2;
            _feeAddr2 = 8;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 300000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function liftMaxTx() external onlyOwner{
        _maxTxAmount = _tTotal;
    }
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount/3);
        _feeAddrWallet2.transfer(amount/3);
        _feeAddrWallet3.transfer(amount/3);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 355555 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"}]

6080604052661f946583b030006000196200001b9190620004de565b6000196200002a919062000499565b6008556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff021916908315150217905550661f946583b030006011553480156200009657600080fd5b506000620000a96200043a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073f4efdaa432903de1a4a58567f035a2969d473c78600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f4efdaa432903de1a4a58567f035a2969d473c78600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f4efdaa432903de1a4a58567f035a2969d473c78600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002a26200044260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef661f946583b030006040516200042c91906200047c565b60405180910390a362000574565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200047681620004d4565b82525050565b60006020820190506200049360008301846200046b565b92915050565b6000620004a682620004d4565b9150620004b383620004d4565b925082821015620004c957620004c862000516565b5b828203905092915050565b6000819050919050565b6000620004eb82620004d4565b9150620004f883620004d4565b9250826200050b576200050a62000545565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612bdb80620005846000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102ff578063c3c8cd801461033c578063c9567bf914610353578063dd62ed3e1461036a576100fe565b806370a0823114610255578063715018a6146102925780638da5cb5b146102a957806395d89b41146102d4576100fe565b80632ab30838116100c65780632ab30838146101d3578063313ce567146101ea5780635932ead1146102155780636fc3eaec1461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b604051610125919061250d565b60405180910390f35b34801561013a57600080fd5b5061015560048036038101906101509190612126565b6103e4565b60405161016291906124f2565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061262f565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b891906120d7565b610411565b6040516101ca91906124f2565b60405180910390f35b3480156101df57600080fd5b506101e86104ea565b005b3480156101f657600080fd5b506101ff61058f565b60405161020c91906126a4565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190612162565b610598565b005b34801561024a57600080fd5b5061025361064a565b005b34801561026157600080fd5b5061027c60048036038101906102779190612049565b6106bc565b604051610289919061262f565b60405180910390f35b34801561029e57600080fd5b506102a761070d565b005b3480156102b557600080fd5b506102be610860565b6040516102cb9190612424565b60405180910390f35b3480156102e057600080fd5b506102e9610889565b6040516102f6919061250d565b60405180910390f35b34801561030b57600080fd5b5061032660048036038101906103219190612126565b6108c6565b60405161033391906124f2565b60405180910390f35b34801561034857600080fd5b506103516108e4565b005b34801561035f57600080fd5b5061036861095e565b005b34801561037657600080fd5b50610391600480360381019061038c919061209b565b610eb7565b60405161039e919061262f565b60405180910390f35b60606040518060400160405280601081526020017f42616279507564677950656e6775696e00000000000000000000000000000000815250905090565b60006103f86103f1610f3e565b8484610f46565b6001905092915050565b6000661f946583b03000905090565b600061041e848484611111565b6104df8461042a610f3e565b6104da85604051806060016040528060288152602001612b7e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610490610f3e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113ed9092919063ffffffff16565b610f46565b600190509392505050565b6104f2610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461057f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610576906125af565b60405180910390fd5b661f946583b03000601181905550565b60006009905090565b6105a0610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906125af565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661068b610f3e565b73ffffffffffffffffffffffffffffffffffffffff16146106ab57600080fd5b60004790506106b981611451565b50565b6000610706600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b3565b9050919050565b610715610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610799906125af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4250500000000000000000000000000000000000000000000000000000000000815250905090565b60006108da6108d3610f3e565b8484611111565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610925610f3e565b73ffffffffffffffffffffffffffffffffffffffff161461094557600080fd5b6000610950306106bc565b905061095b81611621565b50565b610966610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ea906125af565b60405180910390fd5b601060149054906101000a900460ff1615610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a9061260f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ad130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16661f946583b03000610f46565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1757600080fd5b505afa158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190612072565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190612072565b6040518363ffffffff1660e01b8152600401610c0692919061243f565b602060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190612072565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ce1306106bc565b600080610cec610860565b426040518863ffffffff1660e01b8152600401610d0e96959493929190612491565b6060604051808303818588803b158015610d2757600080fd5b505af1158015610d3b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d6091906121b4565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506601436019791e006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e61929190612468565b602060405180830381600087803b158015610e7b57600080fd5b505af1158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb3919061218b565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad906125ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d9061254f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611104919061262f565b60405180910390a3505050565b60008111611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b906125cf565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111ab57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113dd576002600a819055506008600b81905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156112995750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113075750601060179054906101000a900460ff165b1561131c5760115481111561131b57600080fd5b5b6000611327306106bc565b9050601060159054906101000a900460ff161580156113945750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113ac5750601060169054906101000a900460ff165b156113db576113ba81611621565b6000479050670429d069189e00008111156113d9576113d847611451565b5b505b505b6113e883838361191b565b505050565b6000838311158290611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c919061250d565b60405180910390fd5b506000838561144491906127f5565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60038361149a919061276a565b9081150290604051600060405180830381858888f193505050501580156114c5573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60038361150f919061276a565b9081150290604051600060405180830381858888f1935050505015801561153a573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600383611584919061276a565b9081150290604051600060405180830381858888f193505050501580156115af573d6000803e3d6000fd5b5050565b60006008548211156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f19061252f565b60405180910390fd5b600061160461192b565b9050611619818461195690919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561167f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156116ad5781602001602082028036833780820191505090505b50905030816000815181106116eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561178d57600080fd5b505afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c59190612072565b816001815181106117ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061186630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f46565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ca95949392919061264a565b600060405180830381600087803b1580156118e457600080fd5b505af11580156118f8573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6119268383836119a0565b505050565b6000806000611938611b6b565b9150915061194f818361195690919063ffffffff16565b9250505090565b600061199883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bc7565b905092915050565b6000806000806000806119b287611c2a565b955095509550955095509550611a1086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aa585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af181611d3a565b611afb8483611df7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b58919061262f565b60405180910390a3505050505050505050565b600080600060085490506000661f946583b030009050611b9d661f946583b0300060085461195690919063ffffffff16565b821015611bba57600854661f946583b03000935093505050611bc3565b81819350935050505b9091565b60008083118290611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c05919061250d565b60405180910390fd5b5060008385611c1d919061276a565b9050809150509392505050565b6000806000806000806000806000611c478a600a54600b54611e31565b9250925092506000611c5761192b565b90506000806000611c6a8e878787611ec7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611cd483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ed565b905092915050565b6000808284611ceb9190612714565b905083811015611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d279061256f565b60405180910390fd5b8091505092915050565b6000611d4461192b565b90506000611d5b8284611f5090919063ffffffff16565b9050611daf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e0c82600854611c9290919063ffffffff16565b600881905550611e2781600954611cdc90919063ffffffff16565b6009819055505050565b600080600080611e5d6064611e4f888a611f5090919063ffffffff16565b61195690919063ffffffff16565b90506000611e876064611e79888b611f5090919063ffffffff16565b61195690919063ffffffff16565b90506000611eb082611ea2858c611c9290919063ffffffff16565b611c9290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611ee08589611f5090919063ffffffff16565b90506000611ef78689611f5090919063ffffffff16565b90506000611f0e8789611f5090919063ffffffff16565b90506000611f3782611f298587611c9290919063ffffffff16565b611c9290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611f635760009050611fc5565b60008284611f71919061279b565b9050828482611f80919061276a565b14611fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb79061258f565b60405180910390fd5b809150505b92915050565b600081359050611fda81612b38565b92915050565b600081519050611fef81612b38565b92915050565b60008135905061200481612b4f565b92915050565b60008151905061201981612b4f565b92915050565b60008135905061202e81612b66565b92915050565b60008151905061204381612b66565b92915050565b60006020828403121561205b57600080fd5b600061206984828501611fcb565b91505092915050565b60006020828403121561208457600080fd5b600061209284828501611fe0565b91505092915050565b600080604083850312156120ae57600080fd5b60006120bc85828601611fcb565b92505060206120cd85828601611fcb565b9150509250929050565b6000806000606084860312156120ec57600080fd5b60006120fa86828701611fcb565b935050602061210b86828701611fcb565b925050604061211c8682870161201f565b9150509250925092565b6000806040838503121561213957600080fd5b600061214785828601611fcb565b92505060206121588582860161201f565b9150509250929050565b60006020828403121561217457600080fd5b600061218284828501611ff5565b91505092915050565b60006020828403121561219d57600080fd5b60006121ab8482850161200a565b91505092915050565b6000806000606084860312156121c957600080fd5b60006121d786828701612034565b93505060206121e886828701612034565b92505060406121f986828701612034565b9150509250925092565b600061220f838361221b565b60208301905092915050565b61222481612829565b82525050565b61223381612829565b82525050565b6000612244826126cf565b61224e81856126f2565b9350612259836126bf565b8060005b8381101561228a5781516122718882612203565b975061227c836126e5565b92505060018101905061225d565b5085935050505092915050565b6122a08161283b565b82525050565b6122af8161287e565b82525050565b60006122c0826126da565b6122ca8185612703565b93506122da818560208601612890565b6122e381612921565b840191505092915050565b60006122fb602a83612703565b915061230682612932565b604082019050919050565b600061231e602283612703565b915061232982612981565b604082019050919050565b6000612341601b83612703565b915061234c826129d0565b602082019050919050565b6000612364602183612703565b915061236f826129f9565b604082019050919050565b6000612387602083612703565b915061239282612a48565b602082019050919050565b60006123aa602983612703565b91506123b582612a71565b604082019050919050565b60006123cd602483612703565b91506123d882612ac0565b604082019050919050565b60006123f0601783612703565b91506123fb82612b0f565b602082019050919050565b61240f81612867565b82525050565b61241e81612871565b82525050565b6000602082019050612439600083018461222a565b92915050565b6000604082019050612454600083018561222a565b612461602083018461222a565b9392505050565b600060408201905061247d600083018561222a565b61248a6020830184612406565b9392505050565b600060c0820190506124a6600083018961222a565b6124b36020830188612406565b6124c060408301876122a6565b6124cd60608301866122a6565b6124da608083018561222a565b6124e760a0830184612406565b979650505050505050565b60006020820190506125076000830184612297565b92915050565b6000602082019050818103600083015261252781846122b5565b905092915050565b60006020820190508181036000830152612548816122ee565b9050919050565b6000602082019050818103600083015261256881612311565b9050919050565b6000602082019050818103600083015261258881612334565b9050919050565b600060208201905081810360008301526125a881612357565b9050919050565b600060208201905081810360008301526125c88161237a565b9050919050565b600060208201905081810360008301526125e88161239d565b9050919050565b60006020820190508181036000830152612608816123c0565b9050919050565b60006020820190508181036000830152612628816123e3565b9050919050565b60006020820190506126446000830184612406565b92915050565b600060a08201905061265f6000830188612406565b61266c60208301876122a6565b818103604083015261267e8186612239565b905061268d606083018561222a565b61269a6080830184612406565b9695505050505050565b60006020820190506126b96000830184612415565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061271f82612867565b915061272a83612867565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561275f5761275e6128c3565b5b828201905092915050565b600061277582612867565b915061278083612867565b9250826127905761278f6128f2565b5b828204905092915050565b60006127a682612867565b91506127b183612867565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127ea576127e96128c3565b5b828202905092915050565b600061280082612867565b915061280b83612867565b92508282101561281e5761281d6128c3565b5b828203905092915050565b600061283482612847565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061288982612867565b9050919050565b60005b838110156128ae578082015181840152602081019050612893565b838111156128bd576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612b4181612829565b8114612b4c57600080fd5b50565b612b588161283b565b8114612b6357600080fd5b50565b612b6f81612867565b8114612b7a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af78ecab71e39c31eb31671da03f197eb15bee84648fe8f33fa0b9abf61b80d964736f6c63430008040033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102ff578063c3c8cd801461033c578063c9567bf914610353578063dd62ed3e1461036a576100fe565b806370a0823114610255578063715018a6146102925780638da5cb5b146102a957806395d89b41146102d4576100fe565b80632ab30838116100c65780632ab30838146101d3578063313ce567146101ea5780635932ead1146102155780636fc3eaec1461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b604051610125919061250d565b60405180910390f35b34801561013a57600080fd5b5061015560048036038101906101509190612126565b6103e4565b60405161016291906124f2565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061262f565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b891906120d7565b610411565b6040516101ca91906124f2565b60405180910390f35b3480156101df57600080fd5b506101e86104ea565b005b3480156101f657600080fd5b506101ff61058f565b60405161020c91906126a4565b60405180910390f35b34801561022157600080fd5b5061023c60048036038101906102379190612162565b610598565b005b34801561024a57600080fd5b5061025361064a565b005b34801561026157600080fd5b5061027c60048036038101906102779190612049565b6106bc565b604051610289919061262f565b60405180910390f35b34801561029e57600080fd5b506102a761070d565b005b3480156102b557600080fd5b506102be610860565b6040516102cb9190612424565b60405180910390f35b3480156102e057600080fd5b506102e9610889565b6040516102f6919061250d565b60405180910390f35b34801561030b57600080fd5b5061032660048036038101906103219190612126565b6108c6565b60405161033391906124f2565b60405180910390f35b34801561034857600080fd5b506103516108e4565b005b34801561035f57600080fd5b5061036861095e565b005b34801561037657600080fd5b50610391600480360381019061038c919061209b565b610eb7565b60405161039e919061262f565b60405180910390f35b60606040518060400160405280601081526020017f42616279507564677950656e6775696e00000000000000000000000000000000815250905090565b60006103f86103f1610f3e565b8484610f46565b6001905092915050565b6000661f946583b03000905090565b600061041e848484611111565b6104df8461042a610f3e565b6104da85604051806060016040528060288152602001612b7e60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610490610f3e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113ed9092919063ffffffff16565b610f46565b600190509392505050565b6104f2610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461057f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610576906125af565b60405180910390fd5b661f946583b03000601181905550565b60006009905090565b6105a0610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610624906125af565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661068b610f3e565b73ffffffffffffffffffffffffffffffffffffffff16146106ab57600080fd5b60004790506106b981611451565b50565b6000610706600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115b3565b9050919050565b610715610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610799906125af565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4250500000000000000000000000000000000000000000000000000000000000815250905090565b60006108da6108d3610f3e565b8484611111565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610925610f3e565b73ffffffffffffffffffffffffffffffffffffffff161461094557600080fd5b6000610950306106bc565b905061095b81611621565b50565b610966610f3e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ea906125af565b60405180910390fd5b601060149054906101000a900460ff1615610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a9061260f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ad130600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16661f946583b03000610f46565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1757600080fd5b505afa158015610b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4f9190612072565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be99190612072565b6040518363ffffffff1660e01b8152600401610c0692919061243f565b602060405180830381600087803b158015610c2057600080fd5b505af1158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c589190612072565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ce1306106bc565b600080610cec610860565b426040518863ffffffff1660e01b8152600401610d0e96959493929190612491565b6060604051808303818588803b158015610d2757600080fd5b505af1158015610d3b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d6091906121b4565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff0219169083151502179055506601436019791e006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e61929190612468565b602060405180830381600087803b158015610e7b57600080fd5b505af1158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb3919061218b565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad906125ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611026576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101d9061254f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611104919061262f565b60405180910390a3505050565b60008111611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b906125cf565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156111ab57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146113dd576002600a819055506008600b81905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156112995750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112ef5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156113075750601060179054906101000a900460ff165b1561131c5760115481111561131b57600080fd5b5b6000611327306106bc565b9050601060159054906101000a900460ff161580156113945750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113ac5750601060169054906101000a900460ff165b156113db576113ba81611621565b6000479050670429d069189e00008111156113d9576113d847611451565b5b505b505b6113e883838361191b565b505050565b6000838311158290611435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142c919061250d565b60405180910390fd5b506000838561144491906127f5565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60038361149a919061276a565b9081150290604051600060405180830381858888f193505050501580156114c5573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60038361150f919061276a565b9081150290604051600060405180830381858888f1935050505015801561153a573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc600383611584919061276a565b9081150290604051600060405180830381858888f193505050501580156115af573d6000803e3d6000fd5b5050565b60006008548211156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f19061252f565b60405180910390fd5b600061160461192b565b9050611619818461195690919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561167f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156116ad5781602001602082028036833780820191505090505b50905030816000815181106116eb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561178d57600080fd5b505afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c59190612072565b816001815181106117ff577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061186630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f46565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ca95949392919061264a565b600060405180830381600087803b1580156118e457600080fd5b505af11580156118f8573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6119268383836119a0565b505050565b6000806000611938611b6b565b9150915061194f818361195690919063ffffffff16565b9250505090565b600061199883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bc7565b905092915050565b6000806000806000806119b287611c2a565b955095509550955095509550611a1086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aa585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af181611d3a565b611afb8483611df7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611b58919061262f565b60405180910390a3505050505050505050565b600080600060085490506000661f946583b030009050611b9d661f946583b0300060085461195690919063ffffffff16565b821015611bba57600854661f946583b03000935093505050611bc3565b81819350935050505b9091565b60008083118290611c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c05919061250d565b60405180910390fd5b5060008385611c1d919061276a565b9050809150509392505050565b6000806000806000806000806000611c478a600a54600b54611e31565b9250925092506000611c5761192b565b90506000806000611c6a8e878787611ec7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611cd483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ed565b905092915050565b6000808284611ceb9190612714565b905083811015611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d279061256f565b60405180910390fd5b8091505092915050565b6000611d4461192b565b90506000611d5b8284611f5090919063ffffffff16565b9050611daf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cdc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611e0c82600854611c9290919063ffffffff16565b600881905550611e2781600954611cdc90919063ffffffff16565b6009819055505050565b600080600080611e5d6064611e4f888a611f5090919063ffffffff16565b61195690919063ffffffff16565b90506000611e876064611e79888b611f5090919063ffffffff16565b61195690919063ffffffff16565b90506000611eb082611ea2858c611c9290919063ffffffff16565b611c9290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611ee08589611f5090919063ffffffff16565b90506000611ef78689611f5090919063ffffffff16565b90506000611f0e8789611f5090919063ffffffff16565b90506000611f3782611f298587611c9290919063ffffffff16565b611c9290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611f635760009050611fc5565b60008284611f71919061279b565b9050828482611f80919061276a565b14611fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb79061258f565b60405180910390fd5b809150505b92915050565b600081359050611fda81612b38565b92915050565b600081519050611fef81612b38565b92915050565b60008135905061200481612b4f565b92915050565b60008151905061201981612b4f565b92915050565b60008135905061202e81612b66565b92915050565b60008151905061204381612b66565b92915050565b60006020828403121561205b57600080fd5b600061206984828501611fcb565b91505092915050565b60006020828403121561208457600080fd5b600061209284828501611fe0565b91505092915050565b600080604083850312156120ae57600080fd5b60006120bc85828601611fcb565b92505060206120cd85828601611fcb565b9150509250929050565b6000806000606084860312156120ec57600080fd5b60006120fa86828701611fcb565b935050602061210b86828701611fcb565b925050604061211c8682870161201f565b9150509250925092565b6000806040838503121561213957600080fd5b600061214785828601611fcb565b92505060206121588582860161201f565b9150509250929050565b60006020828403121561217457600080fd5b600061218284828501611ff5565b91505092915050565b60006020828403121561219d57600080fd5b60006121ab8482850161200a565b91505092915050565b6000806000606084860312156121c957600080fd5b60006121d786828701612034565b93505060206121e886828701612034565b92505060406121f986828701612034565b9150509250925092565b600061220f838361221b565b60208301905092915050565b61222481612829565b82525050565b61223381612829565b82525050565b6000612244826126cf565b61224e81856126f2565b9350612259836126bf565b8060005b8381101561228a5781516122718882612203565b975061227c836126e5565b92505060018101905061225d565b5085935050505092915050565b6122a08161283b565b82525050565b6122af8161287e565b82525050565b60006122c0826126da565b6122ca8185612703565b93506122da818560208601612890565b6122e381612921565b840191505092915050565b60006122fb602a83612703565b915061230682612932565b604082019050919050565b600061231e602283612703565b915061232982612981565b604082019050919050565b6000612341601b83612703565b915061234c826129d0565b602082019050919050565b6000612364602183612703565b915061236f826129f9565b604082019050919050565b6000612387602083612703565b915061239282612a48565b602082019050919050565b60006123aa602983612703565b91506123b582612a71565b604082019050919050565b60006123cd602483612703565b91506123d882612ac0565b604082019050919050565b60006123f0601783612703565b91506123fb82612b0f565b602082019050919050565b61240f81612867565b82525050565b61241e81612871565b82525050565b6000602082019050612439600083018461222a565b92915050565b6000604082019050612454600083018561222a565b612461602083018461222a565b9392505050565b600060408201905061247d600083018561222a565b61248a6020830184612406565b9392505050565b600060c0820190506124a6600083018961222a565b6124b36020830188612406565b6124c060408301876122a6565b6124cd60608301866122a6565b6124da608083018561222a565b6124e760a0830184612406565b979650505050505050565b60006020820190506125076000830184612297565b92915050565b6000602082019050818103600083015261252781846122b5565b905092915050565b60006020820190508181036000830152612548816122ee565b9050919050565b6000602082019050818103600083015261256881612311565b9050919050565b6000602082019050818103600083015261258881612334565b9050919050565b600060208201905081810360008301526125a881612357565b9050919050565b600060208201905081810360008301526125c88161237a565b9050919050565b600060208201905081810360008301526125e88161239d565b9050919050565b60006020820190508181036000830152612608816123c0565b9050919050565b60006020820190508181036000830152612628816123e3565b9050919050565b60006020820190506126446000830184612406565b92915050565b600060a08201905061265f6000830188612406565b61266c60208301876122a6565b818103604083015261267e8186612239565b905061268d606083018561222a565b61269a6080830184612406565b9695505050505050565b60006020820190506126b96000830184612415565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061271f82612867565b915061272a83612867565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561275f5761275e6128c3565b5b828201905092915050565b600061277582612867565b915061278083612867565b9250826127905761278f6128f2565b5b828204905092915050565b60006127a682612867565b91506127b183612867565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156127ea576127e96128c3565b5b828202905092915050565b600061280082612867565b915061280b83612867565b92508282101561281e5761281d6128c3565b5b828203905092915050565b600061283482612847565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061288982612867565b9050919050565b60005b838110156128ae578082015181840152602081019050612893565b838111156128bd576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612b4181612829565b8114612b4c57600080fd5b50565b612b588161283b565b8114612b6357600080fd5b50565b612b6f81612867565b8114612b7a57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220af78ecab71e39c31eb31671da03f197eb15bee84648fe8f33fa0b9abf61b80d964736f6c63430008040033

Deployed Bytecode Sourcemap

3592:9749:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5526:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6378:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6547:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9052:80;;;;;;;;;;;;;:::i;:::-;;5712:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6868:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11445:194;;;;;;;;;;;;;:::i;:::-;;5906:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2671:148;;;;;;;;;;;;;:::i;:::-;;2457:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5617:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6052:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11238:195;;;;;;;;;;;;;:::i;:::-;;9339:811;;;;;;;;;;;;;:::i;:::-;;6227:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5526:83;5563:13;5596:5;;;;;;;;;;;;;;;;;5589:12;;5526:83;:::o;6378:161::-;6453:4;6470:39;6479:12;:10;:12::i;:::-;6493:7;6502:6;6470:8;:39::i;:::-;6527:4;6520:11;;6378:161;;;;:::o;5803:95::-;5856:7;4102:16;5876:14;;5803:95;:::o;6547:313::-;6645:4;6662:36;6672:6;6680:9;6691:6;6662:9;:36::i;:::-;6709:121;6718:6;6726:12;:10;:12::i;:::-;6740:89;6778:6;6740:89;;;;;;;;;;;;;;;;;:11;:19;6752:6;6740:19;;;;;;;;;;;;;;;:33;6760:12;:10;:12::i;:::-;6740:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6709:8;:121::i;:::-;6848:4;6841:11;;6547:313;;;;;:::o;9052:80::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4102:16:::1;9102:12;:22;;;;9052:80::o:0;5712:83::-;5753:5;4566:1;5771:16;;5712:83;:::o;6868:103::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6958:5:::1;6940:15;;:23;;;;;;;;;;;;;;;;;;6868:103:::0;:::o;11445:194::-;11511:15;;;;;;;;;;;11495:31;;:12;:10;:12::i;:::-;:31;;;11487:40;;;;;;11538:26;11567:21;11538:50;;11599:32;11612:18;11599:12;:32::i;:::-;11445:194;:::o;5906:138::-;5972:7;5999:37;6019:7;:16;6027:7;6019:16;;;;;;;;;;;;;;;;5999:19;:37::i;:::-;5992:44;;5906:138;;;:::o;2671:148::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2778:1:::1;2741:40;;2762:6;::::0;::::1;;;;;;;;2741:40;;;;;;;;;;;;2809:1;2792:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2671:148::o:0;2457:79::-;2495:7;2522:6;;;;;;;;;;;2515:13;;2457:79;:::o;5617:87::-;5656:13;5689:7;;;;;;;;;;;;;;;;;5682:14;;5617:87;:::o;6052:167::-;6130:4;6147:42;6157:12;:10;:12::i;:::-;6171:9;6182:6;6147:9;:42::i;:::-;6207:4;6200:11;;6052:167;;;;:::o;11238:195::-;11304:15;;;;;;;;;;;11288:31;;:12;:10;:12::i;:::-;:31;;;11280:40;;;;;;11331:23;11357:24;11375:4;11357:9;:24::i;:::-;11331:50;;11392:33;11409:15;11392:16;:33::i;:::-;11238:195;:::o;9339:811::-;2594:12;:10;:12::i;:::-;2584:22;;:6;;;;;;;;;;:22;;;2576:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9403:11:::1;;;;;;;;;;;9402:12;9394:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9452:35;9509:42;9452:100;;9581:16;9563:15;;:34;;;;;;;;;;;;;;;;;;9608:58;9625:4;9640:15;;;;;;;;;;;4102:16;9608:8;:58::i;:::-;9711:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9693:56;;;9758:4;9765:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9693:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9677:13;;:112;;;;;;;;;;;;;;;;;;9800:15;;;;;;;;;;;:31;;;9839:21;9870:4;9876:24;9894:4;9876:9;:24::i;:::-;9901:1;9903::::0;9905:7:::1;:5;:7::i;:::-;9913:15;9800:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9954:4;9940:11;;:18;;;;;;;;;;;;;;;;;;9987:4;9969:15;;:22;;;;;;;;;;;;;;;;;;10017:14;10002:12;:29;;;;10056:4;10042:11;;:18;;;;;;;;;;;;;;;;;;10078:13;;;;;;;;;;;10071:29;;;10109:15;;;;;;;;;;;10127:14;10071:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2654:1;9339:811::o:0;6227:143::-;6308:7;6335:11;:18;6347:5;6335:18;;;;;;;;;;;;;;;:27;6354:7;6335:27;;;;;;;;;;;;;;;;6328:34;;6227:143;;;;:::o;175:98::-;228:7;255:10;248:17;;175:98;:::o;7241:335::-;7351:1;7334:19;;:5;:19;;;;7326:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7432:1;7413:21;;:7;:21;;;;7405:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7514:6;7484:11;:18;7496:5;7484:18;;;;;;;;;;;;;;;:27;7503:7;7484:27;;;;;;;;;;;;;;;:36;;;;7552:7;7536:32;;7545:5;7536:32;;;7561:6;7536:32;;;;;;:::i;:::-;;;;;;;;7241:335;;;:::o;7584:971::-;7681:1;7672:6;:10;7664:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7748:4;:10;7753:4;7748:10;;;;;;;;;;;;;;;;;;;;;;;;;7747:11;7739:20;;;;;;7790:4;7774:21;;:4;:21;;;7770:733;;7824:1;7812:9;:13;;;;7852:1;7840:9;:13;;;;7880;;;;;;;;;;;7872:21;;:4;:21;;;:55;;;;;7911:15;;;;;;;;;;;7897:30;;:2;:30;;;;7872:55;:83;;;;;7933:18;:22;7952:2;7933:22;;;;;;;;;;;;;;;;;;;;;;;;;7931:24;7872:83;:102;;;;;7959:15;;;;;;;;;;;7872:102;7868:203;;;8042:12;;8032:6;:22;;8024:31;;;;;;7868:203;8087:28;8118:24;8136:4;8118:9;:24::i;:::-;8087:55;;8162:6;;;;;;;;;;;8161:7;:32;;;;;8180:13;;;;;;;;;;;8172:21;;:4;:21;;;;8161:32;:47;;;;;8197:11;;;;;;;;;;;8161:47;8157:335;;;8229:38;8246:20;8229:16;:38::i;:::-;8286:26;8315:21;8286:50;;8379:18;8358;:39;8355:122;;;8422:35;8435:21;8422:12;:35::i;:::-;8355:122;8157:335;;7770:733;;8517:30;8532:4;8537:2;8540:6;8517:14;:30::i;:::-;7584:971;;;:::o;1312:190::-;1398:7;1431:1;1426;:6;;1434:12;1418:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1458:9;1474:1;1470;:5;;;;:::i;:::-;1458:17;;1493:1;1486:8;;;1312:190;;;;;:::o;9138:189::-;9195:15;;;;;;;;;;;:24;;:34;9227:1;9220:6;:8;;;;:::i;:::-;9195:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9240:15;;;;;;;;;;;:24;;:34;9272:1;9265:6;:8;;;;:::i;:::-;9240:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9285:15;;;;;;;;;;;:24;;:34;9317:1;9310:6;:8;;;;:::i;:::-;9285:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9138:189;:::o;6979:254::-;7046:7;7085;;7074;:18;;7066:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7150:19;7173:10;:8;:10::i;:::-;7150:33;;7201:24;7213:11;7201:7;:11;;:24;;;;:::i;:::-;7194:31;;;6979:254;;;:::o;8563:483::-;4948:4;4939:6;;:13;;;;;;;;;;;;;;;;;;8641:21:::1;8679:1;8665:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8641:40;;8710:4;8692;8697:1;8692:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;8736:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8726:4;8731:1;8726:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;8769:62;8786:4;8801:15;;;;;;;;;;;8819:11;8769:8;:62::i;:::-;8842:15;;;;;;;;;;;:66;;;8923:11;8949:1;8965:4;8992;9012:15;8842:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4963:1;4984:5:::0;4975:6;;:14;;;;;;;;;;;;;;;;;;8563:483;:::o;10172:146::-;10266:44;10284:6;10292:9;10303:6;10266:17;:44::i;:::-;10172:146;;;:::o;12905:163::-;12946:7;12967:15;12984;13003:19;:17;:19::i;:::-;12966:56;;;;13040:20;13052:7;13040;:11;;:20;;;;:::i;:::-;13033:27;;;;12905:163;:::o;1764:132::-;1822:7;1849:39;1853:1;1856;1849:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1842:46;;1764:132;;;;:::o;10326:488::-;10425:15;10442:23;10467:12;10481:23;10506:12;10520:13;10537:19;10548:7;10537:10;:19::i;:::-;10424:132;;;;;;;;;;;;10585:28;10605:7;10585;:15;10593:6;10585:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10567:7;:15;10575:6;10567:15;;;;;;;;;;;;;;;:46;;;;10645:39;10668:15;10645:7;:18;10653:9;10645:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10624:7;:18;10632:9;10624:18;;;;;;;;;;;;;;;:60;;;;10696:16;10706:5;10696:9;:16::i;:::-;10723:23;10735:4;10741;10723:11;:23::i;:::-;10779:9;10762:44;;10771:6;10762:44;;;10790:15;10762:44;;;;;;:::i;:::-;;;;;;;;10326:488;;;;;;;;;:::o;13076:262::-;13126:7;13135;13155:15;13173:7;;13155:25;;13191:15;4102:16;13191:25;;13247:20;4102:16;13247:7;;:11;;:20;;;;:::i;:::-;13237:7;:30;13233:61;;;13277:7;;4102:16;13269:25;;;;;;;;13233:61;13313:7;13322;13305:25;;;;;;13076:262;;;:::o;1904:189::-;1990:7;2022:1;2018;:5;2025:12;2010:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2049:9;2065:1;2061;:5;;;;:::i;:::-;2049:17;;2084:1;2077:8;;;1904:189;;;;;:::o;11653:471::-;11712:7;11721;11730;11739;11748;11757;11778:23;11803:12;11817:13;11834:42;11846:7;11855:9;;11866;;11834:11;:42::i;:::-;11777:99;;;;;;11887:19;11910:10;:8;:10::i;:::-;11887:33;;11932:15;11949:23;11974:12;11990:46;12002:7;12011:4;12017:5;12024:11;11990;:46::i;:::-;11931:105;;;;;;12055:7;12064:15;12081:4;12087:15;12104:4;12110:5;12047:69;;;;;;;;;;;;;;;;;;;11653:471;;;;;;;:::o;1168:136::-;1226:7;1253:43;1257:1;1260;1253:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1246:50;;1168:136;;;;:::o;981:179::-;1039:7;1059:9;1075:1;1071;:5;;;;:::i;:::-;1059:17;;1100:1;1095;:6;;1087:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1151:1;1144:8;;;981:179;;;;:::o;10822:212::-;10875:19;10898:10;:8;:10::i;:::-;10875:33;;10919:13;10935:22;10945:11;10935:5;:9;;:22;;;;:::i;:::-;10919:38;;10993:33;11020:5;10993:7;:22;11009:4;10993:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;10968:7;:22;10984:4;10968:22;;;;;;;;;;;;;;;:58;;;;10822:212;;;:::o;11042:147::-;11120:17;11132:4;11120:7;;:11;;:17;;;;:::i;:::-;11110:7;:27;;;;11161:20;11176:4;11161:10;;:14;;:20;;;;:::i;:::-;11148:10;:33;;;;11042:147;;:::o;12132:351::-;12225:7;12234;12243;12263:12;12278:28;12302:3;12278:19;12290:6;12278:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12263:43;;12317:13;12333:29;12358:3;12333:20;12345:7;12333;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12317:45;;12373:23;12399:28;12421:5;12399:17;12411:4;12399:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12373:54;;12446:15;12463:4;12469:5;12438:37;;;;;;;;;12132:351;;;;;;;:::o;12491:409::-;12601:7;12610;12619;12639:15;12657:24;12669:11;12657:7;:11;;:24;;;;:::i;:::-;12639:42;;12692:12;12707:21;12716:11;12707:4;:8;;:21;;;;:::i;:::-;12692:36;;12739:13;12755:22;12765:11;12755:5;:9;;:22;;;;:::i;:::-;12739:38;;12788:23;12814:28;12836:5;12814:17;12826:4;12814:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12788:54;;12861:7;12870:15;12887:4;12853:39;;;;;;;;;;12491:409;;;;;;;;:::o;1510:246::-;1568:7;1597:1;1592;:6;1588:47;;;1622:1;1615:8;;;;1588:47;1645:9;1661:1;1657;:5;;;;:::i;:::-;1645:17;;1690:1;1685;1681;:5;;;;:::i;:::-;:10;1673:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1747:1;1740:8;;;1510:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:262::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;1001:1;998;991:12;953:2;1044:1;1069:53;1114:7;1105:6;1094:9;1090:22;1069:53;:::i;:::-;1059:63;;1015:117;943:196;;;;:::o;1145:284::-;1215:6;1264:2;1252:9;1243:7;1239:23;1235:32;1232:2;;;1280:1;1277;1270:12;1232:2;1323:1;1348:64;1404:7;1395:6;1384:9;1380:22;1348:64;:::i;:::-;1338:74;;1294:128;1222:207;;;;:::o;1435:407::-;1503:6;1511;1560:2;1548:9;1539:7;1535:23;1531:32;1528:2;;;1576:1;1573;1566:12;1528:2;1619:1;1644:53;1689:7;1680:6;1669:9;1665:22;1644:53;:::i;:::-;1634:63;;1590:117;1746:2;1772:53;1817:7;1808:6;1797:9;1793:22;1772:53;:::i;:::-;1762:63;;1717:118;1518:324;;;;;:::o;1848:552::-;1925:6;1933;1941;1990:2;1978:9;1969:7;1965:23;1961:32;1958:2;;;2006:1;2003;1996:12;1958:2;2049:1;2074:53;2119:7;2110:6;2099:9;2095:22;2074:53;:::i;:::-;2064:63;;2020:117;2176:2;2202:53;2247:7;2238:6;2227:9;2223:22;2202:53;:::i;:::-;2192:63;;2147:118;2304:2;2330:53;2375:7;2366:6;2355:9;2351:22;2330:53;:::i;:::-;2320:63;;2275:118;1948:452;;;;;:::o;2406:407::-;2474:6;2482;2531:2;2519:9;2510:7;2506:23;2502:32;2499:2;;;2547:1;2544;2537:12;2499:2;2590:1;2615:53;2660:7;2651:6;2640:9;2636:22;2615:53;:::i;:::-;2605:63;;2561:117;2717:2;2743:53;2788:7;2779:6;2768:9;2764:22;2743:53;:::i;:::-;2733:63;;2688:118;2489:324;;;;;:::o;2819:256::-;2875:6;2924:2;2912:9;2903:7;2899:23;2895:32;2892:2;;;2940:1;2937;2930:12;2892:2;2983:1;3008:50;3050:7;3041:6;3030:9;3026:22;3008:50;:::i;:::-;2998:60;;2954:114;2882:193;;;;:::o;3081:278::-;3148:6;3197:2;3185:9;3176:7;3172:23;3168:32;3165:2;;;3213:1;3210;3203:12;3165:2;3256:1;3281:61;3334:7;3325:6;3314:9;3310:22;3281:61;:::i;:::-;3271:71;;3227:125;3155:204;;;;:::o;3365:596::-;3453:6;3461;3469;3518:2;3506:9;3497:7;3493:23;3489:32;3486:2;;;3534:1;3531;3524:12;3486:2;3577:1;3602:64;3658:7;3649:6;3638:9;3634:22;3602:64;:::i;:::-;3592:74;;3548:128;3715:2;3741:64;3797:7;3788:6;3777:9;3773:22;3741:64;:::i;:::-;3731:74;;3686:129;3854:2;3880:64;3936:7;3927:6;3916:9;3912:22;3880:64;:::i;:::-;3870:74;;3825:129;3476:485;;;;;:::o;3967:179::-;4036:10;4057:46;4099:3;4091:6;4057:46;:::i;:::-;4135:4;4130:3;4126:14;4112:28;;4047:99;;;;:::o;4152:108::-;4229:24;4247:5;4229:24;:::i;:::-;4224:3;4217:37;4207:53;;:::o;4266:118::-;4353:24;4371:5;4353:24;:::i;:::-;4348:3;4341:37;4331:53;;:::o;4420:732::-;4539:3;4568:54;4616:5;4568:54;:::i;:::-;4638:86;4717:6;4712:3;4638:86;:::i;:::-;4631:93;;4748:56;4798:5;4748:56;:::i;:::-;4827:7;4858:1;4843:284;4868:6;4865:1;4862:13;4843:284;;;4944:6;4938:13;4971:63;5030:3;5015:13;4971:63;:::i;:::-;4964:70;;5057:60;5110:6;5057:60;:::i;:::-;5047:70;;4903:224;4890:1;4887;4883:9;4878:14;;4843:284;;;4847:14;5143:3;5136:10;;4544:608;;;;;;;:::o;5158:109::-;5239:21;5254:5;5239:21;:::i;:::-;5234:3;5227:34;5217:50;;:::o;5273:147::-;5368:45;5407:5;5368:45;:::i;:::-;5363:3;5356:58;5346:74;;:::o;5426:364::-;5514:3;5542:39;5575:5;5542:39;:::i;:::-;5597:71;5661:6;5656:3;5597:71;:::i;:::-;5590:78;;5677:52;5722:6;5717:3;5710:4;5703:5;5699:16;5677:52;:::i;:::-;5754:29;5776:6;5754:29;:::i;:::-;5749:3;5745:39;5738:46;;5518:272;;;;;:::o;5796:366::-;5938:3;5959:67;6023:2;6018:3;5959:67;:::i;:::-;5952:74;;6035:93;6124:3;6035:93;:::i;:::-;6153:2;6148:3;6144:12;6137:19;;5942:220;;;:::o;6168:366::-;6310:3;6331:67;6395:2;6390:3;6331:67;:::i;:::-;6324:74;;6407:93;6496:3;6407:93;:::i;:::-;6525:2;6520:3;6516:12;6509:19;;6314:220;;;:::o;6540:366::-;6682:3;6703:67;6767:2;6762:3;6703:67;:::i;:::-;6696:74;;6779:93;6868:3;6779:93;:::i;:::-;6897:2;6892:3;6888:12;6881:19;;6686:220;;;:::o;6912:366::-;7054:3;7075:67;7139:2;7134:3;7075:67;:::i;:::-;7068:74;;7151:93;7240:3;7151:93;:::i;:::-;7269:2;7264:3;7260:12;7253:19;;7058:220;;;:::o;7284:366::-;7426:3;7447:67;7511:2;7506:3;7447:67;:::i;:::-;7440:74;;7523:93;7612:3;7523:93;:::i;:::-;7641:2;7636:3;7632:12;7625:19;;7430:220;;;:::o;7656:366::-;7798:3;7819:67;7883:2;7878:3;7819:67;:::i;:::-;7812:74;;7895:93;7984:3;7895:93;:::i;:::-;8013:2;8008:3;8004:12;7997:19;;7802:220;;;:::o;8028:366::-;8170:3;8191:67;8255:2;8250:3;8191:67;:::i;:::-;8184:74;;8267:93;8356:3;8267:93;:::i;:::-;8385:2;8380:3;8376:12;8369:19;;8174:220;;;:::o;8400:366::-;8542:3;8563:67;8627:2;8622:3;8563:67;:::i;:::-;8556:74;;8639:93;8728:3;8639:93;:::i;:::-;8757:2;8752:3;8748:12;8741:19;;8546:220;;;:::o;8772:118::-;8859:24;8877:5;8859:24;:::i;:::-;8854:3;8847:37;8837:53;;:::o;8896:112::-;8979:22;8995:5;8979:22;:::i;:::-;8974:3;8967:35;8957:51;;:::o;9014:222::-;9107:4;9145:2;9134:9;9130:18;9122:26;;9158:71;9226:1;9215:9;9211:17;9202:6;9158:71;:::i;:::-;9112:124;;;;:::o;9242:332::-;9363:4;9401:2;9390:9;9386:18;9378:26;;9414:71;9482:1;9471:9;9467:17;9458:6;9414:71;:::i;:::-;9495:72;9563:2;9552:9;9548:18;9539:6;9495:72;:::i;:::-;9368:206;;;;;:::o;9580:332::-;9701:4;9739:2;9728:9;9724:18;9716:26;;9752:71;9820:1;9809:9;9805:17;9796:6;9752:71;:::i;:::-;9833:72;9901:2;9890:9;9886:18;9877:6;9833:72;:::i;:::-;9706:206;;;;;:::o;9918:807::-;10167:4;10205:3;10194:9;10190:19;10182:27;;10219:71;10287:1;10276:9;10272:17;10263:6;10219:71;:::i;:::-;10300:72;10368:2;10357:9;10353:18;10344:6;10300:72;:::i;:::-;10382:80;10458:2;10447:9;10443:18;10434:6;10382:80;:::i;:::-;10472;10548:2;10537:9;10533:18;10524:6;10472:80;:::i;:::-;10562:73;10630:3;10619:9;10615:19;10606:6;10562:73;:::i;:::-;10645;10713:3;10702:9;10698:19;10689:6;10645:73;:::i;:::-;10172:553;;;;;;;;;:::o;10731:210::-;10818:4;10856:2;10845:9;10841:18;10833:26;;10869:65;10931:1;10920:9;10916:17;10907:6;10869:65;:::i;:::-;10823:118;;;;:::o;10947:313::-;11060:4;11098:2;11087:9;11083:18;11075:26;;11147:9;11141:4;11137:20;11133:1;11122:9;11118:17;11111:47;11175:78;11248:4;11239:6;11175:78;:::i;:::-;11167:86;;11065:195;;;;:::o;11266:419::-;11432:4;11470:2;11459:9;11455:18;11447:26;;11519:9;11513:4;11509:20;11505:1;11494:9;11490:17;11483:47;11547:131;11673:4;11547:131;:::i;:::-;11539:139;;11437:248;;;:::o;11691:419::-;11857:4;11895:2;11884:9;11880:18;11872:26;;11944:9;11938:4;11934:20;11930:1;11919:9;11915:17;11908:47;11972:131;12098:4;11972:131;:::i;:::-;11964:139;;11862:248;;;:::o;12116:419::-;12282:4;12320:2;12309:9;12305:18;12297:26;;12369:9;12363:4;12359:20;12355:1;12344:9;12340:17;12333:47;12397:131;12523:4;12397:131;:::i;:::-;12389:139;;12287:248;;;:::o;12541:419::-;12707:4;12745:2;12734:9;12730:18;12722:26;;12794:9;12788:4;12784:20;12780:1;12769:9;12765:17;12758:47;12822:131;12948:4;12822:131;:::i;:::-;12814:139;;12712:248;;;:::o;12966:419::-;13132:4;13170:2;13159:9;13155:18;13147:26;;13219:9;13213:4;13209:20;13205:1;13194:9;13190:17;13183:47;13247:131;13373:4;13247:131;:::i;:::-;13239:139;;13137:248;;;:::o;13391:419::-;13557:4;13595:2;13584:9;13580:18;13572:26;;13644:9;13638:4;13634:20;13630:1;13619:9;13615:17;13608:47;13672:131;13798:4;13672:131;:::i;:::-;13664:139;;13562:248;;;:::o;13816:419::-;13982:4;14020:2;14009:9;14005:18;13997:26;;14069:9;14063:4;14059:20;14055:1;14044:9;14040:17;14033:47;14097:131;14223:4;14097:131;:::i;:::-;14089:139;;13987:248;;;:::o;14241:419::-;14407:4;14445:2;14434:9;14430:18;14422:26;;14494:9;14488:4;14484:20;14480:1;14469:9;14465:17;14458:47;14522:131;14648:4;14522:131;:::i;:::-;14514:139;;14412:248;;;:::o;14666:222::-;14759:4;14797:2;14786:9;14782:18;14774:26;;14810:71;14878:1;14867:9;14863:17;14854:6;14810:71;:::i;:::-;14764:124;;;;:::o;14894:831::-;15157:4;15195:3;15184:9;15180:19;15172:27;;15209:71;15277:1;15266:9;15262:17;15253:6;15209:71;:::i;:::-;15290:80;15366:2;15355:9;15351:18;15342:6;15290:80;:::i;:::-;15417:9;15411:4;15407:20;15402:2;15391:9;15387:18;15380:48;15445:108;15548:4;15539:6;15445:108;:::i;:::-;15437:116;;15563:72;15631:2;15620:9;15616:18;15607:6;15563:72;:::i;:::-;15645:73;15713:3;15702:9;15698:19;15689:6;15645:73;:::i;:::-;15162:563;;;;;;;;:::o;15731:214::-;15820:4;15858:2;15847:9;15843:18;15835:26;;15871:67;15935:1;15924:9;15920:17;15911:6;15871:67;:::i;:::-;15825:120;;;;:::o;15951:132::-;16018:4;16041:3;16033:11;;16071:4;16066:3;16062:14;16054:22;;16023:60;;;:::o;16089:114::-;16156:6;16190:5;16184:12;16174:22;;16163:40;;;:::o;16209:99::-;16261:6;16295:5;16289:12;16279:22;;16268:40;;;:::o;16314:113::-;16384:4;16416;16411:3;16407:14;16399:22;;16389:38;;;:::o;16433:184::-;16532:11;16566:6;16561:3;16554:19;16606:4;16601:3;16597:14;16582:29;;16544:73;;;;:::o;16623:169::-;16707:11;16741:6;16736:3;16729:19;16781:4;16776:3;16772:14;16757:29;;16719:73;;;;:::o;16798:305::-;16838:3;16857:20;16875:1;16857:20;:::i;:::-;16852:25;;16891:20;16909:1;16891:20;:::i;:::-;16886:25;;17045:1;16977:66;16973:74;16970:1;16967:81;16964:2;;;17051:18;;:::i;:::-;16964:2;17095:1;17092;17088:9;17081:16;;16842:261;;;;:::o;17109:185::-;17149:1;17166:20;17184:1;17166:20;:::i;:::-;17161:25;;17200:20;17218:1;17200:20;:::i;:::-;17195:25;;17239:1;17229:2;;17244:18;;:::i;:::-;17229:2;17286:1;17283;17279:9;17274:14;;17151:143;;;;:::o;17300:348::-;17340:7;17363:20;17381:1;17363:20;:::i;:::-;17358:25;;17397:20;17415:1;17397:20;:::i;:::-;17392:25;;17585:1;17517:66;17513:74;17510:1;17507:81;17502:1;17495:9;17488:17;17484:105;17481:2;;;17592:18;;:::i;:::-;17481:2;17640:1;17637;17633:9;17622:20;;17348:300;;;;:::o;17654:191::-;17694:4;17714:20;17732:1;17714:20;:::i;:::-;17709:25;;17748:20;17766:1;17748:20;:::i;:::-;17743:25;;17787:1;17784;17781:8;17778:2;;;17792:18;;:::i;:::-;17778:2;17837:1;17834;17830:9;17822:17;;17699:146;;;;:::o;17851:96::-;17888:7;17917:24;17935:5;17917:24;:::i;:::-;17906:35;;17896:51;;;:::o;17953:90::-;17987:7;18030:5;18023:13;18016:21;18005:32;;17995:48;;;:::o;18049:126::-;18086:7;18126:42;18119:5;18115:54;18104:65;;18094:81;;;:::o;18181:77::-;18218:7;18247:5;18236:16;;18226:32;;;:::o;18264:86::-;18299:7;18339:4;18332:5;18328:16;18317:27;;18307:43;;;:::o;18356:121::-;18414:9;18447:24;18465:5;18447:24;:::i;:::-;18434:37;;18424:53;;;:::o;18483:307::-;18551:1;18561:113;18575:6;18572:1;18569:13;18561:113;;;18660:1;18655:3;18651:11;18645:18;18641:1;18636:3;18632:11;18625:39;18597:2;18594:1;18590:10;18585:15;;18561:113;;;18692:6;18689:1;18686:13;18683:2;;;18772:1;18763:6;18758:3;18754:16;18747:27;18683:2;18532:258;;;;:::o;18796:180::-;18844:77;18841:1;18834:88;18941:4;18938:1;18931:15;18965:4;18962:1;18955:15;18982:180;19030:77;19027:1;19020:88;19127:4;19124:1;19117:15;19151:4;19148:1;19141:15;19168:102;19209:6;19260:2;19256:7;19251:2;19244:5;19240:14;19236:28;19226:38;;19216:54;;;:::o;19276:229::-;19416:34;19412:1;19404:6;19400:14;19393:58;19485:12;19480:2;19472:6;19468:15;19461:37;19382:123;:::o;19511:221::-;19651:34;19647:1;19639:6;19635:14;19628:58;19720:4;19715:2;19707:6;19703:15;19696:29;19617:115;:::o;19738:177::-;19878:29;19874:1;19866:6;19862:14;19855:53;19844:71;:::o;19921:220::-;20061:34;20057:1;20049:6;20045:14;20038:58;20130:3;20125:2;20117:6;20113:15;20106:28;20027:114;:::o;20147:182::-;20287:34;20283:1;20275:6;20271:14;20264:58;20253:76;:::o;20335:228::-;20475:34;20471:1;20463:6;20459:14;20452:58;20544:11;20539:2;20531:6;20527:15;20520:36;20441:122;:::o;20569:223::-;20709:34;20705:1;20697:6;20693:14;20686:58;20778:6;20773:2;20765:6;20761:15;20754:31;20675:117;:::o;20798:173::-;20938:25;20934:1;20926:6;20922:14;20915:49;20904:67;:::o;20977:122::-;21050:24;21068:5;21050:24;:::i;:::-;21043:5;21040:35;21030:2;;21089:1;21086;21079:12;21030:2;21020:79;:::o;21105:116::-;21175:21;21190:5;21175:21;:::i;:::-;21168:5;21165:32;21155:2;;21211:1;21208;21201:12;21155:2;21145:76;:::o;21227:122::-;21300:24;21318:5;21300:24;:::i;:::-;21293:5;21290:35;21280:2;;21339:1;21336;21329:12;21280:2;21270:79;:::o

Swarm Source

ipfs://af78ecab71e39c31eb31671da03f197eb15bee84648fe8f33fa0b9abf61b80d9

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.