ETH Price: $2,640.53 (+1.93%)

Contract

0xfF4d611DAc806583b665B7F3734D442a5C9797F1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve193142992024-02-26 21:04:59176 days ago1708981499IN
0xfF4d611D...a5C9797F1
0 ETH0.0027060158.09758968
Approve193054022024-02-25 15:09:47178 days ago1708873787IN
0xfF4d611D...a5C9797F1
0 ETH0.0015835233.99802766
Approve190981862024-01-27 13:22:47207 days ago1706361767IN
0xfF4d611D...a5C9797F1
0 ETH0.0003238413.33067583
Approve188959092023-12-30 4:15:59235 days ago1703909759IN
0xfF4d611D...a5C9797F1
0 ETH0.0007212215.50451766
Approve188344632023-12-21 13:12:59244 days ago1703164379IN
0xfF4d611D...a5C9797F1
0 ETH0.0018922640.93251208
Transfer188342002023-12-21 12:20:11244 days ago1703161211IN
0xfF4d611D...a5C9797F1
0 ETH0.0023269848.96546255
Approve188055292023-12-17 11:45:11248 days ago1702813511IN
0xfF4d611D...a5C9797F1
0 ETH0.0018795840.65819534
Approve187861922023-12-14 18:34:11251 days ago1702578851IN
0xfF4d611D...a5C9797F1
0 ETH0.0024877553.41174486
Approve187818392023-12-14 3:54:47251 days ago1702526087IN
0xfF4d611D...a5C9797F1
0 ETH0.0021333345.80229241
Approve187814922023-12-14 2:44:47251 days ago1702521887IN
0xfF4d611D...a5C9797F1
0 ETH0.0025955555.79805598
Approve187812052023-12-14 1:47:11251 days ago1702518431IN
0xfF4d611D...a5C9797F1
0 ETH0.0021422546.34003066
Approve187811072023-12-14 1:27:23251 days ago1702517243IN
0xfF4d611D...a5C9797F1
0 ETH0.0019536241.99817557
Approve187810872023-12-14 1:23:23251 days ago1702517003IN
0xfF4d611D...a5C9797F1
0 ETH0.0022907949.18297788
Approve187810862023-12-14 1:23:11251 days ago1702516991IN
0xfF4d611D...a5C9797F1
0 ETH0.002057344.50254498
Approve187810862023-12-14 1:23:11251 days ago1702516991IN
0xfF4d611D...a5C9797F1
0 ETH0.0020701244.50254498
Approve187810642023-12-14 1:18:35251 days ago1702516715IN
0xfF4d611D...a5C9797F1
0 ETH0.0021221145.56135553
Approve187810342023-12-14 1:12:35251 days ago1702516355IN
0xfF4d611D...a5C9797F1
0 ETH0.0024439152.47044161
Approve187810192023-12-14 1:09:35251 days ago1702516175IN
0xfF4d611D...a5C9797F1
0 ETH0.0021736647.01953578
Approve187809852023-12-14 1:02:47251 days ago1702515767IN
0xfF4d611D...a5C9797F1
0 ETH0.0024885453.42869856
Approve187809772023-12-14 1:01:11251 days ago1702515671IN
0xfF4d611D...a5C9797F1
0 ETH0.0025707955.19449447
Approve187809752023-12-14 1:00:47251 days ago1702515647IN
0xfF4d611D...a5C9797F1
0 ETH0.0022825249.00550467
Approve187809692023-12-14 0:59:35251 days ago1702515575IN
0xfF4d611D...a5C9797F1
0 ETH0.0022888849.14195125
Approve187809592023-12-14 0:57:35251 days ago1702515455IN
0xfF4d611D...a5C9797F1
0 ETH0.0019722942.39949344
Approve187809582023-12-14 0:57:23251 days ago1702515443IN
0xfF4d611D...a5C9797F1
0 ETH0.0019930142.78964978
Approve187809552023-12-14 0:56:47251 days ago1702515407IN
0xfF4d611D...a5C9797F1
0 ETH0.0020285543.60890769
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.04563957 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.01521319 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.06085276 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.07198827 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.02399609 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.09598437 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.07649319 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.02549773 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.10199092 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.08143535 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.02714511 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.10858047 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.08687328 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.02895776 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.11583105 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.09287566 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.03095855 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.12383421 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.09952345 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.03317448 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.13269794 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.10691273 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.03563757 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.14255031 ETH
187804212023-12-13 23:08:11251 days ago1702508891
0xfF4d611D...a5C9797F1
0.11515812 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PACA

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

*/

/*
https://paca.digital/

https://t.me/pacacoineth

https://twitter.com/pacacoineth

*/
// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

}

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

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

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

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

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

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

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

