ETH Price: $3,387.84 (+0.65%)

Contract

0xD3fD6e2a1c5AEeC1A11A4Ed789D22ef457A66A23
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer188847832023-12-28 14:44:47364 days ago1703774687IN
0xD3fD6e2a...457A66A23
0 ETH0.0041865550
Transfer188383992023-12-22 2:25:23371 days ago1703211923IN
0xD3fD6e2a...457A66A23
0 ETH0.0023256726.2731972
Approve175002222023-06-17 14:47:59558 days ago1687013279IN
0xD3fD6e2a...457A66A23
0 ETH0.0003668214.74833453
Approve174643512023-06-12 13:43:47563 days ago1686577427IN
0xD3fD6e2a...457A66A23
0 ETH0.0004411417.73650507
Approve172192962023-05-09 0:20:35598 days ago1683591635IN
0xD3fD6e2a...457A66A23
0 ETH0.0030880765.48645869
Approve171895992023-05-04 20:12:23602 days ago1683231143IN
0xD3fD6e2a...457A66A23
0 ETH0.0042777890.60041464
Approve171861712023-05-04 8:39:23603 days ago1683189563IN
0xD3fD6e2a...457A66A23
0 ETH0.0013511454.19302447
Approve171622252023-04-30 23:47:11606 days ago1682898431IN
0xD3fD6e2a...457A66A23
0 ETH0.001730536.90407713
Approve171553682023-04-30 0:41:59607 days ago1682815319IN
0xD3fD6e2a...457A66A23
0 ETH0.0015994633.9186631
Approve171523932023-04-29 14:37:59607 days ago1682779079IN
0xD3fD6e2a...457A66A23
0 ETH0.0017230636.49321038
Approve171305832023-04-26 13:05:23610 days ago1682514323IN
0xD3fD6e2a...457A66A23
0 ETH0.0016545735.08729313
Approve171223802023-04-25 9:26:59612 days ago1682414819IN
0xD3fD6e2a...457A66A23
0 ETH0.0016106934.1567686
Approve171164282023-04-24 13:25:11612 days ago1682342711IN
0xD3fD6e2a...457A66A23
0 ETH0.0015645652.5164206
Approve171142892023-04-24 6:12:59613 days ago1682316779IN
0xD3fD6e2a...457A66A23
0 ETH0.0017970438.06005806
Approve171141212023-04-24 5:38:47613 days ago1682314727IN
0xD3fD6e2a...457A66A23
0 ETH0.0009160236.82968132
Approve171113642023-04-23 20:23:23613 days ago1682281403IN
0xD3fD6e2a...457A66A23
0 ETH0.0011442945.89672766
Approve171102742023-04-23 16:43:23613 days ago1682268203IN
0xD3fD6e2a...457A66A23
0 ETH0.0021237345.03632728
Approve171100522023-04-23 15:58:47613 days ago1682265527IN
0xD3fD6e2a...457A66A23
0 ETH0.0020854445.1824395
Approve171038092023-04-22 18:56:11614 days ago1682189771IN
0xD3fD6e2a...457A66A23
0 ETH0.0015587333.05479156
Approve171030842023-04-22 16:30:35614 days ago1682181035IN
0xD3fD6e2a...457A66A23
0 ETH0.0018132538.45220478
Approve171027362023-04-22 15:20:47614 days ago1682176847IN
0xD3fD6e2a...457A66A23
0 ETH0.0017840637.83323728
Approve171013772023-04-22 10:45:59614 days ago1682160359IN
0xD3fD6e2a...457A66A23
0 ETH0.0016123534.19191172
Approve170993962023-04-22 4:06:23615 days ago1682136383IN
0xD3fD6e2a...457A66A23
0 ETH0.0017002636.05607432
Approve170981792023-04-22 0:01:23615 days ago1682121683IN
0xD3fD6e2a...457A66A23
0 ETH0.0009706838.93311395
Approve170949852023-04-21 13:12:35615 days ago1682082755IN
0xD3fD6e2a...457A66A23
0 ETH0.0018234338.89576168
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
170871462023-04-20 10:34:23617 days ago1681986863
0xD3fD6e2a...457A66A23
0.02216463 ETH
170871462023-04-20 10:34:23617 days ago1681986863
0xD3fD6e2a...457A66A23
0.02216463 ETH
170871452023-04-20 10:34:11617 days ago1681986851
0xD3fD6e2a...457A66A23
0.07363445 ETH
170871452023-04-20 10:34:11617 days ago1681986851
0xD3fD6e2a...457A66A23
0.07363445 ETH
170871432023-04-20 10:33:47617 days ago1681986827
0xD3fD6e2a...457A66A23
0.06543454 ETH
170871432023-04-20 10:33:47617 days ago1681986827
0xD3fD6e2a...457A66A23
0.06543454 ETH
170871262023-04-20 10:30:11617 days ago1681986611
0xD3fD6e2a...457A66A23
0.00093072 ETH
170871262023-04-20 10:30:11617 days ago1681986611
0xD3fD6e2a...457A66A23
0.00093072 ETH
170871262023-04-20 10:30:11617 days ago1681986611
0xD3fD6e2a...457A66A23
0.0049754 ETH
170871262023-04-20 10:30:11617 days ago1681986611
0xD3fD6e2a...457A66A23
0.0049754 ETH
170871262023-04-20 10:30:11617 days ago1681986611
0xD3fD6e2a...457A66A23
0.0425822 ETH
170871262023-04-20 10:30:11617 days ago1681986611
0xD3fD6e2a...457A66A23
0.0425822 ETH
170871132023-04-20 10:27:35617 days ago1681986455
0xD3fD6e2a...457A66A23
0.01015822 ETH
170871132023-04-20 10:27:35617 days ago1681986455
0xD3fD6e2a...457A66A23
0.01015822 ETH
170871112023-04-20 10:27:11617 days ago1681986431
0xD3fD6e2a...457A66A23
0.00483984 ETH
170871112023-04-20 10:27:11617 days ago1681986431
0xD3fD6e2a...457A66A23
0.00483984 ETH
170871102023-04-20 10:26:59617 days ago1681986419
0xD3fD6e2a...457A66A23
0.00946186 ETH
170871102023-04-20 10:26:59617 days ago1681986419
0xD3fD6e2a...457A66A23
0.00946186 ETH
170871102023-04-20 10:26:59617 days ago1681986419
0xD3fD6e2a...457A66A23
0.00383689 ETH
170871102023-04-20 10:26:59617 days ago1681986419
0xD3fD6e2a...457A66A23
0.00383689 ETH
170871092023-04-20 10:26:47617 days ago1681986407
0xD3fD6e2a...457A66A23
0.00383689 ETH
170871092023-04-20 10:26:47617 days ago1681986407
0xD3fD6e2a...457A66A23
0.00383689 ETH
170871092023-04-20 10:26:47617 days ago1681986407
0xD3fD6e2a...457A66A23
0.00994257 ETH
170871092023-04-20 10:26:47617 days ago1681986407
0xD3fD6e2a...457A66A23
0.00994257 ETH
170871052023-04-20 10:25:59617 days ago1681986359
0xD3fD6e2a...457A66A23
0.01315559 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GOLDPEPE

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-17
*/

/**
GOLDPEPE
The Future of money

https://t.me/goldpepe
https://twitter.com/goldpepegold
www.goldpepe.com

SPDX-License-Identifier: UNLICENSED
****/

