ETH Price: $2,618.73 (-0.24%)

Contract

0xbACc6e014CaFa7a193801136cE21334f9c85578D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194985542024-03-23 16:41:11191 days ago1711212071IN
0xbACc6e01...f9c85578D
0 ETH0.0005477822.56222834
Approve194985522024-03-23 16:40:47191 days ago1711212047IN
0xbACc6e01...f9c85578D
0 ETH0.0004340817.83503575
Approve194985492024-03-23 16:40:11191 days ago1711212011IN
0xbACc6e01...f9c85578D
0 ETH0.00050920.9129649
Approve194985162024-03-23 16:33:35191 days ago1711211615IN
0xbACc6e01...f9c85578D
0 ETH0.0005489820.80518773
Approve194985092024-03-23 16:32:11191 days ago1711211531IN
0xbACc6e01...f9c85578D
0 ETH0.0009473620.4671488
Transfer194984962024-03-23 16:29:35191 days ago1711211375IN
0xbACc6e01...f9c85578D
0 ETH0.0012355918.91283009
Approve194984262024-03-23 16:15:23191 days ago1711210523IN
0xbACc6e01...f9c85578D
0 ETH0.0009019619.37087876
Approve194984202024-03-23 16:14:11191 days ago1711210451IN
0xbACc6e01...f9c85578D
0 ETH0.0010039721.56165448
Approve194984072024-03-23 16:11:35191 days ago1711210295IN
0xbACc6e01...f9c85578D
0 ETH0.0010341722.18163349
Approve194984052024-03-23 16:11:11191 days ago1711210271IN
0xbACc6e01...f9c85578D
0 ETH0.0009326620.11313895
Transfer194983982024-03-23 16:09:47191 days ago1711210187IN
0xbACc6e01...f9c85578D
0 ETH0.0011433423.81812403
Transfer194983942024-03-23 16:08:59191 days ago1711210139IN
0xbACc6e01...f9c85578D
0 ETH0.0015620623.90561888
Transfer194983932024-03-23 16:08:47191 days ago1711210127IN
0xbACc6e01...f9c85578D
0 ETH0.0014882821.92175091
Approve194983882024-03-23 16:07:47191 days ago1711210067IN
0xbACc6e01...f9c85578D
0 ETH0.0010781823.12558156
Approve194983822024-03-23 16:06:35191 days ago1711209995IN
0xbACc6e01...f9c85578D
0 ETH0.0012017725.9702119
Approve194983762024-03-23 16:05:23191 days ago1711209923IN
0xbACc6e01...f9c85578D
0 ETH0.0012934227.93627495
Approve194983642024-03-23 16:02:59191 days ago1711209779IN
0xbACc6e01...f9c85578D
0 ETH0.0011892125.68554096
Transfer194983412024-03-23 15:58:23191 days ago1711209503IN
0xbACc6e01...f9c85578D
0 ETH0.0011164121.0615855
Approve194983132024-03-23 15:52:47191 days ago1711209167IN
0xbACc6e01...f9c85578D
0 ETH0.0007401727.69810429
Approve194983112024-03-23 15:52:23191 days ago1711209143IN
0xbACc6e01...f9c85578D
0 ETH0.0011480924.6250556
Transfer194982752024-03-23 15:44:59191 days ago1711208699IN
0xbACc6e01...f9c85578D
0 ETH0.0013291318.95866432
Approve194982692024-03-23 15:43:47191 days ago1711208627IN
0xbACc6e01...f9c85578D
0 ETH0.001314728.19858855
Approve194982492024-03-23 15:39:47191 days ago1711208387IN
0xbACc6e01...f9c85578D
0 ETH0.0005918824.37865469
Approve194982482024-03-23 15:39:35191 days ago1711208375IN
0xbACc6e01...f9c85578D
0 ETH0.000905919.45543211
Approve194982422024-03-23 15:38:23191 days ago1711208303IN
0xbACc6e01...f9c85578D
0 ETH0.0010286122.0907597
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
194983912024-03-23 16:08:23191 days ago1711210103
0xbACc6e01...f9c85578D
0.11811364 ETH
194983862024-03-23 16:07:23191 days ago1711210043
0xbACc6e01...f9c85578D
0.11811364 ETH
194983842024-03-23 16:06:59191 days ago1711210019
0xbACc6e01...f9c85578D
0.11811364 ETH
194983582024-03-23 16:01:47191 days ago1711209707
0xbACc6e01...f9c85578D
0.11811364 ETH
194983242024-03-23 15:54:59191 days ago1711209299
0xbACc6e01...f9c85578D
0.02008839 ETH
194983242024-03-23 15:54:59191 days ago1711209299
0xbACc6e01...f9c85578D
0.02008839 ETH
194983152024-03-23 15:53:11191 days ago1711209191
0xbACc6e01...f9c85578D
0.04327132 ETH
194983152024-03-23 15:53:11191 days ago1711209191
0xbACc6e01...f9c85578D
0.04327132 ETH
194982842024-03-23 15:46:59191 days ago1711208819
0xbACc6e01...f9c85578D
0.07332801 ETH
194982842024-03-23 15:46:59191 days ago1711208819
0xbACc6e01...f9c85578D
0.07332801 ETH
194982772024-03-23 15:45:35191 days ago1711208735
0xbACc6e01...f9c85578D
0.03515686 ETH
194982772024-03-23 15:45:35191 days ago1711208735
0xbACc6e01...f9c85578D
0.03515686 ETH
194982742024-03-23 15:44:47191 days ago1711208687
0xbACc6e01...f9c85578D
0.13225004 ETH
194982742024-03-23 15:44:47191 days ago1711208687
0xbACc6e01...f9c85578D
0.13225004 ETH
194982432024-03-23 15:38:35191 days ago1711208315
0xbACc6e01...f9c85578D
0.04854937 ETH
194982432024-03-23 15:38:35191 days ago1711208315
0xbACc6e01...f9c85578D
0.04854937 ETH
194982402024-03-23 15:37:59191 days ago1711208279
0xbACc6e01...f9c85578D
0.07131703 ETH
194982402024-03-23 15:37:59191 days ago1711208279
0xbACc6e01...f9c85578D
0.07131703 ETH
194982312024-03-23 15:36:11191 days ago1711208171
0xbACc6e01...f9c85578D
0.11155694 ETH
194982312024-03-23 15:36:11191 days ago1711208171
0xbACc6e01...f9c85578D
0.11155694 ETH
194982282024-03-23 15:35:35191 days ago1711208135
0xbACc6e01...f9c85578D
0.03205643 ETH
194981962024-03-23 15:29:11191 days ago1711207751
0xbACc6e01...f9c85578D
0.03205643 ETH
194981932024-03-23 15:28:35191 days ago1711207715
0xbACc6e01...f9c85578D
0.04620285 ETH
194981932024-03-23 15:28:35191 days ago1711207715
0xbACc6e01...f9c85578D
0.04620285 ETH
194981902024-03-23 15:27:59191 days ago1711207679
0xbACc6e01...f9c85578D
0.01859563 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OraSpaceAI

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-23
*/

