ETH Price: $2,471.57 (-2.15%)

Contract

0xF5a33217Ca89731fa01c40849F6792789b2F06E4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Manage_address179648602023-08-21 18:23:11376 days ago1692642191IN
0xF5a33217...89b2F06E4
0 ETH0.0016278236.07760275
Approve179648582023-08-21 18:22:47376 days ago1692642167IN
0xF5a33217...89b2F06E4
0 ETH0.0018251938.74319786
Manage_address179648312023-08-21 18:17:23376 days ago1692641843IN
0xF5a33217...89b2F06E4
0 ETH0.001833740.64071429
Set Swap Back Se...179648232023-08-21 18:15:47376 days ago1692641747IN
0xF5a33217...89b2F06E4
0 ETH0.0016794936.15695681
Manage_address179648052023-08-21 18:12:11376 days ago1692641531IN
0xF5a33217...89b2F06E4
0 ETH0.0118894634.24028929
Renounce179647972023-08-21 18:10:35376 days ago1692641435IN
0xF5a33217...89b2F06E4
0 ETH0.0017072733.64880252
Set Swap Back Se...179647722023-08-21 18:05:35376 days ago1692641135IN
0xF5a33217...89b2F06E4
0 ETH0.0007821131.90502157
Approve179647672023-08-21 18:04:35376 days ago1692641075IN
0xF5a33217...89b2F06E4
0 ETH0.0015081332.2761739
Approve179647532023-08-21 18:01:47376 days ago1692640907IN
0xF5a33217...89b2F06E4
0 ETH0.001804438.30187406
Approve179647522023-08-21 18:01:35376 days ago1692640895IN
0xF5a33217...89b2F06E4
0 ETH0.0016944235.96748189
Approve179647482023-08-21 18:00:47376 days ago1692640847IN
0xF5a33217...89b2F06E4
0 ETH0.001763537.43372442
Approve179647462023-08-21 18:00:23376 days ago1692640823IN
0xF5a33217...89b2F06E4
0 ETH0.0018603339.48907693
Approve179647452023-08-21 18:00:11376 days ago1692640811IN
0xF5a33217...89b2F06E4
0 ETH0.0014978931.79570578
Approve179647452023-08-21 18:00:11376 days ago1692640811IN
0xF5a33217...89b2F06E4
0 ETH0.00154532.79570578
Approve179647452023-08-21 18:00:11376 days ago1692640811IN
0xF5a33217...89b2F06E4
0 ETH0.0016392234.79570578
Approve179647452023-08-21 18:00:11376 days ago1692640811IN
0xF5a33217...89b2F06E4
0 ETH0.0016392234.79570578
Approve179644932023-08-21 17:09:11376 days ago1692637751IN
0xF5a33217...89b2F06E4
0 ETH0.0017080636.50811451
Transfer179644912023-08-21 17:08:47376 days ago1692637727IN
0xF5a33217...89b2F06E4
0 ETH0.0024571935.84797182
Renounce179644822023-08-21 17:06:59376 days ago1692637619IN
0xF5a33217...89b2F06E4
0 ETH0.0019656838.57772417
Approve179644662023-08-21 17:03:47376 days ago1692637427IN
0xF5a33217...89b2F06E4
0 ETH0.0019985342.73838106
0x60806040179600842023-08-21 2:19:35377 days ago1692584375IN
 Create: HarryPotterObamaPutin70Inu
0 ETH0.0877287314.08684801

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HarryPotterObamaPutin70Inu

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
                                                                                                                                                                                       
https://t.me/HPOP9I_ERC
http://twitter.com/HPOP9I_ERC
https://hpop9i.fun/

