ETH Price: $2,608.75 (-1.46%)

Contract

0xAe8627A4B3EC2c79C0c2971369482F004165A70B
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve202324732024-07-04 10:12:1149 days ago1720087931IN
0xAe8627A4...04165A70B
0 ETH0.0005057810.87888054
Approve200870282024-06-14 2:21:3569 days ago1718331695IN
0xAe8627A4...04165A70B
0 ETH0.000381068.19627311
Approve200830922024-06-13 13:06:4770 days ago1718284007IN
0xAe8627A4...04165A70B
0 ETH0.0008301817.85660273
Approve200820682024-06-13 9:40:1170 days ago1718271611IN
0xAe8627A4...04165A70B
0 ETH0.0005937112.77017672
Approve200820202024-06-13 9:30:3570 days ago1718271035IN
0xAe8627A4...04165A70B
0 ETH0.0006436413.84431168
Approve200817622024-06-13 8:38:4770 days ago1718267927IN
0xAe8627A4...04165A70B
0 ETH0.0006642314.26871964
Approve200817422024-06-13 8:34:3570 days ago1718267675IN
0xAe8627A4...04165A70B
0 ETH0.0007112115.29752635
Get Baconator200398862024-06-07 12:14:4776 days ago1717762487IN
0xAe8627A4...04165A70B
0 ETH0.0019349320.21346782
Get Baconator200379642024-06-07 5:49:2376 days ago1717739363IN
0xAe8627A4...04165A70B
0 ETH0.001303738.86745075
Approve199118292024-05-20 14:47:2394 days ago1716216443IN
0xAe8627A4...04165A70B
0 ETH0.0006217913.37421971
Approve198779542024-05-15 21:05:2398 days ago1715807123IN
0xAe8627A4...04165A70B
0 ETH0.000230268.6591115
Approve198779432024-05-15 21:03:1198 days ago1715806991IN
0xAe8627A4...04165A70B
0 ETH0.00041338.88977708
Approve198750802024-05-15 11:27:5999 days ago1715772479IN
0xAe8627A4...04165A70B
0 ETH0.000243365.23448397
Transfer198634272024-05-13 20:17:23100 days ago1715631443IN
0xAe8627A4...04165A70B
0 ETH0.0049578811.13752624
Transfer198634192024-05-13 20:15:35100 days ago1715631335IN
0xAe8627A4...04165A70B
0 ETH0.002517079.14419462
Approve198380932024-05-10 7:18:11104 days ago1715325491IN
0xAe8627A4...04165A70B
0 ETH0.000166893.60464191
Approve198380772024-05-10 7:14:59104 days ago1715325299IN
0xAe8627A4...04165A70B
0 ETH0.000191874.12712351
Approve197919142024-05-03 20:16:23110 days ago1714767383IN
0xAe8627A4...04165A70B
0 ETH0.000288756.21075786
Approve197589852024-04-29 5:48:59115 days ago1714369739IN
0xAe8627A4...04165A70B
0 ETH0.000322626.97891212
Transfer197583652024-04-29 3:44:11115 days ago1714362251IN
0xAe8627A4...04165A70B
0 ETH0.00141784.90153798
Approve196155022024-04-09 3:47:11135 days ago1712634431IN
0xAe8627A4...04165A70B
0 ETH0.0010075421.78945065
Approve195958862024-04-06 9:47:35138 days ago1712396855IN
0xAe8627A4...04165A70B
0 ETH0.0003152611.85559329
Approve195958852024-04-06 9:47:23138 days ago1712396843IN
0xAe8627A4...04165A70B
0 ETH0.0005512611.85715577
Approve195764132024-04-03 16:23:47141 days ago1712161427IN
0xAe8627A4...04165A70B
0 ETH0.0020326243.66358791
Approve195262992024-03-27 14:39:59148 days ago1711550399IN
0xAe8627A4...04165A70B
0 ETH0.0021584746.67982263
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
200831252024-06-13 13:13:2370 days ago1718284403
0xAe8627A4...04165A70B
0.02053481 ETH
200831252024-06-13 13:13:2370 days ago1718284403
0xAe8627A4...04165A70B
0.02053481 ETH
200820902024-06-13 9:44:3570 days ago1718271875
0xAe8627A4...04165A70B
0.02336951 ETH
200820902024-06-13 9:44:3570 days ago1718271875
0xAe8627A4...04165A70B
0.02336951 ETH
199118402024-05-20 14:49:3594 days ago1716216575
0xAe8627A4...04165A70B
0.02821441 ETH
199118402024-05-20 14:49:3594 days ago1716216575
0xAe8627A4...04165A70B
0.02821441 ETH
198994572024-05-18 21:17:2395 days ago1716067043
0xAe8627A4...04165A70B
0.02821441 ETH
198994572024-05-18 21:17:2395 days ago1716067043
0xAe8627A4...04165A70B
0.02821441 ETH
198994572024-05-18 21:17:2395 days ago1716067043
0xAe8627A4...04165A70B
0.02821441 ETH
198994572024-05-18 21:17:2395 days ago1716067043
0xAe8627A4...04165A70B
0.02821441 ETH
198634272024-05-13 20:17:23100 days ago1715631443
0xAe8627A4...04165A70B
0.03609542 ETH
198634272024-05-13 20:17:23100 days ago1715631443
0xAe8627A4...04165A70B
0.03609542 ETH
195804102024-04-04 5:47:11140 days ago1712209631
0xAe8627A4...04165A70B
0.04538862 ETH
195804102024-04-04 5:47:11140 days ago1712209631
0xAe8627A4...04165A70B
0.04538862 ETH
194575942024-03-17 22:41:35157 days ago1710715295
0xAe8627A4...04165A70B
0.05896385 ETH
194575942024-03-17 22:41:35157 days ago1710715295
0xAe8627A4...04165A70B
0.05896385 ETH
193385052024-03-01 6:22:35174 days ago1709274155
0xAe8627A4...04165A70B
0.05056849 ETH
193385052024-03-01 6:22:35174 days ago1709274155
0xAe8627A4...04165A70B
0.05056849 ETH
193384402024-03-01 6:09:23174 days ago1709273363
0xAe8627A4...04165A70B
0.1518137 ETH
193384402024-03-01 6:09:23174 days ago1709273363
0xAe8627A4...04165A70B
0.1518137 ETH
191145622024-01-29 20:27:59205 days ago1706560079
0xAe8627A4...04165A70B
0.05197178 ETH
191145622024-01-29 20:27:59205 days ago1706560079
0xAe8627A4...04165A70B
0.05197178 ETH
189158932024-01-01 23:38:11233 days ago1704152291
0xAe8627A4...04165A70B
0.06061098 ETH
189158932024-01-01 23:38:11233 days ago1704152291
0xAe8627A4...04165A70B
0.06061098 ETH
187475932023-12-09 8:51:11257 days ago1702111871
0xAe8627A4...04165A70B
0.09839512 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Baconator

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-28
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

/** 
 * 🥓🍔 $BCNTR - Baconator 🥓🍔 is here to fuel $CRAMER coin’s moonward journey and beyond.
 *
 * https://www.baconatorcoin.com
 *
 */

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
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;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

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

    event OwnershipTransferred(address owner);
}

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

interface IAmLisaCramer {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
    function gibBaconator(address shareholder) external;
}