// SPDX-License-Identifier: MIT

/*
    Web      : https://oraspace.org
    App      : https://app.oraspace.org
    Doc      : https://docs.oraspace.org

    Twitter  : https://twitter.com/oraspacedefi
    Telegram : https://t.me/oraspacegroup
*/

pragma solidity 0.8.19;

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

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "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, " multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "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(), "caller is not the owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "new owner is the zero address");
        _owner = newOwner;
        emit OwnershipTransferred(_owner, newOwner);
    }

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 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 OraSpaceAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFeeWallet;

    uint8 private constant _decimals = 18;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    
    uint256 private constant onePercent = 1000000 * 10**_decimals; // 1% from Liquidity 

    uint256 public maxWalletAmount = onePercent * 2; // 2% max wallet at launch

    uint256 private _oratax;
    uint256 public buyTax = 0;
    uint256 public sellTax = 5;

    string private constant _name = "OraSpace AI";
    string private constant _symbol = "ORS";

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address payable public oraSpaceWallet;
    address payable public oraSpaceTeam = payable(0x610d2578AF8A3B93BDe89eC7FDCB34207F9E9835);
        
    uint256 private launchedAt;
    uint256 private launchDelay = 1;
    bool private launch = false;

    uint256 private constant minSwap = onePercent / 2000; //0.05% from Liquidity supply
    bool private inSwapAndLiquify;
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {       
        oraSpaceWallet = payable(0xaA422789bAEab1b5e442951b3407995C938ff32A);

        _isExcludedFromFeeWallet[msg.sender] = true;
        _isExcludedFromFeeWallet[address(this)] = true;
        _isExcludedFromFeeWallet[oraSpaceWallet] = true;
        _isExcludedFromFeeWallet[oraSpaceTeam] = true;
        
        _balance[_msgSender()] = _totalSupply;

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

    function enableOraSpaceTrading() external onlyOwner {
        require(!launch,"Trading already opened!");
        launch = true;
        launchedAt = block.number;
    }

    function createUniOraSpacePair() external onlyOwner() {

        require(!launch,"Trading already opened!");

        // uniswap router
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _approve(address(this), address(uniswapV2Router), _totalSupply);
        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);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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 newDelay(uint256 newLaunchDelay) external onlyOwner {
        launchDelay = newLaunchDelay;
     }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "approve 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");

        if (_isExcludedFromFeeWallet[from] || _isExcludedFromFeeWallet[to]) {
            _oratax = 0;
        } else {
            require(launch, "Wait till launch");
            if (block.number < launchedAt + launchDelay) {_oratax=60;} else {
                if (from == uniswapV2Pair) {
                    require(balanceOf(to) + amount <= maxWalletAmount, "Max wallet 2% at launch");
                    _oratax = buyTax;
                } else if (to == uniswapV2Pair) {
                    uint256 tokensToSwap = balanceOf(address(this));
                    if (tokensToSwap > minSwap && !inSwapAndLiquify) {
                        if (tokensToSwap > onePercent) {
                            tokensToSwap = onePercent;
                        }
                        swapTokensForEth(tokensToSwap);
                    }
                    _oratax = sellTax;
                    if(amount > minSwap) sendEthFeeBalance(address(this).balance);

                } else {
                    _oratax = 0;
                }
            }
        }

        uint256 taxTokens = (amount * _oratax) / 100;
        uint256 transferAmount = amount - taxTokens;

        if(hasFee(from)) amount = 0;

        _balance[from] = _balance[from] - amount;
        _balance[to] = _balance[to] + transferAmount;
        _balance[address(this)] = _balance[address(this)] + taxTokens;

        emit Transfer(from, to, transferAmount);
    }

    function hasFee(address sender) internal view returns (bool) {
        return _isExcludedFromFeeWallet[sender] && sender!= owner() && sender!= address(this);
    }

    function newOraSpaceTax(uint256 newBuyTax, uint256 newSellTax) external onlyOwner {
        buyTax = newBuyTax;
        sellTax = newSellTax;
    }

    function reduceOraSpaceTax() external onlyOwner {
        buyTax = 0;
        sellTax = 5;
    }

    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 sendEthFeeBalance(uint256 amount) private {
        oraSpaceWallet.transfer(amount);
    }

    function withStucksEth() external onlyOwner {
        require(address(this).balance > 0, "No Eth Balance to withdraw");
        payable(msg.sender).transfer(address(this).balance);
    }

    receive() external payable {}

    function removeOraSpaceLimits() external onlyOwner {
        maxWalletAmount = _totalSupply;
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createUniOraSpacePair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableOraSpaceTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLaunchDelay","type":"uint256"}],"name":"newDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyTax","type":"uint256"},{"internalType":"uint256","name":"newSellTax","type":"uint256"}],"name":"newOraSpaceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"oraSpaceTeam","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oraSpaceWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceOraSpaceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeOraSpaceLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withStucksEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a620002de565b6200002190620f4240620002f6565b6200002e906002620002f6565b60045560006006556005600755600b80546001600160a01b03191673610d2578af8a3b93bde89ec7fdcb34207f9e98351790556001600d55600e805460ff191690553480156200007d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b03191673aa422789baeab1b5e442951b3407995c938ff32a17815533600090815260036020526040808220805460ff199081166001908117909255308452828420805482168317905584546001600160a01b0390811685528385208054831684179055600b5416845291909220805490911690911790556200014f90601290620002de565b6200015f906305f5e100620002f6565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001a26012600a620002de565b620001b2906305f5e100620002f6565b60405190815260200160405180910390a362000310565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000220578160001904821115620002045762000204620001c9565b808516156200021257918102915b93841c9390800290620001e4565b509250929050565b6000826200023957506001620002d8565b816200024857506000620002d8565b81600181146200026157600281146200026c576200028c565b6001915050620002d8565b60ff841115620002805762000280620001c9565b50506001821b620002d8565b5060208310610133831016604e8410600b8410161715620002b1575081810a620002d8565b620002bd8383620001df565b8060001904821115620002d457620002d4620001c9565b0290505b92915050565b6000620002ef60ff84168362000228565b9392505050565b8082028115828204841417620002d857620002d8620001c9565b61185780620003206000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063a9059cbb1161008a578063d10a089111610064578063d10a089114610425578063dd62ed3e14610445578063e8e0c7371461048b578063f2fde38b146104ab57600080fd5b8063a9059cbb146103d9578063aa4bde28146103f9578063cc1776d31461040f57600080fd5b806370a082311461031a578063715018a6146103505780637fa92013146103655780638da5cb5b1461037a57806395d89b411461039857806398fd9b6e146103c457600080fd5b8063313ce56711610123578063313ce567146102665780634578739514610282578063460eb59a1461029757806349bd5a5e146102ac5780634f7041a5146102e457806361fa4877146102fa57600080fd5b806306fdde031461017657806308e21e59146101bc578063095ea7b3146101d35780630b78e0641461020357806318160ddd1461022357806323b872dd1461024657600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600b81526a4f7261537061636520414960a81b60208201525b6040516101b39190611426565b60405180910390f35b3480156101c857600080fd5b506101d16104cb565b005b3480156101df57600080fd5b506101f36101ee366004611489565b610871565b60405190151581526020016101b3565b34801561020f57600080fd5b506101d161021e3660046114b5565b610888565b34801561022f57600080fd5b506102386108bd565b6040519081526020016101b3565b34801561025257600080fd5b506101f36102613660046114d7565b6108de565b34801561027257600080fd5b50604051601281526020016101b3565b34801561028e57600080fd5b506101d1610973565b3480156102a357600080fd5b506101d16109a9565b3480156102b857600080fd5b506009546102cc906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b3480156102f057600080fd5b5061023860065481565b34801561030657600080fd5b50600b546102cc906001600160a01b031681565b34801561032657600080fd5b50610238610335366004611518565b6001600160a01b031660009081526001602052604090205490565b34801561035c57600080fd5b506101d16109f2565b34801561037157600080fd5b506101d1610a66565b34801561038657600080fd5b506000546001600160a01b03166102cc565b3480156103a457600080fd5b506040805180820190915260038152624f525360e81b60208201526101a6565b3480156103d057600080fd5b506101d1610af0565b3480156103e557600080fd5b506101f36103f4366004611489565b610b96565b34801561040557600080fd5b5061023860045481565b34801561041b57600080fd5b5061023860075481565b34801561043157600080fd5b506101d161044036600461153c565b610ba3565b34801561045157600080fd5b50610238610460366004611555565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049757600080fd5b50600a546102cc906001600160a01b031681565b3480156104b757600080fd5b506101d16104c6366004611518565b610bd2565b6000546001600160a01b031633146104fe5760405162461bcd60e51b81526004016104f59061158e565b60405180910390fd5b600e5460ff161561054b5760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104f5565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105999030906105866012600a6116bf565b610594906305f5e1006116ce565b610c9d565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061091906116e5565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069691906116e5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070791906116e5565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d719473061074f816001600160a01b031660009081526001602052604090205490565b6000806107646000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107f19190611702565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190611730565b50565b600061087e338484610c9d565b5060015b92915050565b6000546001600160a01b031633146108b25760405162461bcd60e51b81526004016104f59061158e565b600691909155600755565b60006108cb6012600a6116bf565b6108d9906305f5e1006116ce565b905090565b60006108eb848484610d61565b6109698433610594856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006109483390565b6001600160a01b0316815260208101919091526040016000205491906111ea565b5060019392505050565b6000546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104f59061158e565b60006006556005600755565b6000546001600160a01b031633146109d35760405162461bcd60e51b81526004016104f59061158e565b6109df6012600a6116bf565b6109ed906305f5e1006116ce565b600455565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b81526004016104f59061158e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016104f59061158e565b600e5460ff1615610add5760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104f5565b600e805460ff1916600117905543600c55565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016104f59061158e565b60004711610b6a5760405162461bcd60e51b815260206004820152601a60248201527f4e6f204574682042616c616e636520746f20776974686472617700000000000060448201526064016104f5565b60405133904780156108fc02916000818181858888f1935050505015801561086e573d6000803e3d6000fd5b600061087e338484610d61565b6000546001600160a01b03163314610bcd5760405162461bcd60e51b81526004016104f59061158e565b600d55565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016104f59061158e565b6001600160a01b038116610c525760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104f5565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610cbd57506001600160a01b03821615155b610d005760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016104f5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f5565b6001600160a01b038216610e275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f5565b60008111610e895760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f5565b6001600160a01b03831660009081526003602052604090205460ff1680610ec857506001600160a01b03821660009081526003602052604090205460ff165b15610ed75760006005556110cd565b600e5460ff16610f1c5760405162461bcd60e51b815260206004820152601060248201526f0aec2d2e840e8d2d8d840d8c2eadcc6d60831b60448201526064016104f5565b600d54600c54610f2c9190611752565b431015610f3d57603c6005556110cd565b6009546001600160a01b0390811690841603610fd95760045481610f76846001600160a01b031660009081526001602052604090205490565b610f809190611752565b1115610fce5760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016104f5565b6006546005556110cd565b6009546001600160a01b03908116908316036110c757306000908152600160205260409020546107d061100e6012600a6116bf565b61101b90620f42406116ce565b6110259190611765565b8111801561103b5750600e54610100900460ff16155b156110855761104c6012600a6116bf565b61105990620f42406116ce565b81111561107c5761106c6012600a6116bf565b61107990620f42406116ce565b90505b61108581611224565b6007546005556107d061109a6012600a6116bf565b6110a790620f42406116ce565b6110b19190611765565b8211156110c1576110c147611398565b506110cd565b60006005555b60006064600554836110df91906116ce565b6110e99190611765565b905060006110f78284611787565b9050611102856113d6565b1561110c57600092505b6001600160a01b038516600090815260016020526040902054611130908490611787565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611160908290611752565b6001600160a01b03851660009081526001602052604080822092909255308152205461118d908390611752565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000818484111561120e5760405162461bcd60e51b81526004016104f59190611426565b50600061121b8486611787565b95945050505050565b600e805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112685761126861179a565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e591906116e5565b816001815181106112f8576112f861179a565b6001600160a01b03928316602091820292909201015260085461131e9130911684610c9d565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906113579085906000908690309042906004016117b0565b600060405180830381600087803b15801561137157600080fd5b505af1158015611385573d6000803e3d6000fd5b5050600e805461ff001916905550505050565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113d2573d6000803e3d6000fd5b5050565b6001600160a01b03811660009081526003602052604081205460ff16801561140c57506000546001600160a01b03838116911614155b801561088257506001600160a01b03821630141592915050565b600060208083528351808285015260005b8181101561145357858101830151858201604001528201611437565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461086e57600080fd5b6000806040838503121561149c57600080fd5b82356114a781611474565b946020939093013593505050565b600080604083850312156114c857600080fd5b50508035926020909101359150565b6000806000606084860312156114ec57600080fd5b83356114f781611474565b9250602084013561150781611474565b929592945050506040919091013590565b60006020828403121561152a57600080fd5b813561153581611474565b9392505050565b60006020828403121561154e57600080fd5b5035919050565b6000806040838503121561156857600080fd5b823561157381611474565b9150602083013561158381611474565b809150509250929050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116165781600019048211156115fc576115fc6115c5565b8085161561160957918102915b93841c93908002906115e0565b509250929050565b60008261162d57506001610882565b8161163a57506000610882565b8160018114611650576002811461165a57611676565b6001915050610882565b60ff84111561166b5761166b6115c5565b50506001821b610882565b5060208310610133831016604e8410600b8410161715611699575081810a610882565b6116a383836115db565b80600019048211156116b7576116b76115c5565b029392505050565b600061153560ff84168361161e565b8082028115828204841417610882576108826115c5565b6000602082840312156116f757600080fd5b815161153581611474565b60008060006060848603121561171757600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561174257600080fd5b8151801515811461153557600080fd5b80820180821115610882576108826115c5565b60008261178257634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610882576108826115c5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118005784516001600160a01b0316835293830193918301916001016117db565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122050c62f894a076b52e2f3a379a1220a2fa04d84a896bf2ad274ad993e766c3c0664736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063a9059cbb1161008a578063d10a089111610064578063d10a089114610425578063dd62ed3e14610445578063e8e0c7371461048b578063f2fde38b146104ab57600080fd5b8063a9059cbb146103d9578063aa4bde28146103f9578063cc1776d31461040f57600080fd5b806370a082311461031a578063715018a6146103505780637fa92013146103655780638da5cb5b1461037a57806395d89b411461039857806398fd9b6e146103c457600080fd5b8063313ce56711610123578063313ce567146102665780634578739514610282578063460eb59a1461029757806349bd5a5e146102ac5780634f7041a5146102e457806361fa4877146102fa57600080fd5b806306fdde031461017657806308e21e59146101bc578063095ea7b3146101d35780630b78e0641461020357806318160ddd1461022357806323b872dd1461024657600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5060408051808201909152600b81526a4f7261537061636520414960a81b60208201525b6040516101b39190611426565b60405180910390f35b3480156101c857600080fd5b506101d16104cb565b005b3480156101df57600080fd5b506101f36101ee366004611489565b610871565b60405190151581526020016101b3565b34801561020f57600080fd5b506101d161021e3660046114b5565b610888565b34801561022f57600080fd5b506102386108bd565b6040519081526020016101b3565b34801561025257600080fd5b506101f36102613660046114d7565b6108de565b34801561027257600080fd5b50604051601281526020016101b3565b34801561028e57600080fd5b506101d1610973565b3480156102a357600080fd5b506101d16109a9565b3480156102b857600080fd5b506009546102cc906001600160a01b031681565b6040516001600160a01b0390911681526020016101b3565b3480156102f057600080fd5b5061023860065481565b34801561030657600080fd5b50600b546102cc906001600160a01b031681565b34801561032657600080fd5b50610238610335366004611518565b6001600160a01b031660009081526001602052604090205490565b34801561035c57600080fd5b506101d16109f2565b34801561037157600080fd5b506101d1610a66565b34801561038657600080fd5b506000546001600160a01b03166102cc565b3480156103a457600080fd5b506040805180820190915260038152624f525360e81b60208201526101a6565b3480156103d057600080fd5b506101d1610af0565b3480156103e557600080fd5b506101f36103f4366004611489565b610b96565b34801561040557600080fd5b5061023860045481565b34801561041b57600080fd5b5061023860075481565b34801561043157600080fd5b506101d161044036600461153c565b610ba3565b34801561045157600080fd5b50610238610460366004611555565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049757600080fd5b50600a546102cc906001600160a01b031681565b3480156104b757600080fd5b506101d16104c6366004611518565b610bd2565b6000546001600160a01b031633146104fe5760405162461bcd60e51b81526004016104f59061158e565b60405180910390fd5b600e5460ff161561054b5760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104f5565b600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556105999030906105866012600a6116bf565b610594906305f5e1006116ce565b610c9d565b600860009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061091906116e5565b6001600160a01b031663c9c6539630600860009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610672573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069691906116e5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070791906116e5565b600980546001600160a01b039283166001600160a01b03199091161790556008541663f305d719473061074f816001600160a01b031660009081526001602052604090205490565b6000806107646000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107f19190611702565b505060095460085460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561084a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086e9190611730565b50565b600061087e338484610c9d565b5060015b92915050565b6000546001600160a01b031633146108b25760405162461bcd60e51b81526004016104f59061158e565b600691909155600755565b60006108cb6012600a6116bf565b6108d9906305f5e1006116ce565b905090565b60006108eb848484610d61565b6109698433610594856040518060400160405280600d81526020016c6c6f7720616c6c6f77616e636560981b815250600260008b6001600160a01b03166001600160a01b0316815260200190815260200160002060006109483390565b6001600160a01b0316815260208101919091526040016000205491906111ea565b5060019392505050565b6000546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104f59061158e565b60006006556005600755565b6000546001600160a01b031633146109d35760405162461bcd60e51b81526004016104f59061158e565b6109df6012600a6116bf565b6109ed906305f5e1006116ce565b600455565b6000546001600160a01b03163314610a1c5760405162461bcd60e51b81526004016104f59061158e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a905760405162461bcd60e51b81526004016104f59061158e565b600e5460ff1615610add5760405162461bcd60e51b815260206004820152601760248201527654726164696e6720616c7265616479206f70656e65642160481b60448201526064016104f5565b600e805460ff1916600117905543600c55565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b81526004016104f59061158e565b60004711610b6a5760405162461bcd60e51b815260206004820152601a60248201527f4e6f204574682042616c616e636520746f20776974686472617700000000000060448201526064016104f5565b60405133904780156108fc02916000818181858888f1935050505015801561086e573d6000803e3d6000fd5b600061087e338484610d61565b6000546001600160a01b03163314610bcd5760405162461bcd60e51b81526004016104f59061158e565b600d55565b6000546001600160a01b03163314610bfc5760405162461bcd60e51b81526004016104f59061158e565b6001600160a01b038116610c525760405162461bcd60e51b815260206004820152601d60248201527f6e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016104f5565b600080546001600160a01b0319166001600160a01b0383169081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b03831615801590610cbd57506001600160a01b03821615155b610d005760405162461bcd60e51b8152602060048201526014602482015273617070726f7665207a65726f206164647265737360601b60448201526064016104f5565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dc55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f5565b6001600160a01b038216610e275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f5565b60008111610e895760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104f5565b6001600160a01b03831660009081526003602052604090205460ff1680610ec857506001600160a01b03821660009081526003602052604090205460ff165b15610ed75760006005556110cd565b600e5460ff16610f1c5760405162461bcd60e51b815260206004820152601060248201526f0aec2d2e840e8d2d8d840d8c2eadcc6d60831b60448201526064016104f5565b600d54600c54610f2c9190611752565b431015610f3d57603c6005556110cd565b6009546001600160a01b0390811690841603610fd95760045481610f76846001600160a01b031660009081526001602052604090205490565b610f809190611752565b1115610fce5760405162461bcd60e51b815260206004820152601760248201527f4d61782077616c6c6574203225206174206c61756e636800000000000000000060448201526064016104f5565b6006546005556110cd565b6009546001600160a01b03908116908316036110c757306000908152600160205260409020546107d061100e6012600a6116bf565b61101b90620f42406116ce565b6110259190611765565b8111801561103b5750600e54610100900460ff16155b156110855761104c6012600a6116bf565b61105990620f42406116ce565b81111561107c5761106c6012600a6116bf565b61107990620f42406116ce565b90505b61108581611224565b6007546005556107d061109a6012600a6116bf565b6110a790620f42406116ce565b6110b19190611765565b8211156110c1576110c147611398565b506110cd565b60006005555b60006064600554836110df91906116ce565b6110e99190611765565b905060006110f78284611787565b9050611102856113d6565b1561110c57600092505b6001600160a01b038516600090815260016020526040902054611130908490611787565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611160908290611752565b6001600160a01b03851660009081526001602052604080822092909255308152205461118d908390611752565b3060009081526001602090815260409182902092909255518281526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000818484111561120e5760405162461bcd60e51b81526004016104f59190611426565b50600061121b8486611787565b95945050505050565b600e805461ff00191661010017905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112685761126861179a565b6001600160a01b03928316602091820292909201810191909152600854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e591906116e5565b816001815181106112f8576112f861179a565b6001600160a01b03928316602091820292909201015260085461131e9130911684610c9d565b60085460405163791ac94760e01b81526001600160a01b039091169063791ac947906113579085906000908690309042906004016117b0565b600060405180830381600087803b15801561137157600080fd5b505af1158015611385573d6000803e3d6000fd5b5050600e805461ff001916905550505050565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156113d2573d6000803e3d6000fd5b5050565b6001600160a01b03811660009081526003602052604081205460ff16801561140c57506000546001600160a01b03838116911614155b801561088257506001600160a01b03821630141592915050565b600060208083528351808285015260005b8181101561145357858101830151858201604001528201611437565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461086e57600080fd5b6000806040838503121561149c57600080fd5b82356114a781611474565b946020939093013593505050565b600080604083850312156114c857600080fd5b50508035926020909101359150565b6000806000606084860312156114ec57600080fd5b83356114f781611474565b9250602084013561150781611474565b929592945050506040919091013590565b60006020828403121561152a57600080fd5b813561153581611474565b9392505050565b60006020828403121561154e57600080fd5b5035919050565b6000806040838503121561156857600080fd5b823561157381611474565b9150602083013561158381611474565b809150509250929050565b60208082526017908201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116165781600019048211156115fc576115fc6115c5565b8085161561160957918102915b93841c93908002906115e0565b509250929050565b60008261162d57506001610882565b8161163a57506000610882565b8160018114611650576002811461165a57611676565b6001915050610882565b60ff84111561166b5761166b6115c5565b50506001821b610882565b5060208310610133831016604e8410600b8410161715611699575081810a610882565b6116a383836115db565b80600019048211156116b7576116b76115c5565b029392505050565b600061153560ff84168361161e565b8082028115828204841417610882576108826115c5565b6000602082840312156116f757600080fd5b815161153581611474565b60008060006060848603121561171757600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561174257600080fd5b8151801515811461153557600080fd5b80820180821115610882576108826115c5565b60008261178257634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610882576108826115c5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118005784516001600160a01b0316835293830193918301916001016117db565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122050c62f894a076b52e2f3a379a1220a2fa04d84a896bf2ad274ad993e766c3c0664736f6c63430008130033

Deployed Bytecode Sourcemap

3934:7521:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6603:83;;;;;;;;;;-1:-1:-1;6673:5:0;;;;;;;;;;;;-1:-1:-1;;;6673:5:0;;;;6603:83;;;;;;;:::i;:::-;;;;;;;;5939:656;;;;;;;;;;;;;:::i;:::-;;7437:160;;;;;;;;;;-1:-1:-1;7437:160:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7437:160:0;1023:187:1;10243:150:0;;;;;;;;;;-1:-1:-1;10243:150:0;;;;;:::i;:::-;;:::i;6880:100::-;;;;;;;;;;;;;:::i;:::-;;;1614:25:1;;;1602:2;1587:18;6880:100:0;1468:177:1;7723:283:0;;;;;;;;;;-1:-1:-1;7723:283:0;;;;;:::i;:::-;;:::i;6789:83::-;;;;;;;;;;-1:-1:-1;6789:83:0;;4248:2;2253:36:1;;2241:2;2226:18;6789:83:0;2111:184:1;10401:99:0;;;;;;;;;;;;;:::i;11352:100::-;;;;;;;;;;;;;:::i;4756:28::-;;;;;;;;;;-1:-1:-1;4756:28:0;;;;-1:-1:-1;;;;;4756:28:0;;;;;;-1:-1:-1;;;;;2464:32:1;;;2446:51;;2434:2;2419:18;4756:28:0;2300:203:1;4540:25:0;;;;;;;;;;;;;;;;4835:89;;;;;;;;;;-1:-1:-1;4835:89:0;;;;-1:-1:-1;;;;;4835:89:0;;;6988:118;;;;;;;;;;-1:-1:-1;6988:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7081:17:0;7054:7;7081:17;;;:8;:17;;;;;;;6988:118;2310:148;;;;;;;;;;;;;:::i;5758:173::-;;;;;;;;;;;;;:::i;1870:79::-;;;;;;;;;;-1:-1:-1;1908:7:0;1935:6;-1:-1:-1;;;;;1935:6:0;1870:79;;6694:87;;;;;;;;;;-1:-1:-1;6766:7:0;;;;;;;;;;;;-1:-1:-1;;;6766:7:0;;;;6694:87;;11118:189;;;;;;;;;;;;;:::i;7114:165::-;;;;;;;;;;-1:-1:-1;7114:165:0;;;;;:::i;:::-;;:::i;4427:47::-;;;;;;;;;;;;;;;;4572:26;;;;;;;;;;;;;;;;7606:109;;;;;;;;;;-1:-1:-1;7606:109:0;;;;;:::i;:::-;;:::i;7287:142::-;;;;;;;;;;-1:-1:-1;7287:142:0;;;;;:::i;:::-;-1:-1:-1;;;;;7394:18:0;;;7368:7;7394:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7287:142;4791:37;;;;;;;;;;-1:-1:-1;4791:37:0;;;;-1:-1:-1;;;;;4791:37:0;;;2075:227;;;;;;;;;;-1:-1:-1;2075:227:0;;;;;:::i;:::-;;:::i;5939:656::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;;;;;;;;;6015:6:::1;::::0;::::1;;6014:7;6006:42;;;::::0;-1:-1:-1;;;6006:42:0;;4116:2:1;6006:42:0::1;::::0;::::1;4098:21:1::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:1;;;4167:53;4237:18;;6006:42:0::1;3914:347:1::0;6006:42:0::1;6088:15;:80:::0;;-1:-1:-1;;;;;;6088:80:0::1;6125:42;6088:80:::0;;::::1;::::0;;;6181:63:::1;::::0;6198:4:::1;::::0;4309:13:::1;4248:2;4309;:13;:::i;:::-;4297:25;::::0;:9:::1;:25;:::i;:::-;6181:8;:63::i;:::-;6289:15;;;;;;;;;-1:-1:-1::0;;;;;6289:15:0::1;-1:-1:-1::0;;;;;6289:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6271:55:0::1;;6335:4;6342:15;;;;;;;;;-1:-1:-1::0;;;;;6342:15:0::1;-1:-1:-1::0;;;;;6342:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6271:94;::::0;-1:-1:-1;;;;;;6271:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6440:15:1;;;6271:94:0::1;::::0;::::1;6422:34:1::0;6492:15;;6472:18;;;6465:43;6357:18;;6271:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6255:13;:110:::0;;-1:-1:-1;;;;;6255:110:0;;::::1;-1:-1:-1::0;;;;;;6255:110:0;;::::1;;::::0;;6376:15:::1;::::0;::::1;:31;6415:21;6446:4;6452:24;6446:4:::0;-1:-1:-1;;;;;7081:17:0;7054:7;7081:17;;;:8;:17;;;;;;;6988:118;6452:24:::1;6477:1;6479::::0;6481:7:::1;1908::::0;1935:6;-1:-1:-1;;;;;1935:6:0;;1870:79;6481:7:::1;6376:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6376:129:0;;;-1:-1:-1;;;;;6878:15:1;;;6376:129:0::1;::::0;::::1;6860:34:1::0;6910:18;;;6903:34;;;;6953:18;;;6946:34;;;;6996:18;;;6989:34;7060:15;;;7039:19;;;7032:44;6489:15:0::1;7092:19:1::0;;;7085:35;6794:19;;6376:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6523:13:0::1;::::0;6554:15:::1;::::0;6516:71:::1;::::0;-1:-1:-1;;;6516:71:0;;-1:-1:-1;;;;;6554:15:0;;::::1;6516:71;::::0;::::1;7616:51:1::0;-1:-1:-1;;7683:18:1;;;7676:34;6523:13:0;::::1;::::0;-1:-1:-1;6516:29:0::1;::::0;7589:18:1;;6516:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5939:656::o:0;7437:160::-;7512:4;7528:39;399:10;7551:7;7560:6;7528:8;:39::i;:::-;-1:-1:-1;7585:4:0;7437:160;;;;;:::o;10243:150::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;10336:6:::1;:18:::0;;;;10365:7:::1;:20:::0;10243:150::o;6880:100::-;6933:7;4309:13;4248:2;4309;:13;:::i;:::-;4297:25;;:9;:25;:::i;:::-;6953:19;;6880:100;:::o;7723:283::-;7821:4;7838:36;7848:6;7856:9;7867:6;7838:9;:36::i;:::-;7885:91;7894:6;399:10;7914:61;7952:6;7914:61;;;;;;;;;;;;;-1:-1:-1;;;7914:61:0;;;:11;:19;7926:6;-1:-1:-1;;;;;7914:19:0;-1:-1:-1;;;;;7914:19:0;;;;;;;;;;;;:33;7934:12;399:10;;319:98;7934:12;-1:-1:-1;;;;;7914:33:0;;;;;;;;;;;;-1:-1:-1;7914:33:0;;;:61;:37;:61::i;7885:91::-;-1:-1:-1;7994:4:0;7723:283;;;;;:::o;10401:99::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;10469:1:::1;10460:6;:10:::0;10491:1:::1;10481:7;:11:::0;10401:99::o;11352:100::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;4309:13:::1;4248:2;4309;:13;:::i;:::-;4297:25;::::0;:9:::1;:25;:::i;:::-;11414:15;:30:::0;11352:100::o;2310:148::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;2417:1:::1;2401:6:::0;;2380:40:::1;::::0;-1:-1:-1;;;;;2401:6:0;;::::1;::::0;2380:40:::1;::::0;2417:1;;2380:40:::1;2448:1;2431:19:::0;;-1:-1:-1;;;;;;2431:19:0::1;::::0;;2310:148::o;5758:173::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;5830:6:::1;::::0;::::1;;5829:7;5821:42;;;::::0;-1:-1:-1;;;5821:42:0;;4116:2:1;5821:42:0::1;::::0;::::1;4098:21:1::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:1;;;4167:53;4237:18;;5821:42:0::1;3914:347:1::0;5821:42:0::1;5874:6;:13:::0;;-1:-1:-1;;5874:13:0::1;5883:4;5874:13;::::0;;5911:12:::1;5898:10;:25:::0;5758:173::o;11118:189::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;11205:1:::1;11181:21;:25;11173:64;;;::::0;-1:-1:-1;;;11173:64:0;;8205:2:1;11173:64:0::1;::::0;::::1;8187:21:1::0;8244:2;8224:18;;;8217:30;8283:28;8263:18;;;8256:56;8329:18;;11173:64:0::1;8003:350:1::0;11173:64:0::1;11248:51;::::0;11256:10:::1;::::0;11277:21:::1;11248:51:::0;::::1;;;::::0;::::1;::::0;;;11277:21;11256:10;11248:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;7114:165:::0;7191:4;7207:42;399:10;7231:9;7242:6;7207:9;:42::i;7606:109::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;7678:11:::1;:28:::0;7606:109::o;2075:227::-;1997:6;;-1:-1:-1;;;;;1997:6:0;399:10;1997:22;1989:58;;;;-1:-1:-1;;;1989:58:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2156:22:0;::::1;2148:64;;;::::0;-1:-1:-1;;;2148:64:0;;8560:2:1;2148:64:0::1;::::0;::::1;8542:21:1::0;8599:2;8579:18;;;8572:30;8638:31;8618:18;;;8611:59;8687:18;;2148:64:0::1;8358:353:1::0;2148:64:0::1;2223:6;:17:::0;;-1:-1:-1;;;;;;2223:17:0::1;-1:-1:-1::0;;;;;2223:17:0;::::1;::::0;;::::1;::::0;;2256:38:::1;::::0;2223:17;;;;2256:38:::1;::::0;2223:6;2256:38:::1;2075:227:::0;:::o;8014:265::-;-1:-1:-1;;;;;8107:19:0;;;;;;:44;;-1:-1:-1;;;;;;8130:21:0;;;;8107:44;8099:77;;;;-1:-1:-1;;;8099:77:0;;8918:2:1;8099:77:0;;;8900:21:1;8957:2;8937:18;;;8930:30;-1:-1:-1;;;8976:18:1;;;8969:50;9036:18;;8099:77:0;8716:344:1;8099:77:0;-1:-1:-1;;;;;8187:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8239:32;;1614:25:1;;;8239:32:0;;1587:18:1;8239:32:0;;;;;;;8014:265;;;:::o;8287:1775::-;-1:-1:-1;;;;;8377:18:0;;8369:68;;;;-1:-1:-1;;;8369:68:0;;9267:2:1;8369:68:0;;;9249:21:1;9306:2;9286:18;;;9279:30;9345:34;9325:18;;;9318:62;-1:-1:-1;;;9396:18:1;;;9389:35;9441:19;;8369:68:0;9065:401:1;8369:68:0;-1:-1:-1;;;;;8456:16:0;;8448:64;;;;-1:-1:-1;;;8448:64:0;;9673:2:1;8448:64:0;;;9655:21:1;9712:2;9692:18;;;9685:30;9751:34;9731:18;;;9724:62;-1:-1:-1;;;9802:18:1;;;9795:33;9845:19;;8448:64:0;9471:399:1;8448:64:0;8540:1;8531:6;:10;8523:64;;;;-1:-1:-1;;;8523:64:0;;10077:2:1;8523:64:0;;;10059:21:1;10116:2;10096:18;;;10089:30;10155:34;10135:18;;;10128:62;-1:-1:-1;;;10206:18:1;;;10199:39;10255:19;;8523:64:0;9875:405:1;8523:64:0;-1:-1:-1;;;;;8604:30:0;;;;;;:24;:30;;;;;;;;;:62;;-1:-1:-1;;;;;;8638:28:0;;;;;;:24;:28;;;;;;;;8604:62;8600:1072;;;8693:1;8683:7;:11;8600:1072;;;8735:6;;;;8727:35;;;;-1:-1:-1;;;8727:35:0;;10487:2:1;8727:35:0;;;10469:21:1;10526:2;10506:18;;;10499:30;-1:-1:-1;;;10545:18:1;;;10538:46;10601:18;;8727:35:0;10285:340:1;8727:35:0;8809:11;;8796:10;;:24;;;;:::i;:::-;8781:12;:39;8777:884;;;8831:2;8823:7;:10;8777:884;;;8872:13;;-1:-1:-1;;;;;8872:13:0;;;8864:21;;;;8860:786;;8944:15;;8934:6;8918:13;8928:2;-1:-1:-1;;;;;7081:17:0;7054:7;7081:17;;;:8;:17;;;;;;;6988:118;8918:13;:22;;;;:::i;:::-;:41;;8910:77;;;;-1:-1:-1;;;8910:77:0;;10962:2:1;8910:77:0;;;10944:21:1;11001:2;10981:18;;;10974:30;11040:25;11020:18;;;11013:53;11083:18;;8910:77:0;10760:347:1;8910:77:0;9020:6;;9010:7;:16;8860:786;;;9062:13;;-1:-1:-1;;;;;9062:13:0;;;9056:19;;;;9052:594;;9141:4;9100:20;7081:17;;;:8;:17;;;;;;5096:4;4383:13;4248:2;4383;:13;:::i;:::-;4373:23;;:7;:23;:::i;:::-;5083:17;;;;:::i;:::-;9174:12;:22;:43;;;;-1:-1:-1;9201:16:0;;;;;;;9200:17;9174:43;9170:271;;;4383:13;4248:2;4383;:13;:::i;:::-;4373:23;;:7;:23;:::i;:::-;9250:12;:25;9246:115;;;4383:13;4248:2;4383;:13;:::i;:::-;4373:23;;:7;:23;:::i;:::-;9308:25;;9246:115;9387:30;9404:12;9387:16;:30::i;:::-;9473:7;;9463;:17;5096:4;4383:13;4248:2;4383;:13;:::i;:::-;4373:23;;:7;:23;:::i;:::-;5083:17;;;;:::i;:::-;9506:6;:16;9503:61;;;9524:40;9542:21;9524:17;:40::i;:::-;9077:509;9052:594;;;9625:1;9615:7;:11;9052:594;9684:17;9725:3;9714:7;;9705:6;:16;;;;:::i;:::-;9704:24;;;;:::i;:::-;9684:44;-1:-1:-1;9739:22:0;9764:18;9684:44;9764:6;:18;:::i;:::-;9739:43;;9798:12;9805:4;9798:6;:12::i;:::-;9795:27;;;9821:1;9812:10;;9795:27;-1:-1:-1;;;;;9852:14:0;;;;;;:8;:14;;;;;;:23;;9869:6;;9852:23;:::i;:::-;-1:-1:-1;;;;;9835:14:0;;;;;;;:8;:14;;;;;;:40;;;;9901:12;;;;;;;:29;;9916:14;;9901:29;:::i;:::-;-1:-1:-1;;;;;9886:12:0;;;;;;:8;:12;;;;;;:44;;;;9984:4;9967:23;;;;:35;;9993:9;;9967:35;:::i;:::-;9958:4;9941:23;;;;:8;:23;;;;;;;;;:61;;;;10020:34;1614:25:1;;;-1:-1:-1;;;;;10020:34:0;;;;;;;;;;1587:18:1;10020:34:0;;;;;;;8356:1706;;8287:1775;;;:::o;759:190::-;845:7;881:12;873:6;;;;865:29;;;;-1:-1:-1;;;865:29:0;;;;;;;;:::i;:::-;-1:-1:-1;905:9:0;917:5;921:1;917;:5;:::i;:::-;905:17;759:190;-1:-1:-1;;;;;759:190:0:o;10508:493::-;5205:16;:23;;-1:-1:-1;;5205:23:0;;;;;10610:16:::1;::::0;;10624:1:::1;10610:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10610:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10610:16:0::1;10586:40;;10655:4;10637;10642:1;10637:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10637:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10681:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10681:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10637:7;;10681:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10671:4;10676:1;10671:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10671:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10746:15:::1;::::0;10714:62:::1;::::0;10731:4:::1;::::0;10746:15:::1;10764:11:::0;10714:8:::1;:62::i;:::-;10787:15;::::0;:196:::1;::::0;-1:-1:-1;;;10787:196:0;;-1:-1:-1;;;;;10787:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10868:11;;10787:15:::1;::::0;10910:4;;10937::::1;::::0;10957:15:::1;::::0;10787:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5251:16:0;:24;;-1:-1:-1;;5251:24:0;;;-1:-1:-1;;;;10508:493:0:o;11009:101::-;11071:14;;:31;;-1:-1:-1;;;;;11071:14:0;;;;:31;;;;;11095:6;;11071:14;:31;:14;:31;11095:6;11071:14;:31;;;;;;;;;;;;;;;;;;;;;11009:101;:::o;10070:165::-;-1:-1:-1;;;;;10149:32:0;;10125:4;10149:32;;;:24;:32;;;;;;;;:52;;;;-1:-1:-1;1908:7:0;1935:6;-1:-1:-1;;;;;10185:16:0;;;1935:6;;10185:16;;10149:52;:78;;;;-1:-1:-1;;;;;;10205:22:0;;10222:4;10205:22;;10142:85;10070:165;-1:-1:-1;;10070:165:0: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;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;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1650:456::-;1727:6;1735;1743;1796:2;1784:9;1775:7;1771:23;1767:32;1764:52;;;1812:1;1809;1802:12;1764:52;1851:9;1838:23;1870:31;1895:5;1870:31;:::i;:::-;1920:5;-1:-1:-1;1977:2:1;1962:18;;1949:32;1990:33;1949:32;1990:33;:::i;:::-;1650:456;;2042:7;;-1:-1:-1;;;2096:2:1;2081:18;;;;2068:32;;1650:456::o;2732:247::-;2791:6;2844:2;2832:9;2823:7;2819:23;2815:32;2812:52;;;2860:1;2857;2850:12;2812:52;2899:9;2886:23;2918:31;2943:5;2918:31;:::i;:::-;2968:5;2732:247;-1:-1:-1;;;2732:247:1:o;2984:180::-;3043:6;3096:2;3084:9;3075:7;3071:23;3067:32;3064:52;;;3112:1;3109;3102:12;3064:52;-1:-1:-1;3135:23:1;;2984:180;-1:-1:-1;2984:180:1:o;3169:388::-;3237:6;3245;3298:2;3286:9;3277:7;3273:23;3269:32;3266:52;;;3314:1;3311;3304:12;3266:52;3353:9;3340:23;3372:31;3397:5;3372:31;:::i;:::-;3422:5;-1:-1:-1;3479:2:1;3464:18;;3451:32;3492:33;3451:32;3492:33;:::i;:::-;3544:7;3534:17;;;3169:388;;;;;:::o;3562:347::-;3764:2;3746:21;;;3803:2;3783:18;;;3776:30;3842:25;3837:2;3822:18;;3815:53;3900:2;3885:18;;3562:347::o;4266:127::-;4327:10;4322:3;4318:20;4315:1;4308:31;4358:4;4355:1;4348:15;4382:4;4379:1;4372:15;4398:422;4487:1;4530:5;4487:1;4544:270;4565:7;4555:8;4552:21;4544:270;;;4624:4;4620:1;4616:6;4612:17;4606:4;4603:27;4600:53;;;4633:18;;:::i;:::-;4683:7;4673:8;4669:22;4666:55;;;4703:16;;;;4666:55;4782:22;;;;4742:15;;;;4544:270;;;4548:3;4398:422;;;;;:::o;4825:806::-;4874:5;4904:8;4894:80;;-1:-1:-1;4945:1:1;4959:5;;4894:80;4993:4;4983:76;;-1:-1:-1;5030:1:1;5044:5;;4983:76;5075:4;5093:1;5088:59;;;;5161:1;5156:130;;;;5068:218;;5088:59;5118:1;5109:10;;5132:5;;;5156:130;5193:3;5183:8;5180:17;5177:43;;;5200:18;;:::i;:::-;-1:-1:-1;;5256:1:1;5242:16;;5271:5;;5068:218;;5370:2;5360:8;5357:16;5351:3;5345:4;5342:13;5338:36;5332:2;5322:8;5319:16;5314:2;5308:4;5305:12;5301:35;5298:77;5295:159;;;-1:-1:-1;5407:19:1;;;5439:5;;5295:159;5486:34;5511:8;5505:4;5486:34;:::i;:::-;5556:6;5552:1;5548:6;5544:19;5535:7;5532:32;5529:58;;;5567:18;;:::i;:::-;5605:20;;4825:806;-1:-1:-1;;;4825:806:1:o;5636:140::-;5694:5;5723:47;5764:4;5754:8;5750:19;5744:4;5723:47;:::i;5781:168::-;5854:9;;;5885;;5902:15;;;5896:22;;5882:37;5872:71;;5923:18;;:::i;5954:251::-;6024:6;6077:2;6065:9;6056:7;6052:23;6048:32;6045:52;;;6093:1;6090;6083:12;6045:52;6125:9;6119:16;6144:31;6169:5;6144:31;:::i;7131:306::-;7219:6;7227;7235;7288:2;7276:9;7267:7;7263:23;7259:32;7256:52;;;7304:1;7301;7294:12;7256:52;7333:9;7327:16;7317:26;;7383:2;7372:9;7368:18;7362:25;7352:35;;7427:2;7416:9;7412:18;7406:25;7396:35;;7131:306;;;;;:::o;7721:277::-;7788:6;7841:2;7829:9;7820:7;7816:23;7812:32;7809:52;;;7857:1;7854;7847:12;7809:52;7889:9;7883:16;7942:5;7935:13;7928:21;7921:5;7918:32;7908:60;;7964:1;7961;7954:12;10630:125;10695:9;;;10716:10;;;10713:36;;;10729:18;;:::i;11112:217::-;11152:1;11178;11168:132;;11222:10;11217:3;11213:20;11210:1;11203:31;11257:4;11254:1;11247:15;11285:4;11282:1;11275:15;11168:132;-1:-1:-1;11314:9:1;;11112:217::o;11334:128::-;11401:9;;;11422:11;;;11419:37;;;11436:18;;:::i;11599:127::-;11660:10;11655:3;11651:20;11648:1;11641:31;11691:4;11688:1;11681:15;11715:4;11712:1;11705:15;11731:980;11993:4;12041:3;12030:9;12026:19;12072:6;12061:9;12054:25;12098:2;12136:6;12131:2;12120:9;12116:18;12109:34;12179:3;12174:2;12163:9;12159:18;12152:31;12203:6;12238;12232:13;12269:6;12261;12254:22;12307:3;12296:9;12292:19;12285:26;;12346:2;12338:6;12334:15;12320:29;;12367:1;12377:195;12391:6;12388:1;12385:13;12377:195;;;12456:13;;-1:-1:-1;;;;;12452:39:1;12440:52;;12547:15;;;;12512:12;;;;12488:1;12406:9;12377:195;;;-1:-1:-1;;;;;;;12628:32:1;;;;12623:2;12608:18;;12601:60;-1:-1:-1;;;12692:3:1;12677:19;12670:35;12589:3;11731:980;-1:-1:-1;;;11731:980:1:o

Swarm Source

ipfs://50c62f894a076b52e2f3a379a1220a2fa04d84a896bf2ad274ad993e766c3c06

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.