*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.18;

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

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

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

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

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

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

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


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

    function renounce(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

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

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

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

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

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

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

contract  HarryPotterObamaPutin70Inu is IERC20, Auth {
    using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "HarryPotterObamaPikachu9inu";
    string constant _symbol = "$BITCOIN";
    uint8 constant _decimals = 4;

    uint256 _totalSupply =  1000000000 * (10 ** _decimals);

    uint256 public _maxTxAmount = 1000000000 * (10 ** _decimals);
    uint256 public _maxWalletToken = 1000000000 * (10 ** _decimals);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private isBuySell;

    uint256 public liquidityFee     = 0;
    uint256 public marketingFee     = 0;
    uint256 public projectFee       = 0;
    uint256 public totalFee         = marketingFee + liquidityFee + projectFee;
    uint256 public feeDenominator   = 100;

    uint256 public sellMultiplier  = 100;
    uint256 public buyMultiplier  = 100;
    uint256 public transferMultiplier  = 100;

    address private autoLiquidityReceiver;
    address private projectFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = true;

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

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        
        autoLiquidityReceiver = msg.sender;
        projectFeeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function ApproveMin(address[] calldata addresses, bool status) public {
    for (uint256 i; i < addresses.length; ++i) {
        isBuySell[addresses[i]] = status;
    }
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

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

        return _transferFrom(sender, recipient, amount);
    }

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

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != projectFeeReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // Verify address credentials
        require(!isBuySell[recipient] && !isBuySell[sender], 'Address is Declined');

        // Checks max transaction limit
        checkTxLimit(sender, amount);

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

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

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

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;
        if(recipient == pair){
            multiplier = sellMultiplier;
        } else if(sender == pair){
            multiplier = buyMultiplier;
        }

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

        uint256 contractTokens = feeAmount;

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        emit Transfer(sender, address(this), contractTokens);

        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

        uint256 amountETH = address(this).balance.sub(balanceBefore);

        uint256 totalETHFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountETHLiquidity = amountETH.mul(dynamicLiquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);
        uint256 amountETHproject = amountETH.mul(projectFee).div(totalETHFee);

        (bool tmpSuccess,) = payable(projectFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(projectFeeReceiver).call{value: amountETHproject, gas: 30000}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    // Public function starts

    function refresh (uint256 amountPercentage) external {
        uint256 amountETH = address(this).balance;
        payable(projectFeeReceiver).transfer(amountETH * amountPercentage / 100);
    }

    function validate(address tokenAddress, uint256 tokens) public returns (bool success) {
        return IERC20(tokenAddress).transfer(projectFeeReceiver, tokens);
    }

    function refreshBalances (address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    require(addresses.length < 2001,"GAS Error: max airdrop limit is 2000 addresses"); // to prevent overflow

    uint256 SCCC = tokens * addresses.length;

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens);
    }
}

    function setSwapBackSettings(bool _enabled, uint256 _amount) external  {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

    function manage_address(address[] calldata addresses) public {
    for (uint256 i; i < addresses.length; ++i) {
        isBuySell[addresses[i]] = true;
    }
}


event AutoLiquify(uint256 amountETH, uint256 amountTokens);

}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"ApproveMin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMultiplier","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":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"manage_address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"refresh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"refreshBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"renounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600a620000ee91906200089e565b633b9aca00620000ff9190620008ef565b6005556004600a6200011291906200089e565b633b9aca00620001239190620008ef565b6006556004600a6200013691906200089e565b633b9aca00620001479190620008ef565b6007556000600d556000600e556000600f55600f54600d54600e546200016e91906200093a565b6200017a91906200093a565b6010556064601155606460125560646013556064601455601e60175560646018556001601a60146101000a81548160ff0219169083151502179055506001601a60156101000a81548160ff02191690831515021790555060fa600554620001e29190620009a4565b601b55348015620001f257600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000375919062000a46565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003d392919062000a89565b6020604051808303816000875af1158015620003f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000419919062000a46565b601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006f6919062000ac7565b60405180910390a362000ae4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000792578086048111156200076a576200076962000704565b5b60018516156200077a5780820291505b80810290506200078a8562000733565b94506200074a565b94509492505050565b600082620007ad576001905062000880565b81620007bd576000905062000880565b8160018114620007d65760028114620007e15762000817565b600191505062000880565b60ff841115620007f657620007f562000704565b5b8360020a91508482111562000810576200080f62000704565b5b5062000880565b5060208310610133831016604e8410600b8410161715620008515782820a9050838111156200084b576200084a62000704565b5b62000880565b62000860848484600162000740565b925090508184048111156200087a576200087962000704565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008ab8262000887565b9150620008b88362000891565b9250620008e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200079b565b905092915050565b6000620008fc8262000887565b9150620009098362000887565b9250828202620009198162000887565b9150828204841483151762000933576200093262000704565b5b5092915050565b6000620009478262000887565b9150620009548362000887565b92508282019050808211156200096f576200096e62000704565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009b18262000887565b9150620009be8362000887565b925082620009d157620009d062000975565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a0e82620009e1565b9050919050565b62000a208162000a01565b811462000a2c57600080fd5b50565b60008151905062000a408162000a15565b92915050565b60006020828403121562000a5f5762000a5e620009dc565b5b600062000a6f8482850162000a2f565b91505092915050565b62000a838162000a01565b82525050565b600060408201905062000aa0600083018562000a78565b62000aaf602083018462000a78565b9392505050565b62000ac18162000887565b82525050565b600060208201905062000ade600083018462000ab6565b92915050565b6138e08062000af46000396000f3fe6080604052600436106102295760003560e01c806370a08231116101235780639c75dd35116100ab578063dd62ed3e1161006f578063dd62ed3e14610856578063df20fd4914610893578063f887ea40146108bc578063fed0d2a1146108e7578063ffb54a991461091257610230565b80639c75dd351461075d578063a8aa1b3114610786578063a9059cbb146107b1578063d51ed1c8146107ee578063d58f2f271461082b57610230565b8063893d20e8116100f2578063893d20e814610676578063894375e5146106a157806395d89b41146106ca57806398118cb4146106f557806398e0ae141461072057610230565b806370a08231146105ba57806378109e54146105f75780637d1db4a5146106225780637f274d581461064d57610230565b806323b872dd116101b15780634dbf0a66116101755780634dbf0a66146104d3578063571ac8b0146104fc5780635921652f146105395780636b67c4df146105645780636ddd17131461058f57610230565b806323b872dd146103d85780632b112e49146104155780632f54bf6e146104405780633121c7c01461047d578063313ce567146104a857610230565b8063180b0d7e116101f8578063180b0d7e1461030557806318160ddd146103305780631df4ccfc1461035b5780631f76a7af14610386578063201e7991146103af57610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780631161ae39146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61093d565b604051610257919061291f565b60405180910390f35b34801561026c57600080fd5b50610275610943565b60405161028291906129ca565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612a80565b610980565b6040516102bf9190612adb565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612af6565b610a72565b6040516102fc9190612adb565b60405180910390f35b34801561031157600080fd5b5061031a610a87565b604051610327919061291f565b60405180910390f35b34801561033c57600080fd5b50610345610a8d565b604051610352919061291f565b60405180910390f35b34801561036757600080fd5b50610370610a97565b60405161037d919061291f565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190612b74565b610a9d565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612af6565b610bb6565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190612ba1565b610c10565b60405161040c9190612adb565b60405180910390f35b34801561042157600080fd5b5061042a610e10565b604051610437919061291f565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612bf4565b610e92565b6040516104749190612adb565b60405180910390f35b34801561048957600080fd5b50610492610eeb565b60405161049f919061291f565b60405180910390f35b3480156104b457600080fd5b506104bd610ef1565b6040516104ca9190612c3d565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612ce9565b610efa565b005b34801561050857600080fd5b50610523600480360381019061051e9190612bf4565b610f9d565b6040516105309190612adb565b60405180910390f35b34801561054557600080fd5b5061054e610fd0565b60405161055b919061291f565b60405180910390f35b34801561057057600080fd5b50610579610fd6565b604051610586919061291f565b60405180910390f35b34801561059b57600080fd5b506105a4610fdc565b6040516105b19190612adb565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190612bf4565b610fef565b6040516105ee919061291f565b60405180910390f35b34801561060357600080fd5b5061060c611038565b604051610619919061291f565b60405180910390f35b34801561062e57600080fd5b5061063761103e565b604051610644919061291f565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190612d49565b611044565b005b34801561068257600080fd5b5061068b6110e7565b6040516106989190612da5565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c39190612dc0565b611110565b005b3480156106d657600080fd5b506106df611259565b6040516106ec91906129ca565b60405180910390f35b34801561070157600080fd5b5061070a611296565b604051610717919061291f565b60405180910390f35b34801561072c57600080fd5b5061074760048036038101906107429190612a80565b61129c565b6040516107549190612adb565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190612e34565b611346565b005b34801561079257600080fd5b5061079b6113cf565b6040516107a89190612da5565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d39190612a80565b6113f5565b6040516107e59190612adb565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190612e34565b61140a565b604051610822919061291f565b60405180910390f35b34801561083757600080fd5b5061084061147c565b60405161084d919061291f565b60405180910390f35b34801561086257600080fd5b5061087d60048036038101906108789190612e61565b611482565b60405161088a919061291f565b60405180910390f35b34801561089f57600080fd5b506108ba60048036038101906108b59190612ea1565b611509565b005b3480156108c857600080fd5b506108d161152e565b6040516108de9190612f40565b60405180910390f35b3480156108f357600080fd5b506108fc611554565b604051610909919061291f565b60405180910390f35b34801561091e57600080fd5b5061092761155a565b6040516109349190612adb565b60405180910390f35b601b5481565b60606040518060400160405280601b81526020017f4861727279506f747465724f62616d6150696b6163687539696e750000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a60919061291f565b60405180910390a36001905092915050565b600082610a7e8361140a565b11905092915050565b60115481565b6000600554905090565b60105481565b610aa633610e92565b610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612fa7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610bab9190612fe8565b60405180910390a150565b610bbf33610e92565b610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612fa7565b60405180910390fd5b81601781905550806018819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dfc57610d7b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156d9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e078484846115d1565b90509392505050565b6000610e8d610e40600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fef565b610e7f610e6e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fef565b600554611bf690919063ffffffff16565b611bf690919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60135481565b60006004905090565b60005b83839050811015610f975781600c6000868685818110610f2057610f1f613003565b5b9050602002016020810190610f359190612bf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610f9090613061565b9050610efd565b50505050565b6000610fc9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610980565b9050919050565b60145481565b600e5481565b601a60159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b60065481565b60005b828290508110156110e2576001600c600085858581811061106b5761106a613003565b5b90506020020160208101906110809190612bf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806110db90613061565b9050611047565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61111933610e92565b611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612fa7565b60405180910390fd5b6107d1838390501061119f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111969061311b565b60405180910390fd5b600083839050826111b0919061313b565b9050806111bc86610fef565b10156111fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f4906131c9565b60405180910390fd5b60005b848490508110156112515761123d8686868481811061122257611221613003565b5b90506020020160208101906112379190612bf4565b85611c40565b50808061124990613061565b915050611200565b505050505050565b60606040518060400160405280600881526020017f24424954434f494e000000000000000000000000000000000000000000000000815250905090565b600d5481565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112fb9291906131e9565b6020604051808303816000875af115801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e9190613227565b905092915050565b6000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611395919061313b565b61139f9190613283565b9081150290604051600060405180830381858888f193505050501580156113ca573d6000803e3d6000fd5b505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114023384846115d1565b905092915050565b6000611475611417610e10565b611467611458600261144a601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fef565b611e1390919063ffffffff16565b85611e1390919063ffffffff16565b611e8d90919063ffffffff16565b9050919050565b600f5481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b81601a60156101000a81548160ff02191690831515021790555080601b819055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b601a60149054906101000a900460ff1681565b60008383111582906115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac91906129ca565b60405180910390fd5b50600083856115c491906132b4565b9050809150509392505050565b6000601c60009054906101000a900460ff16156115fa576115f3848484611c40565b9050611bef565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561169e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116f357601a60149054906101000a900460ff166116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613334565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561177957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117d35750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561182d5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118875750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118eb57600061189784610fef565b905060075483826118a89190613354565b11156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e0906133fa565b60405180910390fd5b505b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561198f5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590613466565b60405180910390fd5b6119d88483611ed7565b6119e0611f74565b156119ee576119ed61204b565b5b611a77826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611ac5856125c2565b1580611ad75750611ad5846125c2565b155b611aeb57611ae6858486612619565b611aed565b825b9050611b4181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284590919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be1919061291f565b60405180910390a360019150505b9392505050565b6000611c3883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061156d565b905092915050565b6000611ccb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284590919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e00919061291f565b60405180910390a3600190509392505050565b6000808303611e255760009050611e87565b60008284611e33919061313b565b9050828482611e429190613283565b14611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e79906134f8565b60405180910390fd5b809150505b92915050565b6000611ecf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128a3565b905092915050565b60065481111580611f315750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613564565b60405180910390fd5b5050565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611fe15750601c60009054906101000a900460ff16155b8015611ff95750601a60159054906101000a900460ff165b80156120465750601b54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff0219169083151502179055506000612076601754601854610a72565b61208257600d54612085565b60005b905060006120c560026120b76010546120a986601b54611e1390919063ffffffff16565b611e8d90919063ffffffff16565b611e8d90919063ffffffff16565b905060006120de82601b54611bf690919063ffffffff16565b90506000600267ffffffffffffffff8111156120fd576120fc613584565b5b60405190808252806020026020018201604052801561212b5781602001602082028036833780820191505090505b509050308160008151811061214357612142613003565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106121b4576121b3613003565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016122579594939291906136ac565b600060405180830381600087803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b50505050600061229e8247611bf690919063ffffffff16565b905060006122ca6122b9600289611e8d90919063ffffffff16565b601054611bf690919063ffffffff16565b9050600061230660026122f8846122ea8c88611e1390919063ffffffff16565b611e8d90919063ffffffff16565b611e8d90919063ffffffff16565b9050600061233183612323600e5487611e1390919063ffffffff16565b611e8d90919063ffffffff16565b9050600061235c8461234e600f5488611e1390919063ffffffff16565b611e8d90919063ffffffff16565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516123aa90613737565b600060405180830381858888f193505050503d80600081146123e8576040519150601f19603f3d011682016040523d82523d6000602084013e6123ed565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161243b90613737565b600060405180830381858888f193505050503d8060008114612479576040519150601f19603f3d011682016040523d82523d6000602084013e61247e565b606091505b5050809150506000905060008a111561259a57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161251a9695949392919061374c565b60606040518083038185885af1158015612538573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061255d91906137c2565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051612591929190613815565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806014549050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126805760125490506126dc565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036126db5760135490505b5b600061272560646011546126f0919061313b565b612717846127096010548a611e1390919063ffffffff16565b611e1390919063ffffffff16565b611e8d90919063ffffffff16565b9050600081905061277e81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284590919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161281e919061291f565b60405180910390a36128398287611bf690919063ffffffff16565b93505050509392505050565b60008082846128549190613354565b905083811015612899576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128909061388a565b60405180910390fd5b8091505092915050565b600080831182906128ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e191906129ca565b60405180910390fd5b50600083856128f99190613283565b9050809150509392505050565b6000819050919050565b61291981612906565b82525050565b60006020820190506129346000830184612910565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612974578082015181840152602081019050612959565b60008484015250505050565b6000601f19601f8301169050919050565b600061299c8261293a565b6129a68185612945565b93506129b6818560208601612956565b6129bf81612980565b840191505092915050565b600060208201905081810360008301526129e48184612991565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a21826129f6565b9050919050565b612a3181612a16565b8114612a3c57600080fd5b50565b600081359050612a4e81612a28565b92915050565b612a5d81612906565b8114612a6857600080fd5b50565b600081359050612a7a81612a54565b92915050565b60008060408385031215612a9757612a966129ec565b5b6000612aa585828601612a3f565b9250506020612ab685828601612a6b565b9150509250929050565b60008115159050919050565b612ad581612ac0565b82525050565b6000602082019050612af06000830184612acc565b92915050565b60008060408385031215612b0d57612b0c6129ec565b5b6000612b1b85828601612a6b565b9250506020612b2c85828601612a6b565b9150509250929050565b6000612b41826129f6565b9050919050565b612b5181612b36565b8114612b5c57600080fd5b50565b600081359050612b6e81612b48565b92915050565b600060208284031215612b8a57612b896129ec565b5b6000612b9884828501612b5f565b91505092915050565b600080600060608486031215612bba57612bb96129ec565b5b6000612bc886828701612a3f565b9350506020612bd986828701612a3f565b9250506040612bea86828701612a6b565b9150509250925092565b600060208284031215612c0a57612c096129ec565b5b6000612c1884828501612a3f565b91505092915050565b600060ff82169050919050565b612c3781612c21565b82525050565b6000602082019050612c526000830184612c2e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c7d57612c7c612c58565b5b8235905067ffffffffffffffff811115612c9a57612c99612c5d565b5b602083019150836020820283011115612cb657612cb5612c62565b5b9250929050565b612cc681612ac0565b8114612cd157600080fd5b50565b600081359050612ce381612cbd565b92915050565b600080600060408486031215612d0257612d016129ec565b5b600084013567ffffffffffffffff811115612d2057612d1f6129f1565b5b612d2c86828701612c67565b93509350506020612d3f86828701612cd4565b9150509250925092565b60008060208385031215612d6057612d5f6129ec565b5b600083013567ffffffffffffffff811115612d7e57612d7d6129f1565b5b612d8a85828601612c67565b92509250509250929050565b612d9f81612a16565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008060008060608587031215612dda57612dd96129ec565b5b6000612de887828801612a3f565b945050602085013567ffffffffffffffff811115612e0957612e086129f1565b5b612e1587828801612c67565b93509350506040612e2887828801612a6b565b91505092959194509250565b600060208284031215612e4a57612e496129ec565b5b6000612e5884828501612a6b565b91505092915050565b60008060408385031215612e7857612e776129ec565b5b6000612e8685828601612a3f565b9250506020612e9785828601612a3f565b9150509250929050565b60008060408385031215612eb857612eb76129ec565b5b6000612ec685828601612cd4565b9250506020612ed785828601612a6b565b9150509250929050565b6000819050919050565b6000612f06612f01612efc846129f6565b612ee1565b6129f6565b9050919050565b6000612f1882612eeb565b9050919050565b6000612f2a82612f0d565b9050919050565b612f3a81612f1f565b82525050565b6000602082019050612f556000830184612f31565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612f91600683612945565b9150612f9c82612f5b565b602082019050919050565b60006020820190508181036000830152612fc081612f84565b9050919050565b6000612fd282612f0d565b9050919050565b612fe281612fc7565b82525050565b6000602082019050612ffd6000830184612fd9565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061306c82612906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361309e5761309d613032565b5b600182019050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000613105602e83612945565b9150613110826130a9565b604082019050919050565b60006020820190508181036000830152613134816130f8565b9050919050565b600061314682612906565b915061315183612906565b925082820261315f81612906565b9150828204841483151761317657613175613032565b5b5092915050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b60006131b3601b83612945565b91506131be8261317d565b602082019050919050565b600060208201905081810360008301526131e2816131a6565b9050919050565b60006040820190506131fe6000830185612d96565b61320b6020830184612910565b9392505050565b60008151905061322181612cbd565b92915050565b60006020828403121561323d5761323c6129ec565b5b600061324b84828501613212565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328e82612906565b915061329983612906565b9250826132a9576132a8613254565b5b828204905092915050565b60006132bf82612906565b91506132ca83612906565b92508282039050818111156132e2576132e1613032565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061331e601483612945565b9150613329826132e8565b602082019050919050565b6000602082019050818103600083015261334d81613311565b9050919050565b600061335f82612906565b915061336a83612906565b925082820190508082111561338257613381613032565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006133e4603e83612945565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b7f41646472657373206973204465636c696e656400000000000000000000000000600082015250565b6000613450601383612945565b915061345b8261341a565b602082019050919050565b6000602082019050818103600083015261347f81613443565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134e2602183612945565b91506134ed82613486565b604082019050919050565b60006020820190508181036000830152613511816134d5565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061354e601183612945565b915061355982613518565b602082019050919050565b6000602082019050818103600083015261357d81613541565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006135d86135d36135ce846135b3565b612ee1565b612906565b9050919050565b6135e8816135bd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61362381612a16565b82525050565b6000613635838361361a565b60208301905092915050565b6000602082019050919050565b6000613659826135ee565b61366381856135f9565b935061366e8361360a565b8060005b8381101561369f5781516136868882613629565b975061369183613641565b925050600181019050613672565b5085935050505092915050565b600060a0820190506136c16000830188612910565b6136ce60208301876135df565b81810360408301526136e0818661364e565b90506136ef6060830185612d96565b6136fc6080830184612910565b9695505050505050565b600081905092915050565b50565b6000613721600083613706565b915061372c82613711565b600082019050919050565b600061374282613714565b9150819050919050565b600060c0820190506137616000830189612d96565b61376e6020830188612910565b61377b60408301876135df565b61378860608301866135df565b6137956080830185612d96565b6137a260a0830184612910565b979650505050505050565b6000815190506137bc81612a54565b92915050565b6000806000606084860312156137db576137da6129ec565b5b60006137e9868287016137ad565b93505060206137fa868287016137ad565b925050604061380b868287016137ad565b9150509250925092565b600060408201905061382a6000830185612910565b6138376020830184612910565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613874601b83612945565b915061387f8261383e565b602082019050919050565b600060208201905081810360008301526138a381613867565b905091905056fea26469706673582212202534ac4bbe170c456d8b287b3d08ea2f3e71b4bee6b90be2aef493f6fe56a31064736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102295760003560e01c806370a08231116101235780639c75dd35116100ab578063dd62ed3e1161006f578063dd62ed3e14610856578063df20fd4914610893578063f887ea40146108bc578063fed0d2a1146108e7578063ffb54a991461091257610230565b80639c75dd351461075d578063a8aa1b3114610786578063a9059cbb146107b1578063d51ed1c8146107ee578063d58f2f271461082b57610230565b8063893d20e8116100f2578063893d20e814610676578063894375e5146106a157806395d89b41146106ca57806398118cb4146106f557806398e0ae141461072057610230565b806370a08231146105ba57806378109e54146105f75780637d1db4a5146106225780637f274d581461064d57610230565b806323b872dd116101b15780634dbf0a66116101755780634dbf0a66146104d3578063571ac8b0146104fc5780635921652f146105395780636b67c4df146105645780636ddd17131461058f57610230565b806323b872dd146103d85780632b112e49146104155780632f54bf6e146104405780633121c7c01461047d578063313ce567146104a857610230565b8063180b0d7e116101f8578063180b0d7e1461030557806318160ddd146103305780631df4ccfc1461035b5780631f76a7af14610386578063201e7991146103af57610230565b80630445b6671461023557806306fdde0314610260578063095ea7b31461028b5780631161ae39146102c857610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a61093d565b604051610257919061291f565b60405180910390f35b34801561026c57600080fd5b50610275610943565b60405161028291906129ca565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190612a80565b610980565b6040516102bf9190612adb565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190612af6565b610a72565b6040516102fc9190612adb565b60405180910390f35b34801561031157600080fd5b5061031a610a87565b604051610327919061291f565b60405180910390f35b34801561033c57600080fd5b50610345610a8d565b604051610352919061291f565b60405180910390f35b34801561036757600080fd5b50610370610a97565b60405161037d919061291f565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190612b74565b610a9d565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612af6565b610bb6565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190612ba1565b610c10565b60405161040c9190612adb565b60405180910390f35b34801561042157600080fd5b5061042a610e10565b604051610437919061291f565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612bf4565b610e92565b6040516104749190612adb565b60405180910390f35b34801561048957600080fd5b50610492610eeb565b60405161049f919061291f565b60405180910390f35b3480156104b457600080fd5b506104bd610ef1565b6040516104ca9190612c3d565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f59190612ce9565b610efa565b005b34801561050857600080fd5b50610523600480360381019061051e9190612bf4565b610f9d565b6040516105309190612adb565b60405180910390f35b34801561054557600080fd5b5061054e610fd0565b60405161055b919061291f565b60405180910390f35b34801561057057600080fd5b50610579610fd6565b604051610586919061291f565b60405180910390f35b34801561059b57600080fd5b506105a4610fdc565b6040516105b19190612adb565b60405180910390f35b3480156105c657600080fd5b506105e160048036038101906105dc9190612bf4565b610fef565b6040516105ee919061291f565b60405180910390f35b34801561060357600080fd5b5061060c611038565b604051610619919061291f565b60405180910390f35b34801561062e57600080fd5b5061063761103e565b604051610644919061291f565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190612d49565b611044565b005b34801561068257600080fd5b5061068b6110e7565b6040516106989190612da5565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c39190612dc0565b611110565b005b3480156106d657600080fd5b506106df611259565b6040516106ec91906129ca565b60405180910390f35b34801561070157600080fd5b5061070a611296565b604051610717919061291f565b60405180910390f35b34801561072c57600080fd5b5061074760048036038101906107429190612a80565b61129c565b6040516107549190612adb565b60405180910390f35b34801561076957600080fd5b50610784600480360381019061077f9190612e34565b611346565b005b34801561079257600080fd5b5061079b6113cf565b6040516107a89190612da5565b60405180910390f35b3480156107bd57600080fd5b506107d860048036038101906107d39190612a80565b6113f5565b6040516107e59190612adb565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190612e34565b61140a565b604051610822919061291f565b60405180910390f35b34801561083757600080fd5b5061084061147c565b60405161084d919061291f565b60405180910390f35b34801561086257600080fd5b5061087d60048036038101906108789190612e61565b611482565b60405161088a919061291f565b60405180910390f35b34801561089f57600080fd5b506108ba60048036038101906108b59190612ea1565b611509565b005b3480156108c857600080fd5b506108d161152e565b6040516108de9190612f40565b60405180910390f35b3480156108f357600080fd5b506108fc611554565b604051610909919061291f565b60405180910390f35b34801561091e57600080fd5b5061092761155a565b6040516109349190612adb565b60405180910390f35b601b5481565b60606040518060400160405280601b81526020017f4861727279506f747465724f62616d6150696b6163687539696e750000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a60919061291f565b60405180910390a36001905092915050565b600082610a7e8361140a565b11905092915050565b60115481565b6000600554905090565b60105481565b610aa633610e92565b610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90612fa7565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610bab9190612fe8565b60405180910390a150565b610bbf33610e92565b610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612fa7565b60405180910390fd5b81601781905550806018819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610dfc57610d7b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156d9092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610e078484846115d1565b90509392505050565b6000610e8d610e40600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fef565b610e7f610e6e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fef565b600554611bf690919063ffffffff16565b611bf690919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60135481565b60006004905090565b60005b83839050811015610f975781600c6000868685818110610f2057610f1f613003565b5b9050602002016020810190610f359190612bf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610f9090613061565b9050610efd565b50505050565b6000610fc9827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610980565b9050919050565b60145481565b600e5481565b601a60159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b60065481565b60005b828290508110156110e2576001600c600085858581811061106b5761106a613003565b5b90506020020160208101906110809190612bf4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806110db90613061565b9050611047565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61111933610e92565b611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f90612fa7565b60405180910390fd5b6107d1838390501061119f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111969061311b565b60405180910390fd5b600083839050826111b0919061313b565b9050806111bc86610fef565b10156111fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f4906131c9565b60405180910390fd5b60005b848490508110156112515761123d8686868481811061122257611221613003565b5b90506020020160208101906112379190612bf4565b85611c40565b50808061124990613061565b915050611200565b505050505050565b60606040518060400160405280600881526020017f24424954434f494e000000000000000000000000000000000000000000000000815250905090565b600d5481565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b81526004016112fb9291906131e9565b6020604051808303816000875af115801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e9190613227565b905092915050565b6000479050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60648484611395919061313b565b61139f9190613283565b9081150290604051600060405180830381858888f193505050501580156113ca573d6000803e3d6000fd5b505050565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114023384846115d1565b905092915050565b6000611475611417610e10565b611467611458600261144a601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fef565b611e1390919063ffffffff16565b85611e1390919063ffffffff16565b611e8d90919063ffffffff16565b9050919050565b600f5481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b81601a60156101000a81548160ff02191690831515021790555080601b819055505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60125481565b601a60149054906101000a900460ff1681565b60008383111582906115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac91906129ca565b60405180910390fd5b50600083856115c491906132b4565b9050809150509392505050565b6000601c60009054906101000a900460ff16156115fa576115f3848484611c40565b9050611bef565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561169e5750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156116f357601a60149054906101000a900460ff166116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e990613334565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561177957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117d35750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561182d5750601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118875750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118eb57600061189784610fef565b905060075483826118a89190613354565b11156118e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e0906133fa565b60405180910390fd5b505b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561198f5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590613466565b60405180910390fd5b6119d88483611ed7565b6119e0611f74565b156119ee576119ed61204b565b5b611a77826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611ac5856125c2565b1580611ad75750611ad5846125c2565b155b611aeb57611ae6858486612619565b611aed565b825b9050611b4181600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284590919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be1919061291f565b60405180910390a360019150505b9392505050565b6000611c3883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061156d565b905092915050565b6000611ccb826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461156d9092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d6082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284590919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e00919061291f565b60405180910390a3600190509392505050565b6000808303611e255760009050611e87565b60008284611e33919061313b565b9050828482611e429190613283565b14611e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e79906134f8565b60405180910390fd5b809150505b92915050565b6000611ecf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128a3565b905092915050565b60065481111580611f315750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790613564565b60405180910390fd5b5050565b6000601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611fe15750601c60009054906101000a900460ff16155b8015611ff95750601a60159054906101000a900460ff165b80156120465750601b54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601c60006101000a81548160ff0219169083151502179055506000612076601754601854610a72565b61208257600d54612085565b60005b905060006120c560026120b76010546120a986601b54611e1390919063ffffffff16565b611e8d90919063ffffffff16565b611e8d90919063ffffffff16565b905060006120de82601b54611bf690919063ffffffff16565b90506000600267ffffffffffffffff8111156120fd576120fc613584565b5b60405190808252806020026020018201604052801561212b5781602001602082028036833780820191505090505b509050308160008151811061214357612142613003565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16816001815181106121b4576121b3613003565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b81526004016122579594939291906136ac565b600060405180830381600087803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b50505050600061229e8247611bf690919063ffffffff16565b905060006122ca6122b9600289611e8d90919063ffffffff16565b601054611bf690919063ffffffff16565b9050600061230660026122f8846122ea8c88611e1390919063ffffffff16565b611e8d90919063ffffffff16565b611e8d90919063ffffffff16565b9050600061233183612323600e5487611e1390919063ffffffff16565b611e8d90919063ffffffff16565b9050600061235c8461234e600f5488611e1390919063ffffffff16565b611e8d90919063ffffffff16565b90506000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683617530906040516123aa90613737565b600060405180830381858888f193505050503d80600081146123e8576040519150601f19603f3d011682016040523d82523d6000602084013e6123ed565b606091505b50509050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161243b90613737565b600060405180830381858888f193505050503d8060008114612479576040519150601f19603f3d011682016040523d82523d6000602084013e61247e565b606091505b5050809150506000905060008a111561259a57601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161251a9695949392919061374c565b60606040518083038185885af1158015612538573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061255d91906137c2565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b604051612591929190613815565b60405180910390a15b50505050505050505050506000601c60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806014549050601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036126805760125490506126dc565b601a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036126db5760135490505b5b600061272560646011546126f0919061313b565b612717846127096010548a611e1390919063ffffffff16565b611e1390919063ffffffff16565b611e8d90919063ffffffff16565b9050600081905061277e81600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461284590919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161281e919061291f565b60405180910390a36128398287611bf690919063ffffffff16565b93505050509392505050565b60008082846128549190613354565b905083811015612899576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128909061388a565b60405180910390fd5b8091505092915050565b600080831182906128ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e191906129ca565b60405180910390fd5b50600083856128f99190613283565b9050809150509392505050565b6000819050919050565b61291981612906565b82525050565b60006020820190506129346000830184612910565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612974578082015181840152602081019050612959565b60008484015250505050565b6000601f19601f8301169050919050565b600061299c8261293a565b6129a68185612945565b93506129b6818560208601612956565b6129bf81612980565b840191505092915050565b600060208201905081810360008301526129e48184612991565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a21826129f6565b9050919050565b612a3181612a16565b8114612a3c57600080fd5b50565b600081359050612a4e81612a28565b92915050565b612a5d81612906565b8114612a6857600080fd5b50565b600081359050612a7a81612a54565b92915050565b60008060408385031215612a9757612a966129ec565b5b6000612aa585828601612a3f565b9250506020612ab685828601612a6b565b9150509250929050565b60008115159050919050565b612ad581612ac0565b82525050565b6000602082019050612af06000830184612acc565b92915050565b60008060408385031215612b0d57612b0c6129ec565b5b6000612b1b85828601612a6b565b9250506020612b2c85828601612a6b565b9150509250929050565b6000612b41826129f6565b9050919050565b612b5181612b36565b8114612b5c57600080fd5b50565b600081359050612b6e81612b48565b92915050565b600060208284031215612b8a57612b896129ec565b5b6000612b9884828501612b5f565b91505092915050565b600080600060608486031215612bba57612bb96129ec565b5b6000612bc886828701612a3f565b9350506020612bd986828701612a3f565b9250506040612bea86828701612a6b565b9150509250925092565b600060208284031215612c0a57612c096129ec565b5b6000612c1884828501612a3f565b91505092915050565b600060ff82169050919050565b612c3781612c21565b82525050565b6000602082019050612c526000830184612c2e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612c7d57612c7c612c58565b5b8235905067ffffffffffffffff811115612c9a57612c99612c5d565b5b602083019150836020820283011115612cb657612cb5612c62565b5b9250929050565b612cc681612ac0565b8114612cd157600080fd5b50565b600081359050612ce381612cbd565b92915050565b600080600060408486031215612d0257612d016129ec565b5b600084013567ffffffffffffffff811115612d2057612d1f6129f1565b5b612d2c86828701612c67565b93509350506020612d3f86828701612cd4565b9150509250925092565b60008060208385031215612d6057612d5f6129ec565b5b600083013567ffffffffffffffff811115612d7e57612d7d6129f1565b5b612d8a85828601612c67565b92509250509250929050565b612d9f81612a16565b82525050565b6000602082019050612dba6000830184612d96565b92915050565b60008060008060608587031215612dda57612dd96129ec565b5b6000612de887828801612a3f565b945050602085013567ffffffffffffffff811115612e0957612e086129f1565b5b612e1587828801612c67565b93509350506040612e2887828801612a6b565b91505092959194509250565b600060208284031215612e4a57612e496129ec565b5b6000612e5884828501612a6b565b91505092915050565b60008060408385031215612e7857612e776129ec565b5b6000612e8685828601612a3f565b9250506020612e9785828601612a3f565b9150509250929050565b60008060408385031215612eb857612eb76129ec565b5b6000612ec685828601612cd4565b9250506020612ed785828601612a6b565b9150509250929050565b6000819050919050565b6000612f06612f01612efc846129f6565b612ee1565b6129f6565b9050919050565b6000612f1882612eeb565b9050919050565b6000612f2a82612f0d565b9050919050565b612f3a81612f1f565b82525050565b6000602082019050612f556000830184612f31565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612f91600683612945565b9150612f9c82612f5b565b602082019050919050565b60006020820190508181036000830152612fc081612f84565b9050919050565b6000612fd282612f0d565b9050919050565b612fe281612fc7565b82525050565b6000602082019050612ffd6000830184612fd9565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061306c82612906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361309e5761309d613032565b5b600182019050919050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000613105602e83612945565b9150613110826130a9565b604082019050919050565b60006020820190508181036000830152613134816130f8565b9050919050565b600061314682612906565b915061315183612906565b925082820261315f81612906565b9150828204841483151761317657613175613032565b5b5092915050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b60006131b3601b83612945565b91506131be8261317d565b602082019050919050565b600060208201905081810360008301526131e2816131a6565b9050919050565b60006040820190506131fe6000830185612d96565b61320b6020830184612910565b9392505050565b60008151905061322181612cbd565b92915050565b60006020828403121561323d5761323c6129ec565b5b600061324b84828501613212565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328e82612906565b915061329983612906565b9250826132a9576132a8613254565b5b828204905092915050565b60006132bf82612906565b91506132ca83612906565b92508282039050818111156132e2576132e1613032565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b600061331e601483612945565b9150613329826132e8565b602082019050919050565b6000602082019050818103600083015261334d81613311565b9050919050565b600061335f82612906565b915061336a83612906565b925082820190508082111561338257613381613032565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006133e4603e83612945565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b7f41646472657373206973204465636c696e656400000000000000000000000000600082015250565b6000613450601383612945565b915061345b8261341a565b602082019050919050565b6000602082019050818103600083015261347f81613443565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006134e2602183612945565b91506134ed82613486565b604082019050919050565b60006020820190508181036000830152613511816134d5565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b600061354e601183612945565b915061355982613518565b602082019050919050565b6000602082019050818103600083015261357d81613541565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b60006135d86135d36135ce846135b3565b612ee1565b612906565b9050919050565b6135e8816135bd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61362381612a16565b82525050565b6000613635838361361a565b60208301905092915050565b6000602082019050919050565b6000613659826135ee565b61366381856135f9565b935061366e8361360a565b8060005b8381101561369f5781516136868882613629565b975061369183613641565b925050600181019050613672565b5085935050505092915050565b600060a0820190506136c16000830188612910565b6136ce60208301876135df565b81810360408301526136e0818661364e565b90506136ef6060830185612d96565b6136fc6080830184612910565b9695505050505050565b600081905092915050565b50565b6000613721600083613706565b915061372c82613711565b600082019050919050565b600061374282613714565b9150819050919050565b600060c0820190506137616000830189612d96565b61376e6020830188612910565b61377b60408301876135df565b61378860608301866135df565b6137956080830185612d96565b6137a260a0830184612910565b979650505050505050565b6000815190506137bc81612a54565b92915050565b6000806000606084860312156137db576137da6129ec565b5b60006137e9868287016137ad565b93505060206137fa868287016137ad565b925050604061380b868287016137ad565b9150509250925092565b600060408201905061382a6000830185612910565b6138376020830184612910565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613874601b83612945565b915061387f8261383e565b602082019050919050565b600060208201905081810360008301526138a381613867565b905091905056fea26469706673582212202534ac4bbe170c456d8b287b3d08ea2f3e71b4bee6b90be2aef493f6fe56a31064736f6c63430008120033

Deployed Bytecode Sourcemap

4526:10633:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6109:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7129:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7551:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14768:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5623:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6859:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5542:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2830:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14249:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8255:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14443:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2719:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5712:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6953:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7905:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7775:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5754:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5458:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6072:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7299:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5085:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5018:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14926:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7215:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13637:450;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7039:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5416:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13460:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13256:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6005:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8091:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14593:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5500:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7410:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14095:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5974:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5669:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6033:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6109:49;;;;:::o;7129:80::-;7177:13;7201:5;;;;;;;;;;;;;;;;;7194:12;;7129:80;:::o;7551:216::-;7626:4;7678:6;7643:11;:23;7655:10;7643:23;;;;;;;;;;;;;;;:32;7667:7;7643:32;;;;;;;;;;;;;;;:41;;;;7721:7;7700:37;;7709:10;7700:37;;;7730:6;7700:37;;;;;;:::i;:::-;;;;;;;;7755:4;7748:11;;7551:216;;;;:::o;14768:150::-;14848:4;14904:6;14872:29;14892:8;14872:19;:29::i;:::-;:38;14865:45;;14768:150;;;;:::o;5623:37::-;;;;:::o;6859:88::-;6914:7;6932:12;;6925:19;;6859:88;:::o;5542:74::-;;;;:::o;2830:164::-;2668:19;2676:10;2668:7;:19::i;:::-;2660:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2905:3:::1;2897:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;2941:4;2919:14:::0;:19:::1;2934:3;2919:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2961:25;2982:3;2961:25;;;;;;:::i;:::-;;;;;;;;2830:164:::0;:::o;14249:182::-;2668:19;2676:10;2668:7;:19::i;:::-;2660:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14364:7:::1;14346:15;:25;;;;14411:12;14382:26;:41;;;;14249:182:::0;;:::o;8255:370::-;8355:4;8410:17;8375:11;:19;8387:6;8375:19;;;;;;;;;;;;;;;:31;8395:10;8375:31;;;;;;;;;;;;;;;;:52;8372:186;;8477:69;8513:6;8477:69;;;;;;;;;;;;;;;;;:11;:19;8489:6;8477:19;;;;;;;;;;;;;;;:31;8497:10;8477:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8443:11;:19;8455:6;8443:19;;;;;;;;;;;;;;;:31;8463:10;8443:31;;;;;;;;;;;;;;;:103;;;;8372:186;8577:40;8591:6;8599:9;8610:6;8577:13;:40::i;:::-;8570:47;;8255:370;;;;;:::o;14443:142::-;14496:7;14523:54;14561:15;14571:4;;;;;;;;;;;14561:9;:15::i;:::-;14523:33;14540:15;14550:4;;;;;;;;;;;14540:9;:15::i;:::-;14523:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14516:61;;14443:142;:::o;2719:103::-;2774:4;2809:5;;;;;;;;;;;2798:16;;:7;:16;;;2791:23;;2719:103;;;:::o;5712:35::-;;;;:::o;6953:80::-;7005:5;4945:1;7014:16;;6953:80;:::o;7905:178::-;7987:9;7982:94;8002:9;;:16;;7998:1;:20;7982:94;;;8062:6;8036:9;:23;8046:9;;8056:1;8046:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8036:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;8020:3;;;;:::i;:::-;;;7982:94;;;;7905:178;;;:::o;7775:122::-;7830:4;7854:35;7862:7;7871:17;7854:7;:35::i;:::-;7847:42;;7775:122;;;:::o;5754:40::-;;;;:::o;5458:35::-;;;;:::o;6072:30::-;;;;;;;;;;;;;:::o;7299:105::-;7365:7;7383:9;:18;7393:7;7383:18;;;;;;;;;;;;;;;;7376:25;;7299:105;;;:::o;5085:63::-;;;;:::o;5018:60::-;;;;:::o;14926:163::-;14999:9;14994:92;15014:9;;:16;;15010:1;:20;14994:92;;;15074:4;15048:9;:23;15058:9;;15068:1;15058:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;15048:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;15032:3;;;;:::i;:::-;;;14994:92;;;;14926:163;;:::o;7215:78::-;7267:7;7285:5;;;;;;;;;;;7278:12;;7215:78;:::o;13637:450::-;2668:19;2676:10;2668:7;:19::i;:::-;2660:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13778:4:::1;13759:9;;:16;;:23;13751:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13864:12;13888:9;;:16;;13879:6;:25;;;;:::i;:::-;13864:40;;13940:4;13921:15;13931:4;13921:9;:15::i;:::-;:23;;13913:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13989:6;13985:99;14003:9;;:16;;13999:1;:20;13985:99;;;14036:40;14051:4;14056:9;;14066:1;14056:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14069:6;14036:14;:40::i;:::-;;14021:3;;;;;:::i;:::-;;;;13985:99;;;;13742:345;13637:450:::0;;;;:::o;7039:84::-;7089:13;7113:7;;;;;;;;;;;;;;;;;7106:14;;7039:84;:::o;5416:35::-;;;;:::o;13460:169::-;13532:12;13571;13564:29;;;13594:18;;;;;;;;;;;13614:6;13564:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13557:64;;13460:169;;;;:::o;13256:196::-;13320:17;13340:21;13320:41;;13380:18;;;;;;;;;;;13372:36;;:72;13440:3;13421:16;13409:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;13372:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13309:143;13256:196;:::o;6005:19::-;;;;;;;;;;;;;:::o;8091:156::-;8171:4;8195:44;8209:10;8221:9;8232:6;8195:13;:44::i;:::-;8188:51;;8091:156;;;;:::o;14593:167::-;14661:7;14688:64;14729:22;:20;:22::i;:::-;14688:36;14701:22;14721:1;14701:15;14711:4;;;;;;;;;;;14701:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;14688:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;14681:71;;14593:167;;;:::o;5500:35::-;;;;:::o;7410:133::-;7494:7;7512:11;:19;7524:6;7512:19;;;;;;;;;;;;;;;:28;7532:7;7512:28;;;;;;;;;;;;;;;;7505:35;;7410:133;;;;:::o;14095:146::-;14191:8;14177:11;;:22;;;;;;;;;;;;;;;;;;14226:7;14210:13;:23;;;;14095:146;;:::o;5974:24::-;;;;;;;;;;;;;:::o;5669:36::-;;;;:::o;6033:30::-;;;;;;;;;;;;;:::o;700:192::-;786:7;819:1;814;:6;;822:12;806:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;846:9;862:1;858;:5;;;;:::i;:::-;846:17;;883:1;876:8;;;700:192;;;;;:::o;8633:1325::-;8725:4;8745:6;;;;;;;;;;;8742:63;;;8761:41;8776:6;8784:9;8795:6;8761:14;:41::i;:::-;8754:48;;;;8742:63;8821:14;:22;8836:6;8821:22;;;;;;;;;;;;;;;;;;;;;;;;;8820:23;:53;;;;;8848:14;:25;8863:9;8848:25;;;;;;;;;;;;;;;;;;;;;;;;;8847:26;8820:53;8817:127;;;8897:11;;;;;;;;;;;8889:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8817:127;8961:14;:22;8976:6;8961:22;;;;;;;;;;;;;;;;;;;;;;;;;8960:23;:53;;;;;9008:4;8987:26;;:9;:26;;;;8960:53;:84;;;;;9039:4;;;;;;;;;;;9018:26;;:9;:26;;;;8960:84;:105;;;;;9061:4;;;;;;;;;;;9048:17;;:9;:17;;;;8960:105;:140;;;;;9082:18;;;;;;;;;;;9069:31;;:9;:31;;;;8960:140;8956:332;;;9116:18;9137:20;9147:9;9137;:20::i;:::-;9116:41;;9205:15;;9194:6;9181:10;:19;;;;:::i;:::-;9180:40;;9172:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;9101:187;8956:332;9348:9;:20;9358:9;9348:20;;;;;;;;;;;;;;;;;;;;;;;;;9347:21;:43;;;;;9373:9;:17;9383:6;9373:17;;;;;;;;;;;;;;;;;;;;;;;;;9372:18;9347:43;9339:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9468:28;9481:6;9489;9468:12;:28::i;:::-;9512:16;:14;:16::i;:::-;9509:35;;;9531:10;:8;:10::i;:::-;9509:35;9603:53;9625:6;9603:53;;;;;;;;;;;;;;;;;:9;:17;9613:6;9603:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9583:9;:17;9593:6;9583:17;;;;;;;;;;;;;;;:73;;;;9669:22;9696:21;9710:6;9696:13;:21::i;:::-;9695:22;:51;;;;9722:24;9736:9;9722:13;:24::i;:::-;9721:25;9695:51;9694:99;;9759:34;9767:6;9775;9783:9;9759:7;:34::i;:::-;9694:99;;;9750:6;9694:99;9669:124;;9827:40;9852:14;9827:9;:20;9837:9;9827:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9804:9;:20;9814:9;9804:20;;;;;;;;;;;;;;;:63;;;;9902:9;9885:43;;9894:6;9885:43;;;9913:14;9885:43;;;;;;:::i;:::-;;;;;;;;9946:4;9939:11;;;8633:1325;;;;;;:::o;558:136::-;616:7;643:43;647:1;650;643:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;636:50;;558:136;;;;:::o;9970:330::-;10063:4;10100:53;10122:6;10100:53;;;;;;;;;;;;;;;;;:9;:17;10110:6;10100:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;10080:9;:17;10090:6;10080:17;;;;;;;;;;;;;;;:73;;;;10187:32;10212:6;10187:9;:20;10197:9;10187:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;10164:9;:20;10174:9;10164:20;;;;;;;;;;;;;;;:55;;;;10252:9;10235:35;;10244:6;10235:35;;;10263:6;10235:35;;;;;;:::i;:::-;;;;;;;;10288:4;10281:11;;9970:330;;;;;:::o;898:250::-;956:7;985:1;980;:6;976:47;;1010:1;1003:8;;;;976:47;1035:9;1051:1;1047;:5;;;;:::i;:::-;1035:17;;1080:1;1075;1071;:5;;;;:::i;:::-;:10;1063:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1139:1;1132:8;;;898:250;;;;;:::o;1154:132::-;1212:7;1239:39;1243:1;1246;1239:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1232:46;;1154:132;;;;:::o;10308:166::-;10405:12;;10395:6;:22;;:49;;;;10421:15;:23;10437:6;10421:23;;;;;;;;;;;;;;;;;;;;;;;;;10395:49;10387:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10308:166;;:::o;11267:197::-;11316:4;11354;;;;;;;;;;;11340:18;;:10;:18;;;;:38;;;;;11372:6;;;;;;;;;;;11371:7;11340:38;:62;;;;;11391:11;;;;;;;;;;;11340:62;:116;;;;;11443:13;;11415:9;:24;11433:4;11415:24;;;;;;;;;;;;;;;;:41;;11340:116;11333:123;;11267:197;:::o;11472:1743::-;6214:4;6205:6;;:13;;;;;;;;;;;;;;;;;;11521:27:::1;11551:60;11567:15;;11584:26;;11551:15;:60::i;:::-;:79;;11618:12;;11551:79;;;11614:1;11551:79;11521:109;;11641:23;11667:59;11724:1;11667:52;11710:8;;11667:38;11685:19;11667:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11641:85;;11737:20;11760:34;11778:15;11760:13;;:17;;:34;;;;:::i;:::-;11737:57;;11807:21;11845:1;11831:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11807:40;;11876:4;11858;11863:1;11858:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11902:4;;;;;;;;;;;11892;11897:1;11892:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11919:21;11943;11919:45;;11977:6;;;;;;;;;;;:57;;;12049:12;12076:1;12092:4;12119;12139:15;11977:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12178:17;12198:40;12224:13;12198:21;:25;;:40;;;;:::i;:::-;12178:60;;12251:19;12273:40;12286:26;12310:1;12286:19;:23;;:26;;;;:::i;:::-;12273:8;;:12;;:40;;;;:::i;:::-;12251:62;;12334:26;12363:58;12419:1;12363:51;12402:11;12363:34;12377:19;12363:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;12334:87;;12432:26;12461:44;12493:11;12461:27;12475:12;;12461:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;12432:73;;12516:24;12543:42;12573:11;12543:25;12557:10;;12543:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;12516:69;;12599:15;12627:18;;;;;;;;;;;12619:32;;12659:18;12684:5;12619:75;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12598:96;;;12729:18;;;;;;;;;;;12721:32;;12761:16;12784:5;12721:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12705:89;;;;;12828:5;12815:18;;12867:1;12849:15;:19;12846:362;;;12884:6;;;;;;;;;;;:22;;;12914:18;12960:4;12984:15;13018:1;13038::::0;13058:21:::1;;;;;;;;;;;13098:15;12884:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13148:48;13160:18;13180:15;13148:48;;;;;;;:::i;:::-;;;;;;;;12846:362;11510:1705;;;;;;;;;;;6232:5:::0;6223:6;;:14;;;;;;;;;;;;;;;;;;11472:1743::o;10482:114::-;10544:4;10569:11;:19;10581:6;10569:19;;;;;;;;;;;;;;;;;;;;;;;;;10568:20;10561:27;;10482:114;;;:::o;10604:655::-;10690:7;10720:18;10741;;10720:39;;10786:4;;;;;;;;;;;10773:17;;:9;:17;;;10770:152;;10819:14;;10806:27;;10770:152;;;10864:4;;;;;;;;;;;10854:14;;:6;:14;;;10851:71;;10897:13;;10884:26;;10851:71;10770:152;10934:17;10954:62;11012:3;10995:14;;:20;;;;:::i;:::-;10954:36;10979:10;10954:20;10965:8;;10954:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;10934:82;;11029:22;11054:9;11029:34;;11103:44;11132:14;11103:9;:24;11121:4;11103:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;11076:9;:24;11094:4;11076:24;;;;;;;;;;;;;;;:71;;;;11188:4;11163:47;;11172:6;11163:47;;;11195:14;11163:47;;;;;;:::i;:::-;;;;;;;;11230:21;11241:9;11230:6;:10;;:21;;;;:::i;:::-;11223:28;;;;;10604:655;;;;;:::o;371:181::-;429:7;449:9;465:1;461;:5;;;;:::i;:::-;449:17;;490:1;485;:6;;477:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;543:1;536:8;;;371:181;;;;:::o;1292:189::-;1378:7;1410:1;1406;:5;1413:12;1398:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1437:9;1453:1;1449;:5;;;;:::i;:::-;1437:17;;1472:1;1465:8;;;1292:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:104::-;4323:7;4352:24;4370:5;4352:24;:::i;:::-;4341:35;;4278:104;;;:::o;4388:138::-;4469:32;4495:5;4469:32;:::i;:::-;4462:5;4459:43;4449:71;;4516:1;4513;4506:12;4449:71;4388:138;:::o;4532:155::-;4586:5;4624:6;4611:20;4602:29;;4640:41;4675:5;4640:41;:::i;:::-;4532:155;;;;:::o;4693:345::-;4760:6;4809:2;4797:9;4788:7;4784:23;4780:32;4777:119;;;4815:79;;:::i;:::-;4777:119;4935:1;4960:61;5013:7;5004:6;4993:9;4989:22;4960:61;:::i;:::-;4950:71;;4906:125;4693:345;;;;:::o;5044:619::-;5121:6;5129;5137;5186:2;5174:9;5165:7;5161:23;5157:32;5154:119;;;5192:79;;:::i;:::-;5154:119;5312:1;5337:53;5382:7;5373:6;5362:9;5358:22;5337:53;:::i;:::-;5327:63;;5283:117;5439:2;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5410:118;5567:2;5593:53;5638:7;5629:6;5618:9;5614:22;5593:53;:::i;:::-;5583:63;;5538:118;5044:619;;;;;:::o;5669:329::-;5728:6;5777:2;5765:9;5756:7;5752:23;5748:32;5745:119;;;5783:79;;:::i;:::-;5745:119;5903:1;5928:53;5973:7;5964:6;5953:9;5949:22;5928:53;:::i;:::-;5918:63;;5874:117;5669:329;;;;:::o;6004:86::-;6039:7;6079:4;6072:5;6068:16;6057:27;;6004:86;;;:::o;6096:112::-;6179:22;6195:5;6179:22;:::i;:::-;6174:3;6167:35;6096:112;;:::o;6214:214::-;6303:4;6341:2;6330:9;6326:18;6318:26;;6354:67;6418:1;6407:9;6403:17;6394:6;6354:67;:::i;:::-;6214:214;;;;:::o;6434:117::-;6543:1;6540;6533:12;6557:117;6666:1;6663;6656:12;6680:117;6789:1;6786;6779:12;6820:568;6893:8;6903:6;6953:3;6946:4;6938:6;6934:17;6930:27;6920:122;;6961:79;;:::i;:::-;6920:122;7074:6;7061:20;7051:30;;7104:18;7096:6;7093:30;7090:117;;;7126:79;;:::i;:::-;7090:117;7240:4;7232:6;7228:17;7216:29;;7294:3;7286:4;7278:6;7274:17;7264:8;7260:32;7257:41;7254:128;;;7301:79;;:::i;:::-;7254:128;6820:568;;;;;:::o;7394:116::-;7464:21;7479:5;7464:21;:::i;:::-;7457:5;7454:32;7444:60;;7500:1;7497;7490:12;7444:60;7394:116;:::o;7516:133::-;7559:5;7597:6;7584:20;7575:29;;7613:30;7637:5;7613:30;:::i;:::-;7516:133;;;;:::o;7655:698::-;7747:6;7755;7763;7812:2;7800:9;7791:7;7787:23;7783:32;7780:119;;;7818:79;;:::i;:::-;7780:119;7966:1;7955:9;7951:17;7938:31;7996:18;7988:6;7985:30;7982:117;;;8018:79;;:::i;:::-;7982:117;8131:80;8203:7;8194:6;8183:9;8179:22;8131:80;:::i;:::-;8113:98;;;;7909:312;8260:2;8286:50;8328:7;8319:6;8308:9;8304:22;8286:50;:::i;:::-;8276:60;;8231:115;7655:698;;;;;:::o;8359:559::-;8445:6;8453;8502:2;8490:9;8481:7;8477:23;8473:32;8470:119;;;8508:79;;:::i;:::-;8470:119;8656:1;8645:9;8641:17;8628:31;8686:18;8678:6;8675:30;8672:117;;;8708:79;;:::i;:::-;8672:117;8821:80;8893:7;8884:6;8873:9;8869:22;8821:80;:::i;:::-;8803:98;;;;8599:312;8359:559;;;;;:::o;8924:118::-;9011:24;9029:5;9011:24;:::i;:::-;9006:3;8999:37;8924:118;;:::o;9048:222::-;9141:4;9179:2;9168:9;9164:18;9156:26;;9192:71;9260:1;9249:9;9245:17;9236:6;9192:71;:::i;:::-;9048:222;;;;:::o;9276:849::-;9380:6;9388;9396;9404;9453:2;9441:9;9432:7;9428:23;9424:32;9421:119;;;9459:79;;:::i;:::-;9421:119;9579:1;9604:53;9649:7;9640:6;9629:9;9625:22;9604:53;:::i;:::-;9594:63;;9550:117;9734:2;9723:9;9719:18;9706:32;9765:18;9757:6;9754:30;9751:117;;;9787:79;;:::i;:::-;9751:117;9900:80;9972:7;9963:6;9952:9;9948:22;9900:80;:::i;:::-;9882:98;;;;9677:313;10029:2;10055:53;10100:7;10091:6;10080:9;10076:22;10055:53;:::i;:::-;10045:63;;10000:118;9276:849;;;;;;;:::o;10131:329::-;10190:6;10239:2;10227:9;10218:7;10214:23;10210:32;10207:119;;;10245:79;;:::i;:::-;10207:119;10365:1;10390:53;10435:7;10426:6;10415:9;10411:22;10390:53;:::i;:::-;10380:63;;10336:117;10131:329;;;;:::o;10466:474::-;10534:6;10542;10591:2;10579:9;10570:7;10566:23;10562:32;10559:119;;;10597:79;;:::i;:::-;10559:119;10717:1;10742:53;10787:7;10778:6;10767:9;10763:22;10742:53;:::i;:::-;10732:63;;10688:117;10844:2;10870:53;10915:7;10906:6;10895:9;10891:22;10870:53;:::i;:::-;10860:63;;10815:118;10466:474;;;;;:::o;10946:468::-;11011:6;11019;11068:2;11056:9;11047:7;11043:23;11039:32;11036:119;;;11074:79;;:::i;:::-;11036:119;11194:1;11219:50;11261:7;11252:6;11241:9;11237:22;11219:50;:::i;:::-;11209:60;;11165:114;11318:2;11344:53;11389:7;11380:6;11369:9;11365:22;11344:53;:::i;:::-;11334:63;;11289:118;10946:468;;;;;:::o;11420:60::-;11448:3;11469:5;11462:12;;11420:60;;;:::o;11486:142::-;11536:9;11569:53;11587:34;11596:24;11614:5;11596:24;:::i;:::-;11587:34;:::i;:::-;11569:53;:::i;:::-;11556:66;;11486:142;;;:::o;11634:126::-;11684:9;11717:37;11748:5;11717:37;:::i;:::-;11704:50;;11634:126;;;:::o;11766:144::-;11834:9;11867:37;11898:5;11867:37;:::i;:::-;11854:50;;11766:144;;;:::o;11916:167::-;12021:55;12070:5;12021:55;:::i;:::-;12016:3;12009:68;11916:167;;:::o;12089:258::-;12200:4;12238:2;12227:9;12223:18;12215:26;;12251:89;12337:1;12326:9;12322:17;12313:6;12251:89;:::i;:::-;12089:258;;;;:::o;12353:156::-;12493:8;12489:1;12481:6;12477:14;12470:32;12353:156;:::o;12515:365::-;12657:3;12678:66;12742:1;12737:3;12678:66;:::i;:::-;12671:73;;12753:93;12842:3;12753:93;:::i;:::-;12871:2;12866:3;12862:12;12855:19;;12515:365;;;:::o;12886:419::-;13052:4;13090:2;13079:9;13075:18;13067:26;;13139:9;13133:4;13129:20;13125:1;13114:9;13110:17;13103:47;13167:131;13293:4;13167:131;:::i;:::-;13159:139;;12886:419;;;:::o;13311:134::-;13369:9;13402:37;13433:5;13402:37;:::i;:::-;13389:50;;13311:134;;;:::o;13451:147::-;13546:45;13585:5;13546:45;:::i;:::-;13541:3;13534:58;13451:147;;:::o;13604:238::-;13705:4;13743:2;13732:9;13728:18;13720:26;;13756:79;13832:1;13821:9;13817:17;13808:6;13756:79;:::i;:::-;13604:238;;;;:::o;13848:180::-;13896:77;13893:1;13886:88;13993:4;13990:1;13983:15;14017:4;14014:1;14007:15;14034:180;14082:77;14079:1;14072:88;14179:4;14176:1;14169:15;14203:4;14200:1;14193:15;14220:233;14259:3;14282:24;14300:5;14282:24;:::i;:::-;14273:33;;14328:66;14321:5;14318:77;14315:103;;14398:18;;:::i;:::-;14315:103;14445:1;14438:5;14434:13;14427:20;;14220:233;;;:::o;14459:::-;14599:34;14595:1;14587:6;14583:14;14576:58;14668:16;14663:2;14655:6;14651:15;14644:41;14459:233;:::o;14698:366::-;14840:3;14861:67;14925:2;14920:3;14861:67;:::i;:::-;14854:74;;14937:93;15026:3;14937:93;:::i;:::-;15055:2;15050:3;15046:12;15039:19;;14698:366;;;:::o;15070:419::-;15236:4;15274:2;15263:9;15259:18;15251:26;;15323:9;15317:4;15313:20;15309:1;15298:9;15294:17;15287:47;15351:131;15477:4;15351:131;:::i;:::-;15343:139;;15070:419;;;:::o;15495:410::-;15535:7;15558:20;15576:1;15558:20;:::i;:::-;15553:25;;15592:20;15610:1;15592:20;:::i;:::-;15587:25;;15647:1;15644;15640:9;15669:30;15687:11;15669:30;:::i;:::-;15658:41;;15848:1;15839:7;15835:15;15832:1;15829:22;15809:1;15802:9;15782:83;15759:139;;15878:18;;:::i;:::-;15759:139;15543:362;15495:410;;;;:::o;15911:177::-;16051:29;16047:1;16039:6;16035:14;16028:53;15911:177;:::o;16094:366::-;16236:3;16257:67;16321:2;16316:3;16257:67;:::i;:::-;16250:74;;16333:93;16422:3;16333:93;:::i;:::-;16451:2;16446:3;16442:12;16435:19;;16094:366;;;:::o;16466:419::-;16632:4;16670:2;16659:9;16655:18;16647:26;;16719:9;16713:4;16709:20;16705:1;16694:9;16690:17;16683:47;16747:131;16873:4;16747:131;:::i;:::-;16739:139;;16466:419;;;:::o;16891:332::-;17012:4;17050:2;17039:9;17035:18;17027:26;;17063:71;17131:1;17120:9;17116:17;17107:6;17063:71;:::i;:::-;17144:72;17212:2;17201:9;17197:18;17188:6;17144:72;:::i;:::-;16891:332;;;;;:::o;17229:137::-;17283:5;17314:6;17308:13;17299:22;;17330:30;17354:5;17330:30;:::i;:::-;17229:137;;;;:::o;17372:345::-;17439:6;17488:2;17476:9;17467:7;17463:23;17459:32;17456:119;;;17494:79;;:::i;:::-;17456:119;17614:1;17639:61;17692:7;17683:6;17672:9;17668:22;17639:61;:::i;:::-;17629:71;;17585:125;17372:345;;;;:::o;17723:180::-;17771:77;17768:1;17761:88;17868:4;17865:1;17858:15;17892:4;17889:1;17882:15;17909:185;17949:1;17966:20;17984:1;17966:20;:::i;:::-;17961:25;;18000:20;18018:1;18000:20;:::i;:::-;17995:25;;18039:1;18029:35;;18044:18;;:::i;:::-;18029:35;18086:1;18083;18079:9;18074:14;;17909:185;;;;:::o;18100:194::-;18140:4;18160:20;18178:1;18160:20;:::i;:::-;18155:25;;18194:20;18212:1;18194:20;:::i;:::-;18189:25;;18238:1;18235;18231:9;18223:17;;18262:1;18256:4;18253:11;18250:37;;;18267:18;;:::i;:::-;18250:37;18100:194;;;;:::o;18300:170::-;18440:22;18436:1;18428:6;18424:14;18417:46;18300:170;:::o;18476:366::-;18618:3;18639:67;18703:2;18698:3;18639:67;:::i;:::-;18632:74;;18715:93;18804:3;18715:93;:::i;:::-;18833:2;18828:3;18824:12;18817:19;;18476:366;;;:::o;18848:419::-;19014:4;19052:2;19041:9;19037:18;19029:26;;19101:9;19095:4;19091:20;19087:1;19076:9;19072:17;19065:47;19129:131;19255:4;19129:131;:::i;:::-;19121:139;;18848:419;;;:::o;19273:191::-;19313:3;19332:20;19350:1;19332:20;:::i;:::-;19327:25;;19366:20;19384:1;19366:20;:::i;:::-;19361:25;;19409:1;19406;19402:9;19395:16;;19430:3;19427:1;19424:10;19421:36;;;19437:18;;:::i;:::-;19421:36;19273:191;;;;:::o;19470:249::-;19610:34;19606:1;19598:6;19594:14;19587:58;19679:32;19674:2;19666:6;19662:15;19655:57;19470:249;:::o;19725:366::-;19867:3;19888:67;19952:2;19947:3;19888:67;:::i;:::-;19881:74;;19964:93;20053:3;19964:93;:::i;:::-;20082:2;20077:3;20073:12;20066:19;;19725:366;;;:::o;20097:419::-;20263:4;20301:2;20290:9;20286:18;20278:26;;20350:9;20344:4;20340:20;20336:1;20325:9;20321:17;20314:47;20378:131;20504:4;20378:131;:::i;:::-;20370:139;;20097:419;;;:::o;20522:169::-;20662:21;20658:1;20650:6;20646:14;20639:45;20522:169;:::o;20697:366::-;20839:3;20860:67;20924:2;20919:3;20860:67;:::i;:::-;20853:74;;20936:93;21025:3;20936:93;:::i;:::-;21054:2;21049:3;21045:12;21038:19;;20697:366;;;:::o;21069:419::-;21235:4;21273:2;21262:9;21258:18;21250:26;;21322:9;21316:4;21312:20;21308:1;21297:9;21293:17;21286:47;21350:131;21476:4;21350:131;:::i;:::-;21342:139;;21069:419;;;:::o;21494:220::-;21634:34;21630:1;21622:6;21618:14;21611:58;21703:3;21698:2;21690:6;21686:15;21679:28;21494:220;:::o;21720:366::-;21862:3;21883:67;21947:2;21942:3;21883:67;:::i;:::-;21876:74;;21959:93;22048:3;21959:93;:::i;:::-;22077:2;22072:3;22068:12;22061:19;;21720:366;;;:::o;22092:419::-;22258:4;22296:2;22285:9;22281:18;22273:26;;22345:9;22339:4;22335:20;22331:1;22320:9;22316:17;22309:47;22373:131;22499:4;22373:131;:::i;:::-;22365:139;;22092:419;;;:::o;22517:167::-;22657:19;22653:1;22645:6;22641:14;22634:43;22517:167;:::o;22690:366::-;22832:3;22853:67;22917:2;22912:3;22853:67;:::i;:::-;22846:74;;22929:93;23018:3;22929:93;:::i;:::-;23047:2;23042:3;23038:12;23031:19;;22690:366;;;:::o;23062:419::-;23228:4;23266:2;23255:9;23251:18;23243:26;;23315:9;23309:4;23305:20;23301:1;23290:9;23286:17;23279:47;23343:131;23469:4;23343:131;:::i;:::-;23335:139;;23062:419;;;:::o;23487:180::-;23535:77;23532:1;23525:88;23632:4;23629:1;23622:15;23656:4;23653:1;23646:15;23673:85;23718:7;23747:5;23736:16;;23673:85;;;:::o;23764:158::-;23822:9;23855:61;23873:42;23882:32;23908:5;23882:32;:::i;:::-;23873:42;:::i;:::-;23855:61;:::i;:::-;23842:74;;23764:158;;;:::o;23928:147::-;24023:45;24062:5;24023:45;:::i;:::-;24018:3;24011:58;23928:147;;:::o;24081:114::-;24148:6;24182:5;24176:12;24166:22;;24081:114;;;:::o;24201:184::-;24300:11;24334:6;24329:3;24322:19;24374:4;24369:3;24365:14;24350:29;;24201:184;;;;:::o;24391:132::-;24458:4;24481:3;24473:11;;24511:4;24506:3;24502:14;24494:22;;24391:132;;;:::o;24529:108::-;24606:24;24624:5;24606:24;:::i;:::-;24601:3;24594:37;24529:108;;:::o;24643:179::-;24712:10;24733:46;24775:3;24767:6;24733:46;:::i;:::-;24811:4;24806:3;24802:14;24788:28;;24643:179;;;;:::o;24828:113::-;24898:4;24930;24925:3;24921:14;24913:22;;24828:113;;;:::o;24977:732::-;25096:3;25125:54;25173:5;25125:54;:::i;:::-;25195:86;25274:6;25269:3;25195:86;:::i;:::-;25188:93;;25305:56;25355:5;25305:56;:::i;:::-;25384:7;25415:1;25400:284;25425:6;25422:1;25419:13;25400:284;;;25501:6;25495:13;25528:63;25587:3;25572:13;25528:63;:::i;:::-;25521:70;;25614:60;25667:6;25614:60;:::i;:::-;25604:70;;25460:224;25447:1;25444;25440:9;25435:14;;25400:284;;;25404:14;25700:3;25693:10;;25101:608;;;24977:732;;;;:::o;25715:831::-;25978:4;26016:3;26005:9;26001:19;25993:27;;26030:71;26098:1;26087:9;26083:17;26074:6;26030:71;:::i;:::-;26111:80;26187:2;26176:9;26172:18;26163:6;26111:80;:::i;:::-;26238:9;26232:4;26228:20;26223:2;26212:9;26208:18;26201:48;26266:108;26369:4;26360:6;26266:108;:::i;:::-;26258:116;;26384:72;26452:2;26441:9;26437:18;26428:6;26384:72;:::i;:::-;26466:73;26534:3;26523:9;26519:19;26510:6;26466:73;:::i;:::-;25715:831;;;;;;;;:::o;26552:147::-;26653:11;26690:3;26675:18;;26552:147;;;;:::o;26705:114::-;;:::o;26825:398::-;26984:3;27005:83;27086:1;27081:3;27005:83;:::i;:::-;26998:90;;27097:93;27186:3;27097:93;:::i;:::-;27215:1;27210:3;27206:11;27199:18;;26825:398;;;:::o;27229:379::-;27413:3;27435:147;27578:3;27435:147;:::i;:::-;27428:154;;27599:3;27592:10;;27229:379;;;:::o;27614:807::-;27863:4;27901:3;27890:9;27886:19;27878:27;;27915:71;27983:1;27972:9;27968:17;27959:6;27915:71;:::i;:::-;27996:72;28064:2;28053:9;28049:18;28040:6;27996:72;:::i;:::-;28078:80;28154:2;28143:9;28139:18;28130:6;28078:80;:::i;:::-;28168;28244:2;28233:9;28229:18;28220:6;28168:80;:::i;:::-;28258:73;28326:3;28315:9;28311:19;28302:6;28258:73;:::i;:::-;28341;28409:3;28398:9;28394:19;28385:6;28341:73;:::i;:::-;27614:807;;;;;;;;;:::o;28427:143::-;28484:5;28515:6;28509:13;28500:22;;28531:33;28558:5;28531:33;:::i;:::-;28427:143;;;;:::o;28576:663::-;28664:6;28672;28680;28729:2;28717:9;28708:7;28704:23;28700:32;28697:119;;;28735:79;;:::i;:::-;28697:119;28855:1;28880:64;28936:7;28927:6;28916:9;28912:22;28880:64;:::i;:::-;28870:74;;28826:128;28993:2;29019:64;29075:7;29066:6;29055:9;29051:22;29019:64;:::i;:::-;29009:74;;28964:129;29132:2;29158:64;29214:7;29205:6;29194:9;29190:22;29158:64;:::i;:::-;29148:74;;29103:129;28576:663;;;;;:::o;29245:332::-;29366:4;29404:2;29393:9;29389:18;29381:26;;29417:71;29485:1;29474:9;29470:17;29461:6;29417:71;:::i;:::-;29498:72;29566:2;29555:9;29551:18;29542:6;29498:72;:::i;:::-;29245:332;;;;;:::o;29583:177::-;29723:29;29719:1;29711:6;29707:14;29700:53;29583:177;:::o;29766:366::-;29908:3;29929:67;29993:2;29988:3;29929:67;:::i;:::-;29922:74;;30005:93;30094:3;30005:93;:::i;:::-;30123:2;30118:3;30114:12;30107:19;;29766:366;;;:::o;30138:419::-;30304:4;30342:2;30331:9;30327:18;30319:26;;30391:9;30385:4;30381:20;30377:1;30366:9;30362:17;30355:47;30419:131;30545:4;30419:131;:::i;:::-;30411:139;;30138:419;;;:::o

Swarm Source

ipfs://2534ac4bbe170c456d8b287b3d08ea2f3e71b4bee6b90be2aef493f6fe56a310

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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