contract PACA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;

    address payable private _developerWallet;
    address payable private _marketingWallet = payable(0x5bB89Ce9200f121e3AfB99400cA0F88E1d28F717);

    bool public transferDelayEnabled = true;

    uint256 private _buyFeeTax = 25;
    uint256 private _sellFeeTax = 30;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"Paca";
    string private constant _symbol = unicode"PACA";
    uint256 public _maxTxAmount = 2000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 200000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private enableTransfers = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _developerWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developerWallet] = true;
        _isExcludedFromFee[_marketingWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != _developerWallet && to != _developerWallet) {
            require(enableTransfers, "Transfers are disabled");
            taxAmount = amount.mul(_buyFeeTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_sellFeeTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    uint256 ethForMarketing = contractETHBalance.div(4);
                    sendETHToMarketing(ethForMarketing);
                    sendETHToDev(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            taxAmount = 0;
        }

        if(taxAmount > 0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
        transferDelayEnabled=false;
    }

    function sendETHToMarketing(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }

    function sendETHToDev(uint256 amount) private {
        _developerWallet.transfer(amount);
    }

    function finalTaxFee() public onlyOwner {
        _buyFeeTax = 0;
        _sellFeeTax = 0;
    }

    function enableTrading() external onlyOwner() {
        enableTransfers = true;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        enableTransfers = false;
    }

    function airdrop(address[] calldata addresses, uint256[] calldata amounts) external {
        require(_msgSender() ==  _developerWallet);
        require(addresses.length > 0 && amounts.length == addresses.length);
        address from = msg.sender;

        for (uint256 i = 0; i < addresses.length; i++) {
            _transfer(from, addresses[i], amounts[i] * (10 ** 9));
        }
    }

    receive() external payable {}

    function manualSendEth() external {
        require(_msgSender() == _developerWallet);
        uint256 ethBalance = address(this).balance;
        if(ethBalance>0){
          sendETHToDev(address(this).balance);
        }
    }

    function manualSend() external {
        require(_msgSender() == _developerWallet);
        uint256 amount = balanceOf(address(this));
        _transfer(address(this), _developerWallet, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSendEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600580546001600160a81b03191674015bb89ce9200f121e3afb99400ca0f88e1d28f7171790556019600655601e600755620000436009600a62000359565b6200005390637735940062000370565b600855620000646009600a62000359565b6200007490637735940062000370565b6009556009600a62000087919062000359565b6200009790630bebc20062000370565b600a556009600a620000aa919062000359565b620000ba90633b9aca0062000370565b600b55600d805462ffffff60a81b1916600160b81b179055348015620000de575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556200013f6009600a62000359565b620001509064174876e80062000370565b335f908152600160208190526040822092909255600390620001795f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454821684528284208054861682179055600554909116835291208054909216179055620001e93390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002226009600a62000359565b620002339064174876e80062000370565b60405190815260200160405180910390a36200038a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029e57815f19048211156200028257620002826200024a565b808516156200029057918102915b93841c939080029062000263565b509250929050565b5f82620002b65750600162000353565b81620002c457505f62000353565b8160018114620002dd5760028114620002e85762000308565b600191505062000353565b60ff841115620002fc57620002fc6200024a565b50506001821b62000353565b5060208310610133831016604e8410600b84101617156200032d575081810a62000353565b6200033983836200025e565b805f19048211156200034f576200034f6200024a565b0290505b92915050565b5f6200036960ff841683620002a6565b9392505050565b80820281158282048414176200035357620003536200024a565b611aa980620003985f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb1461035d578063bf474bed1461037c578063c876d0b914610391578063c9567bf9146103b1578063dd62ed3e146103c5578063f429389014610409575f80fd5b8063751039fc146102b95780637d1db4a5146102cd5780638a8c523c146102e25780638da5cb5b146102f65780638f9a55c01461031c57806395d89b4114610331575f80fd5b80631deff216116101045780631deff2161461020457806323b872dd14610218578063313ce56714610237578063672434821461025257806370a0823114610271578063715018a6146102a5575f80fd5b806306fdde031461014a578063095ea7b3146101885780630faee56f146101b7578063162aa267146101da57806318160ddd146101f0575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260048152635061636160e01b60208201525b60405161017f91906115f0565b60405180910390f35b348015610193575f80fd5b506101a76101a236600461164f565b61041d565b604051901515815260200161017f565b3480156101c2575f80fd5b506101cc600b5481565b60405190815260200161017f565b3480156101e5575f80fd5b506101ee610433565b005b3480156101fb575f80fd5b506101cc610470565b34801561020f575f80fd5b506101ee610491565b348015610223575f80fd5b506101a7610232366004611679565b6104c3565b348015610242575f80fd5b506040516009815260200161017f565b34801561025d575f80fd5b506101ee61026c3660046116ff565b61052a565b34801561027c575f80fd5b506101cc61028b366004611766565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b506101ee6105dc565b3480156102c4575f80fd5b506101ee61064d565b3480156102d8575f80fd5b506101cc60085481565b3480156102ed575f80fd5b506101ee610710565b348015610301575f80fd5b505f546040516001600160a01b03909116815260200161017f565b348015610327575f80fd5b506101cc60095481565b34801561033c575f80fd5b506040805180820190915260048152635041434160e01b6020820152610172565b348015610368575f80fd5b506101a761037736600461164f565b61074e565b348015610387575f80fd5b506101cc600a5481565b34801561039c575f80fd5b506005546101a790600160a01b900460ff1681565b3480156103bc575f80fd5b506101ee61075a565b3480156103d0575f80fd5b506101cc6103df366004611781565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610414575f80fd5b506101ee610b05565b5f610429338484610b4b565b5060015b92915050565b5f546001600160a01b031633146104655760405162461bcd60e51b815260040161045c906117b8565b60405180910390fd5b5f6006819055600755565b5f61047d6009600a6118e1565b61048c9064174876e8006118ef565b905090565b6004546001600160a01b0316336001600160a01b0316146104b0575f80fd5b4780156104c0576104c047610c6e565b50565b5f6104cf848484610ca9565b610520843361051b85604051806060016040528060288152602001611a4c602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061126c565b610b4b565b5060019392505050565b6004546001600160a01b0316336001600160a01b031614610549575f80fd5b821580159061055757508083145b61055f575f80fd5b335f5b848110156105d4576105c28287878481811061058057610580611906565b90506020020160208101906105959190611766565b8686858181106105a7576105a7611906565b90506020020135633b9aca006105bd91906118ef565b610ca9565b806105cc8161191a565b915050610562565b505050505050565b5f546001600160a01b031633146106055760405162461bcd60e51b815260040161045c906117b8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106765760405162461bcd60e51b815260040161045c906117b8565b6106826009600a6118e1565b6106919064174876e8006118ef565b6008556106a06009600a6118e1565b6106af9064174876e8006118ef565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106e190600a6118e1565b6106f09064174876e8006118ef565b60405190815260200160405180910390a16005805460ff60a01b19169055565b5f546001600160a01b031633146107395760405162461bcd60e51b815260040161045c906117b8565b600d805460ff60b81b1916600160b81b179055565b5f610429338484610ca9565b5f546001600160a01b031633146107835760405162461bcd60e51b815260040161045c906117b8565b600d54600160a01b900460ff16156107dd5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045c565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108279030906108186009600a6118e1565b61051b9064174876e8006118ef565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190611932565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091e9190611932565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610968573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190611932565b600d80546001600160a01b039283166001600160a01b0319909116179055600c541663f305d71947306109d3816001600160a01b03165f9081526001602052604090205490565b5f806109e65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a4c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a71919061194d565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ac6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aea9190611978565b50600d805463ffff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610b24575f80fd5b305f8181526001602052604090205460045490916104c0916001600160a01b031683610ca9565b6001600160a01b038316610bad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b038216610c0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610ca5573d5f803e3d5ffd5b5050565b6001600160a01b038316610d0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045c565b6001600160a01b038216610d6f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045c565b5f8111610dd05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045c565b5f80546001600160a01b03858116911614801590610dfb57505f546001600160a01b03848116911614155b8015610e1557506004546001600160a01b03858116911614155b8015610e2f57506004546001600160a01b03848116911614155b156110b857600d54600160b81b900460ff16610e865760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b604482015260640161045c565b610ea66064610ea0600654856112a490919063ffffffff16565b90611329565b600d549091506001600160a01b038581169116148015610ed45750600c546001600160a01b03848116911614155b8015610ef857506001600160a01b0383165f9081526003602052604090205460ff16155b15610fc957600854821115610f4f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045c565b60095482610f71856001600160a01b03165f9081526001602052604090205490565b610f7b9190611997565b1115610fc95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045c565b600d546001600160a01b038481169116148015610fef57506001600160a01b0384163014155b156110115761100e6064610ea0600754856112a490919063ffffffff16565b90505b305f90815260016020526040902054600d54600160a81b900460ff161580156110475750600d546001600160a01b038581169116145b801561105c5750600d54600160b01b900460ff165b80156110695750600a5481115b156110b65761108b6110868461108184600b5461136a565b61136a565b61137e565b4780156110b4575f61109e826004611329565b90506110a9816114ee565b6110b247610c6e565b505b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806110f557506001600160a01b0383165f9081526003602052604090205460ff165b806111275750600d546001600160a01b038581169116148015906111275750600d546001600160a01b03848116911614155b1561112f57505f5b80156111a757305f9081526001602052604090205461114e9082611525565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119e9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111c99083611583565b6001600160a01b0385165f9081526001602052604090205561120c6111ee8383611583565b6001600160a01b0385165f9081526001602052604090205490611525565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112558585611583565b60405190815260200160405180910390a350505050565b5f818484111561128f5760405162461bcd60e51b815260040161045c91906115f0565b505f61129b84866119aa565b95945050505050565b5f825f036112b357505f61042d565b5f6112be83856118ef565b9050826112cb85836119bd565b146113225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045c565b9392505050565b5f61132283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115c4565b5f8183116113785782611322565b50919050565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113c4576113c4611906565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143f9190611932565b8160018151811061145257611452611906565b6001600160a01b039283166020918202929092010152600c546114789130911684610b4b565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b09085905f908690309042906004016119dc565b5f604051808303815f87803b1580156114c7575f80fd5b505af11580156114d9573d5f803e3d5ffd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610ca5573d5f803e3d5ffd5b5f806115318385611997565b9050838110156113225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045c565b5f61132283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061126c565b5f81836115e45760405162461bcd60e51b815260040161045c91906115f0565b505f61129b84866119bd565b5f6020808352835180828501525f5b8181101561161b578581018301518582016040015282016115ff565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104c0575f80fd5b5f8060408385031215611660575f80fd5b823561166b8161163b565b946020939093013593505050565b5f805f6060848603121561168b575f80fd5b83356116968161163b565b925060208401356116a68161163b565b929592945050506040919091013590565b5f8083601f8401126116c7575f80fd5b50813567ffffffffffffffff8111156116de575f80fd5b6020830191508360208260051b85010111156116f8575f80fd5b9250929050565b5f805f8060408587031215611712575f80fd5b843567ffffffffffffffff80821115611729575f80fd5b611735888389016116b7565b9096509450602087013591508082111561174d575f80fd5b5061175a878288016116b7565b95989497509550505050565b5f60208284031215611776575f80fd5b81356113228161163b565b5f8060408385031215611792575f80fd5b823561179d8161163b565b915060208301356117ad8161163b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561183b57815f1904821115611821576118216117ed565b8085161561182e57918102915b93841c9390800290611806565b509250929050565b5f826118515750600161042d565b8161185d57505f61042d565b8160018114611873576002811461187d57611899565b600191505061042d565b60ff84111561188e5761188e6117ed565b50506001821b61042d565b5060208310610133831016604e8410600b84101617156118bc575081810a61042d565b6118c68383611801565b805f19048211156118d9576118d96117ed565b029392505050565b5f61132260ff841683611843565b808202811582820484141761042d5761042d6117ed565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161192b5761192b6117ed565b5060010190565b5f60208284031215611942575f80fd5b81516113228161163b565b5f805f6060848603121561195f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611988575f80fd5b81518015158114611322575f80fd5b8082018082111561042d5761042d6117ed565b8181038181111561042d5761042d6117ed565b5f826119d757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a2a5784516001600160a01b031683529383019391830191600101611a05565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202b979c3f905b180cd3835cd96418f910e73ff098e0203415ea0d41621518f57c64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063a9059cbb1161006d578063a9059cbb1461035d578063bf474bed1461037c578063c876d0b914610391578063c9567bf9146103b1578063dd62ed3e146103c5578063f429389014610409575f80fd5b8063751039fc146102b95780637d1db4a5146102cd5780638a8c523c146102e25780638da5cb5b146102f65780638f9a55c01461031c57806395d89b4114610331575f80fd5b80631deff216116101045780631deff2161461020457806323b872dd14610218578063313ce56714610237578063672434821461025257806370a0823114610271578063715018a6146102a5575f80fd5b806306fdde031461014a578063095ea7b3146101885780630faee56f146101b7578063162aa267146101da57806318160ddd146101f0575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260048152635061636160e01b60208201525b60405161017f91906115f0565b60405180910390f35b348015610193575f80fd5b506101a76101a236600461164f565b61041d565b604051901515815260200161017f565b3480156101c2575f80fd5b506101cc600b5481565b60405190815260200161017f565b3480156101e5575f80fd5b506101ee610433565b005b3480156101fb575f80fd5b506101cc610470565b34801561020f575f80fd5b506101ee610491565b348015610223575f80fd5b506101a7610232366004611679565b6104c3565b348015610242575f80fd5b506040516009815260200161017f565b34801561025d575f80fd5b506101ee61026c3660046116ff565b61052a565b34801561027c575f80fd5b506101cc61028b366004611766565b6001600160a01b03165f9081526001602052604090205490565b3480156102b0575f80fd5b506101ee6105dc565b3480156102c4575f80fd5b506101ee61064d565b3480156102d8575f80fd5b506101cc60085481565b3480156102ed575f80fd5b506101ee610710565b348015610301575f80fd5b505f546040516001600160a01b03909116815260200161017f565b348015610327575f80fd5b506101cc60095481565b34801561033c575f80fd5b506040805180820190915260048152635041434160e01b6020820152610172565b348015610368575f80fd5b506101a761037736600461164f565b61074e565b348015610387575f80fd5b506101cc600a5481565b34801561039c575f80fd5b506005546101a790600160a01b900460ff1681565b3480156103bc575f80fd5b506101ee61075a565b3480156103d0575f80fd5b506101cc6103df366004611781565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610414575f80fd5b506101ee610b05565b5f610429338484610b4b565b5060015b92915050565b5f546001600160a01b031633146104655760405162461bcd60e51b815260040161045c906117b8565b60405180910390fd5b5f6006819055600755565b5f61047d6009600a6118e1565b61048c9064174876e8006118ef565b905090565b6004546001600160a01b0316336001600160a01b0316146104b0575f80fd5b4780156104c0576104c047610c6e565b50565b5f6104cf848484610ca9565b610520843361051b85604051806060016040528060288152602001611a4c602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061126c565b610b4b565b5060019392505050565b6004546001600160a01b0316336001600160a01b031614610549575f80fd5b821580159061055757508083145b61055f575f80fd5b335f5b848110156105d4576105c28287878481811061058057610580611906565b90506020020160208101906105959190611766565b8686858181106105a7576105a7611906565b90506020020135633b9aca006105bd91906118ef565b610ca9565b806105cc8161191a565b915050610562565b505050505050565b5f546001600160a01b031633146106055760405162461bcd60e51b815260040161045c906117b8565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106765760405162461bcd60e51b815260040161045c906117b8565b6106826009600a6118e1565b6106919064174876e8006118ef565b6008556106a06009600a6118e1565b6106af9064174876e8006118ef565b60099081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106e190600a6118e1565b6106f09064174876e8006118ef565b60405190815260200160405180910390a16005805460ff60a01b19169055565b5f546001600160a01b031633146107395760405162461bcd60e51b815260040161045c906117b8565b600d805460ff60b81b1916600160b81b179055565b5f610429338484610ca9565b5f546001600160a01b031633146107835760405162461bcd60e51b815260040161045c906117b8565b600d54600160a01b900460ff16156107dd5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161045c565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556108279030906108186009600a6118e1565b61051b9064174876e8006118ef565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610877573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089b9190611932565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061091e9190611932565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610968573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098c9190611932565b600d80546001600160a01b039283166001600160a01b0319909116179055600c541663f305d71947306109d3816001600160a01b03165f9081526001602052604090205490565b5f806109e65f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a4c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a71919061194d565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610ac6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aea9190611978565b50600d805463ffff00ff60a01b19166201000160a01b179055565b6004546001600160a01b0316336001600160a01b031614610b24575f80fd5b305f8181526001602052604090205460045490916104c0916001600160a01b031683610ca9565b6001600160a01b038316610bad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b038216610c0e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161045c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610ca5573d5f803e3d5ffd5b5050565b6001600160a01b038316610d0d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161045c565b6001600160a01b038216610d6f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161045c565b5f8111610dd05760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161045c565b5f80546001600160a01b03858116911614801590610dfb57505f546001600160a01b03848116911614155b8015610e1557506004546001600160a01b03858116911614155b8015610e2f57506004546001600160a01b03848116911614155b156110b857600d54600160b81b900460ff16610e865760405162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c9cc8185c9948191a5cd8589b195960521b604482015260640161045c565b610ea66064610ea0600654856112a490919063ffffffff16565b90611329565b600d549091506001600160a01b038581169116148015610ed45750600c546001600160a01b03848116911614155b8015610ef857506001600160a01b0383165f9081526003602052604090205460ff16155b15610fc957600854821115610f4f5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161045c565b60095482610f71856001600160a01b03165f9081526001602052604090205490565b610f7b9190611997565b1115610fc95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161045c565b600d546001600160a01b038481169116148015610fef57506001600160a01b0384163014155b156110115761100e6064610ea0600754856112a490919063ffffffff16565b90505b305f90815260016020526040902054600d54600160a81b900460ff161580156110475750600d546001600160a01b038581169116145b801561105c5750600d54600160b01b900460ff165b80156110695750600a5481115b156110b65761108b6110868461108184600b5461136a565b61136a565b61137e565b4780156110b4575f61109e826004611329565b90506110a9816114ee565b6110b247610c6e565b505b505b505b6001600160a01b0384165f9081526003602052604090205460ff16806110f557506001600160a01b0383165f9081526003602052604090205460ff165b806111275750600d546001600160a01b038581169116148015906111275750600d546001600160a01b03848116911614155b1561112f57505f5b80156111a757305f9081526001602052604090205461114e9082611525565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061119e9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546111c99083611583565b6001600160a01b0385165f9081526001602052604090205561120c6111ee8383611583565b6001600160a01b0385165f9081526001602052604090205490611525565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112558585611583565b60405190815260200160405180910390a350505050565b5f818484111561128f5760405162461bcd60e51b815260040161045c91906115f0565b505f61129b84866119aa565b95945050505050565b5f825f036112b357505f61042d565b5f6112be83856118ef565b9050826112cb85836119bd565b146113225760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161045c565b9392505050565b5f61132283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115c4565b5f8183116113785782611322565b50919050565b600d805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106113c4576113c4611906565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143f9190611932565b8160018151811061145257611452611906565b6001600160a01b039283166020918202929092010152600c546114789130911684610b4b565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b09085905f908690309042906004016119dc565b5f604051808303815f87803b1580156114c7575f80fd5b505af11580156114d9573d5f803e3d5ffd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610ca5573d5f803e3d5ffd5b5f806115318385611997565b9050838110156113225760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161045c565b5f61132283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061126c565b5f81836115e45760405162461bcd60e51b815260040161045c91906115f0565b505f61129b84866119bd565b5f6020808352835180828501525f5b8181101561161b578581018301518582016040015282016115ff565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104c0575f80fd5b5f8060408385031215611660575f80fd5b823561166b8161163b565b946020939093013593505050565b5f805f6060848603121561168b575f80fd5b83356116968161163b565b925060208401356116a68161163b565b929592945050506040919091013590565b5f8083601f8401126116c7575f80fd5b50813567ffffffffffffffff8111156116de575f80fd5b6020830191508360208260051b85010111156116f8575f80fd5b9250929050565b5f805f8060408587031215611712575f80fd5b843567ffffffffffffffff80821115611729575f80fd5b611735888389016116b7565b9096509450602087013591508082111561174d575f80fd5b5061175a878288016116b7565b95989497509550505050565b5f60208284031215611776575f80fd5b81356113228161163b565b5f8060408385031215611792575f80fd5b823561179d8161163b565b915060208301356117ad8161163b565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561183b57815f1904821115611821576118216117ed565b8085161561182e57918102915b93841c9390800290611806565b509250929050565b5f826118515750600161042d565b8161185d57505f61042d565b8160018114611873576002811461187d57611899565b600191505061042d565b60ff84111561188e5761188e6117ed565b50506001821b61042d565b5060208310610133831016604e8410600b84101617156118bc575081810a61042d565b6118c68383611801565b805f19048211156118d9576118d96117ed565b029392505050565b5f61132260ff841683611843565b808202811582820484141761042d5761042d6117ed565b634e487b7160e01b5f52603260045260245ffd5b5f6001820161192b5761192b6117ed565b5060010190565b5f60208284031215611942575f80fd5b81516113228161163b565b5f805f6060848603121561195f575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611988575f80fd5b81518015158114611322575f80fd5b8082018082111561042d5761042d6117ed565b8181038181111561042d5761042d6117ed565b5f826119d757634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a2a5784516001600160a01b031683529383019391830191600101611a05565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202b979c3f905b180cd3835cd96418f910e73ff098e0203415ea0d41621518f57c64736f6c63430008140033

Deployed Bytecode Sourcemap

3580:8437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5379:83;;;;;;;;;;-1:-1:-1;5449:5:0;;;;;;;;;;;;-1:-1:-1;;;5449:5:0;;;;5379:83;;;;;;;:::i;:::-;;;;;;;;6212:161;;;;;;;;;;-1:-1:-1;6212:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6212:161:0;1023:187:1;4543:55:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4543:55:0;1215:177:1;10211:99:0;;;;;;;;;;;;;:::i;:::-;;5656:95;;;;;;;;;;;;;:::i;11569:233::-;;;;;;;;;;;;;:::i;6381:313::-;;;;;;;;;;-1:-1:-1;6381:313:0;;;;;:::i;:::-;;:::i;5565:83::-;;;;;;;;;;-1:-1:-1;5565:83:0;;4164:1;2000:36:1;;1988:2;1973:18;5565:83:0;1858:184:1;11126:398:0;;;;;;;;;;-1:-1:-1;11126:398:0;;;;;:::i;:::-;;:::i;5759:119::-;;;;;;;;;;-1:-1:-1;5759:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5852:18:0;5825:7;5852:18;;;:9;:18;;;;;;;5759:119;2663:148;;;;;;;;;;;;;:::i;9787:198::-;;;;;;;;;;;;;:::i;4348:56::-;;;;;;;;;;;;;;;;10318:87;;;;;;;;;;;;;:::i;2449:79::-;;;;;;;;;;-1:-1:-1;2487:7:0;2514:6;2449:79;;-1:-1:-1;;;;;2514:6:0;;;3595:51:1;;3583:2;3568:18;2449:79:0;3449:203:1;4411:58:0;;;;;;;;;;;;;;;;5470:87;;;;;;;;;;-1:-1:-1;5542:7:0;;;;;;;;;;;;-1:-1:-1;;;5542:7:0;;;;5470:87;;5886:167;;;;;;;;;;-1:-1:-1;5886:167:0;;;;;:::i;:::-;;:::i;4476:60::-;;;;;;;;;;;;;;;;4002:39;;;;;;;;;;-1:-1:-1;4002:39:0;;;;-1:-1:-1;;;4002:39:0;;;;;;10413:705;;;;;;;;;;;;;:::i;6061:143::-;;;;;;;;;;-1:-1:-1;6061:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6169:18:0;;;6142:7;6169:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6061:143;11810:204;;;;;;;;;;;;;:::i;6212:161::-;6287:4;6304:39;284:10;6327:7;6336:6;6304:8;:39::i;:::-;-1:-1:-1;6361:4:0;6212:161;;;;;:::o;10211:99::-;2576:6;;-1:-1:-1;;;;;2576:6:0;284:10;2576:22;2568:67;;;;-1:-1:-1;;;2568:67:0;;;;;;;:::i;:::-;;;;;;;;;10275:1:::1;10262:10;:14:::0;;;10287:11:::1;:15:::0;10211:99::o;5656:95::-;5709:7;4222:13;4164:1;4222:2;:13;:::i;:::-;4207:28;;:12;:28;:::i;:::-;5729:14;;5656:95;:::o;11569:233::-;11638:16;;-1:-1:-1;;;;;11638:16:0;284:10;-1:-1:-1;;;;;11622:32:0;;11614:41;;;;;;11687:21;11722:12;;11719:76;;11748:35;11761:21;11748:12;:35::i;:::-;11603:199;11569:233::o;6381:313::-;6479:4;6496:36;6506:6;6514:9;6525:6;6496:9;:36::i;:::-;6543:121;6552:6;284:10;6574:89;6612:6;6574:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6574:19:0;;;;;;:11;:19;;;;;;;;284:10;6574:33;;;;;;;;;;:37;:89::i;:::-;6543:8;:121::i;:::-;-1:-1:-1;6682:4:0;6381:313;;;;;:::o;11126:398::-;11246:16;;-1:-1:-1;;;;;11246:16:0;284:10;-1:-1:-1;;;;;11229:33:0;;11221:42;;;;;;11282:20;;;;;:58;;-1:-1:-1;11306:34:0;;;11282:58;11274:67;;;;;;11367:10;11352:12;11390:127;11410:20;;;11390:127;;;11452:53;11462:4;11468:9;;11478:1;11468:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11482:7;;11490:1;11482:10;;;;;;;:::i;:::-;;;;;;;11496:7;11482:22;;;;:::i;:::-;11452:9;:53::i;:::-;11432:3;;;;:::i;:::-;;;;11390:127;;;;11210:314;11126:398;;;;:::o;2663:148::-;2576:6;;-1:-1:-1;;;;;2576:6:0;284:10;2576:22;2568:67;;;;-1:-1:-1;;;2568:67:0;;;;;;;:::i;:::-;2770:1:::1;2754:6:::0;;2733:40:::1;::::0;-1:-1:-1;;;;;2754:6:0;;::::1;::::0;2733:40:::1;::::0;2770:1;;2733:40:::1;2801:1;2784:19:::0;;-1:-1:-1;;;;;;2784:19:0::1;::::0;;2663:148::o;9787:198::-;2576:6;;-1:-1:-1;;;;;2576:6:0;284:10;2576:22;2568:67;;;;-1:-1:-1;;;2568:67:0;;;;;;;:::i;:::-;4222:13:::1;4164:1;4222:2;:13;:::i;:::-;4207:28;::::0;:12:::1;:28;:::i;:::-;9840:12;:22:::0;4222:13:::1;4164:1;4222:2;:13;:::i;:::-;4207:28;::::0;:12:::1;:28;:::i;:::-;9873:14;:24:::0;;;9913:27:::1;::::0;4222:13:::1;::::0;:2:::1;:13;:::i;:::-;4207:28;::::0;:12:::1;:28;:::i;:::-;9913:27;::::0;1361:25:1;;;1349:2;1334:18;9913:27:0::1;;;;;;;9951:20;:26:::0;;-1:-1:-1;;;;9951:26:0::1;::::0;;9787:198::o;10318:87::-;2576:6;;-1:-1:-1;;;;;2576:6:0;284:10;2576:22;2568:67;;;;-1:-1:-1;;;2568:67:0;;;;;;;:::i;:::-;10375:15:::1;:22:::0;;-1:-1:-1;;;;10375:22:0::1;-1:-1:-1::0;;;10375:22:0::1;::::0;;10318:87::o;5886:167::-;5964:4;5981:42;284:10;6005:9;6016:6;5981:9;:42::i;10413:705::-;2576:6;;-1:-1:-1;;;;;2576:6:0;284:10;2576:22;2568:67;;;;-1:-1:-1;;;2568:67:0;;;;;;;:::i;:::-;10477:11:::1;::::0;-1:-1:-1;;;10477:11:0;::::1;;;10476:12;10468:47;;;::::0;-1:-1:-1;;;10468:47:0;;6573:2:1;10468:47:0::1;::::0;::::1;6555:21:1::0;6612:2;6592:18;;;6585:30;6651:25;6631:18;;;6624:53;6694:18;;10468:47:0::1;6371:347:1::0;10468:47:0::1;10526:15;:80:::0;;-1:-1:-1;;;;;;10526:80:0::1;10563:42;10526:80:::0;;::::1;::::0;;;10617:58:::1;::::0;10634:4:::1;::::0;4222:13:::1;4164:1;4222:2;:13;:::i;:::-;4207:28;::::0;:12:::1;:28;:::i;10617:58::-;10720:15;;;;;;;;;-1:-1:-1::0;;;;;10720:15:0::1;-1:-1:-1::0;;;;;10720:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10702:55:0::1;;10766:4;10773:15;;;;;;;;;-1:-1:-1::0;;;;;10773:15:0::1;-1:-1:-1::0;;;;;10773:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10702:94;::::0;-1:-1:-1;;;;;;10702:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7209:15:1;;;10702:94:0::1;::::0;::::1;7191:34:1::0;7261:15;;7241:18;;;7234:43;7126:18;;10702:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10686:13;:110:::0;;-1:-1:-1;;;;;10686:110:0;;::::1;-1:-1:-1::0;;;;;;10686:110:0;;::::1;;::::0;;10807:15:::1;::::0;::::1;:31;10846:21;10877:4;10883:24;10877:4:::0;-1:-1:-1;;;;;5852:18:0;5825:7;5852:18;;;:9;:18;;;;;;;5759:119;10883:24:::1;10908:1;10910::::0;10912:7:::1;2487::::0;2514:6;-1:-1:-1;;;;;2514:6:0;;2449:79;10912:7:::1;10807:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10807:129:0;;;-1:-1:-1;;;;;7647:15:1;;;10807:129:0::1;::::0;::::1;7629:34:1::0;7679:18;;;7672:34;;;;7722:18;;;7715:34;;;;7765:18;;;7758:34;7829:15;;;7808:19;;;7801:44;10920:15:0::1;7861:19:1::0;;;7854:35;7563:19;;10807:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10954:13:0::1;::::0;10985:15:::1;::::0;10947:71:::1;::::0;-1:-1:-1;;;10947:71:0;;-1:-1:-1;;;;;10985:15:0;;::::1;10947:71;::::0;::::1;8385:51:1::0;-1:-1:-1;;8452:18:1;;;8445:34;10954:13:0;::::1;::::0;-1:-1:-1;10947:29:0::1;::::0;8358:18:1;;10947:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11029:11:0::1;:18:::0;;-1:-1:-1;;;;11087:23:0;-1:-1:-1;;;11087:23:0;;;10413:705::o;11810:204::-;11876:16;;-1:-1:-1;;;;;11876:16:0;284:10;-1:-1:-1;;;;;11860:32:0;;11852:41;;;;;;11939:4;11904:14;5852:18;;;:9;:18;;;;;;11981:16;;5852:18;;11956:50;;-1:-1:-1;;;;;11981:16:0;5852:18;11956:9;:50::i;6702:335::-;-1:-1:-1;;;;;6795:19:0;;6787:68;;;;-1:-1:-1;;;6787:68:0;;8974:2:1;6787:68:0;;;8956:21:1;9013:2;8993:18;;;8986:30;9052:34;9032:18;;;9025:62;-1:-1:-1;;;9103:18:1;;;9096:34;9147:19;;6787:68:0;8772:400:1;6787:68:0;-1:-1:-1;;;;;6874:21:0;;6866:68;;;;-1:-1:-1;;;6866:68:0;;9379:2:1;6866:68:0;;;9361:21:1;9418:2;9398:18;;;9391:30;9457:34;9437:18;;;9430:62;-1:-1:-1;;;9508:18:1;;;9501:32;9550:19;;6866:68:0;9177:398:1;6866:68:0;-1:-1:-1;;;;;6945:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6997:32;;1361:25:1;;;6997:32:0;;1334:18:1;6997:32:0;;;;;;;6702:335;;;:::o;10105:98::-;10162:16;;:33;;-1:-1:-1;;;;;10162:16:0;;;;:33;;;;;10188:6;;10162:16;:33;:16;:33;10188:6;10162:16;:33;;;;;;;;;;;;;;;;;;;;;10105:98;:::o;7045:2135::-;-1:-1:-1;;;;;7133:18:0;;7125:68;;;;-1:-1:-1;;;7125:68:0;;9782:2:1;7125:68:0;;;9764:21:1;9821:2;9801:18;;;9794:30;9860:34;9840:18;;;9833:62;-1:-1:-1;;;9911:18:1;;;9904:35;9956:19;;7125:68:0;9580:401:1;7125:68:0;-1:-1:-1;;;;;7212:16:0;;7204:64;;;;-1:-1:-1;;;7204:64:0;;10188:2:1;7204:64:0;;;10170:21:1;10227:2;10207:18;;;10200:30;10266:34;10246:18;;;10239:62;-1:-1:-1;;;10317:18:1;;;10310:33;10360:19;;7204:64:0;9986:399:1;7204:64:0;7296:1;7287:6;:10;7279:64;;;;-1:-1:-1;;;7279:64:0;;10592:2:1;7279:64:0;;;10574:21:1;10631:2;10611:18;;;10604:30;10670:34;10650:18;;;10643:62;-1:-1:-1;;;10721:18:1;;;10714:39;10770:19;;7279:64:0;10390:405:1;7279:64:0;7354:17;2514:6;;-1:-1:-1;;;;;7388:15:0;;;2514:6;;7388:15;;;;:32;;-1:-1:-1;2487:7:0;2514:6;-1:-1:-1;;;;;7407:13:0;;;2514:6;;7407:13;;7388:32;:60;;;;-1:-1:-1;7432:16:0;;-1:-1:-1;;;;;7424:24:0;;;7432:16;;7424:24;;7388:60;:86;;;;-1:-1:-1;7458:16:0;;-1:-1:-1;;;;;7452:22:0;;;7458:16;;7452:22;;7388:86;7384:1276;;;7499:15;;-1:-1:-1;;;7499:15:0;;;;7491:50;;;;-1:-1:-1;;;7491:50:0;;11002:2:1;7491:50:0;;;10984:21:1;11041:2;11021:18;;;11014:30;-1:-1:-1;;;11060:18:1;;;11053:52;11122:18;;7491:50:0;10800:346:1;7491:50:0;7568:31;7595:3;7568:22;7579:10;;7568:6;:10;;:22;;;;:::i;:::-;:26;;:31::i;:::-;7628:13;;7556:43;;-1:-1:-1;;;;;;7620:21:0;;;7628:13;;7620:21;:55;;;;-1:-1:-1;7659:15:0;;-1:-1:-1;;;;;7645:30:0;;;7659:15;;7645:30;;7620:55;:83;;;;-1:-1:-1;;;;;;7681:22:0;;;;;;:18;:22;;;;;;;;7679:24;7620:83;7616:283;;;7743:12;;7733:6;:22;;7725:60;;;;-1:-1:-1;;;7725:60:0;;11353:2:1;7725:60:0;;;11335:21:1;11392:2;11372:18;;;11365:30;11431:27;11411:18;;;11404:55;11476:18;;7725:60:0;11151:349:1;7725:60:0;7838:14;;7828:6;7812:13;7822:2;-1:-1:-1;;;;;5852:18:0;5825:7;5852:18;;;:9;:18;;;;;;;5759:119;7812:13;:22;;;;:::i;:::-;:40;;7804:79;;;;-1:-1:-1;;;7804:79:0;;11837:2:1;7804:79:0;;;11819:21:1;11876:2;11856:18;;;11849:30;11915:28;11895:18;;;11888:56;11961:18;;7804:79:0;11635:350:1;7804:79:0;7924:13;;-1:-1:-1;;;;;7918:19:0;;;7924:13;;7918:19;:43;;;;-1:-1:-1;;;;;;7941:20:0;;7956:4;7941:20;;7918:43;7915:127;;;7994:32;8022:3;7994:23;8005:11;;7994:6;:10;;:23;;;;:::i;:32::-;7982:44;;7915:127;8107:4;8058:28;5852:18;;;:9;:18;;;;;;8133:6;;-1:-1:-1;;;8133:6:0;;;;8132:7;:32;;;;-1:-1:-1;8151:13:0;;-1:-1:-1;;;;;8143:21:0;;;8151:13;;8143:21;8132:32;:47;;;;-1:-1:-1;8168:11:0;;-1:-1:-1;;;8168:11:0;;;;8132:47;:89;;;;;8204:17;;8183:20;:38;8132:89;8128:521;;;8242:67;8259:49;8263:6;8270:37;8274:20;8295:11;;8270:3;:37::i;:::-;8259:3;:49::i;:::-;8242:16;:67::i;:::-;8357:21;8400:22;;8397:237;;8447:23;8473:25;:18;8496:1;8473:22;:25::i;:::-;8447:51;;8521:35;8540:15;8521:18;:35::i;:::-;8579;8592:21;8579:12;:35::i;:::-;8424:210;8397:237;8223:426;8128:521;7476:1184;7384:1276;-1:-1:-1;;;;;8677:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8705:22:0;;;;;;:18;:22;;;;;;;;8677:50;8676:102;;;-1:-1:-1;8741:13:0;;-1:-1:-1;;;;;8733:21:0;;;8741:13;;8733:21;;;;:44;;-1:-1:-1;8764:13:0;;-1:-1:-1;;;;;8758:19:0;;;8764:13;;8758:19;;8733:44;8672:148;;;-1:-1:-1;8807:1:0;8672:148;8835:13;;8832:163;;8905:4;8887:24;;;;:9;:24;;;;;;:39;;8916:9;8887:28;:39::i;:::-;8880:4;8862:24;;;;:9;:24;;;;;;;:64;;;;8944:39;;-1:-1:-1;;;;;8944:39:0;;;;;;;8973:9;1361:25:1;;1349:2;1334:18;;1215:177;8944:39:0;;;;;;;;8832:163;-1:-1:-1;;;;;9023:15:0;;;;;;:9;:15;;;;;;:27;;9043:6;9023:19;:27::i;:::-;-1:-1:-1;;;;;9007:15:0;;;;;;:9;:15;;;;;:43;9075:40;9093:21;:6;9104:9;9093:10;:21::i;:::-;-1:-1:-1;;;;;9075:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9061:13:0;;;;;;;:9;:13;;;;;:54;;;;9131:41;;;9150:21;:6;9161:9;9150:10;:21::i;:::-;9131:41;;1361:25:1;;;1349:2;1334:18;9131:41:0;;;;;;;7114:2066;7045:2135;;;:::o;1341:190::-;1427:7;1463:12;1455:6;;;;1447:29;;;;-1:-1:-1;;;1447:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1487:9:0;1499:5;1503:1;1499;:5;:::i;:::-;1487:17;1341:190;-1:-1:-1;;;;;1341:190:0:o;1539:246::-;1597:7;1621:1;1626;1621:6;1617:47;;-1:-1:-1;1651:1:0;1644:8;;1617:47;1674:9;1686:5;1690:1;1686;:5;:::i;:::-;1674:17;-1:-1:-1;1719:1:0;1710:5;1714:1;1674:17;1710:5;:::i;:::-;:10;1702:56;;;;-1:-1:-1;;;1702:56:0;;12547:2:1;1702:56:0;;;12529:21:1;12586:2;12566:18;;;12559:30;12625:34;12605:18;;;12598:62;-1:-1:-1;;;12676:18:1;;;12669:31;12717:19;;1702:56:0;12345:397:1;1702:56:0;1776:1;1539:246;-1:-1:-1;;;1539:246:0:o;1793:132::-;1851:7;1878:39;1882:1;1885;1878:39;;;;;;;;;;;;;;;;;:3;:39::i;9190:98::-;9247:7;9274:1;9272;:3;9271:9;;9279:1;9271:9;;;-1:-1:-1;9277:1:0;9190:98;-1:-1:-1;9190:98:0:o;9296:483::-;4922:6;:13;;-1:-1:-1;;;;4922:13:0;-1:-1:-1;;;4922:13:0;;;9398:16:::1;::::0;;9412:1:::1;9398:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9398:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9398:16:0::1;9374:40;;9443:4;9425;9430:1;9425:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9425:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9469:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9469:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9425:7;;9469:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9459:4;9464:1;9459:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9459:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9534:15:::1;::::0;9502:62:::1;::::0;9519:4:::1;::::0;9534:15:::1;9552:11:::0;9502:8:::1;:62::i;:::-;9575:15;::::0;:196:::1;::::0;-1:-1:-1;;;9575:196:0;;-1:-1:-1;;;;;9575:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9656:11;;9575:15:::1;::::0;9698:4;;9725::::1;::::0;9745:15:::1;::::0;9575:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4958:6:0;:14;;-1:-1:-1;;;;4958:14:0;;;-1:-1:-1;;;;9296:483:0:o;9993:104::-;10056:16;;:33;;-1:-1:-1;;;;;10056:16:0;;;;:33;;;;;10082:6;;10056:16;:33;:16;:33;10082:6;10056:16;:33;;;;;;;;;;;;;;;;;;;1010:179;1068:7;;1100:5;1104:1;1100;:5;:::i;:::-;1088:17;;1129:1;1124;:6;;1116:46;;;;-1:-1:-1;;;1116:46:0;;14066:2:1;1116:46:0;;;14048:21:1;14105:2;14085:18;;;14078:30;14144:29;14124:18;;;14117:57;14191:18;;1116:46:0;13864:351:1;1197:136:0;1255:7;1282:43;1286:1;1289;1282:43;;;;;;;;;;;;;;;;;:3;:43::i;1933:189::-;2019:7;2054:12;2047:5;2039:28;;;;-1:-1:-1;;;2039:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2078:9:0;2090:5;2094:1;2090;:5;:::i;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;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;2047:367::-;2110:8;2120:6;2174:3;2167:4;2159:6;2155:17;2151:27;2141:55;;2192:1;2189;2182:12;2141:55;-1:-1:-1;2215:20:1;;2258:18;2247:30;;2244:50;;;2290:1;2287;2280:12;2244:50;2327:4;2319:6;2315:17;2303:29;;2387:3;2380:4;2370:6;2367:1;2363:14;2355:6;2351:27;2347:38;2344:47;2341:67;;;2404:1;2401;2394:12;2341:67;2047:367;;;;;:::o;2419:773::-;2541:6;2549;2557;2565;2618:2;2606:9;2597:7;2593:23;2589:32;2586:52;;;2634:1;2631;2624:12;2586:52;2674:9;2661:23;2703:18;2744:2;2736:6;2733:14;2730:34;;;2760:1;2757;2750:12;2730:34;2799:70;2861:7;2852:6;2841:9;2837:22;2799:70;:::i;:::-;2888:8;;-1:-1:-1;2773:96:1;-1:-1:-1;2976:2:1;2961:18;;2948:32;;-1:-1:-1;2992:16:1;;;2989:36;;;3021:1;3018;3011:12;2989:36;;3060:72;3124:7;3113:8;3102:9;3098:24;3060:72;:::i;:::-;2419:773;;;;-1:-1:-1;3151:8:1;-1:-1:-1;;;;2419:773:1:o;3197:247::-;3256:6;3309:2;3297:9;3288:7;3284:23;3280:32;3277:52;;;3325:1;3322;3315:12;3277:52;3364:9;3351:23;3383:31;3408:5;3383:31;:::i;3657:388::-;3725:6;3733;3786:2;3774:9;3765:7;3761:23;3757:32;3754:52;;;3802:1;3799;3792:12;3754:52;3841:9;3828:23;3860:31;3885:5;3860:31;:::i;:::-;3910:5;-1:-1:-1;3967:2:1;3952:18;;3939:32;3980:33;3939:32;3980:33;:::i;:::-;4032:7;4022:17;;;3657:388;;;;;:::o;4050:356::-;4252:2;4234:21;;;4271:18;;;4264:30;4330:34;4325:2;4310:18;;4303:62;4397:2;4382:18;;4050:356::o;4411:127::-;4472:10;4467:3;4463:20;4460:1;4453:31;4503:4;4500:1;4493:15;4527:4;4524:1;4517:15;4543:422;4632:1;4675:5;4632:1;4689:270;4710:7;4700:8;4697:21;4689:270;;;4769:4;4765:1;4761:6;4757:17;4751:4;4748:27;4745:53;;;4778:18;;:::i;:::-;4828:7;4818:8;4814:22;4811:55;;;4848:16;;;;4811:55;4927:22;;;;4887:15;;;;4689:270;;;4693:3;4543:422;;;;;:::o;4970:806::-;5019:5;5049:8;5039:80;;-1:-1:-1;5090:1:1;5104:5;;5039:80;5138:4;5128:76;;-1:-1:-1;5175:1:1;5189:5;;5128:76;5220:4;5238:1;5233:59;;;;5306:1;5301:130;;;;5213:218;;5233:59;5263:1;5254:10;;5277:5;;;5301:130;5338:3;5328:8;5325:17;5322:43;;;5345:18;;:::i;:::-;-1:-1:-1;;5401:1:1;5387:16;;5416:5;;5213:218;;5515:2;5505:8;5502:16;5496:3;5490:4;5487:13;5483:36;5477:2;5467:8;5464:16;5459:2;5453:4;5450:12;5446:35;5443:77;5440:159;;;-1:-1:-1;5552:19:1;;;5584:5;;5440:159;5631:34;5656:8;5650:4;5631:34;:::i;:::-;5701:6;5697:1;5693:6;5689:19;5680:7;5677:32;5674:58;;;5712:18;;:::i;:::-;5750:20;;4970:806;-1:-1:-1;;;4970:806:1:o;5781:140::-;5839:5;5868:47;5909:4;5899:8;5895:19;5889:4;5868:47;:::i;5926:168::-;5999:9;;;6030;;6047:15;;;6041:22;;6027:37;6017:71;;6068:18;;:::i;6099:127::-;6160:10;6155:3;6151:20;6148:1;6141:31;6191:4;6188:1;6181:15;6215:4;6212:1;6205:15;6231:135;6270:3;6291:17;;;6288:43;;6311:18;;:::i;:::-;-1:-1:-1;6358:1:1;6347:13;;6231:135::o;6723:251::-;6793:6;6846:2;6834:9;6825:7;6821:23;6817:32;6814:52;;;6862:1;6859;6852:12;6814:52;6894:9;6888:16;6913:31;6938:5;6913:31;:::i;7900:306::-;7988:6;7996;8004;8057:2;8045:9;8036:7;8032:23;8028:32;8025:52;;;8073:1;8070;8063:12;8025:52;8102:9;8096:16;8086:26;;8152:2;8141:9;8137:18;8131:25;8121:35;;8196:2;8185:9;8181:18;8175:25;8165:35;;7900:306;;;;;:::o;8490:277::-;8557:6;8610:2;8598:9;8589:7;8585:23;8581:32;8578:52;;;8626:1;8623;8616:12;8578:52;8658:9;8652:16;8711:5;8704:13;8697:21;8690:5;8687:32;8677:60;;8733:1;8730;8723:12;11505:125;11570:9;;;11591:10;;;11588:36;;;11604:18;;:::i;11990:128::-;12057:9;;;12078:11;;;12075:37;;;12092:18;;:::i;12123:217::-;12163:1;12189;12179:132;;12233:10;12228:3;12224:20;12221:1;12214:31;12268:4;12265:1;12258:15;12296:4;12293:1;12286:15;12179:132;-1:-1:-1;12325:9:1;;12123:217::o;12879:980::-;13141:4;13189:3;13178:9;13174:19;13220:6;13209:9;13202:25;13246:2;13284:6;13279:2;13268:9;13264:18;13257:34;13327:3;13322:2;13311:9;13307:18;13300:31;13351:6;13386;13380:13;13417:6;13409;13402:22;13455:3;13444:9;13440:19;13433:26;;13494:2;13486:6;13482:15;13468:29;;13515:1;13525:195;13539:6;13536:1;13533:13;13525:195;;;13604:13;;-1:-1:-1;;;;;13600:39:1;13588:52;;13695:15;;;;13660:12;;;;13636:1;13554:9;13525:195;;;-1:-1:-1;;;;;;;13776:32:1;;;;13771:2;13756:18;;13749:60;-1:-1:-1;;;13840:3:1;13825:19;13818:35;13737:3;12879:980;-1:-1:-1;;;12879:980:1:o

Swarm Source

ipfs://2b979c3f905b180cd3835cd96418f910e73ff098e0203415ea0d41621518f57c

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.