contract LisaCramer is IAmLisaCramer {

    using SafeMath for uint256;
    address _token;

    address public CRAMER;

    IDEXRouter router;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;

    uint256 public minPeriod = 30 minutes;
    uint256 public minDistribution = 0 * (10 ** 9);

    uint256 public currentIndex;
    bool initialized;

    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor () {
        _token = msg.sender;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        CRAMER = 0x64Df3aAB3b21cC275bB76c4A581Cf8B726478ee0;
    }
    
    receive() external payable {
        deposit();
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external override onlyToken {
        minPeriod = newMinPeriod;
        minDistribution = newMinDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {

        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() public payable override {

        uint256 balanceBefore = IERC20(CRAMER).balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(CRAMER);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amount = IERC20(CRAMER).balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }
    
    function process(uint256 gas) external override {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 iterations = 0;
        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();

        while(gasUsed < gas && iterations < shareholderCount) {

            if(currentIndex >= shareholderCount){ currentIndex = 0; }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }
    
    function shouldDistribute(address shareholder) public view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp
                && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            IERC20(CRAMER).transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }
    
    function gibBaconator(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

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

    address public CRAMER = 0x64Df3aAB3b21cC275bB76c4A581Cf8B726478ee0; //CRAMER COIN

    string private constant _name = "Baconator";
    string private constant _symbol = "BCNTR";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);

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

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

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address public lpWallet = DEAD;

    uint256 public buyFee = 10;
    uint256 public sellFee = 10;

    uint256 public toReflections = 40;
    uint256 public toLiquidity = 20;
    uint256 public toMarketing = 40;

    uint256 public allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public lisaWallet = payable(0x1379E6f3863584fd4d004922297eCee5A6A0C65b);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;
    
    LisaCramer public lisaCramer;
    uint256 public lisaCramerGas = 0;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    uint256 public maxTx = _totalSupply.div(100);
    uint256 public maxWallet = _totalSupply.div(50);
    uint256 public swapThreshold = _totalSupply.div(400);

    constructor (
        address _owner        
    ) Auth(_owner) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        lisaCramer = new LisaCramer();
        
        isFeeExempt[_owner] = true;
        isFeeExempt[lisaWallet] = true;            

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;    

        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;
        isTxLimitExempt[lisaWallet] = true;  


        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }


    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;

        require(buyFee <= 10, "too high");
        require(sellFee <= 10, "too high");
    } 
    
    function changeFeeAllocation(uint256 newRewardFee, uint256 newLpFee, uint256 newMarketingFee) external onlyOwner {
        toReflections = newRewardFee;
        toLiquidity = newLpFee;
        toMarketing = newMarketingFee;
    }

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner {      
        isTxLimitExempt[holder] = exempt;
    }

    function setLisaWallet(address payable newLisaWallet) external onlyOwner {
        lisaWallet = payable(newLisaWallet);
    }

    function setOwnerWallet(address payable newOwnerWallet) external onlyOwner {
        tokenOwner = newOwnerWallet;
    }     

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function setDistributionCriteria(uint256 newMinPeriod, uint256 newMinDistribution) external onlyOwner {
        lisaCramer.setDistributionCriteria(newMinPeriod, newMinDistribution);        
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            lisaCramer.setShare(holder, 0);
        }else{
            lisaCramer.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function changeLisaCramerGas(uint256 newGas) external onlyOwner {
        lisaCramerGas = newGas;
    }           

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    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 transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(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 _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive
        require(!bots[sender] && !bots[recipient]);

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        // Dividend tracker
        if(!isDividendExempt[sender]) {
            try lisaCramer.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try lisaCramer.setShare(recipient, _balances[recipient]) {} catch {} 
        }

        emit Transfer(sender, recipient, finalAmount);
        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 takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

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

        return amount.sub(feeAmount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

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

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForCRAMER = totalEthBalance.mul(toReflections).div(100);
        uint256 ethForLisa = totalEthBalance.mul(toMarketing).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(lisaWallet).transfer(ethForLisa);
        }
        
        try lisaCramer.deposit{value: ethForCRAMER}() {} catch {}
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(lisaWallet).transfer(contractETHBalance);
        }
    }

    function manualProcessGas(uint256 manualGas) external onlyOwner {
        lisaCramer.process(manualGas);
    }

    function checkPendingReflections(address shareholder) external view returns (uint256) {
        return lisaCramer.getUnpaidEarnings(shareholder);
    }

    function getBaconator() external {
        lisaCramer.gibBaconator(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CRAMER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"allocationSum","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":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newRewardFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGas","type":"uint256"}],"name":"changeLisaCramerGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"checkPendingReflections","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBaconator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lisaCramer","outputs":[{"internalType":"contract LisaCramer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lisaCramerGas","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lisaWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"manualGas","type":"uint256"}],"name":"manualProcessGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinPeriod","type":"uint256"},{"internalType":"uint256","name":"newMinDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newLisaWallet","type":"address"}],"name":"setLisaWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","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":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toReflections","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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319167364df3aab3b21cc275bb76c4a581cf8b726478ee0179055620000386012600a62000645565b6200004890633b9aca0062000656565b6002819055600780546001600160a01b031990811661dead908117909255600880546001600160a81b031916600160a01b179055600e80549091169091179055600a600f819055601055602860118190556014601281905560139190915560649081905560198054600162ffff0160a01b0319167501001379e6f3863584fd4d004922297ecee5a6a0c65b1790556000601b55620000f691906200140d6200048c602090811b91909117901c565b601c556200011660326002546200048c60201b6200140d1790919060201c565b601d55620001376101906002546200048c60201b6200140d1790919060201c565b601e553480156200014757600080fd5b5060405162003cf638038062003cf68339810160408190526200016a9162000678565b600080546001600160a01b03199081166001600160a01b0384161790915560158054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa158015620001e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000209919062000678565b600680546001600160a01b0319166001600160a01b039283161790556015546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000268573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028e919062000678565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af1158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000306919062000678565b601680546001600160a01b0319166001600160a01b039283161790553060009081526004602090815260408083206015549094168352929052819020600019905551620003539062000524565b604051809103906000f08015801562000370573d6000803e3d6000fd5b50601a80546001600160a01b0319166001600160a01b039283161790558181166000818152600a60209081526040808320805460ff199081166001908117909255601980548816865283862080548316841790556016805489168752600c865284872080548416851790553087528487208054841685179055600780548a1688528588208054851686179055888852600b87528588208054851686179055905489168752848720805484168517905554881686528386208054831684179055549096168452818420805490961617909455600254838352600382528483208190559351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000725565b6000620004d683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004df60201b60201c565b90505b92915050565b600081836200050c5760405162461bcd60e51b8152600401620005039190620006aa565b60405180910390fd5b5060006200051b848662000702565b95945050505050565b61109d8062002c5983390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005895781600019048211156200056d576200056d62000532565b808516156200057b57918102915b93841c93908002906200054d565b509250929050565b600082620005a257506001620004d9565b81620005b157506000620004d9565b8160018114620005ca5760028114620005d557620005f5565b6001915050620004d9565b60ff841115620005e957620005e962000532565b50506001821b620004d9565b5060208310610133831016604e8410600b84101617156200061a575081810a620004d9565b62000626838362000548565b80600019048211156200063d576200063d62000532565b029392505050565b6000620004d660ff84168362000591565b600081600019048311821515161562000673576200067362000532565b500290565b6000602082840312156200068b57600080fd5b81516001600160a01b0381168114620006a357600080fd5b9392505050565b600060208083528351808285015260005b81811015620006d957858101830151858201604001528201620006bb565b81811115620006ec576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200072057634e487b7160e01b600052601260045260246000fd5b500490565b61252480620007356000396000f3fe6080604052600436106103855760003560e01c80637db1342c116101d1578063bf56b37111610102578063e21180e9116100a0578063f887ea401161006f578063f887ea4014610a88578063f8b45b0514610aa8578063fabe628314610abe578063ffb54a9914610ade57600080fd5b8063e21180e914610a1d578063e3992cf014610a32578063f2fde38b14610a48578063f708a64f14610a6857600080fd5b8063c9567bf9116100dc578063c9567bf91461098c578063caa5581b146109a1578063d920334e146109b7578063dd62ed3e146109d757600080fd5b8063bf56b37114610940578063c45a015514610956578063c8d1293d1461097657600080fd5b80639fa1b0351161016f578063a9059cbb11610149578063a9059cbb146108c0578063aa97087a146108e0578063b515566a14610900578063bb542ef01461092057600080fd5b80639fa1b03514610860578063a3a2e89e14610880578063a8aa1b31146108a057600080fd5b806389291a8f116101ab57806389291a8f146107cf578063893d20e8146107e45780638b42507f1461080257806395d89b411461083257600080fd5b80637db1342c1461076e5780637dfcbe341461078e57806381934031146107af57600080fd5b80633dab5269116102b6578063571ac8b01161025457806370a082311161022357806370a08231146106ec5780637437681e1461072257806375df13051461073857806377359aa71461074e57600080fd5b8063571ac8b0146106775780636303516c1461069757806366eb3785146106b7578063674e5eb0146106cc57600080fd5b80634543437711610290578063454343771461060a57806347062402146106205780634a74bb02146106365780634da626521461065757600080fd5b80633dab52691461058a5780633f4218e0146105aa5780634355855a146105da57600080fd5b80632b14ca56116103235780632e346430116102fd5780632e346430146104e75780632f54bf6e1461051f57806330ca34ee1461054e578063313ce5671461056e57600080fd5b80632b14ca56146104915780632d48e896146104a75780632dbea2e1146104c757600080fd5b806318160ddd1161035f57806318160ddd1461042557806323b872dd1461043a578063273123b71461045a5780632b112e491461047c57600080fd5b80630445b6671461039157806306fdde03146103ba578063095ea7b3146103f557600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a7601e5481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506040805180820190915260098152682130b1b7b730ba37b960b91b60208201525b6040516103b19190612064565b34801561040157600080fd5b506104156104103660046120de565b610aff565b60405190151581526020016103b1565b34801561043157600080fd5b506002546103a7565b34801561044657600080fd5b5061041561045536600461210a565b610b6c565b34801561046657600080fd5b5061047a61047536600461214b565b610c2e565b005b34801561048857600080fd5b506103a7610c82565b34801561049d57600080fd5b506103a760105481565b3480156104b357600080fd5b5061047a6104c2366004612168565b610cd4565b3480156104d357600080fd5b5061047a6104e236600461218a565b610d68565b3480156104f357600080fd5b50601954610507906001600160a01b031681565b6040516001600160a01b0390911681526020016103b1565b34801561052b57600080fd5b5061041561053a36600461214b565b6000546001600160a01b0391821691161490565b34801561055a57600080fd5b5061047a610569366004612168565b610da0565b34801561057a57600080fd5b50604051601281526020016103b1565b34801561059657600080fd5b5061047a6105a53660046121c6565b610e52565b3480156105b657600080fd5b506104156105c536600461214b565b600a6020526000908152604090205460ff1681565b3480156105e657600080fd5b506104156105f536600461214b565b600c6020526000908152604090205460ff1681565b34801561061657600080fd5b506103a760145481565b34801561062c57600080fd5b506103a7600f5481565b34801561064257600080fd5b5060195461041590600160a81b900460ff1681565b34801561066357600080fd5b5061047a6106723660046121e2565b610e9e565b34801561068357600080fd5b5061041561069236600461214b565b610ecd565b3480156106a357600080fd5b50600e54610507906001600160a01b031681565b3480156106c357600080fd5b5061047a610edb565b3480156106d857600080fd5b50601a54610507906001600160a01b031681565b3480156106f857600080fd5b506103a761070736600461214b565b6001600160a01b031660009081526003602052604090205490565b34801561072e57600080fd5b506103a7601c5481565b34801561074457600080fd5b506103a760135481565b34801561075a57600080fd5b506103a761076936600461214b565b610f0f565b34801561077a57600080fd5b5061047a6107893660046121e2565b610f7e565b34801561079a57600080fd5b5060085461041590600160a01b900460ff1681565b3480156107bb57600080fd5b5061047a6107ca3660046121e2565b610fad565b3480156107db57600080fd5b5061047a61103b565b3480156107f057600080fd5b506000546001600160a01b0316610507565b34801561080e57600080fd5b5061041561081d36600461214b565b600b6020526000908152604090205460ff1681565b34801561083e57600080fd5b506040805180820190915260058152642121a72a2960d91b60208201526103e8565b34801561086c57600080fd5b50600154610507906001600160a01b031681565b34801561088c57600080fd5b5061047a61089b3660046121fb565b6110a9565b3480156108ac57600080fd5b50601654610507906001600160a01b031681565b3480156108cc57600080fd5b506104156108db3660046120de565b6110fe565b3480156108ec57600080fd5b5061047a6108fb36600461214b565b61110b565b34801561090c57600080fd5b5061047a61091b366004612246565b611157565b34801561092c57600080fd5b5061047a61093b36600461214b565b6111e9565b34801561094c57600080fd5b506103a7600d5481565b34801561096257600080fd5b50601754610507906001600160a01b031681565b34801561098257600080fd5b506103a760125481565b34801561099857600080fd5b5061047a611235565b3480156109ad57600080fd5b506103a760115481565b3480156109c357600080fd5b5061047a6109d23660046121e2565b611278565b3480156109e357600080fd5b506103a76109f236600461230b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2957600080fd5b5061047a6112a7565b348015610a3e57600080fd5b506103a7601b5481565b348015610a5457600080fd5b5061047a610a6336600461214b565b611306565b348015610a7457600080fd5b5061047a610a833660046121fb565b611384565b348015610a9457600080fd5b50601554610507906001600160a01b031681565b348015610ab457600080fd5b506103a7601d5481565b348015610aca57600080fd5b5061047a610ad93660046121fb565b6113b8565b348015610aea57600080fd5b5060195461041590600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b5a9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610c19576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610bf491849061144f565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610c24848484611489565b90505b9392505050565b6000546001600160a01b03163314610c615760405162461bcd60e51b8152600401610c5890612344565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610ccf906007546001600160a01b0316600090815260036020526040902054610cc9906002549061193f565b9061193f565b905090565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b8152600401610c5890612344565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610d4c57600080fd5b505af1158015610d60573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610d925760405162461bcd60e51b8152600401610c5890612344565b601192909255601255601355565b6000546001600160a01b03163314610dca5760405162461bcd60e51b8152600401610c5890612344565b600f8290556010819055600a821115610e105760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c58565b600a6010541115610e4e5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c58565b5050565b6000546001600160a01b03163314610e7c5760405162461bcd60e51b8152600401610c5890612344565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b03163314610ec85760405162461bcd60e51b8152600401610c5890612344565b601b55565b6000610b6682600019610aff565b6000546001600160a01b03163314610f055760405162461bcd60e51b8152600401610c5890612344565b610f0d611981565b565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190612364565b6000546001600160a01b03163314610fa85760405162461bcd60e51b8152600401610c5890612344565b601d55565b6000546001600160a01b03163314610fd75760405162461bcd60e51b8152600401610c5890612344565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401600060405180830381600087803b15801561102057600080fd5b505af1158015611034573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146110655760405162461bcd60e51b8152600401610c5890612344565b4780156110a6576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e4e573d6000803e3d6000fd5b50565b6000546001600160a01b031633146110d35760405162461bcd60e51b8152600401610c5890612344565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c27338484611489565b6000546001600160a01b031633146111355760405162461bcd60e51b8152600401610c5890612344565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111815760405162461bcd60e51b8152600401610c5890612344565b60005b8151811015610e4e576001600960008484815181106111a5576111a561237d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111e1816123a9565b915050611184565b6000546001600160a01b031633146112135760405162461bcd60e51b8152600401610c5890612344565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461125f5760405162461bcd60e51b8152600401610c5890612344565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146112a25760405162461bcd60e51b8152600401610c5890612344565b601c55565b601a5460405163df63268760e01b81523360048201526001600160a01b039091169063df63268790602401600060405180830381600087803b1580156112ec57600080fd5b505af1158015611300573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146113305760405162461bcd60e51b8152600401610c5890612344565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146113ae5760405162461bcd60e51b8152600401610c5890612344565b610e4e8282611b0f565b6000546001600160a01b031633146113e25760405162461bcd60e51b8152600401610c5890612344565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610c2783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bee565b600081848411156114735760405162461bcd60e51b8152600401610c589190612064565b50600061148084866123c2565b95945050505050565b600080546001600160a01b038581169116148015906114b657506000546001600160a01b03848116911614155b1561151457601954600160b01b900460ff166115145760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610c58565b6001600160a01b03841660009081526009602052604090205460ff1615801561155657506001600160a01b03831660009081526009602052604090205460ff16155b61155f57600080fd5b601954600160a01b900460ff16156115835761157c848484611c1c565b9050610c27565b601c54821115806115ac57506001600160a01b0384166000908152600b602052604090205460ff165b6115dd5760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610c58565b6001600160a01b0383166000908152600b602052604090205460ff1615801561160f5750600854600160a01b900460ff165b1561167157601d546001600160a01b03841660009081526003602052604090205461163a9084611d02565b11156116715760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610c58565b6016546001600160a01b031633148015906116965750601954600160a01b900460ff16155b80156116ab5750601954600160a81b900460ff165b80156116c85750601e543060009081526003602052604090205410155b156116d5576116d5611981565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526003909152919091205461172791849061144f565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561177757506001600160a01b0384166000908152600a602052604090205460ff16155b611781578261178c565b61178c858585611d61565b6001600160a01b0385166000908152600360205260409020549091506117b29082611d02565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661185657601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561184357600080fd5b505af1925050508015611854575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166118e757601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156118d457600080fd5b505af19250505080156118e5575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161192c91815260200190565b60405180910390a3506001949350505050565b6000610c2783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061144f565b6019805460ff60a01b1916600160a01b179055306000908152600360205260408120546012549091906119c7906002906119c19060649082908790611e24565b9061140d565b905060006119d5838361193f565b90506119e081611ea6565b60004790506000611a0160646119c160115485611e2490919063ffffffff16565b90506000611a1f60646119c160135486611e2490919063ffffffff16565b90506000611a4260026119c160646119c160125489611e2490919063ffffffff16565b90508315611a86576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611a84573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611ad657600080fd5b505af193505050508015611ae8575060015b508515611af957611af98682611fcf565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611b3657506016546001600160a01b03838116911614155b611b3f57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611ba557601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610d32565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610d32565b60008183611c0f5760405162461bcd60e51b8152600401610c589190612064565b50600061148084866123d9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611c6d91849061144f565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611c9c9083611d02565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cf09086815260200190565b60405180910390a35060019392505050565b600080611d0f83856123fb565b905083811015610c275760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c58565b60165460009081906001600160a01b03858116911614611d8357600f54611d87565b6010545b90506000611d9a60646119c18685611e24565b30600090815260036020526040902054909150611db79082611d02565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e089085815260200190565b60405180910390a3611e1a848261193f565b9695505050505050565b600082600003611e3657506000610b66565b6000611e428385612413565b905082611e4f85836123d9565b14610c275760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c58565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611edb57611edb61237d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f589190612432565b81600181518110611f6b57611f6b61237d565b60200260200101906001600160a01b031690816001600160a01b031681525050611f953083610aff565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d3290859060009086903090429060040161244f565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561203f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061103491906124c0565b600060208083528351808285015260005b8181101561209157858101830151858201604001528201612075565b818111156120a3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110a657600080fd5b80356120d9816120b9565b919050565b600080604083850312156120f157600080fd5b82356120fc816120b9565b946020939093013593505050565b60008060006060848603121561211f57600080fd5b833561212a816120b9565b9250602084013561213a816120b9565b929592945050506040919091013590565b60006020828403121561215d57600080fd5b8135610c27816120b9565b6000806040838503121561217b57600080fd5b50508035926020909101359150565b60008060006060848603121561219f57600080fd5b505081359360208301359350604090920135919050565b803580151581146120d957600080fd5b600080604083850312156121d957600080fd5b6120fc836121b6565b6000602082840312156121f457600080fd5b5035919050565b6000806040838503121561220e57600080fd5b8235612219816120b9565b9150612227602084016121b6565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561225957600080fd5b823567ffffffffffffffff8082111561227157600080fd5b818501915085601f83011261228557600080fd5b81358181111561229757612297612230565b8060051b604051601f19603f830116810181811085821117156122bc576122bc612230565b6040529182528482019250838101850191888311156122da57600080fd5b938501935b828510156122ff576122f0856120ce565b845293850193928501926122df565b98975050505050505050565b6000806040838503121561231e57600080fd5b8235612329816120b9565b91506020830135612339816120b9565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561237657600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016123bb576123bb612393565b5060010190565b6000828210156123d4576123d4612393565b500390565b6000826123f657634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561240e5761240e612393565b500190565b600081600019048311821515161561242d5761242d612393565b500290565b60006020828403121561244457600080fd5b8151610c27816120b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561249f5784516001600160a01b03168352938301939183019160010161247a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124d557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122021fe54c81d4fa33b46478a60368492a2344a9218c808dbf3c3c51325edb2f97664736f6c634300080d003360806040526ec097ce7bc90715b34b9f1000000000600b55610708600c556000600d5534801561002e57600080fd5b50600080546001600160a01b03199081163317909155600280548216737a250d5630b4cf539739df2c5dacb4c659f2488d179055600180549091167364df3aab3b21cc275bb76c4a581cf8b726478ee017905561100d806100906000396000f3fe6080604052600436106101025760003560e01c8063997664d711610095578063df63268711610064578063df632687146102be578063e2d2e219146102de578063efca2eed146102f4578063ffb2c4791461030a578063ffd49c841461032a57600080fd5b8063997664d7146102115780639fa1b03514610227578063ce7c2ac21461025f578063d0e30db0146102b657600080fd5b80632d48e896116100d15780632d48e896146101955780633a98ef39146101b55780634fab0ae8146101cb5780638c21cd52146101e157600080fd5b806311ce023d1461011657806314b6ca961461013f57806326987b601461015f57806328fd31981461017557600080fd5b366101115761010f610340565b005b600080fd5b34801561012257600080fd5b5061012c600b5481565b6040519081526020015b60405180910390f35b34801561014b57600080fd5b5061010f61015a366004610d71565b6105b8565b34801561016b57600080fd5b5061012c600e5481565b34801561018157600080fd5b5061012c610190366004610d9d565b610730565b3480156101a157600080fd5b5061010f6101b0366004610dba565b6107bb565b3480156101c157600080fd5b5061012c60075481565b3480156101d757600080fd5b5061012c600d5481565b3480156101ed57600080fd5b506102016101fc366004610d9d565b6107dd565b6040519015158152602001610136565b34801561021d57600080fd5b5061012c60085481565b34801561023357600080fd5b50600154610247906001600160a01b031681565b6040516001600160a01b039091168152602001610136565b34801561026b57600080fd5b5061029b61027a366004610d9d565b60066020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610136565b61010f610340565b3480156102ca57600080fd5b5061010f6102d9366004610d9d565b610823565b3480156102ea57600080fd5b5061012c600a5481565b34801561030057600080fd5b5061012c60095481565b34801561031657600080fd5b5061010f610325366004610ddc565b610846565b34801561033657600080fd5b5061012c600c5481565b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610389573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ad9190610df5565b60408051600280825260608201835292935060009290916020830190803683375050600254604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561041c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104409190610e0e565b8160008151811061045357610453610e2b565b6001600160a01b039283166020918202929092010152600180548351921691839190811061048357610483610e2b565b6001600160a01b03928316602091820292909201015260025460405163b6f9de9560e01b815291169063b6f9de959034906104c990600090869030904290600401610e41565b6000604051808303818588803b1580156104e257600080fd5b505af11580156104f6573d6000803e3d6000fd5b50506001546040516370a0823160e01b81523060048201526000945061057693508692506001600160a01b03909116906370a0823190602401602060405180830381865afa15801561054c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105709190610df5565b90610933565b600854909150610586908261097c565b600855600754600b546105b0916105a7916105a190856109e0565b90610a62565b600a549061097c565b600a55505050565b6000546001600160a01b031633146105cf57600080fd5b6001600160a01b038216600090815260066020526040902054156105f6576105f682610aa4565b60008111801561061c57506001600160a01b038216600090815260066020526040902054155b1561068257600380546001600160a01b0384166000818152600460205260408120839055600183018455929092527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b03191690911790556106b5565b801580156106a757506001600160a01b03821660009081526006602052604090205415155b156106b5576106b582610bc2565b6001600160a01b0382166000908152600660205260409020546007546106e69183916106e091610933565b9061097c565b6007556001600160a01b038216600090815260066020526040902081905561070d81610cd7565b6001600160a01b0390921660009081526006602052604090206001019190915550565b6001600160a01b038116600090815260066020526040812054810361075757506000919050565b6001600160a01b03821660009081526006602052604081205461077990610cd7565b6001600160a01b0384166000908152600660205260409020600101549091508082116107a9575060009392505050565b6107b38282610933565b949350505050565b6000546001600160a01b031633146107d257600080fd5b600c91909155600d55565b600c546001600160a01b038216600090815260056020526040812054909142916108079190610ec1565b10801561081d5750600d5461081b83610730565b115b92915050565b6000546001600160a01b0316331461083a57600080fd5b61084381610aa4565b50565b6003546000819003610856575050565b60008060005a90505b848210801561086d57508383105b1561092c5783600e5410610881576000600e555b6108b36003600e548154811061089957610899610e2b565b6000918252602090912001546001600160a01b03166107dd565b156108ea576108ea6003600e54815481106108d0576108d0610e2b565b6000918252602090912001546001600160a01b0316610aa4565b6108ff6108f85a8390610933565b839061097c565b91505a600e8054919250600061091483610ed9565b9190505550828061092490610ed9565b93505061085f565b5050505050565b600061097583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610cf4565b9392505050565b6000806109898385610ec1565b9050838110156109755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b6000826000036109f25750600061081d565b60006109fe8385610ef2565b905082610a0b8583610f11565b146109755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d7565b600061097583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d2e565b6001600160a01b0381166000908152600660205260408120549003610ac65750565b6000610ad182610730565b90508015610bbe57600954610ae6908261097c565b60095560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610b3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b609190610f33565b506001600160a01b03821660009081526005602090815260408083204290556006909152902060020154610b94908261097c565b6001600160a01b038316600090815260066020526040902060028101919091555461070d90610cd7565b5050565b60038054610bd290600190610f55565b81548110610be257610be2610e2b565b60009182526020808320909101546001600160a01b0384811684526004909252604090922054600380549290931692918110610c2057610c20610e2b565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260049182905260408120546003805491939291610c6c90600190610f55565b81548110610c7c57610c7c610e2b565b60009182526020808320909101546001600160a01b031683528201929092526040019020556003805480610cb257610cb2610f6c565b600082815260209020810160001990810180546001600160a01b031916905501905550565b600061081d600b546105a1600a54856109e090919063ffffffff16565b60008184841115610d185760405162461bcd60e51b81526004016109d79190610f82565b506000610d258486610f55565b95945050505050565b60008183610d4f5760405162461bcd60e51b81526004016109d79190610f82565b506000610d258486610f11565b6001600160a01b038116811461084357600080fd5b60008060408385031215610d8457600080fd5b8235610d8f81610d5c565b946020939093013593505050565b600060208284031215610daf57600080fd5b813561097581610d5c565b60008060408385031215610dcd57600080fd5b50508035926020909101359150565b600060208284031215610dee57600080fd5b5035919050565b600060208284031215610e0757600080fd5b5051919050565b600060208284031215610e2057600080fd5b815161097581610d5c565b634e487b7160e01b600052603260045260246000fd5b600060808201868352602060808185015281875180845260a086019150828901935060005b81811015610e8b5784516001600160a01b031683529383019391830191600101610e66565b50506001600160a01b039690961660408501525050506060015292915050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610ed457610ed4610eab565b500190565b600060018201610eeb57610eeb610eab565b5060010190565b6000816000190483118215151615610f0c57610f0c610eab565b500290565b600082610f2e57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610f4557600080fd5b8151801515811461097557600080fd5b600082821015610f6757610f67610eab565b500390565b634e487b7160e01b600052603160045260246000fd5b600060208083528351808285015260005b81811015610faf57858101830151858201604001528201610f93565b81811115610fc1576000604083870101525b50601f01601f191692909201604001939250505056fea2646970667358221220b7683b1f6ccf83ca89a9ef72c751c4a5b5634d4b52b8d10c4b09e88b8fdc2b5e64736f6c634300080d00330000000000000000000000001379e6f3863584fd4d004922297ecee5a6a0c65b

Deployed Bytecode

0x6080604052600436106103855760003560e01c80637db1342c116101d1578063bf56b37111610102578063e21180e9116100a0578063f887ea401161006f578063f887ea4014610a88578063f8b45b0514610aa8578063fabe628314610abe578063ffb54a9914610ade57600080fd5b8063e21180e914610a1d578063e3992cf014610a32578063f2fde38b14610a48578063f708a64f14610a6857600080fd5b8063c9567bf9116100dc578063c9567bf91461098c578063caa5581b146109a1578063d920334e146109b7578063dd62ed3e146109d757600080fd5b8063bf56b37114610940578063c45a015514610956578063c8d1293d1461097657600080fd5b80639fa1b0351161016f578063a9059cbb11610149578063a9059cbb146108c0578063aa97087a146108e0578063b515566a14610900578063bb542ef01461092057600080fd5b80639fa1b03514610860578063a3a2e89e14610880578063a8aa1b31146108a057600080fd5b806389291a8f116101ab57806389291a8f146107cf578063893d20e8146107e45780638b42507f1461080257806395d89b411461083257600080fd5b80637db1342c1461076e5780637dfcbe341461078e57806381934031146107af57600080fd5b80633dab5269116102b6578063571ac8b01161025457806370a082311161022357806370a08231146106ec5780637437681e1461072257806375df13051461073857806377359aa71461074e57600080fd5b8063571ac8b0146106775780636303516c1461069757806366eb3785146106b7578063674e5eb0146106cc57600080fd5b80634543437711610290578063454343771461060a57806347062402146106205780634a74bb02146106365780634da626521461065757600080fd5b80633dab52691461058a5780633f4218e0146105aa5780634355855a146105da57600080fd5b80632b14ca56116103235780632e346430116102fd5780632e346430146104e75780632f54bf6e1461051f57806330ca34ee1461054e578063313ce5671461056e57600080fd5b80632b14ca56146104915780632d48e896146104a75780632dbea2e1146104c757600080fd5b806318160ddd1161035f57806318160ddd1461042557806323b872dd1461043a578063273123b71461045a5780632b112e491461047c57600080fd5b80630445b6671461039157806306fdde03146103ba578063095ea7b3146103f557600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a7601e5481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506040805180820190915260098152682130b1b7b730ba37b960b91b60208201525b6040516103b19190612064565b34801561040157600080fd5b506104156104103660046120de565b610aff565b60405190151581526020016103b1565b34801561043157600080fd5b506002546103a7565b34801561044657600080fd5b5061041561045536600461210a565b610b6c565b34801561046657600080fd5b5061047a61047536600461214b565b610c2e565b005b34801561048857600080fd5b506103a7610c82565b34801561049d57600080fd5b506103a760105481565b3480156104b357600080fd5b5061047a6104c2366004612168565b610cd4565b3480156104d357600080fd5b5061047a6104e236600461218a565b610d68565b3480156104f357600080fd5b50601954610507906001600160a01b031681565b6040516001600160a01b0390911681526020016103b1565b34801561052b57600080fd5b5061041561053a36600461214b565b6000546001600160a01b0391821691161490565b34801561055a57600080fd5b5061047a610569366004612168565b610da0565b34801561057a57600080fd5b50604051601281526020016103b1565b34801561059657600080fd5b5061047a6105a53660046121c6565b610e52565b3480156105b657600080fd5b506104156105c536600461214b565b600a6020526000908152604090205460ff1681565b3480156105e657600080fd5b506104156105f536600461214b565b600c6020526000908152604090205460ff1681565b34801561061657600080fd5b506103a760145481565b34801561062c57600080fd5b506103a7600f5481565b34801561064257600080fd5b5060195461041590600160a81b900460ff1681565b34801561066357600080fd5b5061047a6106723660046121e2565b610e9e565b34801561068357600080fd5b5061041561069236600461214b565b610ecd565b3480156106a357600080fd5b50600e54610507906001600160a01b031681565b3480156106c357600080fd5b5061047a610edb565b3480156106d857600080fd5b50601a54610507906001600160a01b031681565b3480156106f857600080fd5b506103a761070736600461214b565b6001600160a01b031660009081526003602052604090205490565b34801561072e57600080fd5b506103a7601c5481565b34801561074457600080fd5b506103a760135481565b34801561075a57600080fd5b506103a761076936600461214b565b610f0f565b34801561077a57600080fd5b5061047a6107893660046121e2565b610f7e565b34801561079a57600080fd5b5060085461041590600160a01b900460ff1681565b3480156107bb57600080fd5b5061047a6107ca3660046121e2565b610fad565b3480156107db57600080fd5b5061047a61103b565b3480156107f057600080fd5b506000546001600160a01b0316610507565b34801561080e57600080fd5b5061041561081d36600461214b565b600b6020526000908152604090205460ff1681565b34801561083e57600080fd5b506040805180820190915260058152642121a72a2960d91b60208201526103e8565b34801561086c57600080fd5b50600154610507906001600160a01b031681565b34801561088c57600080fd5b5061047a61089b3660046121fb565b6110a9565b3480156108ac57600080fd5b50601654610507906001600160a01b031681565b3480156108cc57600080fd5b506104156108db3660046120de565b6110fe565b3480156108ec57600080fd5b5061047a6108fb36600461214b565b61110b565b34801561090c57600080fd5b5061047a61091b366004612246565b611157565b34801561092c57600080fd5b5061047a61093b36600461214b565b6111e9565b34801561094c57600080fd5b506103a7600d5481565b34801561096257600080fd5b50601754610507906001600160a01b031681565b34801561098257600080fd5b506103a760125481565b34801561099857600080fd5b5061047a611235565b3480156109ad57600080fd5b506103a760115481565b3480156109c357600080fd5b5061047a6109d23660046121e2565b611278565b3480156109e357600080fd5b506103a76109f236600461230b565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b348015610a2957600080fd5b5061047a6112a7565b348015610a3e57600080fd5b506103a7601b5481565b348015610a5457600080fd5b5061047a610a6336600461214b565b611306565b348015610a7457600080fd5b5061047a610a833660046121fb565b611384565b348015610a9457600080fd5b50601554610507906001600160a01b031681565b348015610ab457600080fd5b506103a7601d5481565b348015610aca57600080fd5b5061047a610ad93660046121fb565b6113b8565b348015610aea57600080fd5b5060195461041590600160b01b900460ff1681565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610b5a9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260046020908152604080832033845290915281205460001914610c19576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600482528381203382529091529190912054610bf491849061144f565b6001600160a01b03851660009081526004602090815260408083203384529091529020555b610c24848484611489565b90505b9392505050565b6000546001600160a01b03163314610c615760405162461bcd60e51b8152600401610c5890612344565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6008546001600160a01b0316600090815260036020526040812054610ccf906007546001600160a01b0316600090815260036020526040902054610cc9906002549061193f565b9061193f565b905090565b6000546001600160a01b03163314610cfe5760405162461bcd60e51b8152600401610c5890612344565b601a546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b158015610d4c57600080fd5b505af1158015610d60573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610d925760405162461bcd60e51b8152600401610c5890612344565b601192909255601255601355565b6000546001600160a01b03163314610dca5760405162461bcd60e51b8152600401610c5890612344565b600f8290556010819055600a821115610e105760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c58565b600a6010541115610e4e5760405162461bcd60e51b81526020600482015260086024820152670e8dede40d0d2ced60c31b6044820152606401610c58565b5050565b6000546001600160a01b03163314610e7c5760405162461bcd60e51b8152600401610c5890612344565b60198054921515600160a81b0260ff60a81b1990931692909217909155601e55565b6000546001600160a01b03163314610ec85760405162461bcd60e51b8152600401610c5890612344565b601b55565b6000610b6682600019610aff565b6000546001600160a01b03163314610f055760405162461bcd60e51b8152600401610c5890612344565b610f0d611981565b565b601a5460405163051fa63360e31b81526001600160a01b03838116600483015260009216906328fd319890602401602060405180830381865afa158015610f5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b669190612364565b6000546001600160a01b03163314610fa85760405162461bcd60e51b8152600401610c5890612344565b601d55565b6000546001600160a01b03163314610fd75760405162461bcd60e51b8152600401610c5890612344565b601a546040516001624d3b8760e01b03198152600481018390526001600160a01b039091169063ffb2c47990602401600060405180830381600087803b15801561102057600080fd5b505af1158015611034573d6000803e3d6000fd5b5050505050565b6000546001600160a01b031633146110655760405162461bcd60e51b8152600401610c5890612344565b4780156110a6576019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610e4e573d6000803e3d6000fd5b50565b6000546001600160a01b031633146110d35760405162461bcd60e51b8152600401610c5890612344565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610c27338484611489565b6000546001600160a01b031633146111355760405162461bcd60e51b8152600401610c5890612344565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111815760405162461bcd60e51b8152600401610c5890612344565b60005b8151811015610e4e576001600960008484815181106111a5576111a561237d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806111e1816123a9565b915050611184565b6000546001600160a01b031633146112135760405162461bcd60e51b8152600401610c5890612344565b601880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461125f5760405162461bcd60e51b8152600401610c5890612344565b43600d556019805460ff60b01b1916600160b01b179055565b6000546001600160a01b031633146112a25760405162461bcd60e51b8152600401610c5890612344565b601c55565b601a5460405163df63268760e01b81523360048201526001600160a01b039091169063df63268790602401600060405180830381600087803b1580156112ec57600080fd5b505af1158015611300573d6000803e3d6000fd5b50505050565b6000546001600160a01b031633146113305760405162461bcd60e51b8152600401610c5890612344565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6000546001600160a01b031633146113ae5760405162461bcd60e51b8152600401610c5890612344565b610e4e8282611b0f565b6000546001600160a01b031633146113e25760405162461bcd60e51b8152600401610c5890612344565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000610c2783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611bee565b600081848411156114735760405162461bcd60e51b8152600401610c589190612064565b50600061148084866123c2565b95945050505050565b600080546001600160a01b038581169116148015906114b657506000546001600160a01b03848116911614155b1561151457601954600160b01b900460ff166115145760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e0000000000000000006044820152606401610c58565b6001600160a01b03841660009081526009602052604090205460ff1615801561155657506001600160a01b03831660009081526009602052604090205460ff16155b61155f57600080fd5b601954600160a01b900460ff16156115835761157c848484611c1c565b9050610c27565b601c54821115806115ac57506001600160a01b0384166000908152600b602052604090205460ff165b6115dd5760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b6044820152606401610c58565b6001600160a01b0383166000908152600b602052604090205460ff1615801561160f5750600854600160a01b900460ff165b1561167157601d546001600160a01b03841660009081526003602052604090205461163a9084611d02565b11156116715760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b6044820152606401610c58565b6016546001600160a01b031633148015906116965750601954600160a01b900460ff16155b80156116ab5750601954600160a81b900460ff165b80156116c85750601e543060009081526003602052604090205410155b156116d5576116d5611981565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526003909152919091205461172791849061144f565b6001600160a01b038516600090815260036020908152604080832093909355600a90529081205460ff1615801561177757506001600160a01b0384166000908152600a602052604090205460ff16155b611781578261178c565b61178c858585611d61565b6001600160a01b0385166000908152600360205260409020549091506117b29082611d02565b6001600160a01b038086166000908152600360209081526040808320949094559188168152600c909152205460ff1661185657601a546001600160a01b0386811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561184357600080fd5b505af1925050508015611854575060015b505b6001600160a01b0384166000908152600c602052604090205460ff166118e757601a546001600160a01b0385811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156118d457600080fd5b505af19250505080156118e5575060015b505b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161192c91815260200190565b60405180910390a3506001949350505050565b6000610c2783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061144f565b6019805460ff60a01b1916600160a01b179055306000908152600360205260408120546012549091906119c7906002906119c19060649082908790611e24565b9061140d565b905060006119d5838361193f565b90506119e081611ea6565b60004790506000611a0160646119c160115485611e2490919063ffffffff16565b90506000611a1f60646119c160135486611e2490919063ffffffff16565b90506000611a4260026119c160646119c160125489611e2490919063ffffffff16565b90508315611a86576019546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611a84573d6000803e3d6000fd5b505b601a60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b158015611ad657600080fd5b505af193505050508015611ae8575060015b508515611af957611af98682611fcf565b50506019805460ff60a01b191690555050505050565b6001600160a01b0382163014801590611b3657506016546001600160a01b03838116911614155b611b3f57600080fd5b6001600160a01b0382166000908152600c60205260409020805460ff19168215801591909117909155611ba557601a54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401610d32565b601a546001600160a01b0383811660008181526003602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401610d32565b60008183611c0f5760405162461bcd60e51b8152600401610c589190612064565b50600061148084866123d9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600390915291822054611c6d91849061144f565b6001600160a01b038086166000908152600360205260408082209390935590851681522054611c9c9083611d02565b6001600160a01b0380851660008181526003602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cf09086815260200190565b60405180910390a35060019392505050565b600080611d0f83856123fb565b905083811015610c275760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c58565b60165460009081906001600160a01b03858116911614611d8357600f54611d87565b6010545b90506000611d9a60646119c18685611e24565b30600090815260036020526040902054909150611db79082611d02565b30600081815260036020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e089085815260200190565b60405180910390a3611e1a848261193f565b9695505050505050565b600082600003611e3657506000610b66565b6000611e428385612413565b905082611e4f85836123d9565b14610c275760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c58565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611edb57611edb61237d565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f589190612432565b81600181518110611f6b57611f6b61237d565b60200260200101906001600160a01b031690816001600160a01b031681525050611f953083610aff565b5060155460405163791ac94760e01b81526001600160a01b039091169063791ac94790610d3290859060009086903090429060040161244f565b601554600e5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af115801561203f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061103491906124c0565b600060208083528351808285015260005b8181101561209157858101830151858201604001528201612075565b818111156120a3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146110a657600080fd5b80356120d9816120b9565b919050565b600080604083850312156120f157600080fd5b82356120fc816120b9565b946020939093013593505050565b60008060006060848603121561211f57600080fd5b833561212a816120b9565b9250602084013561213a816120b9565b929592945050506040919091013590565b60006020828403121561215d57600080fd5b8135610c27816120b9565b6000806040838503121561217b57600080fd5b50508035926020909101359150565b60008060006060848603121561219f57600080fd5b505081359360208301359350604090920135919050565b803580151581146120d957600080fd5b600080604083850312156121d957600080fd5b6120fc836121b6565b6000602082840312156121f457600080fd5b5035919050565b6000806040838503121561220e57600080fd5b8235612219816120b9565b9150612227602084016121b6565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561225957600080fd5b823567ffffffffffffffff8082111561227157600080fd5b818501915085601f83011261228557600080fd5b81358181111561229757612297612230565b8060051b604051601f19603f830116810181811085821117156122bc576122bc612230565b6040529182528482019250838101850191888311156122da57600080fd5b938501935b828510156122ff576122f0856120ce565b845293850193928501926122df565b98975050505050505050565b6000806040838503121561231e57600080fd5b8235612329816120b9565b91506020830135612339816120b9565b809150509250929050565b60208082526006908201526510a7bbb732b960d11b604082015260600190565b60006020828403121561237657600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016123bb576123bb612393565b5060010190565b6000828210156123d4576123d4612393565b500390565b6000826123f657634e487b7160e01b600052601260045260246000fd5b500490565b6000821982111561240e5761240e612393565b500190565b600081600019048311821515161561242d5761242d612393565b500290565b60006020828403121561244457600080fd5b8151610c27816120b9565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561249f5784516001600160a01b03168352938301939183019160010161247a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156124d557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122021fe54c81d4fa33b46478a60368492a2344a9218c808dbf3c3c51325edb2f97664736f6c634300080d0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000001379e6f3863584fd4d004922297ecee5a6a0c65b

-----Decoded View---------------
Arg [0] : _owner (address): 0x1379E6f3863584fd4d004922297eCee5A6A0C65b

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001379e6f3863584fd4d004922297ecee5a6a0c65b


Deployed Bytecode Sourcemap

10728:11973:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12620:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;12620:52:0;;;;;;;;16795:80;;;;;;;;;;-1:-1:-1;16867:5:0;;;;;;;;;;;;-1:-1:-1;;;16867:5:0;;;;16795:80;;;;;;;:::i;17221:216::-;;;;;;;;;;-1:-1:-1;17221:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;17221:216:0;1393:187:1;16525:88:0;;;;;;;;;;-1:-1:-1;16598:12:0;;16525:88;;17735:366;;;;;;;;;;-1:-1:-1;17735:366:0;;;;;:::i;:::-;;:::i;15670:90::-;;;;;;;;;;-1:-1:-1;15670:90:0;;;;;:::i;:::-;;:::i;:::-;;16375:142;;;;;;;;;;;;;:::i;11798:27::-;;;;;;;;;;;;;;;;15465:197;;;;;;;;;;-1:-1:-1;15465:197:0;;;;;:::i;:::-;;:::i;14255:233::-;;;;;;;;;;-1:-1:-1;14255:233:0;;;;;:::i;:::-;;:::i;12114:79::-;;;;;;;;;;-1:-1:-1;12114:79:0;;;;-1:-1:-1;;;;;12114:79:0;;;;;;-1:-1:-1;;;;;3036:32:1;;;3018:51;;3006:2;2991:18;12114:79:0;2872:203:1;2906:103:0;;;;;;;;;;-1:-1:-1;2906:103:0;;;;;:::i;:::-;2961:4;2996:5;-1:-1:-1;;;;;2985:16:0;;;2996:5;;2985:16;;2906:103;13998:244;;;;;;;;;;-1:-1:-1;13998:244:0;;;;;:::i;:::-;;:::i;16619:80::-;;;;;;;;;;-1:-1:-1;16619:80:0;;11027:2;3222:36:1;;3210:2;3195:18;16619:80:0;3080:184:1;15258:199:0;;;;;;;;;;-1:-1:-1;15258:199:0;;;;;:::i;:::-;;:::i;11530:44::-;;;;;;;;;;-1:-1:-1;11530:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11636:49;;;;;;;;;;-1:-1:-1;11636:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11952:34;;;;;;;;;;;;;;;;11765:26;;;;;;;;;;;;;;;;12230:40;;;;;;;;;;-1:-1:-1;12230:40:0;;;;-1:-1:-1;;;12230:40:0;;;;;;16251:105;;;;;;;;;;-1:-1:-1;16251:105:0;;;;;:::i;:::-;;:::i;17445:122::-;;;;;;;;;;-1:-1:-1;17445:122:0;;;;;:::i;:::-;;:::i;11726:30::-;;;;;;;;;;-1:-1:-1;11726:30:0;;;;-1:-1:-1;;;;;11726:30:0;;;22006:74;;;;;;;;;;;;;:::i;12321:28::-;;;;;;;;;;-1:-1:-1;12321:28:0;;;;-1:-1:-1;;;;;12321:28:0;;;16965:105;;;;;;;;;;-1:-1:-1;16965:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;17049:18:0;17031:7;17049:18;;;:9;:18;;;;;;;16965:105;12515:44;;;;;;;;;;;;;;;;11912:31;;;;;;;;;;;;;;;;22450:153;;;;;;;;;;-1:-1:-1;22450:153:0;;;;;:::i;:::-;;:::i;14599:104::-;;;;;;;;;;-1:-1:-1;14599:104:0;;;;;:::i;:::-;;:::i;11449:26::-;;;;;;;;;;-1:-1:-1;11449:26:0;;;;-1:-1:-1;;;11449:26:0;;;;;;22330:112;;;;;;;;;;-1:-1:-1;22330:112:0;;;;;:::i;:::-;;:::i;22088:234::-;;;;;;;;;;;;;:::i;16881:78::-;;;;;;;;;;-1:-1:-1;16933:7:0;16951:5;-1:-1:-1;;;;;16951:5:0;16881:78;;11581:48;;;;;;;;;;-1:-1:-1;11581:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16705:84;;;;;;;;;;-1:-1:-1;16779:7:0;;;;;;;;;;;;-1:-1:-1;;;16779:7:0;;;;16705:84;;10805:66;;;;;;;;;;-1:-1:-1;10805:66:0;;;;-1:-1:-1;;;;;10805:66:0;;;14715:122;;;;;;;;;;-1:-1:-1;14715:122:0;;;;;:::i;:::-;;:::i;12026:19::-;;;;;;;;;;-1:-1:-1;12026:19:0;;;;-1:-1:-1;;;;;12026:19:0;;;17575:152;;;;;;;;;;-1:-1:-1;17575:152:0;;;;;:::i;:::-;;:::i;14989:127::-;;;;;;;;;;-1:-1:-1;14989:127:0;;;;;:::i;:::-;;:::i;13651:166::-;;;;;;;;;;-1:-1:-1;13651:166:0;;;;;:::i;:::-;;:::i;15124:121::-;;;;;;;;;;-1:-1:-1;15124:121:0;;;;;:::i;:::-;;:::i;11694:25::-;;;;;;;;;;;;;;;;12052:22;;;;;;;;;;-1:-1:-1;12052:22:0;;;;-1:-1:-1;;;;;12052:22:0;;;11874:31;;;;;;;;;;;;;;;;13869:115;;;;;;;;;;;;;:::i;11834:33::-;;;;;;;;;;;;;;;;14496:95;;;;;;;;;;-1:-1:-1;14496:95:0;;;;;:::i;:::-;;:::i;17076:133::-;;;;;;;;;;-1:-1:-1;17076:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;17178:19:0;;;17160:7;17178:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17076:133;22611:87;;;;;;;;;;;;;:::i;12356:32::-;;;;;;;;;;;;;;;;3017:136;;;;;;;;;;-1:-1:-1;3017:136:0;;;;;:::i;:::-;;:::i;16111:132::-;;;;;;;;;;-1:-1:-1;16111:132:0;;;;;:::i;:::-;;:::i;11995:24::-;;;;;;;;;;-1:-1:-1;11995:24:0;;;;-1:-1:-1;;;;;11995:24:0;;;12566:47;;;;;;;;;;;;;;;;14845:136;;;;;;;;;;-1:-1:-1;14845:136:0;;;;;:::i;:::-;;:::i;12277:31::-;;;;;;;;;;-1:-1:-1;12277:31:0;;;;-1:-1:-1;;;12277:31:0;;;;;;17221:216;17325:10;17296:4;17313:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;17313:32:0;;;;;;;;;;:41;;;17370:37;17296:4;;17313:32;;17370:37;;;;17348:6;160:25:1;;148:2;133:18;;14:177;17370:37:0;;;;;;;;-1:-1:-1;17425:4:0;17221:216;;;;;:::o;17735:366::-;-1:-1:-1;;;;;17855:19:0;;17835:4;17855:19;;;:11;:19;;;;;;;;17875:10;17855:31;;;;;;;;-1:-1:-1;;17855:52:0;17852:186;;17957:69;;;;;;;;;;;-1:-1:-1;;;17957:69:0;;;;;;;;-1:-1:-1;;;;;17957:19:0;;-1:-1:-1;17957:19:0;;;:11;:19;;;;;17977:10;17957:31;;;;;;;;;;:69;;17993:6;;17957:35;:69::i;:::-;-1:-1:-1;;;;;17923:19:0;;;;;;:11;:19;;;;;;;;17943:10;17923:31;;;;;;;:103;17852:186;18057:36;18067:6;18075:9;18086:6;18057:9;:36::i;:::-;18050:43;;17735:366;;;;;;:::o;15670:90::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;15732:12:0::1;15747:5;15732:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;15732:20:0::1;::::0;;15670:90::o;16375:142::-;16503:4;;-1:-1:-1;;;;;16503:4:0;16428:7;17049:18;;;:9;:18;;;;;;16455:54;;16482:4;;-1:-1:-1;;;;;16482:4:0;17031:7;17049:18;;;:9;:18;;;;;;16455:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;16448:61;;16375:142;:::o;15465:197::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;15578:10:::1;::::0;:68:::1;::::0;-1:-1:-1;;;15578:68:0;;::::1;::::0;::::1;7072:25:1::0;;;7113:18;;;7106:34;;;-1:-1:-1;;;;;15578:10:0;;::::1;::::0;:34:::1;::::0;7045:18:1;;15578:68:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15465:197:::0;;:::o;14255:233::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;14379:13:::1;:28:::0;;;;14418:11:::1;:22:::0;14451:11:::1;:29:::0;14255:233::o;13998:244::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;14094:6:::1;:18:::0;;;14123:7:::1;:20:::0;;;14174:2:::1;14164:12:::0;::::1;;14156:33;;;::::0;-1:-1:-1;;;14156:33:0;;7353:2:1;14156:33:0::1;::::0;::::1;7335:21:1::0;7392:1;7372:18;;;7365:29;-1:-1:-1;;;7410:18:1;;;7403:38;7458:18;;14156:33:0::1;7151:331:1::0;14156:33:0::1;14219:2;14208:7;;:13;;14200:34;;;::::0;-1:-1:-1;;;14200:34:0;;7353:2:1;14200:34:0::1;::::0;::::1;7335:21:1::0;7392:1;7372:18;;;7365:29;-1:-1:-1;;;7410:18:1;;;7403:38;7458:18;;14200:34:0::1;7151:331:1::0;14200:34:0::1;13998:244:::0;;:::o;15258:199::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;15367:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;15367:39:0::1;-1:-1:-1::0;;;;15367:39:0;;::::1;::::0;;;::::1;::::0;;;15417:13:::1;:32:::0;15258:199::o;16251:105::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;16326:13:::1;:22:::0;16251:105::o;17445:122::-;17500:4;17524:35;17532:7;-1:-1:-1;;17524:7:0;:35::i;22006:74::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;22062:10:::1;:8;:10::i;:::-;22006:74::o:0;22450:153::-;22554:10;;:41;;-1:-1:-1;;;22554:41:0;;-1:-1:-1;;;;;3036:32:1;;;22554:41:0;;;3018:51:1;22527:7:0;;22554:10;;:28;;2991:18:1;;22554:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14599:104::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;14674:9:::1;:21:::0;14599:104::o;22330:112::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;22405:10:::1;::::0;:29:::1;::::0;-1:-1:-1;;;;;;22405:29:0;;::::1;::::0;::::1;160:25:1::0;;;-1:-1:-1;;;;;22405:10:0;;::::1;::::0;:18:::1;::::0;133::1;;22405:29:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;22330:112:::0;:::o;22088:234::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;22172:21:::1;22207:22:::0;;22204:111:::1;;22263:10;::::0;22255:48:::1;::::0;-1:-1:-1;;;;;22263:10:0;;::::1;::::0;22255:48;::::1;;;::::0;22284:18;;22263:10:::1;22255:48:::0;22263:10;22255:48;22284:18;22263:10;22255:48;::::1;;;;;;;;;;;;;::::0;::::1;;;;22204:111;22132:190;22088:234::o:0;14715:122::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14801:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;14801:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14715:122::o;17575:152::-;17655:4;17679:40;17689:10;17701:9;17712:6;17679:9;:40::i;14989:127::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;15073:10:::1;:35:::0;;-1:-1:-1;;;;;;15073:35:0::1;-1:-1:-1::0;;;;;15073:35:0;;;::::1;::::0;;;::::1;::::0;;14989:127::o;13651:166::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;13727:6:::1;13722:88;13743:5;:12;13739:1;:16;13722:88;;;13794:4;13777;:14;13782:5;13788:1;13782:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13777:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13777:14:0;:21;;-1:-1:-1;;13777:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13757:3;::::1;::::0;::::1;:::i;:::-;;;;13722:88;;15124:121:::0;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;15210:10:::1;:27:::0;;-1:-1:-1;;;;;;15210:27:0::1;-1:-1:-1::0;;;;;15210:27:0;;;::::1;::::0;;;::::1;::::0;;15124:121::o;13869:115::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;13935:12:::1;13922:10;:25:::0;13958:11:::1;:18:::0;;-1:-1:-1;;;;13958:18:0::1;-1:-1:-1::0;;;13958:18:0::1;::::0;;13869:115::o;14496:95::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;14567:5:::1;:16:::0;14496:95::o;22611:87::-;22655:10;;:35;;-1:-1:-1;;;22655:35:0;;22679:10;22655:35;;;3018:51:1;-1:-1:-1;;;;;22655:10:0;;;;:23;;2991:18:1;;22655:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22611:87::o;3017:136::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;3093:5:::1;:11:::0;;-1:-1:-1;;;;;;3093:11:0::1;-1:-1:-1::0;;;;;3093:11:0;::::1;::::0;;::::1;::::0;;;3120:25:::1;::::0;3018:51:1;;;3120:25:0::1;::::0;3006:2:1;2991:18;3120:25:0::1;;;;;;;3017:136:::0;:::o;16111:132::-;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;16199:36:::1;16220:6;16228;16199:20;:36::i;14845:136::-:0;2961:4;2996:5;-1:-1:-1;;;;;2996:5:0;2813:10;2985:16;2797:38;;;;-1:-1:-1;;;2797:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14941:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;14941:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14845:136::o;1105:132::-;1163:7;1190:39;1194:1;1197;1190:39;;;;;;;;;;;;;;;;;:3;:39::i;651:192::-;737:7;773:12;765:6;;;;757:29;;;;-1:-1:-1;;;757:29:0;;;;;;;;:::i;:::-;-1:-1:-1;797:9:0;809:5;813:1;809;:5;:::i;:::-;797:17;651:192;-1:-1:-1;;;;;651:192:0:o;18109:1418::-;18197:4;18227:5;;-1:-1:-1;;;;;18218:14:0;;;18227:5;;18218:14;;;;:35;;-1:-1:-1;18248:5:0;;-1:-1:-1;;;;;18236:17:0;;;18248:5;;18236:17;;18218:35;18214:88;;;18263:11;;-1:-1:-1;;;18263:11:0;;;;18255:47;;;;-1:-1:-1;;;18255:47:0;;8628:2:1;18255:47:0;;;8610:21:1;8667:2;8647:18;;;8640:30;8706:25;8686:18;;;8679:53;8749:18;;18255:47:0;8426:347:1;18255:47:0;-1:-1:-1;;;;;18364:12:0;;;;;;:4;:12;;;;;;;;18363:13;:33;;;;-1:-1:-1;;;;;;18381:15:0;;;;;;:4;:15;;;;;;;;18380:16;18363:33;18355:42;;;;;;18413:16;;-1:-1:-1;;;18413:16:0;;;;18410:73;;;18439:41;18454:6;18462:9;18473:6;18439:14;:41::i;:::-;18432:48;;;;18410:73;18513:5;;18503:6;:15;;:42;;;-1:-1:-1;;;;;;18522:23:0;;;;;;:15;:23;;;;;;;;18503:42;18495:57;;;;-1:-1:-1;;;18495:57:0;;8980:2:1;18495:57:0;;;8962:21:1;9019:1;8999:18;;;8992:29;-1:-1:-1;;;9037:18:1;;;9030:32;9079:18;;18495:57:0;8778:325:1;18495:57:0;-1:-1:-1;;;;;18569:26:0;;;;;;:15;:26;;;;;;;;18568:27;:38;;;;-1:-1:-1;18599:7:0;;-1:-1:-1;;;18599:7:0;;;;18568:38;18565:143;;;18676:9;;-1:-1:-1;;;;;18640:20:0;;;;;;:9;:20;;;;;;:32;;18665:6;18640:24;:32::i;:::-;:45;;18632:64;;;;-1:-1:-1;;;18632:64:0;;9310:2:1;18632:64:0;;;9292:21:1;9349:1;9329:18;;;9322:29;-1:-1:-1;;;9367:18:1;;;9360:36;9413:18;;18632:64:0;9108:329:1;18632:64:0;18737:4;;-1:-1:-1;;;;;18737:4:0;18723:10;:18;;;;:39;;-1:-1:-1;18746:16:0;;-1:-1:-1;;;18746:16:0;;;;18745:17;18723:39;:64;;;;-1:-1:-1;18766:21:0;;-1:-1:-1;;;18766:21:0;;;;18723:64;:109;;;;-1:-1:-1;18819:13:0;;18809:4;18791:24;;;;:9;:24;;;;;;:41;;18723:109;18720:128;;;18835:10;:8;:10::i;:::-;18880:53;;;;;;;;;;;-1:-1:-1;;;18880:53:0;;;;;;;;-1:-1:-1;;;;;18880:17:0;;-1:-1:-1;18880:17:0;;;:9;:17;;;;;;;;:53;;18902:6;;18880:21;:53::i;:::-;-1:-1:-1;;;;;18860:17:0;;;;;;:9;:17;;;;;;;;:73;;;;18977:11;:19;;;;;;;;18976:20;:47;;;;-1:-1:-1;;;;;;19001:22:0;;;;;;:11;:22;;;;;;;;19000:23;18976:47;:93;;19063:6;18976:93;;;19026:34;19034:6;19042:9;19053:6;19026:7;:34::i;:::-;-1:-1:-1;;;;;19103:20:0;;;;;;:9;:20;;;;;;18954:115;;-1:-1:-1;19103:37:0;;18954:115;19103:24;:37::i;:::-;-1:-1:-1;;;;;19080:20:0;;;;;;;:9;:20;;;;;;;;:60;;;;19186:24;;;;;:16;:24;;;;;;;19182:118;;19231:10;;-1:-1:-1;;;;;19259:17:0;;;19231:10;19259:17;;;:9;:17;;;;;;;;19231:46;;-1:-1:-1;;;19231:46:0;;;;;9616:51:1;;;;9683:18;;;9676:34;19231:10:0;;;:19;;9589:18:1;;19231:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19227:62;;-1:-1:-1;;;;;19316:27:0;;;;;;:16;:27;;;;;;;;19312:128;;19364:10;;-1:-1:-1;;;;;19395:20:0;;;19364:10;19395:20;;;:9;:20;;;;;;;;19364:52;;-1:-1:-1;;;19364:52:0;;;;;9616:51:1;;;;9683:18;;;9676:34;19364:10:0;;;:19;;9589:18:1;;19364:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19360:68;;19474:9;-1:-1:-1;;;;;19457:40:0;19466:6;-1:-1:-1;;;;;19457:40:0;;19485:11;19457:40;;;;160:25:1;;148:2;133:18;;14:177;19457:40:0;;;;;;;;-1:-1:-1;19515:4:0;;18109:1418;-1:-1:-1;;;;18109:1418:0:o;509:136::-;567:7;594:43;598:1;601;594:43;;;;;;;;;;;;;;;;;:3;:43::i;21077:921::-;12429:16;:23;;-1:-1:-1;;;;12429:23:0;-1:-1:-1;;;12429:23:0;;;21176:4:::1;12429:23:::0;21158:24;;;:9:::1;:24;::::0;;;;;21240:11:::1;::::0;21158:24;;12429:23;21223:45:::1;::::0;21266:1:::1;::::0;21223:38:::1;::::0;21257:3:::1;::::0;21223:38;;21158:24;;21223:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;21194:74:::0;-1:-1:-1;21284:20:0::1;21307:36;:12:::0;21194:74;21307:16:::1;:36::i;:::-;21284:59;;21356:30;21373:12;21356:16;:30::i;:::-;21399:23;21425:21;21399:47;;21457:20;21480:43;21519:3;21480:34;21500:13;;21480:15;:19;;:34;;;;:::i;:43::-;21457:66;;21534:18;21555:41;21592:3;21555:32;21575:11;;21555:15;:19;;:32;;;;:::i;:41::-;21534:62;;21607:23;21633:48;21679:1;21633:41;21670:3;21633:32;21653:11;;21633:15;:19;;:32;;;;:::i;:48::-;21607:74:::0;-1:-1:-1;21704:19:0;;21700:91:::1;;21747:10;::::0;21739:40:::1;::::0;-1:-1:-1;;;;;21747:10:0;;::::1;::::0;21739:40;::::1;;;::::0;21768:10;;21747::::1;21739:40:::0;21747:10;21739:40;21768:10;21747;21739:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21700:91;21815:10;;;;;;;;;-1:-1:-1::0;;;;;21815:10:0::1;-1:-1:-1::0;;;;;21815:18:0::1;;21841:12;21815:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;21811:57:::0;21892:22;;21888:103:::1;;21930:49;21943:18;21963:15;21930:12;:49::i;:::-;-1:-1:-1::0;;12475:16:0;:24;;-1:-1:-1;;;;12475:24:0;;;-1:-1:-1;;;;;21077:921:0:o;15768:335::-;-1:-1:-1;;;;;15855:23:0;;15873:4;15855:23;;;;:41;;-1:-1:-1;15892:4:0;;-1:-1:-1;;;;;15882:14:0;;;15892:4;;15882:14;;15855:41;15847:50;;;;;;-1:-1:-1;;;;;15908:24:0;;;;;;:16;:24;;;;;:33;;-1:-1:-1;;15908:33:0;;;;;;;;;;;;15952:144;;15977:10;;:30;;-1:-1:-1;;;15977:30:0;;-1:-1:-1;;;;;9634:32:1;;;15977:30:0;;;9616:51:1;15977:10:0;9683:18:1;;;9676:34;15977:10:0;;;;:19;;9589:18:1;;15977:30:0;9442:274:1;15952:144:0;16038:10;;-1:-1:-1;;;;;16066:17:0;;;16038:10;16066:17;;;:9;:17;;;;;;;;16038:46;;-1:-1:-1;;;16038:46:0;;;;;9616:51:1;;;;9683:18;;;9676:34;16038:10:0;;;:19;;9589:18:1;;16038:46:0;9442:274:1;1243:345:0;1329:7;1431:12;1424:5;1416:28;;;;-1:-1:-1;;;1416:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1455:9:0;1467:5;1471:1;1467;:5;:::i;19539:330::-;19669:53;;;;;;;;;;;-1:-1:-1;;;19669:53:0;;;;;;;;-1:-1:-1;;;;;19669:17:0;;19632:4;19669:17;;;:9;:17;;;;;;;:53;;19691:6;;19669:21;:53::i;:::-;-1:-1:-1;;;;;19649:17:0;;;;;;;:9;:17;;;;;;:73;;;;19756:20;;;;;;;:32;;19781:6;19756:24;:32::i;:::-;-1:-1:-1;;;;;19733:20:0;;;;;;;:9;:20;;;;;;;:55;;;;19804:35;;;;;;;;;;19832:6;160:25:1;;148:2;133:18;;14:177;19804:35:0;;;;;;;;-1:-1:-1;19857:4:0;19539:330;;;;;:::o;322:181::-;380:7;;412:5;416:1;412;:5;:::i;:::-;400:17;;441:1;436;:6;;428:46;;;;-1:-1:-1;;;428:46:0;;10565:2:1;428:46:0;;;10547:21:1;10604:2;10584:18;;;10577:30;10643:29;10623:18;;;10616:57;10690:18;;428:46:0;10363:351:1;19883:427:0;20023:4;;19969:7;;;;-1:-1:-1;;;;;20023:17:0;;;:4;;:17;:36;;20053:6;;20023:36;;;20043:7;;20023:36;19999:60;-1:-1:-1;20070:17:0;20090:34;20120:3;20090:25;:6;19999:60;20090:10;:25::i;:34::-;20182:4;20164:24;;;;:9;:24;;;;;;20070:54;;-1:-1:-1;20164:39:0;;20070:54;20164:28;:39::i;:::-;20155:4;20137:24;;;;:9;:24;;;;;;;:66;;;;20219:42;;-1:-1:-1;;;;;20219:42:0;;;;;;;20251:9;160:25:1;;148:2;133:18;;14:177;20219:42:0;;;;;;;;20281:21;:6;20292:9;20281:10;:21::i;:::-;20274:28;19883:427;-1:-1:-1;;;;;;19883:427:0:o;849:250::-;907:7;931:1;936;931:6;927:47;;-1:-1:-1;961:1:0;954:8;;927:47;986:9;998:5;1002:1;998;:5;:::i;:::-;986:17;-1:-1:-1;1031:1:0;1022:5;1026:1;986:17;1022:5;:::i;:::-;:10;1014:56;;;;-1:-1:-1;;;1014:56:0;;11094:2:1;1014:56:0;;;11076:21:1;11133:2;11113:18;;;11106:30;11172:34;11152:18;;;11145:62;-1:-1:-1;;;11223:18:1;;;11216:31;11264:19;;1014:56:0;10892:397:1;20322:460:0;20414:16;;;20428:1;20414:16;;;;;;;;20390:21;;20414:16;;;;;;;;;;-1:-1:-1;20414:16:0;20390:40;;20459:4;20441;20446:1;20441:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20441:23:0;;;:7;;;;;;;;;;:23;;;;20485:6;;:13;;;-1:-1:-1;;;20485:13:0;;;;:6;;;;;:11;;:13;;;;;20441:7;;20485:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20475:4;20480:1;20475:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20475:23:0;;;-1:-1:-1;;;;;20475:23:0;;;;;20511:35;20527:4;20534:11;20511:7;:35::i;:::-;-1:-1:-1;20559:6:0;;:215;;-1:-1:-1;;;20559:215:0;;-1:-1:-1;;;;;20559:6:0;;;;:57;;:215;;20631:11;;20559:6;;20701:4;;20728;;20748:15;;20559:215;;;:::i;20790:279::-;20871:6;;21012:8;;20871:190;;-1:-1:-1;;;20871:190:0;;20934:4;20871:190;;;12876:34:1;12926:18;;;12919:34;;;20871:6:0;12969:18:1;;;12962:34;;;13012:18;;;13005:34;-1:-1:-1;;;;;21012:8:0;;;13055:19:1;;;13048:44;21035:15:0;13108:19:1;;;13101:35;20871:6:0;;;:22;;20901:9;;12810:19:1;;20871:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2046:247::-;2105:6;2158:2;2146:9;2137:7;2133:23;2129:32;2126:52;;;2174:1;2171;2164:12;2126:52;2213:9;2200:23;2232:31;2257:5;2232:31;:::i;2298:248::-;2366:6;2374;2427:2;2415:9;2406:7;2402:23;2398:32;2395:52;;;2443:1;2440;2433:12;2395:52;-1:-1:-1;;2466:23:1;;;2536:2;2521:18;;;2508:32;;-1:-1:-1;2298:248:1:o;2551:316::-;2628:6;2636;2644;2697:2;2685:9;2676:7;2672:23;2668:32;2665:52;;;2713:1;2710;2703:12;2665:52;-1:-1:-1;;2736:23:1;;;2806:2;2791:18;;2778:32;;-1:-1:-1;2857:2:1;2842:18;;;2829:32;;2551:316;-1:-1:-1;2551:316:1:o;3269:160::-;3334:20;;3390:13;;3383:21;3373:32;;3363:60;;3419:1;3416;3409:12;3434:248;3499:6;3507;3560:2;3548:9;3539:7;3535:23;3531:32;3528:52;;;3576:1;3573;3566:12;3528:52;3599:26;3615:9;3599:26;:::i;3687:180::-;3746:6;3799:2;3787:9;3778:7;3774:23;3770:32;3767:52;;;3815:1;3812;3805:12;3767:52;-1:-1:-1;3838:23:1;;3687:180;-1:-1:-1;3687:180:1:o;4107:315::-;4172:6;4180;4233:2;4221:9;4212:7;4208:23;4204:32;4201:52;;;4249:1;4246;4239:12;4201:52;4288:9;4275:23;4307:31;4332:5;4307:31;:::i;:::-;4357:5;-1:-1:-1;4381:35:1;4412:2;4397:18;;4381:35;:::i;:::-;4371:45;;4107:315;;;;;:::o;4687:127::-;4748:10;4743:3;4739:20;4736:1;4729:31;4779:4;4776:1;4769:15;4803:4;4800:1;4793:15;4819:1121;4903:6;4934:2;4977;4965:9;4956:7;4952:23;4948:32;4945:52;;;4993:1;4990;4983:12;4945:52;5033:9;5020:23;5062:18;5103:2;5095:6;5092:14;5089:34;;;5119:1;5116;5109:12;5089:34;5157:6;5146:9;5142:22;5132:32;;5202:7;5195:4;5191:2;5187:13;5183:27;5173:55;;5224:1;5221;5214:12;5173:55;5260:2;5247:16;5282:2;5278;5275:10;5272:36;;;5288:18;;:::i;:::-;5334:2;5331:1;5327:10;5366:2;5360:9;5429:2;5425:7;5420:2;5416;5412:11;5408:25;5400:6;5396:38;5484:6;5472:10;5469:22;5464:2;5452:10;5449:18;5446:46;5443:72;;;5495:18;;:::i;:::-;5531:2;5524:22;5581:18;;;5615:15;;;;-1:-1:-1;5657:11:1;;;5653:20;;;5685:19;;;5682:39;;;5717:1;5714;5707:12;5682:39;5741:11;;;;5761:148;5777:6;5772:3;5769:15;5761:148;;;5843:23;5862:3;5843:23;:::i;:::-;5831:36;;5794:12;;;;5887;;;;5761:148;;;5928:6;4819:1121;-1:-1:-1;;;;;;;;4819:1121:1:o;5945:388::-;6013:6;6021;6074:2;6062:9;6053:7;6049:23;6045:32;6042:52;;;6090:1;6087;6080:12;6042:52;6129:9;6116:23;6148:31;6173:5;6148:31;:::i;:::-;6198:5;-1:-1:-1;6255:2:1;6240:18;;6227:32;6268:33;6227:32;6268:33;:::i;:::-;6320:7;6310:17;;;5945:388;;;;;:::o;6564:329::-;6766:2;6748:21;;;6805:1;6785:18;;;6778:29;-1:-1:-1;;;6838:2:1;6823:18;;6816:36;6884:2;6869:18;;6564:329::o;7487:184::-;7557:6;7610:2;7598:9;7589:7;7585:23;7581:32;7578:52;;;7626:1;7623;7616:12;7578:52;-1:-1:-1;7649:16:1;;7487:184;-1:-1:-1;7487:184:1:o;7676:127::-;7737:10;7732:3;7728:20;7725:1;7718:31;7768:4;7765:1;7758:15;7792:4;7789:1;7782:15;7808:127;7869:10;7864:3;7860:20;7857:1;7850:31;7900:4;7897:1;7890:15;7924:4;7921:1;7914:15;7940:135;7979:3;8000:17;;;7997:43;;8020:18;;:::i;:::-;-1:-1:-1;8067:1:1;8056:13;;7940:135::o;8296:125::-;8336:4;8364:1;8361;8358:8;8355:34;;;8369:18;;:::i;:::-;-1:-1:-1;8406:9:1;;8296:125::o;10008:217::-;10048:1;10074;10064:132;;10118:10;10113:3;10109:20;10106:1;10099:31;10153:4;10150:1;10143:15;10181:4;10178:1;10171:15;10064:132;-1:-1:-1;10210:9:1;;10008:217::o;10230:128::-;10270:3;10301:1;10297:6;10294:1;10291:13;10288:39;;;10307:18;;:::i;:::-;-1:-1:-1;10343:9:1;;10230:128::o;10719:168::-;10759:7;10825:1;10821;10817:6;10813:14;10810:1;10807:21;10802:1;10795:9;10788:17;10784:45;10781:71;;;10832:18;;:::i;:::-;-1:-1:-1;10872:9:1;;10719:168::o;11294:251::-;11364:6;11417:2;11405:9;11396:7;11392:23;11388:32;11385:52;;;11433:1;11430;11423:12;11385:52;11465:9;11459:16;11484:31;11509:5;11484:31;:::i;11550:980::-;11812:4;11860:3;11849:9;11845:19;11891:6;11880:9;11873:25;11917:2;11955:6;11950:2;11939:9;11935:18;11928:34;11998:3;11993:2;11982:9;11978:18;11971:31;12022:6;12057;12051:13;12088:6;12080;12073:22;12126:3;12115:9;12111:19;12104:26;;12165:2;12157:6;12153:15;12139:29;;12186:1;12196:195;12210:6;12207:1;12204:13;12196:195;;;12275:13;;-1:-1:-1;;;;;12271:39:1;12259:52;;12366:15;;;;12331:12;;;;12307:1;12225:9;12196:195;;;-1:-1:-1;;;;;;;12447:32:1;;;;12442:2;12427:18;;12420:60;-1:-1:-1;;;12511:3:1;12496:19;12489:35;12408:3;11550:980;-1:-1:-1;;;11550:980:1:o;13147:306::-;13235:6;13243;13251;13304:2;13292:9;13283:7;13279:23;13275:32;13272:52;;;13320:1;13317;13310:12;13272:52;13349:9;13343:16;13333:26;;13399:2;13388:9;13384:18;13378:25;13368:35;;13443:2;13432:9;13428:18;13422:25;13412:35;;13147:306;;;;;:::o

Swarm Source

ipfs://b7683b1f6ccf83ca89a9ef72c751c4a5b5634d4b52b8d10c4b09e88b8fdc2b5e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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