pragma solidity 0.8.7;

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;
    address private _previousOwner;
    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 GOLDPEPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100_000_000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "GOLDPEPE";
    string private constant _symbol = "PEPEGOLD";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 10_000_000 * 10**18;
    uint256 private _maxWalletSize = 100_000_000 * 10**18;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=6;
        _finalTax=4;
        _reduceTaxCountdown=20;

        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 tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

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


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function removeAllTax() public onlyOwner
    {
        _finalTax = 0;
    }

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[{"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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","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":"removeAllTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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":[{"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"}]

60806040526a52b7d2dcc80cd2e40000006000196200001f919062000480565b6000196200002e91906200043b565b6008556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff0219169083151502179055506a084595161401484a0000006012556a52b7d2dcc80cd2e4000000601355348015620000ad57600080fd5b506000620000c0620003dc60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200016e620003dc60201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001c5620003dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016005600062000219620003e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006600c819055506004600d819055506014600e8190555062000364620003dc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620003ce91906200041e565b60405180910390a362000516565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004188162000476565b82525050565b60006020820190506200043560008301846200040d565b92915050565b6000620004488262000476565b9150620004558362000476565b9250828210156200046b576200046a620004b8565b5b828203905092915050565b6000819050919050565b60006200048d8262000476565b91506200049a8362000476565b925082620004ad57620004ac620004e7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61304580620005266000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461030a578063b4fe8f6a14610347578063c3c8cd801461035e578063c9567bf914610375578063dd62ed3e1461038c57610109565b8063715018a614610286578063751039fc1461029d5780638da5cb5b146102b457806395d89b41146102df57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103c9565b604051610130919061277a565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122f7565b610406565b60405161016d919061275f565b60405180910390f35b34801561018257600080fd5b5061018b610424565b604051610198919061291c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906122a4565b610437565b6040516101d5919061275f565b60405180910390f35b3480156101ea57600080fd5b506101f3610510565b6040516102009190612991565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612337565b610519565b005b34801561023e57600080fd5b506102476105cb565b005b34801561025557600080fd5b50610270600480360381019061026b919061220a565b61063d565b60405161027d919061291c565b60405180910390f35b34801561029257600080fd5b5061029b61068e565b005b3480156102a957600080fd5b506102b26107e1565b005b3480156102c057600080fd5b506102c961088a565b6040516102d69190612691565b60405180910390f35b3480156102eb57600080fd5b506102f46108b3565b604051610301919061277a565b60405180910390f35b34801561031657600080fd5b50610331600480360381019061032c91906122f7565b6108f0565b60405161033e919061275f565b60405180910390f35b34801561035357600080fd5b5061035c61090e565b005b34801561036a57600080fd5b506103736109ad565b005b34801561038157600080fd5b5061038a610a27565b005b34801561039857600080fd5b506103b360048036038101906103ae9190612264565b610f76565b6040516103c0919061291c565b60405180910390f35b60606040518060400160405280600881526020017f474f4c4450455045000000000000000000000000000000000000000000000000815250905090565b600061041a610413610ffd565b8484611005565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b60006104448484846111d0565b61050584610450610ffd565b61050085604051806060016040528060288152602001612fe860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104b6610ffd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170a9092919063ffffffff16565b611005565b600190509392505050565b60006009905090565b610521610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a59061285c565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661060c610ffd565b73ffffffffffffffffffffffffffffffffffffffff161461062c57600080fd5b600047905061063a8161176e565b50565b6000610687600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117da565b9050919050565b610696610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a9061285c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107e9610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d9061285c565b60405180910390fd5b6a52b7d2dcc80cd2e4000000601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f50455045474f4c44000000000000000000000000000000000000000000000000815250905090565b60006109046108fd610ffd565b84846111d0565b6001905092915050565b610916610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a9061285c565b60405180910390fd5b6000600d81905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ee610ffd565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e57600080fd5b6000610a193061063d565b9050610a2481611848565b50565b610a2f610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab39061285c565b60405180910390fd5b601160149054906101000a900460ff1615610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906128fc565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9e30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e4000000611005565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610be457600080fd5b505afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190612237565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7e57600080fd5b505afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612237565b6040518363ffffffff1660e01b8152600401610cd39291906126ac565b602060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d259190612237565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dae3061063d565b600080610db961088a565b426040518863ffffffff1660e01b8152600401610ddb969594939291906126fe565b6060604051808303818588803b158015610df457600080fd5b505af1158015610e08573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2d9190612391565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f209291906126d5565b602060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f729190612364565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c906128dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906127fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c3919061291c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611240576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112379061289c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061279c565b60405180910390fd5b600081116112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea9061287c565b60405180910390fd5b6112fb61088a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611369575061133961088a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116e957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114125750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61141b57600080fd5b6000600a819055506000600e541461143557600c54611439565b600d545b600b81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114ea5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115405750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115585750601160179054906101000a900460ff165b1561161f576012548111156115a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611599906127bc565b60405180910390fd5b601354816115af8461063d565b6115b99190612a01565b11156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f1906128bc565b60405180910390fd5b6000600e54111561161e57600e600081548092919061161890612bb0565b91905055505b5b600061162a3061063d565b9050601160159054906101000a900460ff161580156116975750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116af5750601160169054906101000a900460ff165b80156116bb5750600081115b156116e3576116c981611848565b600047905060008111156116e1576116e04761176e565b5b505b506116fa565b6000600a819055506000600b819055505b611705838383611ad0565b505050565b6000838311158290611752576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611749919061277a565b60405180910390fd5b50600083856117619190612ae2565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117d6573d6000803e3d6000fd5b5050565b6000600854821115611821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611818906127dc565b60405180910390fd5b600061182b611ae0565b90506118408184611b0b90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118805761187f612c67565b5b6040519080825280602002602001820160405280156118ae5781602001602082028036833780820191505090505b50905030816000815181106118c6576118c5612c38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561196857600080fd5b505afa15801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a09190612237565b816001815181106119b4576119b3612c38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a1b30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611005565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a7f959493929190612937565b600060405180830381600087803b158015611a9957600080fd5b505af1158015611aad573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b611adb838383611b55565b505050565b6000806000611aed611d20565b91509150611b048183611b0b90919063ffffffff16565b9250505090565b6000611b4d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d88565b905092915050565b600080600080600080611b6787611deb565b955095509550955095509550611bc586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca681611efb565b611cb08483611fb8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d0d919061291c565b60405180910390a3505050505050505050565b6000806000600854905060006a52b7d2dcc80cd2e40000009050611d5a6a52b7d2dcc80cd2e4000000600854611b0b90919063ffffffff16565b821015611d7b576008546a52b7d2dcc80cd2e4000000935093505050611d84565b81819350935050505b9091565b60008083118290611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc6919061277a565b60405180910390fd5b5060008385611dde9190612a57565b9050809150509392505050565b6000806000806000806000806000611e088a600a54600b54611ff2565b9250925092506000611e18611ae0565b90506000806000611e2b8e878787612088565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e9583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061170a565b905092915050565b6000808284611eac9190612a01565b905083811015611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee89061281c565b60405180910390fd5b8091505092915050565b6000611f05611ae0565b90506000611f1c828461211190919063ffffffff16565b9050611f7081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fcd82600854611e5390919063ffffffff16565b600881905550611fe881600954611e9d90919063ffffffff16565b6009819055505050565b60008060008061201e6064612010888a61211190919063ffffffff16565b611b0b90919063ffffffff16565b90506000612048606461203a888b61211190919063ffffffff16565b611b0b90919063ffffffff16565b9050600061207182612063858c611e5390919063ffffffff16565b611e5390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806120a1858961211190919063ffffffff16565b905060006120b8868961211190919063ffffffff16565b905060006120cf878961211190919063ffffffff16565b905060006120f8826120ea8587611e5390919063ffffffff16565b611e5390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121245760009050612186565b600082846121329190612a88565b90508284826121419190612a57565b14612181576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121789061283c565b60405180910390fd5b809150505b92915050565b60008135905061219b81612fa2565b92915050565b6000815190506121b081612fa2565b92915050565b6000813590506121c581612fb9565b92915050565b6000815190506121da81612fb9565b92915050565b6000813590506121ef81612fd0565b92915050565b60008151905061220481612fd0565b92915050565b6000602082840312156122205761221f612c96565b5b600061222e8482850161218c565b91505092915050565b60006020828403121561224d5761224c612c96565b5b600061225b848285016121a1565b91505092915050565b6000806040838503121561227b5761227a612c96565b5b60006122898582860161218c565b925050602061229a8582860161218c565b9150509250929050565b6000806000606084860312156122bd576122bc612c96565b5b60006122cb8682870161218c565b93505060206122dc8682870161218c565b92505060406122ed868287016121e0565b9150509250925092565b6000806040838503121561230e5761230d612c96565b5b600061231c8582860161218c565b925050602061232d858286016121e0565b9150509250929050565b60006020828403121561234d5761234c612c96565b5b600061235b848285016121b6565b91505092915050565b60006020828403121561237a57612379612c96565b5b6000612388848285016121cb565b91505092915050565b6000806000606084860312156123aa576123a9612c96565b5b60006123b8868287016121f5565b93505060206123c9868287016121f5565b92505060406123da868287016121f5565b9150509250925092565b60006123f083836123fc565b60208301905092915050565b61240581612b16565b82525050565b61241481612b16565b82525050565b6000612425826129bc565b61242f81856129df565b935061243a836129ac565b8060005b8381101561246b57815161245288826123e4565b975061245d836129d2565b92505060018101905061243e565b5085935050505092915050565b61248181612b28565b82525050565b61249081612b6b565b82525050565b60006124a1826129c7565b6124ab81856129f0565b93506124bb818560208601612b7d565b6124c481612c9b565b840191505092915050565b60006124dc6023836129f0565b91506124e782612cac565b604082019050919050565b60006124ff6019836129f0565b915061250a82612cfb565b602082019050919050565b6000612522602a836129f0565b915061252d82612d24565b604082019050919050565b60006125456022836129f0565b915061255082612d73565b604082019050919050565b6000612568601b836129f0565b915061257382612dc2565b602082019050919050565b600061258b6021836129f0565b915061259682612deb565b604082019050919050565b60006125ae6020836129f0565b91506125b982612e3a565b602082019050919050565b60006125d16029836129f0565b91506125dc82612e63565b604082019050919050565b60006125f46025836129f0565b91506125ff82612eb2565b604082019050919050565b6000612617601a836129f0565b915061262282612f01565b602082019050919050565b600061263a6024836129f0565b915061264582612f2a565b604082019050919050565b600061265d6017836129f0565b915061266882612f79565b602082019050919050565b61267c81612b54565b82525050565b61268b81612b5e565b82525050565b60006020820190506126a6600083018461240b565b92915050565b60006040820190506126c1600083018561240b565b6126ce602083018461240b565b9392505050565b60006040820190506126ea600083018561240b565b6126f76020830184612673565b9392505050565b600060c082019050612713600083018961240b565b6127206020830188612673565b61272d6040830187612487565b61273a6060830186612487565b612747608083018561240b565b61275460a0830184612673565b979650505050505050565b60006020820190506127746000830184612478565b92915050565b600060208201905081810360008301526127948184612496565b905092915050565b600060208201905081810360008301526127b5816124cf565b9050919050565b600060208201905081810360008301526127d5816124f2565b9050919050565b600060208201905081810360008301526127f581612515565b9050919050565b6000602082019050818103600083015261281581612538565b9050919050565b600060208201905081810360008301526128358161255b565b9050919050565b600060208201905081810360008301526128558161257e565b9050919050565b60006020820190508181036000830152612875816125a1565b9050919050565b60006020820190508181036000830152612895816125c4565b9050919050565b600060208201905081810360008301526128b5816125e7565b9050919050565b600060208201905081810360008301526128d58161260a565b9050919050565b600060208201905081810360008301526128f58161262d565b9050919050565b6000602082019050818103600083015261291581612650565b9050919050565b60006020820190506129316000830184612673565b92915050565b600060a08201905061294c6000830188612673565b6129596020830187612487565b818103604083015261296b818661241a565b905061297a606083018561240b565b6129876080830184612673565b9695505050505050565b60006020820190506129a66000830184612682565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a0c82612b54565b9150612a1783612b54565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a4c57612a4b612bda565b5b828201905092915050565b6000612a6282612b54565b9150612a6d83612b54565b925082612a7d57612a7c612c09565b5b828204905092915050565b6000612a9382612b54565b9150612a9e83612b54565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ad757612ad6612bda565b5b828202905092915050565b6000612aed82612b54565b9150612af883612b54565b925082821015612b0b57612b0a612bda565b5b828203905092915050565b6000612b2182612b34565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b7682612b54565b9050919050565b60005b83811015612b9b578082015181840152602081019050612b80565b83811115612baa576000848401525b50505050565b6000612bbb82612b54565b91506000821415612bcf57612bce612bda565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612fab81612b16565b8114612fb657600080fd5b50565b612fc281612b28565b8114612fcd57600080fd5b50565b612fd981612b54565b8114612fe457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122082883b8555a057059026f3cbaa27dc82f38e93dcef628a7aee6529ee1cd2d0fc64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461030a578063b4fe8f6a14610347578063c3c8cd801461035e578063c9567bf914610375578063dd62ed3e1461038c57610109565b8063715018a614610286578063751039fc1461029d5780638da5cb5b146102b457806395d89b41146102df57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103c9565b604051610130919061277a565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b91906122f7565b610406565b60405161016d919061275f565b60405180910390f35b34801561018257600080fd5b5061018b610424565b604051610198919061291c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906122a4565b610437565b6040516101d5919061275f565b60405180910390f35b3480156101ea57600080fd5b506101f3610510565b6040516102009190612991565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612337565b610519565b005b34801561023e57600080fd5b506102476105cb565b005b34801561025557600080fd5b50610270600480360381019061026b919061220a565b61063d565b60405161027d919061291c565b60405180910390f35b34801561029257600080fd5b5061029b61068e565b005b3480156102a957600080fd5b506102b26107e1565b005b3480156102c057600080fd5b506102c961088a565b6040516102d69190612691565b60405180910390f35b3480156102eb57600080fd5b506102f46108b3565b604051610301919061277a565b60405180910390f35b34801561031657600080fd5b50610331600480360381019061032c91906122f7565b6108f0565b60405161033e919061275f565b60405180910390f35b34801561035357600080fd5b5061035c61090e565b005b34801561036a57600080fd5b506103736109ad565b005b34801561038157600080fd5b5061038a610a27565b005b34801561039857600080fd5b506103b360048036038101906103ae9190612264565b610f76565b6040516103c0919061291c565b60405180910390f35b60606040518060400160405280600881526020017f474f4c4450455045000000000000000000000000000000000000000000000000815250905090565b600061041a610413610ffd565b8484611005565b6001905092915050565b60006a52b7d2dcc80cd2e4000000905090565b60006104448484846111d0565b61050584610450610ffd565b61050085604051806060016040528060288152602001612fe860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104b6610ffd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461170a9092919063ffffffff16565b611005565b600190509392505050565b60006009905090565b610521610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a59061285c565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661060c610ffd565b73ffffffffffffffffffffffffffffffffffffffff161461062c57600080fd5b600047905061063a8161176e565b50565b6000610687600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117da565b9050919050565b610696610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a9061285c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107e9610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086d9061285c565b60405180910390fd5b6a52b7d2dcc80cd2e4000000601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f50455045474f4c44000000000000000000000000000000000000000000000000815250905090565b60006109046108fd610ffd565b84846111d0565b6001905092915050565b610916610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a9061285c565b60405180910390fd5b6000600d81905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ee610ffd565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e57600080fd5b6000610a193061063d565b9050610a2481611848565b50565b610a2f610ffd565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab39061285c565b60405180910390fd5b601160149054906101000a900460ff1615610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906128fc565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9e30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a52b7d2dcc80cd2e4000000611005565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610be457600080fd5b505afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190612237565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7e57600080fd5b505afa158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb69190612237565b6040518363ffffffff1660e01b8152600401610cd39291906126ac565b602060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d259190612237565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dae3061063d565b600080610db961088a565b426040518863ffffffff1660e01b8152600401610ddb969594939291906126fe565b6060604051808303818588803b158015610df457600080fd5b505af1158015610e08573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2d9190612391565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f209291906126d5565b602060405180830381600087803b158015610f3a57600080fd5b505af1158015610f4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f729190612364565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c906128dc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110dc906127fc565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111c3919061291c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611240576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112379061289c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a79061279c565b60405180910390fd5b600081116112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea9061287c565b60405180910390fd5b6112fb61088a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611369575061133961088a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116e957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114125750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61141b57600080fd5b6000600a819055506000600e541461143557600c54611439565b600d545b600b81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114ea5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115405750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115585750601160179054906101000a900460ff165b1561161f576012548111156115a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611599906127bc565b60405180910390fd5b601354816115af8461063d565b6115b99190612a01565b11156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f1906128bc565b60405180910390fd5b6000600e54111561161e57600e600081548092919061161890612bb0565b91905055505b5b600061162a3061063d565b9050601160159054906101000a900460ff161580156116975750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116af5750601160169054906101000a900460ff165b80156116bb5750600081115b156116e3576116c981611848565b600047905060008111156116e1576116e04761176e565b5b505b506116fa565b6000600a819055506000600b819055505b611705838383611ad0565b505050565b6000838311158290611752576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611749919061277a565b60405180910390fd5b50600083856117619190612ae2565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117d6573d6000803e3d6000fd5b5050565b6000600854821115611821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611818906127dc565b60405180910390fd5b600061182b611ae0565b90506118408184611b0b90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118805761187f612c67565b5b6040519080825280602002602001820160405280156118ae5781602001602082028036833780820191505090505b50905030816000815181106118c6576118c5612c38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561196857600080fd5b505afa15801561197c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119a09190612237565b816001815181106119b4576119b3612c38565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a1b30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611005565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a7f959493929190612937565b600060405180830381600087803b158015611a9957600080fd5b505af1158015611aad573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b611adb838383611b55565b505050565b6000806000611aed611d20565b91509150611b048183611b0b90919063ffffffff16565b9250505090565b6000611b4d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d88565b905092915050565b600080600080600080611b6787611deb565b955095509550955095509550611bc586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c5a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca681611efb565b611cb08483611fb8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d0d919061291c565b60405180910390a3505050505050505050565b6000806000600854905060006a52b7d2dcc80cd2e40000009050611d5a6a52b7d2dcc80cd2e4000000600854611b0b90919063ffffffff16565b821015611d7b576008546a52b7d2dcc80cd2e4000000935093505050611d84565b81819350935050505b9091565b60008083118290611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc6919061277a565b60405180910390fd5b5060008385611dde9190612a57565b9050809150509392505050565b6000806000806000806000806000611e088a600a54600b54611ff2565b9250925092506000611e18611ae0565b90506000806000611e2b8e878787612088565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e9583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061170a565b905092915050565b6000808284611eac9190612a01565b905083811015611ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee89061281c565b60405180910390fd5b8091505092915050565b6000611f05611ae0565b90506000611f1c828461211190919063ffffffff16565b9050611f7081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e9d90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611fcd82600854611e5390919063ffffffff16565b600881905550611fe881600954611e9d90919063ffffffff16565b6009819055505050565b60008060008061201e6064612010888a61211190919063ffffffff16565b611b0b90919063ffffffff16565b90506000612048606461203a888b61211190919063ffffffff16565b611b0b90919063ffffffff16565b9050600061207182612063858c611e5390919063ffffffff16565b611e5390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806120a1858961211190919063ffffffff16565b905060006120b8868961211190919063ffffffff16565b905060006120cf878961211190919063ffffffff16565b905060006120f8826120ea8587611e5390919063ffffffff16565b611e5390919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121245760009050612186565b600082846121329190612a88565b90508284826121419190612a57565b14612181576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121789061283c565b60405180910390fd5b809150505b92915050565b60008135905061219b81612fa2565b92915050565b6000815190506121b081612fa2565b92915050565b6000813590506121c581612fb9565b92915050565b6000815190506121da81612fb9565b92915050565b6000813590506121ef81612fd0565b92915050565b60008151905061220481612fd0565b92915050565b6000602082840312156122205761221f612c96565b5b600061222e8482850161218c565b91505092915050565b60006020828403121561224d5761224c612c96565b5b600061225b848285016121a1565b91505092915050565b6000806040838503121561227b5761227a612c96565b5b60006122898582860161218c565b925050602061229a8582860161218c565b9150509250929050565b6000806000606084860312156122bd576122bc612c96565b5b60006122cb8682870161218c565b93505060206122dc8682870161218c565b92505060406122ed868287016121e0565b9150509250925092565b6000806040838503121561230e5761230d612c96565b5b600061231c8582860161218c565b925050602061232d858286016121e0565b9150509250929050565b60006020828403121561234d5761234c612c96565b5b600061235b848285016121b6565b91505092915050565b60006020828403121561237a57612379612c96565b5b6000612388848285016121cb565b91505092915050565b6000806000606084860312156123aa576123a9612c96565b5b60006123b8868287016121f5565b93505060206123c9868287016121f5565b92505060406123da868287016121f5565b9150509250925092565b60006123f083836123fc565b60208301905092915050565b61240581612b16565b82525050565b61241481612b16565b82525050565b6000612425826129bc565b61242f81856129df565b935061243a836129ac565b8060005b8381101561246b57815161245288826123e4565b975061245d836129d2565b92505060018101905061243e565b5085935050505092915050565b61248181612b28565b82525050565b61249081612b6b565b82525050565b60006124a1826129c7565b6124ab81856129f0565b93506124bb818560208601612b7d565b6124c481612c9b565b840191505092915050565b60006124dc6023836129f0565b91506124e782612cac565b604082019050919050565b60006124ff6019836129f0565b915061250a82612cfb565b602082019050919050565b6000612522602a836129f0565b915061252d82612d24565b604082019050919050565b60006125456022836129f0565b915061255082612d73565b604082019050919050565b6000612568601b836129f0565b915061257382612dc2565b602082019050919050565b600061258b6021836129f0565b915061259682612deb565b604082019050919050565b60006125ae6020836129f0565b91506125b982612e3a565b602082019050919050565b60006125d16029836129f0565b91506125dc82612e63565b604082019050919050565b60006125f46025836129f0565b91506125ff82612eb2565b604082019050919050565b6000612617601a836129f0565b915061262282612f01565b602082019050919050565b600061263a6024836129f0565b915061264582612f2a565b604082019050919050565b600061265d6017836129f0565b915061266882612f79565b602082019050919050565b61267c81612b54565b82525050565b61268b81612b5e565b82525050565b60006020820190506126a6600083018461240b565b92915050565b60006040820190506126c1600083018561240b565b6126ce602083018461240b565b9392505050565b60006040820190506126ea600083018561240b565b6126f76020830184612673565b9392505050565b600060c082019050612713600083018961240b565b6127206020830188612673565b61272d6040830187612487565b61273a6060830186612487565b612747608083018561240b565b61275460a0830184612673565b979650505050505050565b60006020820190506127746000830184612478565b92915050565b600060208201905081810360008301526127948184612496565b905092915050565b600060208201905081810360008301526127b5816124cf565b9050919050565b600060208201905081810360008301526127d5816124f2565b9050919050565b600060208201905081810360008301526127f581612515565b9050919050565b6000602082019050818103600083015261281581612538565b9050919050565b600060208201905081810360008301526128358161255b565b9050919050565b600060208201905081810360008301526128558161257e565b9050919050565b60006020820190508181036000830152612875816125a1565b9050919050565b60006020820190508181036000830152612895816125c4565b9050919050565b600060208201905081810360008301526128b5816125e7565b9050919050565b600060208201905081810360008301526128d58161260a565b9050919050565b600060208201905081810360008301526128f58161262d565b9050919050565b6000602082019050818103600083015261291581612650565b9050919050565b60006020820190506129316000830184612673565b92915050565b600060a08201905061294c6000830188612673565b6129596020830187612487565b818103604083015261296b818661241a565b905061297a606083018561240b565b6129876080830184612673565b9695505050505050565b60006020820190506129a66000830184612682565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a0c82612b54565b9150612a1783612b54565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a4c57612a4b612bda565b5b828201905092915050565b6000612a6282612b54565b9150612a6d83612b54565b925082612a7d57612a7c612c09565b5b828204905092915050565b6000612a9382612b54565b9150612a9e83612b54565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ad757612ad6612bda565b5b828202905092915050565b6000612aed82612b54565b9150612af883612b54565b925082821015612b0b57612b0a612bda565b5b828203905092915050565b6000612b2182612b34565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b7682612b54565b9050919050565b60005b83811015612b9b578082015181840152602081019050612b80565b83811115612baa576000848401525b50505050565b6000612bbb82612b54565b91506000821415612bcf57612bce612bda565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612fab81612b16565b8114612fb657600080fd5b50565b612fc281612b28565b8114612fcd57600080fd5b50565b612fd981612b54565b8114612fe457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122082883b8555a057059026f3cbaa27dc82f38e93dcef628a7aee6529ee1cd2d0fc64736f6c63430008070033

Deployed Bytecode Sourcemap

3631:10126:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5519:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6371:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5796:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6540:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5705:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6861:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11788:193;;;;;;;;;;;;;:::i;:::-;;5899:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2714:148;;;;;;;;;;;;;:::i;:::-;;9549:83;;;;;;;;;;;;;:::i;:::-;;2500:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5610:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6045:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11989:78;;;;;;;;;;;;;:::i;:::-;;11586:194;;;;;;;;;;;;;:::i;:::-;;9744:773;;;;;;;;;;;;;:::i;:::-;;6220:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5519:83;5556:13;5589:5;;;;;;;;;;;;;;;;;5582:12;;5519:83;:::o;6371:161::-;6446:4;6463:39;6472:12;:10;:12::i;:::-;6486:7;6495:6;6463:8;:39::i;:::-;6520:4;6513:11;;6371:161;;;;:::o;5796:95::-;5849:7;4132:20;5869:14;;5796:95;:::o;6540:313::-;6638:4;6655:36;6665:6;6673:9;6684:6;6655:9;:36::i;:::-;6702:121;6711:6;6719:12;:10;:12::i;:::-;6733:89;6771:6;6733:89;;;;;;;;;;;;;;;;;:11;:19;6745:6;6733:19;;;;;;;;;;;;;;;:33;6753:12;:10;:12::i;:::-;6733:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6702:8;:121::i;:::-;6841:4;6834:11;;6540:313;;;;;:::o;5705:83::-;5746:5;4602:1;5764:16;;5705:83;:::o;6861:103::-;2637:12;:10;:12::i;:::-;2627:22;;:6;;;;;;;;;;:22;;;2619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6951:5:::1;6933:15;;:23;;;;;;;;;;;;;;;;;;6861:103:::0;:::o;11788:193::-;11854:14;;;;;;;;;;;11838:30;;:12;:10;:12::i;:::-;:30;;;11830:39;;;;;;11880:26;11909:21;11880:50;;11941:32;11954:18;11941:12;:32::i;:::-;11819:162;11788:193::o;5899:138::-;5965:7;5992:37;6012:7;:16;6020:7;6012:16;;;;;;;;;;;;;;;;5992:19;:37::i;:::-;5985:44;;5899:138;;;:::o;2714:148::-;2637:12;:10;:12::i;:::-;2627:22;;:6;;;;;;;;;;:22;;;2619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2821:1:::1;2784:40;;2805:6;::::0;::::1;;;;;;;;2784:40;;;;;;;;;;;;2852:1;2835:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2714:148::o:0;9549:83::-;2637:12;:10;:12::i;:::-;2627:22;;:6;;;;;;;;;;:22;;;2619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4132:20:::1;9602:12;:22;;;;9549:83::o:0;2500:79::-;2538:7;2565:6;;;;;;;;;;;2558:13;;2500:79;:::o;5610:87::-;5649:13;5682:7;;;;;;;;;;;;;;;;;5675:14;;5610:87;:::o;6045:167::-;6123:4;6140:42;6150:12;:10;:12::i;:::-;6164:9;6175:6;6140:9;:42::i;:::-;6200:4;6193:11;;6045:167;;;;:::o;11989:78::-;2637:12;:10;:12::i;:::-;2627:22;;:6;;;;;;;;;;:22;;;2619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12058:1:::1;12046:9;:13;;;;11989:78::o:0;11586:194::-;11652:14;;;;;;;;;;;11636:30;;:12;:10;:12::i;:::-;:30;;;11628:39;;;;;;11678:23;11704:24;11722:4;11704:9;:24::i;:::-;11678:50;;11739:33;11756:15;11739:16;:33::i;:::-;11617:163;11586:194::o;9744:773::-;2637:12;:10;:12::i;:::-;2627:22;;:6;;;;;;;;;;:22;;;2619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9808:11:::1;;;;;;;;;;;9807:12;9799:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9857:35;9914:42;9857:100;;9986:16;9968:15;;:34;;;;;;;;;;;;;;;;;;10013:58;10030:4;10045:15;;;;;;;;;;;4132:20;10013:8;:58::i;:::-;10116:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10098:56;;;10163:4;10170:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10098:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10082:13;;:112;;;;;;;;;;;;;;;;;;10205:15;;;;;;;;;;;:31;;;10244:21;10275:4;10281:24;10299:4;10281:9;:24::i;:::-;10306:1;10308::::0;10310:7:::1;:5;:7::i;:::-;10318:15;10205:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10359:4;10345:11;;:18;;;;;;;;;;;;;;;;;;10392:4;10374:15;;:22;;;;;;;;;;;;;;;;;;10423:4;10409:11;;:18;;;;;;;;;;;;;;;;;;10445:13;;;;;;;;;;;10438:29;;;10476:15;;;;;;;;;;;10494:14;10438:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9788:729;9744:773::o:0;6220:143::-;6301:7;6328:11;:18;6340:5;6328:18;;;;;;;;;;;;;;;:27;6347:7;6328:27;;;;;;;;;;;;;;;;6321:34;;6220:143;;;;:::o;220:98::-;273:7;300:10;293:17;;220:98;:::o;7234:335::-;7344:1;7327:19;;:5;:19;;;;7319:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7425:1;7406:21;;:7;:21;;;;7398:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7507:6;7477:11;:18;7489:5;7477:18;;;;;;;;;;;;;;;:27;7496:7;7477:27;;;;;;;;;;;;;;;:36;;;;7545:7;7529:32;;7538:5;7529:32;;;7554:6;7529:32;;;;;;:::i;:::-;;;;;;;;7234:335;;;:::o;7577:1473::-;7681:1;7665:18;;:4;:18;;;;7657:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7758:1;7744:16;;:2;:16;;;;7736:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7828:1;7819:6;:10;7811:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7902:7;:5;:7::i;:::-;7894:15;;:4;:15;;;;:32;;;;;7919:7;:5;:7::i;:::-;7913:13;;:2;:13;;;;7894:32;7890:1110;;;7952:4;:10;7957:4;7952:10;;;;;;;;;;;;;;;;;;;;;;;;;7951:11;:24;;;;;7967:4;:8;7972:2;7967:8;;;;;;;;;;;;;;;;;;;;;;;;;7966:9;7951:24;7943:33;;;;;;8003:1;7991:9;:13;;;;8053:1;8032:19;;:22;8031:46;;8066:11;;8031:46;;;8056:9;;8031:46;8019:9;:58;;;;8104:13;;;;;;;;;;;8096:21;;:4;:21;;;:55;;;;;8135:15;;;;;;;;;;;8121:30;;:2;:30;;;;8096:55;:83;;;;;8157:18;:22;8176:2;8157:22;;;;;;;;;;;;;;;;;;;;;;;;;8155:24;8096:83;:102;;;;;8183:15;;;;;;;;;;;8096:102;8092:397;;;8266:12;;8256:6;:22;;8248:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8361:14;;8351:6;8335:13;8345:2;8335:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8327:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8448:1;8428:19;;:21;8425:49;;;8451:19;;:21;;;;;;;;;:::i;:::-;;;;;;8425:49;8092:397;8507:28;8538:24;8556:4;8538:9;:24::i;:::-;8507:55;;8582:6;;;;;;;;;;;8581:7;:32;;;;;8600:13;;;;;;;;;;;8592:21;;:4;:21;;;;8581:32;:47;;;;;8617:11;;;;;;;;;;;8581:47;:73;;;;;8653:1;8632:20;:22;8581:73;8577:344;;;8675:38;8692:20;8675:16;:38::i;:::-;8732:26;8761:21;8732:50;;8825:1;8804:18;:22;8801:105;;;8851:35;8864:21;8851:12;:35::i;:::-;8801:105;8656:265;8577:344;7928:1004;7890:1110;;;8961:1;8949:9;:13;;;;8987:1;8975:9;:13;;;;7890:1110;9012:30;9027:4;9032:2;9035:6;9012:14;:30::i;:::-;7577:1473;;;:::o;1357:190::-;1443:7;1476:1;1471;:6;;1479:12;1463:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1503:9;1519:1;1515;:5;;;;:::i;:::-;1503:17;;1538:1;1531:8;;;1357:190;;;;;:::o;9640:96::-;9697:14;;;;;;;;;;;:23;;:31;9721:6;9697:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9640:96;:::o;6972:254::-;7039:7;7078;;7067;:18;;7059:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7143:19;7166:10;:8;:10::i;:::-;7143:33;;7194:24;7206:11;7194:7;:11;;:24;;;;:::i;:::-;7187:31;;;6972:254;;;:::o;9058:483::-;5052:4;5043:6;;:13;;;;;;;;;;;;;;;;;;9136:21:::1;9174:1;9160:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9136:40;;9205:4;9187;9192:1;9187:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9231:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9221:4;9226:1;9221:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9264:62;9281:4;9296:15;;;;;;;;;;;9314:11;9264:8;:62::i;:::-;9337:15;;;;;;;;;;;:66;;;9418:11;9444:1;9460:4;9487;9507:15;9337:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9125:416;5088:5:::0;5079:6;;:14;;;;;;;;;;;;;;;;;;9058:483;:::o;10525:146::-;10619:44;10637:6;10645:9;10656:6;10619:17;:44::i;:::-;10525:146;;;:::o;13327:163::-;13368:7;13389:15;13406;13425:19;:17;:19::i;:::-;13388:56;;;;13462:20;13474:7;13462;:11;;:20;;;;:::i;:::-;13455:27;;;;13327:163;:::o;1809:132::-;1867:7;1894:39;1898:1;1901;1894:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1887:46;;1809:132;;;;:::o;10679:487::-;10778:15;10795:23;10820:12;10834:23;10859:12;10873:13;10890:19;10901:7;10890:10;:19::i;:::-;10777:132;;;;;;;;;;;;10938:28;10958:7;10938;:15;10946:6;10938:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10920:7;:15;10928:6;10920:15;;;;;;;;;;;;;;;:46;;;;10998:39;11021:15;10998:7;:18;11006:9;10998:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10977:7;:18;10985:9;10977:18;;;;;;;;;;;;;;;:60;;;;11048:16;11058:5;11048:9;:16::i;:::-;11075:23;11087:4;11093;11075:11;:23::i;:::-;11131:9;11114:44;;11123:6;11114:44;;;11142:15;11114:44;;;;;;:::i;:::-;;;;;;;;10766:400;;;;;;10679:487;;;:::o;13498:256::-;13548:7;13557;13577:15;13595:7;;13577:25;;13613:15;4132:20;13613:25;;13663:20;4132;13663:7;;:11;;:20;;;;:::i;:::-;13653:7;:30;13649:61;;;13693:7;;4132:20;13685:25;;;;;;;;13649:61;13729:7;13738;13721:25;;;;;;13498:256;;;:::o;1949:189::-;2035:7;2067:1;2063;:5;2070:12;2055:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2094:9;2110:1;2106;:5;;;;:::i;:::-;2094:17;;2129:1;2122:8;;;1949:189;;;;;:::o;12075:471::-;12134:7;12143;12152;12161;12170;12179;12200:23;12225:12;12239:13;12256:42;12268:7;12277:9;;12288;;12256:11;:42::i;:::-;12199:99;;;;;;12309:19;12332:10;:8;:10::i;:::-;12309:33;;12354:15;12371:23;12396:12;12412:46;12424:7;12433:4;12439:5;12446:11;12412;:46::i;:::-;12353:105;;;;;;12477:7;12486:15;12503:4;12509:15;12526:4;12532:5;12469:69;;;;;;;;;;;;;;;;;;;12075:471;;;;;;;:::o;1213:136::-;1271:7;1298:43;1302:1;1305;1298:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1291:50;;1213:136;;;;:::o;1026:179::-;1084:7;1104:9;1120:1;1116;:5;;;;:::i;:::-;1104:17;;1145:1;1140;:6;;1132:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1196:1;1189:8;;;1026:179;;;;:::o;11174:212::-;11227:19;11250:10;:8;:10::i;:::-;11227:33;;11271:13;11287:22;11297:11;11287:5;:9;;:22;;;;:::i;:::-;11271:38;;11345:33;11372:5;11345:7;:22;11361:4;11345:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11320:7;:22;11336:4;11320:22;;;;;;;;;;;;;;;:58;;;;11216:170;;11174:212;:::o;11394:147::-;11472:17;11484:4;11472:7;;:11;;:17;;;;:::i;:::-;11462:7;:27;;;;11513:20;11528:4;11513:10;;:14;;:20;;;;:::i;:::-;11500:10;:33;;;;11394:147;;:::o;12554:351::-;12647:7;12656;12665;12685:12;12700:28;12724:3;12700:19;12712:6;12700:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12685:43;;12739:13;12755:29;12780:3;12755:20;12767:7;12755;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12739:45;;12795:23;12821:28;12843:5;12821:17;12833:4;12821:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12795:54;;12868:15;12885:4;12891:5;12860:37;;;;;;;;;12554:351;;;;;;;:::o;12913:409::-;13023:7;13032;13041;13061:15;13079:24;13091:11;13079:7;:11;;:24;;;;:::i;:::-;13061:42;;13114:12;13129:21;13138:11;13129:4;:8;;:21;;;;:::i;:::-;13114:36;;13161:13;13177:22;13187:11;13177:5;:9;;:22;;;;:::i;:::-;13161:38;;13210:23;13236:28;13258:5;13236:17;13248:4;13236:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13210:54;;13283:7;13292:15;13309:4;13275:39;;;;;;;;;;12913:409;;;;;;;;:::o;1555:246::-;1613:7;1642:1;1637;:6;1633:47;;;1667:1;1660:8;;;;1633:47;1690:9;1706:1;1702;:5;;;;:::i;:::-;1690:17;;1735:1;1730;1726;:5;;;;:::i;:::-;:10;1718:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1792:1;1785:8;;;1555:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:119;;;2805:79;;:::i;:::-;2767:119;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2674:474;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:119;;;3265:79;;:::i;:::-;3227:119;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3154:323;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:119;;;3605:79;;:::i;:::-;3567:119;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3483:345;;;;:::o;3834:663::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:119;;;3993:79;;:::i;:::-;3955:119;4113:1;4138:64;4194:7;4185:6;4174:9;4170:22;4138:64;:::i;:::-;4128:74;;4084:128;4251:2;4277:64;4333:7;4324:6;4313:9;4309:22;4277:64;:::i;:::-;4267:74;;4222:129;4390:2;4416:64;4472:7;4463:6;4452:9;4448:22;4416:64;:::i;:::-;4406:74;;4361:129;3834:663;;;;;:::o;4503:179::-;4572:10;4593:46;4635:3;4627:6;4593:46;:::i;:::-;4671:4;4666:3;4662:14;4648:28;;4503:179;;;;:::o;4688:108::-;4765:24;4783:5;4765:24;:::i;:::-;4760:3;4753:37;4688:108;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4802:118;;:::o;4956:732::-;5075:3;5104:54;5152:5;5104:54;:::i;:::-;5174:86;5253:6;5248:3;5174:86;:::i;:::-;5167:93;;5284:56;5334:5;5284:56;:::i;:::-;5363:7;5394:1;5379:284;5404:6;5401:1;5398:13;5379:284;;;5480:6;5474:13;5507:63;5566:3;5551:13;5507:63;:::i;:::-;5500:70;;5593:60;5646:6;5593:60;:::i;:::-;5583:70;;5439:224;5426:1;5423;5419:9;5414:14;;5379:284;;;5383:14;5679:3;5672:10;;5080:608;;;4956:732;;;;:::o;5694:109::-;5775:21;5790:5;5775:21;:::i;:::-;5770:3;5763:34;5694:109;;:::o;5809:147::-;5904:45;5943:5;5904:45;:::i;:::-;5899:3;5892:58;5809:147;;:::o;5962:364::-;6050:3;6078:39;6111:5;6078:39;:::i;:::-;6133:71;6197:6;6192:3;6133:71;:::i;:::-;6126:78;;6213:52;6258:6;6253:3;6246:4;6239:5;6235:16;6213:52;:::i;:::-;6290:29;6312:6;6290:29;:::i;:::-;6285:3;6281:39;6274:46;;6054:272;5962:364;;;;:::o;6332:366::-;6474:3;6495:67;6559:2;6554:3;6495:67;:::i;:::-;6488:74;;6571:93;6660:3;6571:93;:::i;:::-;6689:2;6684:3;6680:12;6673:19;;6332:366;;;:::o;6704:::-;6846:3;6867:67;6931:2;6926:3;6867:67;:::i;:::-;6860:74;;6943:93;7032:3;6943:93;:::i;:::-;7061:2;7056:3;7052:12;7045:19;;6704:366;;;:::o;7076:::-;7218:3;7239:67;7303:2;7298:3;7239:67;:::i;:::-;7232:74;;7315:93;7404:3;7315:93;:::i;:::-;7433:2;7428:3;7424:12;7417:19;;7076:366;;;:::o;7448:::-;7590:3;7611:67;7675:2;7670:3;7611:67;:::i;:::-;7604:74;;7687:93;7776:3;7687:93;:::i;:::-;7805:2;7800:3;7796:12;7789:19;;7448:366;;;:::o;7820:::-;7962:3;7983:67;8047:2;8042:3;7983:67;:::i;:::-;7976:74;;8059:93;8148:3;8059:93;:::i;:::-;8177:2;8172:3;8168:12;8161:19;;7820:366;;;:::o;8192:::-;8334:3;8355:67;8419:2;8414:3;8355:67;:::i;:::-;8348:74;;8431:93;8520:3;8431:93;:::i;:::-;8549:2;8544:3;8540:12;8533:19;;8192:366;;;:::o;8564:::-;8706:3;8727:67;8791:2;8786:3;8727:67;:::i;:::-;8720:74;;8803:93;8892:3;8803:93;:::i;:::-;8921:2;8916:3;8912:12;8905:19;;8564:366;;;:::o;8936:::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;8936:366;;;:::o;9308:::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9308:366;;;:::o;9680:::-;9822:3;9843:67;9907:2;9902:3;9843:67;:::i;:::-;9836:74;;9919:93;10008:3;9919:93;:::i;:::-;10037:2;10032:3;10028:12;10021:19;;9680:366;;;:::o;10052:::-;10194:3;10215:67;10279:2;10274:3;10215:67;:::i;:::-;10208:74;;10291:93;10380:3;10291:93;:::i;:::-;10409:2;10404:3;10400:12;10393:19;;10052:366;;;:::o;10424:::-;10566:3;10587:67;10651:2;10646:3;10587:67;:::i;:::-;10580:74;;10663:93;10752:3;10663:93;:::i;:::-;10781:2;10776:3;10772:12;10765:19;;10424:366;;;:::o;10796:118::-;10883:24;10901:5;10883:24;:::i;:::-;10878:3;10871:37;10796:118;;:::o;10920:112::-;11003:22;11019:5;11003:22;:::i;:::-;10998:3;10991:35;10920:112;;:::o;11038:222::-;11131:4;11169:2;11158:9;11154:18;11146:26;;11182:71;11250:1;11239:9;11235:17;11226:6;11182:71;:::i;:::-;11038:222;;;;:::o;11266:332::-;11387:4;11425:2;11414:9;11410:18;11402:26;;11438:71;11506:1;11495:9;11491:17;11482:6;11438:71;:::i;:::-;11519:72;11587:2;11576:9;11572:18;11563:6;11519:72;:::i;:::-;11266:332;;;;;:::o;11604:::-;11725:4;11763:2;11752:9;11748:18;11740:26;;11776:71;11844:1;11833:9;11829:17;11820:6;11776:71;:::i;:::-;11857:72;11925:2;11914:9;11910:18;11901:6;11857:72;:::i;:::-;11604:332;;;;;:::o;11942:807::-;12191:4;12229:3;12218:9;12214:19;12206:27;;12243:71;12311:1;12300:9;12296:17;12287:6;12243:71;:::i;:::-;12324:72;12392:2;12381:9;12377:18;12368:6;12324:72;:::i;:::-;12406:80;12482:2;12471:9;12467:18;12458:6;12406:80;:::i;:::-;12496;12572:2;12561:9;12557:18;12548:6;12496:80;:::i;:::-;12586:73;12654:3;12643:9;12639:19;12630:6;12586:73;:::i;:::-;12669;12737:3;12726:9;12722:19;12713:6;12669:73;:::i;:::-;11942:807;;;;;;;;;:::o;12755:210::-;12842:4;12880:2;12869:9;12865:18;12857:26;;12893:65;12955:1;12944:9;12940:17;12931:6;12893:65;:::i;:::-;12755:210;;;;:::o;12971:313::-;13084:4;13122:2;13111:9;13107:18;13099:26;;13171:9;13165:4;13161:20;13157:1;13146:9;13142:17;13135:47;13199:78;13272:4;13263:6;13199:78;:::i;:::-;13191:86;;12971:313;;;;:::o;13290:419::-;13456:4;13494:2;13483:9;13479:18;13471:26;;13543:9;13537:4;13533:20;13529:1;13518:9;13514:17;13507:47;13571:131;13697:4;13571:131;:::i;:::-;13563:139;;13290:419;;;:::o;13715:::-;13881:4;13919:2;13908:9;13904:18;13896:26;;13968:9;13962:4;13958:20;13954:1;13943:9;13939:17;13932:47;13996:131;14122:4;13996:131;:::i;:::-;13988:139;;13715:419;;;:::o;14140:::-;14306:4;14344:2;14333:9;14329:18;14321:26;;14393:9;14387:4;14383:20;14379:1;14368:9;14364:17;14357:47;14421:131;14547:4;14421:131;:::i;:::-;14413:139;;14140:419;;;:::o;14565:::-;14731:4;14769:2;14758:9;14754:18;14746:26;;14818:9;14812:4;14808:20;14804:1;14793:9;14789:17;14782:47;14846:131;14972:4;14846:131;:::i;:::-;14838:139;;14565:419;;;:::o;14990:::-;15156:4;15194:2;15183:9;15179:18;15171:26;;15243:9;15237:4;15233:20;15229:1;15218:9;15214:17;15207:47;15271:131;15397:4;15271:131;:::i;:::-;15263:139;;14990:419;;;:::o;15415:::-;15581:4;15619:2;15608:9;15604:18;15596:26;;15668:9;15662:4;15658:20;15654:1;15643:9;15639:17;15632:47;15696:131;15822:4;15696:131;:::i;:::-;15688:139;;15415:419;;;:::o;15840:::-;16006:4;16044:2;16033:9;16029:18;16021:26;;16093:9;16087:4;16083:20;16079:1;16068:9;16064:17;16057:47;16121:131;16247:4;16121:131;:::i;:::-;16113:139;;15840:419;;;:::o;16265:::-;16431:4;16469:2;16458:9;16454:18;16446:26;;16518:9;16512:4;16508:20;16504:1;16493:9;16489:17;16482:47;16546:131;16672:4;16546:131;:::i;:::-;16538:139;;16265:419;;;:::o;16690:::-;16856:4;16894:2;16883:9;16879:18;16871:26;;16943:9;16937:4;16933:20;16929:1;16918:9;16914:17;16907:47;16971:131;17097:4;16971:131;:::i;:::-;16963:139;;16690:419;;;:::o;17115:::-;17281:4;17319:2;17308:9;17304:18;17296:26;;17368:9;17362:4;17358:20;17354:1;17343:9;17339:17;17332:47;17396:131;17522:4;17396:131;:::i;:::-;17388:139;;17115:419;;;:::o;17540:::-;17706:4;17744:2;17733:9;17729:18;17721:26;;17793:9;17787:4;17783:20;17779:1;17768:9;17764:17;17757:47;17821:131;17947:4;17821:131;:::i;:::-;17813:139;;17540:419;;;:::o;17965:::-;18131:4;18169:2;18158:9;18154:18;18146:26;;18218:9;18212:4;18208:20;18204:1;18193:9;18189:17;18182:47;18246:131;18372:4;18246:131;:::i;:::-;18238:139;;17965:419;;;:::o;18390:222::-;18483:4;18521:2;18510:9;18506:18;18498:26;;18534:71;18602:1;18591:9;18587:17;18578:6;18534:71;:::i;:::-;18390:222;;;;:::o;18618:831::-;18881:4;18919:3;18908:9;18904:19;18896:27;;18933:71;19001:1;18990:9;18986:17;18977:6;18933:71;:::i;:::-;19014:80;19090:2;19079:9;19075:18;19066:6;19014:80;:::i;:::-;19141:9;19135:4;19131:20;19126:2;19115:9;19111:18;19104:48;19169:108;19272:4;19263:6;19169:108;:::i;:::-;19161:116;;19287:72;19355:2;19344:9;19340:18;19331:6;19287:72;:::i;:::-;19369:73;19437:3;19426:9;19422:19;19413:6;19369:73;:::i;:::-;18618:831;;;;;;;;:::o;19455:214::-;19544:4;19582:2;19571:9;19567:18;19559:26;;19595:67;19659:1;19648:9;19644:17;19635:6;19595:67;:::i;:::-;19455:214;;;;:::o;19756:132::-;19823:4;19846:3;19838:11;;19876:4;19871:3;19867:14;19859:22;;19756:132;;;:::o;19894:114::-;19961:6;19995:5;19989:12;19979:22;;19894:114;;;:::o;20014:99::-;20066:6;20100:5;20094:12;20084:22;;20014:99;;;:::o;20119:113::-;20189:4;20221;20216:3;20212:14;20204:22;;20119:113;;;:::o;20238:184::-;20337:11;20371:6;20366:3;20359:19;20411:4;20406:3;20402:14;20387:29;;20238:184;;;;:::o;20428:169::-;20512:11;20546:6;20541:3;20534:19;20586:4;20581:3;20577:14;20562:29;;20428:169;;;;:::o;20603:305::-;20643:3;20662:20;20680:1;20662:20;:::i;:::-;20657:25;;20696:20;20714:1;20696:20;:::i;:::-;20691:25;;20850:1;20782:66;20778:74;20775:1;20772:81;20769:107;;;20856:18;;:::i;:::-;20769:107;20900:1;20897;20893:9;20886:16;;20603:305;;;;:::o;20914:185::-;20954:1;20971:20;20989:1;20971:20;:::i;:::-;20966:25;;21005:20;21023:1;21005:20;:::i;:::-;21000:25;;21044:1;21034:35;;21049:18;;:::i;:::-;21034:35;21091:1;21088;21084:9;21079:14;;20914:185;;;;:::o;21105:348::-;21145:7;21168:20;21186:1;21168:20;:::i;:::-;21163:25;;21202:20;21220:1;21202:20;:::i;:::-;21197:25;;21390:1;21322:66;21318:74;21315:1;21312:81;21307:1;21300:9;21293:17;21289:105;21286:131;;;21397:18;;:::i;:::-;21286:131;21445:1;21442;21438:9;21427:20;;21105:348;;;;:::o;21459:191::-;21499:4;21519:20;21537:1;21519:20;:::i;:::-;21514:25;;21553:20;21571:1;21553:20;:::i;:::-;21548:25;;21592:1;21589;21586:8;21583:34;;;21597:18;;:::i;:::-;21583:34;21642:1;21639;21635:9;21627:17;;21459:191;;;;:::o;21656:96::-;21693:7;21722:24;21740:5;21722:24;:::i;:::-;21711:35;;21656:96;;;:::o;21758:90::-;21792:7;21835:5;21828:13;21821:21;21810:32;;21758:90;;;:::o;21854:126::-;21891:7;21931:42;21924:5;21920:54;21909:65;;21854:126;;;:::o;21986:77::-;22023:7;22052:5;22041:16;;21986:77;;;:::o;22069:86::-;22104:7;22144:4;22137:5;22133:16;22122:27;;22069:86;;;:::o;22161:121::-;22219:9;22252:24;22270:5;22252:24;:::i;:::-;22239:37;;22161:121;;;:::o;22288:307::-;22356:1;22366:113;22380:6;22377:1;22374:13;22366:113;;;22465:1;22460:3;22456:11;22450:18;22446:1;22441:3;22437:11;22430:39;22402:2;22399:1;22395:10;22390:15;;22366:113;;;22497:6;22494:1;22491:13;22488:101;;;22577:1;22568:6;22563:3;22559:16;22552:27;22488:101;22337:258;22288:307;;;:::o;22601:171::-;22640:3;22663:24;22681:5;22663:24;:::i;:::-;22654:33;;22709:4;22702:5;22699:15;22696:41;;;22717:18;;:::i;:::-;22696:41;22764:1;22757:5;22753:13;22746:20;;22601:171;;;:::o;22778:180::-;22826:77;22823:1;22816:88;22923:4;22920:1;22913:15;22947:4;22944:1;22937:15;22964:180;23012:77;23009:1;23002:88;23109:4;23106:1;23099:15;23133:4;23130:1;23123:15;23150:180;23198:77;23195:1;23188:88;23295:4;23292:1;23285:15;23319:4;23316:1;23309:15;23336:180;23384:77;23381:1;23374:88;23481:4;23478:1;23471:15;23505:4;23502:1;23495:15;23645:117;23754:1;23751;23744:12;23768:102;23809:6;23860:2;23856:7;23851:2;23844:5;23840:14;23836:28;23826:38;;23768:102;;;:::o;23876:222::-;24016:34;24012:1;24004:6;24000:14;23993:58;24085:5;24080:2;24072:6;24068:15;24061:30;23876:222;:::o;24104:175::-;24244:27;24240:1;24232:6;24228:14;24221:51;24104:175;:::o;24285:229::-;24425:34;24421:1;24413:6;24409:14;24402:58;24494:12;24489:2;24481:6;24477:15;24470:37;24285:229;:::o;24520:221::-;24660:34;24656:1;24648:6;24644:14;24637:58;24729:4;24724:2;24716:6;24712:15;24705:29;24520:221;:::o;24747:177::-;24887:29;24883:1;24875:6;24871:14;24864:53;24747:177;:::o;24930:220::-;25070:34;25066:1;25058:6;25054:14;25047:58;25139:3;25134:2;25126:6;25122:15;25115:28;24930:220;:::o;25156:182::-;25296:34;25292:1;25284:6;25280:14;25273:58;25156:182;:::o;25344:228::-;25484:34;25480:1;25472:6;25468:14;25461:58;25553:11;25548:2;25540:6;25536:15;25529:36;25344:228;:::o;25578:224::-;25718:34;25714:1;25706:6;25702:14;25695:58;25787:7;25782:2;25774:6;25770:15;25763:32;25578:224;:::o;25808:176::-;25948:28;25944:1;25936:6;25932:14;25925:52;25808:176;:::o;25990:223::-;26130:34;26126:1;26118:6;26114:14;26107:58;26199:6;26194:2;26186:6;26182:15;26175:31;25990:223;:::o;26219:173::-;26359:25;26355:1;26347:6;26343:14;26336:49;26219:173;:::o;26398:122::-;26471:24;26489:5;26471:24;:::i;:::-;26464:5;26461:35;26451:63;;26510:1;26507;26500:12;26451:63;26398:122;:::o;26526:116::-;26596:21;26611:5;26596:21;:::i;:::-;26589:5;26586:32;26576:60;;26632:1;26629;26622:12;26576:60;26526:116;:::o;26648:122::-;26721:24;26739:5;26721:24;:::i;:::-;26714:5;26711:35;26701:63;;26760:1;26757;26750:12;26701:63;26648:122;:::o

Swarm Source

ipfs://82883b8555a057059026f3cbaa27dc82f38e93dcef628a7aee6529ee1cd2d0fc

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.