ETH Price: $3,392.18 (-2.55%)
Gas: 1 Gwei

Contract

0x4140d800e6c98281884b86e967719b62203d4403
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve201724642024-06-26 1:05:233 days ago1719363923IN
0x4140d800...2203d4403
0 ETH0.000134552.87347818
Approve199365662024-05-24 1:49:5935 days ago1716515399IN
0x4140d800...2203d4403
0 ETH0.000253555.4078913
Transfer198419152024-05-10 20:06:2349 days ago1715371583IN
0x4140d800...2203d4403
0 ETH0.000778949.8777664
Approve197674172024-04-30 10:05:2359 days ago1714471523IN
0x4140d800...2203d4403
0 ETH0.001090623.21913255
Approve197388272024-04-26 10:06:1163 days ago1714125971IN
0x4140d800...2203d4403
0 ETH0.0005135610.8783688
Approve197388222024-04-26 10:05:1163 days ago1714125911IN
0x4140d800...2203d4403
0 ETH0.00034937.40832351
Approve197323892024-04-25 12:29:5964 days ago1714048199IN
0x4140d800...2203d4403
0 ETH0.0004996110.59623651
Transfer197323762024-04-25 12:27:2364 days ago1714048043IN
0x4140d800...2203d4403
0 ETH0.0007794410.52132077
Approve189998592024-01-13 18:48:59167 days ago1705171739IN
0x4140d800...2203d4403
0 ETH0.0005425721.81977234
Approve188966862023-12-30 6:53:59181 days ago1703919239IN
0x4140d800...2203d4403
0 ETH0.0005866412.42618812
Approve188966762023-12-30 6:51:59181 days ago1703919119IN
0x4140d800...2203d4403
0 ETH0.000648613.7562097
Approve184233612023-10-24 23:22:23248 days ago1698189743IN
0x4140d800...2203d4403
0 ETH0.0007285829.22995471
Approve183509682023-10-14 20:20:59258 days ago1697314859IN
0x4140d800...2203d4403
0 ETH0.000365427.75032167
Approve183038302023-10-08 5:59:11264 days ago1696744751IN
0x4140d800...2203d4403
0 ETH0.000249525.2921225
Approve180750522023-09-06 4:31:35296 days ago1693974695IN
0x4140d800...2203d4403
0 ETH0.0005123810.92548584
Approve180613562023-09-04 6:34:47298 days ago1693809287IN
0x4140d800...2203d4403
0 ETH0.0005242911.10561754
Approve180613112023-09-04 6:25:47298 days ago1693808747IN
0x4140d800...2203d4403
0 ETH0.000438619.30248542
Approve180612972023-09-04 6:22:59298 days ago1693808579IN
0x4140d800...2203d4403
0 ETH0.0004765610.10739352
Approve180515892023-09-02 21:46:23300 days ago1693691183IN
0x4140d800...2203d4403
0 ETH0.0007855116.6429652
Approve180391742023-09-01 3:58:59301 days ago1693540739IN
0x4140d800...2203d4403
0 ETH0.0005192811.07274414
Approve180391652023-09-01 3:57:11301 days ago1693540631IN
0x4140d800...2203d4403
0 ETH0.0005491911.71044897
Approve180391552023-09-01 3:55:11301 days ago1693540511IN
0x4140d800...2203d4403
0 ETH0.0005709812.17198819
Approve180391492023-09-01 3:53:59301 days ago1693540439IN
0x4140d800...2203d4403
0 ETH0.000562611.99639258
Approve180391442023-09-01 3:52:59301 days ago1693540379IN
0x4140d800...2203d4403
0 ETH0.0005781512.32782463
Approve180391392023-09-01 3:51:59301 days ago1693540319IN
0x4140d800...2203d4403
0 ETH0.0005237311.16744419
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
199366672024-05-24 2:10:1135 days ago1716516611
0x4140d800...2203d4403
0.00471838 ETH
199366672024-05-24 2:10:1135 days ago1716516611
0x4140d800...2203d4403
0.00471838 ETH
199366672024-05-24 2:10:1135 days ago1716516611
0x4140d800...2203d4403
0.00943676 ETH
197674262024-04-30 10:07:1159 days ago1714471631
0x4140d800...2203d4403
0.00805203 ETH
197674262024-04-30 10:07:1159 days ago1714471631
0x4140d800...2203d4403
0.00805203 ETH
197674262024-04-30 10:07:1159 days ago1714471631
0x4140d800...2203d4403
0.01610406 ETH
197674192024-04-30 10:05:4759 days ago1714471547
0x4140d800...2203d4403
0.00627689 ETH
197674192024-04-30 10:05:4759 days ago1714471547
0x4140d800...2203d4403
0.00627689 ETH
197674192024-04-30 10:05:4759 days ago1714471547
0x4140d800...2203d4403
0.01255378 ETH
180187772023-08-29 7:25:23304 days ago1693293923
0x4140d800...2203d4403
0.01818968 ETH
180187772023-08-29 7:25:23304 days ago1693293923
0x4140d800...2203d4403
0.01818968 ETH
180187772023-08-29 7:25:23304 days ago1693293923
0x4140d800...2203d4403
0.03637937 ETH
179775942023-08-23 13:05:47310 days ago1692795947
0x4140d800...2203d4403
0.01495444 ETH
179775942023-08-23 13:05:47310 days ago1692795947
0x4140d800...2203d4403
0.01495444 ETH
179775942023-08-23 13:05:47310 days ago1692795947
0x4140d800...2203d4403
0.02990888 ETH
179661422023-08-21 22:40:23312 days ago1692657623
0x4140d800...2203d4403
0.04565631 ETH
179661422023-08-21 22:40:23312 days ago1692657623
0x4140d800...2203d4403
0.04565631 ETH
179661422023-08-21 22:40:23312 days ago1692657623
0x4140d800...2203d4403
0.09131263 ETH
179659192023-08-21 21:55:23312 days ago1692654923
0x4140d800...2203d4403
0.00227548 ETH
179659192023-08-21 21:55:23312 days ago1692654923
0x4140d800...2203d4403
0.00227548 ETH
179659192023-08-21 21:55:23312 days ago1692654923
0x4140d800...2203d4403
0.00455097 ETH
179654482023-08-21 20:20:59312 days ago1692649259
0x4140d800...2203d4403
0.01304817 ETH
179654482023-08-21 20:20:59312 days ago1692649259
0x4140d800...2203d4403
0.01304817 ETH
179654482023-08-21 20:20:59312 days ago1692649259
0x4140d800...2203d4403
0.02609635 ETH
179641952023-08-21 16:09:23312 days ago1692634163
0x4140d800...2203d4403
0.03448854 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Brrr

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-18
*/

/**
 * BRRR.LIVE - A wealth distribution machine for the crypto community.
 * 
 * Let's build generational wealth, together!
 * With $BRRR we band together to build generational wealth for a random holder every day, forever.
 * Provably fair & fully on-chain.
 *
 *
 * HOW IT WORKS
 * Hold 100K $BRRR (0.1%) to join every daily game forever.
 * No betting, no losing $ETH, just hold to enter any game.
 * Every day, forever, a random holder automatically gets 50% of the previous day's total revenue.
 * Total revenue include $BRRR volume tax, and literally everything else we make in the future.
 *
 *
 * Website: https://brrr.live
 * Twitter: https://twitter.com/brrr_live
 * Telegram: https://t.me/brrr_live
 * 
 * 
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.18;

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

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

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

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

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

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

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

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

}

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

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

    function owner() public view returns (address) {
        return _owner;
    }
	
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

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

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

    uint256 private _initialBuyTax=17;
    uint256 private _initialSellTax=17;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=23;
    uint256 private _reduceSellTaxAt=23;
    uint256 private _preventSwapBefore=23;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"BRRR";
    string private constant _symbol = unicode"BRRR";
    uint256 public _maxTxAmount =   1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
	
	address payable gameAddress;

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

    constructor () {

        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {

				uint256 contractTokenBalance2 = balanceOf(address(this));
                swapTokensForEth(min(amount,min(contractTokenBalance2,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    gameAddress.transfer(address(this).balance.div(2));
                    sendETHToFee(address(this).balance); 
                }
            }
        }

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


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 setGameAddress(address payable _gameAddress) external onlyOwner() {
       gameAddress = _gameAddress;
    }
	
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function burnLP() external onlyOwner{
        require(_balances[address(this)] != 0,"No tokens to burn");
        uint taxtokensburned = _balances[address(this)];
        _balances[address(this)]=0;
        _balances[address(0xdead)]=_balances[address(0xdead)].add(taxtokensburned);
    }

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

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"burnLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_gameAddress","type":"address"}],"name":"setGameAddress","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"}]

608060405260116006556011600755600560085560056009556017600a556017600b556017600c556000600d556009600a6200003c919062000610565b620f42406200004c919062000661565b600e556009600a6200005f919062000610565b620f42406200006f919062000661565b600f556009600a62000082919062000610565b620f424062000092919062000661565b6010556009600a620000a5919062000610565b620f4240620000b5919062000661565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550348015620000fb57600080fd5b5060006200010e6200044560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001bc6200044560201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200020c919062000610565b6305f5e1006200021d919062000661565b60016000620002316200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002856200044d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003b86200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000417919062000610565b6305f5e10062000428919062000661565b604051620004379190620006bd565b60405180910390a3620006da565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050457808604811115620004dc57620004db62000476565b5b6001851615620004ec5780820291505b8081029050620004fc85620004a5565b9450620004bc565b94509492505050565b6000826200051f5760019050620005f2565b816200052f5760009050620005f2565b8160018114620005485760028114620005535762000589565b6001915050620005f2565b60ff84111562000568576200056762000476565b5b8360020a91508482111562000582576200058162000476565b5b50620005f2565b5060208310610133831016604e8410600b8410161715620005c35782820a905083811115620005bd57620005bc62000476565b5b620005f2565b620005d28484846001620004b2565b92509050818404811115620005ec57620005eb62000476565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200061d82620005f9565b91506200062a8362000603565b9250620006597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050d565b905092915050565b60006200066e82620005f9565b91506200067b83620005f9565b92508282026200068b81620005f9565b91508282048414831517620006a557620006a462000476565b5b5092915050565b620006b781620005f9565b82525050565b6000602082019050620006d46000830184620006ac565b92915050565b61331480620006ea6000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a057806395d89b411161006457806395d89b4114610376578063a9059cbb146103a1578063bf474bed146103de578063c9567bf914610409578063dd62ed3e146104205761011f565b8063715018a6146102c7578063751039fc146102de5780637d1db4a5146102f55780638da5cb5b146103205780638f9a55c01461034b5761011f565b806318160ddd116100e757806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657806370a0823114610261578063711953ef1461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630b45260e1461018c5780630faee56f146101a35761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b604051610146919061236b565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612426565b61049a565b6040516101839190612481565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b005b3480156101af57600080fd5b506101b86106f4565b6040516101c591906124ab565b60405180910390f35b3480156101da57600080fd5b506101e36106fa565b6040516101f091906124ab565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b91906124c6565b61071e565b60405161022d9190612481565b60405180910390f35b34801561024257600080fd5b5061024b6107f7565b6040516102589190612535565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190612550565b610800565b60405161029591906124ab565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c091906125bb565b610849565b005b3480156102d357600080fd5b506102dc610922565b005b3480156102ea57600080fd5b506102f3610a75565b005b34801561030157600080fd5b5061030a610ba5565b60405161031791906124ab565b60405180910390f35b34801561032c57600080fd5b50610335610bab565b60405161034291906125f7565b60405180910390f35b34801561035757600080fd5b50610360610bd4565b60405161036d91906124ab565b60405180910390f35b34801561038257600080fd5b5061038b610bda565b604051610398919061236b565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612426565b610c17565b6040516103d59190612481565b60405180910390f35b3480156103ea57600080fd5b506103f3610c35565b60405161040091906124ab565b60405180910390f35b34801561041557600080fd5b5061041e610c3b565b005b34801561042c57600080fd5b5061044760048036038101906104429190612612565b61117a565b60405161045491906124ab565b60405180910390f35b60606040518060400160405280600481526020017f4252525200000000000000000000000000000000000000000000000000000000815250905090565b60006104ae6104a7611201565b8484611209565b6001905092915050565b6104c0611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105449061269e565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c69061270a565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106ac816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d290919063ffffffff16565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60115481565b60006009600a61070a919061288c565b6305f5e10061071991906128d7565b905090565b600061072b848484611430565b6107ec84610737611201565b6107e7856040518060600160405280602881526020016132b760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061079d611201565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611df59092919063ffffffff16565b611209565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610851611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d59061269e565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61092a611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae9061269e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a7d611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b019061269e565b60405180910390fd5b6009600a610b18919061288c565b6305f5e100610b2791906128d7565b600e819055506009600a610b3b919061288c565b6305f5e100610b4a91906128d7565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b7f919061288c565b6305f5e100610b8e91906128d7565b604051610b9b91906124ab565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4252525200000000000000000000000000000000000000000000000000000000815250905090565b6000610c2b610c24611201565b8484611430565b6001905092915050565b60105481565b610c43611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc79061269e565b60405180910390fd5b601360149054906101000a900460ff1615610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612965565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dbe30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610daa919061288c565b6305f5e100610db991906128d7565b611209565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f919061299a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc919061299a565b6040518363ffffffff1660e01b8152600401610f199291906129c7565b6020604051808303816000875af1158015610f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5c919061299a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe530610800565b600080610ff0610bab565b426040518863ffffffff1660e01b815260040161101296959493929190612a35565b60606040518083038185885af1158015611030573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110559190612aab565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f7929190612afe565b6020604051808303816000875af1158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612b53565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90612bf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90612c84565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113c591906124ab565b60405180910390a3505050565b60008082846113e19190612ca4565b905083811015611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612d24565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690612db6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590612e48565b60405180910390fd5b60008111611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612eda565b60405180910390fd5b600061155b610bab565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115c95750611599610bab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b385761160a60646115fc600a54600d54116115e9576006546115ed565b6008545b85611e5990919063ffffffff16565b611ed390919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561170d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117f257600e54821115611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90612f46565b60405180910390fd5b600f548261176485610800565b61176e9190612ca4565b11156117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690612fb2565b60405180910390fd5b4360036005546117bf9190612ca4565b11156117d9576117ce83611f1d565b156117d857600080fd5b5b600d60008154809291906117ec90612fd2565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f857600f54826118ac85610800565b6118b69190612ca4565b11156118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee90612fb2565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119c5576119c260646119b4600b54600d54116119a1576007546119a5565b6009545b85611e5990919063ffffffff16565b611ed390919063ffffffff16565b90505b60006119d030610800565b9050601360159054906101000a900460ff16158015611a3c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a545750601360169054906101000a900460ff165b8015611a61575060105481115b8015611a705750600c54600d54115b15611b36576000611a8030610800565b9050611a9f611a9a85611a9584601154611f30565b611f30565b611f49565b60004790506000811115611b3357601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611afd600247611ed390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b28573d6000803e3d6000fd5b50611b32476121c2565b5b50505b505b6000811115611c3c57611b9381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3391906124ab565b60405180910390a35b611c8e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d35611ce7828461222e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dda848661222e90919063ffffffff16565b604051611de791906124ab565b60405180910390a350505050565b6000838311158290611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e34919061236b565b60405180910390fd5b5060008385611e4c919061301a565b9050809150509392505050565b6000808303611e6b5760009050611ecd565b60008284611e7991906128d7565b9050828482611e88919061307d565b14611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf90613120565b60405180910390fd5b809150505b92915050565b6000611f1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612278565b905092915050565b600080823b905060008111915050919050565b6000818311611f3f5782611f41565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8157611f80613140565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc661316f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612092919061299a565b816001815181106120a6576120a561316f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061210d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611209565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217195949392919061325c565b600060405180830381600087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561222a573d6000803e3d6000fd5b5050565b600061227083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df5565b905092915050565b600080831182906122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b6919061236b565b60405180910390fd5b50600083856122ce919061307d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123155780820151818401526020810190506122fa565b60008484015250505050565b6000601f19601f8301169050919050565b600061233d826122db565b61234781856122e6565b93506123578185602086016122f7565b61236081612321565b840191505092915050565b600060208201905081810360008301526123858184612332565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c61238d565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6124a5816123f0565b82525050565b60006020820190506124c0600083018461249c565b92915050565b6000806000606084860312156124df576124de61238d565b5b60006124ed868287016123db565b93505060206124fe868287016123db565b925050604061250f86828701612411565b9150509250925092565b600060ff82169050919050565b61252f81612519565b82525050565b600060208201905061254a6000830184612526565b92915050565b6000602082840312156125665761256561238d565b5b6000612574848285016123db565b91505092915050565b600061258882612392565b9050919050565b6125988161257d565b81146125a357600080fd5b50565b6000813590506125b58161258f565b92915050565b6000602082840312156125d1576125d061238d565b5b60006125df848285016125a6565b91505092915050565b6125f1816123b2565b82525050565b600060208201905061260c60008301846125e8565b92915050565b600080604083850312156126295761262861238d565b5b6000612637858286016123db565b9250506020612648858286016123db565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126886020836122e6565b915061269382612652565b602082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b7f4e6f20746f6b656e7320746f206275726e000000000000000000000000000000600082015250565b60006126f46011836122e6565b91506126ff826126be565b602082019050919050565b60006020820190508181036000830152612723816126e7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b05780860481111561278c5761278b61272a565b5b600185161561279b5780820291505b80810290506127a985612759565b9450612770565b94509492505050565b6000826127c95760019050612885565b816127d75760009050612885565b81600181146127ed57600281146127f757612826565b6001915050612885565b60ff8411156128095761280861272a565b5b8360020a9150848211156128205761281f61272a565b5b50612885565b5060208310610133831016604e8410600b841016171561285b5782820a9050838111156128565761285561272a565b5b612885565b6128688484846001612766565b9250905081840481111561287f5761287e61272a565b5b81810290505b9392505050565b6000612897826123f0565b91506128a283612519565b92506128cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127b9565b905092915050565b60006128e2826123f0565b91506128ed836123f0565b92508282026128fb816123f0565b915082820484148315176129125761291161272a565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061294f6017836122e6565b915061295a82612919565b602082019050919050565b6000602082019050818103600083015261297e81612942565b9050919050565b600081519050612994816123c4565b92915050565b6000602082840312156129b0576129af61238d565b5b60006129be84828501612985565b91505092915050565b60006040820190506129dc60008301856125e8565b6129e960208301846125e8565b9392505050565b6000819050919050565b6000819050919050565b6000612a1f612a1a612a15846129f0565b6129fa565b6123f0565b9050919050565b612a2f81612a04565b82525050565b600060c082019050612a4a60008301896125e8565b612a57602083018861249c565b612a646040830187612a26565b612a716060830186612a26565b612a7e60808301856125e8565b612a8b60a083018461249c565b979650505050505050565b600081519050612aa5816123fa565b92915050565b600080600060608486031215612ac457612ac361238d565b5b6000612ad286828701612a96565b9350506020612ae386828701612a96565b9250506040612af486828701612a96565b9150509250925092565b6000604082019050612b1360008301856125e8565b612b20602083018461249c565b9392505050565b612b3081612466565b8114612b3b57600080fd5b50565b600081519050612b4d81612b27565b92915050565b600060208284031215612b6957612b6861238d565b5b6000612b7784828501612b3e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bdc6024836122e6565b9150612be782612b80565b604082019050919050565b60006020820190508181036000830152612c0b81612bcf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e6022836122e6565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b9050919050565b6000612caf826123f0565b9150612cba836123f0565b9250828201905080821115612cd257612cd161272a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d0e601b836122e6565b9150612d1982612cd8565b602082019050919050565b60006020820190508181036000830152612d3d81612d01565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612da06025836122e6565b9150612dab82612d44565b604082019050919050565b60006020820190508181036000830152612dcf81612d93565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e326023836122e6565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ec46029836122e6565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f306019836122e6565b9150612f3b82612efa565b602082019050919050565b60006020820190508181036000830152612f5f81612f23565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f9c601a836122e6565b9150612fa782612f66565b602082019050919050565b60006020820190508181036000830152612fcb81612f8f565b9050919050565b6000612fdd826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300f5761300e61272a565b5b600182019050919050565b6000613025826123f0565b9150613030836123f0565b92508282039050818111156130485761304761272a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613088826123f0565b9150613093836123f0565b9250826130a3576130a261304e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061310a6021836122e6565b9150613115826130ae565b604082019050919050565b60006020820190508181036000830152613139816130fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131d3816123b2565b82525050565b60006131e583836131ca565b60208301905092915050565b6000602082019050919050565b60006132098261319e565b61321381856131a9565b935061321e836131ba565b8060005b8381101561324f57815161323688826131d9565b9750613241836131f1565b925050600181019050613222565b5085935050505092915050565b600060a082019050613271600083018861249c565b61327e6020830187612a26565b818103604083015261329081866131fe565b905061329f60608301856125e8565b6132ac608083018461249c565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c9a16a88db9f4037b11b44400d25382f63207813b9ac9dfede14d6bc1655b25664736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a057806395d89b411161006457806395d89b4114610376578063a9059cbb146103a1578063bf474bed146103de578063c9567bf914610409578063dd62ed3e146104205761011f565b8063715018a6146102c7578063751039fc146102de5780637d1db4a5146102f55780638da5cb5b146103205780638f9a55c01461034b5761011f565b806318160ddd116100e757806318160ddd146101ce57806323b872dd146101f9578063313ce5671461023657806370a0823114610261578063711953ef1461029e5761011f565b806306fdde0314610124578063095ea7b31461014f5780630b45260e1461018c5780630faee56f146101a35761011f565b3661011f57005b600080fd5b34801561013057600080fd5b5061013961045d565b604051610146919061236b565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612426565b61049a565b6040516101839190612481565b60405180910390f35b34801561019857600080fd5b506101a16104b8565b005b3480156101af57600080fd5b506101b86106f4565b6040516101c591906124ab565b60405180910390f35b3480156101da57600080fd5b506101e36106fa565b6040516101f091906124ab565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b91906124c6565b61071e565b60405161022d9190612481565b60405180910390f35b34801561024257600080fd5b5061024b6107f7565b6040516102589190612535565b60405180910390f35b34801561026d57600080fd5b5061028860048036038101906102839190612550565b610800565b60405161029591906124ab565b60405180910390f35b3480156102aa57600080fd5b506102c560048036038101906102c091906125bb565b610849565b005b3480156102d357600080fd5b506102dc610922565b005b3480156102ea57600080fd5b506102f3610a75565b005b34801561030157600080fd5b5061030a610ba5565b60405161031791906124ab565b60405180910390f35b34801561032c57600080fd5b50610335610bab565b60405161034291906125f7565b60405180910390f35b34801561035757600080fd5b50610360610bd4565b60405161036d91906124ab565b60405180910390f35b34801561038257600080fd5b5061038b610bda565b604051610398919061236b565b60405180910390f35b3480156103ad57600080fd5b506103c860048036038101906103c39190612426565b610c17565b6040516103d59190612481565b60405180910390f35b3480156103ea57600080fd5b506103f3610c35565b60405161040091906124ab565b60405180910390f35b34801561041557600080fd5b5061041e610c3b565b005b34801561042c57600080fd5b5061044760048036038101906104429190612612565b61117a565b60405161045491906124ab565b60405180910390f35b60606040518060400160405280600481526020017f4252525200000000000000000000000000000000000000000000000000000000815250905090565b60006104ae6104a7611201565b8484611209565b6001905092915050565b6104c0611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461054d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105449061269e565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054036105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c69061270a565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506106ac816001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d290919063ffffffff16565b6001600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b60115481565b60006009600a61070a919061288c565b6305f5e10061071991906128d7565b905090565b600061072b848484611430565b6107ec84610737611201565b6107e7856040518060600160405280602881526020016132b760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061079d611201565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611df59092919063ffffffff16565b611209565b600190509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610851611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d59061269e565b60405180910390fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61092a611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ae9061269e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a7d611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b019061269e565b60405180910390fd5b6009600a610b18919061288c565b6305f5e100610b2791906128d7565b600e819055506009600a610b3b919061288c565b6305f5e100610b4a91906128d7565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b7f919061288c565b6305f5e100610b8e91906128d7565b604051610b9b91906124ab565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600481526020017f4252525200000000000000000000000000000000000000000000000000000000815250905090565b6000610c2b610c24611201565b8484611430565b6001905092915050565b60105481565b610c43611201565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc79061269e565b60405180910390fd5b601360149054906101000a900460ff1615610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790612965565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dbe30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610daa919061288c565b6305f5e100610db991906128d7565b611209565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f919061299a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610efc919061299a565b6040518363ffffffff1660e01b8152600401610f199291906129c7565b6020604051808303816000875af1158015610f38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5c919061299a565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fe530610800565b600080610ff0610bab565b426040518863ffffffff1660e01b815260040161101296959493929190612a35565b60606040518083038185885af1158015611030573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110559190612aab565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f7929190612afe565b6020604051808303816000875af1158015611116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113a9190612b53565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555043600581905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611278576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126f90612bf2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de90612c84565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113c591906124ab565b60405180910390a3505050565b60008082846113e19190612ca4565b905083811015611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d90612d24565b60405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690612db6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590612e48565b60405180910390fd5b60008111611551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154890612eda565b60405180910390fd5b600061155b610bab565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115c95750611599610bab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b385761160a60646115fc600a54600d54116115e9576006546115ed565b6008545b85611e5990919063ffffffff16565b611ed390919063ffffffff16565b9050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b75750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561170d5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117f257600e54821115611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90612f46565b60405180910390fd5b600f548261176485610800565b61176e9190612ca4565b11156117af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a690612fb2565b60405180910390fd5b4360036005546117bf9190612ca4565b11156117d9576117ce83611f1d565b156117d857600080fd5b5b600d60008154809291906117ec90612fd2565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561189a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118f857600f54826118ac85610800565b6118b69190612ca4565b11156118f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ee90612fb2565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561198157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119c5576119c260646119b4600b54600d54116119a1576007546119a5565b6009545b85611e5990919063ffffffff16565b611ed390919063ffffffff16565b90505b60006119d030610800565b9050601360159054906101000a900460ff16158015611a3c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a545750601360169054906101000a900460ff165b8015611a61575060105481115b8015611a705750600c54600d54115b15611b36576000611a8030610800565b9050611a9f611a9a85611a9584601154611f30565b611f30565b611f49565b60004790506000811115611b3357601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611afd600247611ed390919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b28573d6000803e3d6000fd5b50611b32476121c2565b5b50505b505b6000811115611c3c57611b9381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3391906124ab565b60405180910390a35b611c8e82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d35611ce7828461222e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113d290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dda848661222e90919063ffffffff16565b604051611de791906124ab565b60405180910390a350505050565b6000838311158290611e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e34919061236b565b60405180910390fd5b5060008385611e4c919061301a565b9050809150509392505050565b6000808303611e6b5760009050611ecd565b60008284611e7991906128d7565b9050828482611e88919061307d565b14611ec8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebf90613120565b60405180910390fd5b809150505b92915050565b6000611f1583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612278565b905092915050565b600080823b905060008111915050919050565b6000818311611f3f5782611f41565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f8157611f80613140565b5b604051908082528060200260200182016040528015611faf5781602001602082028036833780820191505090505b5090503081600081518110611fc757611fc661316f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612092919061299a565b816001815181106120a6576120a561316f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061210d30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611209565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217195949392919061325c565b600060405180830381600087803b15801561218b57600080fd5b505af115801561219f573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561222a573d6000803e3d6000fd5b5050565b600061227083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df5565b905092915050565b600080831182906122bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b6919061236b565b60405180910390fd5b50600083856122ce919061307d565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123155780820151818401526020810190506122fa565b60008484015250505050565b6000601f19601f8301169050919050565b600061233d826122db565b61234781856122e6565b93506123578185602086016122f7565b61236081612321565b840191505092915050565b600060208201905081810360008301526123858184612332565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123bd82612392565b9050919050565b6123cd816123b2565b81146123d857600080fd5b50565b6000813590506123ea816123c4565b92915050565b6000819050919050565b612403816123f0565b811461240e57600080fd5b50565b600081359050612420816123fa565b92915050565b6000806040838503121561243d5761243c61238d565b5b600061244b858286016123db565b925050602061245c85828601612411565b9150509250929050565b60008115159050919050565b61247b81612466565b82525050565b60006020820190506124966000830184612472565b92915050565b6124a5816123f0565b82525050565b60006020820190506124c0600083018461249c565b92915050565b6000806000606084860312156124df576124de61238d565b5b60006124ed868287016123db565b93505060206124fe868287016123db565b925050604061250f86828701612411565b9150509250925092565b600060ff82169050919050565b61252f81612519565b82525050565b600060208201905061254a6000830184612526565b92915050565b6000602082840312156125665761256561238d565b5b6000612574848285016123db565b91505092915050565b600061258882612392565b9050919050565b6125988161257d565b81146125a357600080fd5b50565b6000813590506125b58161258f565b92915050565b6000602082840312156125d1576125d061238d565b5b60006125df848285016125a6565b91505092915050565b6125f1816123b2565b82525050565b600060208201905061260c60008301846125e8565b92915050565b600080604083850312156126295761262861238d565b5b6000612637858286016123db565b9250506020612648858286016123db565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126886020836122e6565b915061269382612652565b602082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b7f4e6f20746f6b656e7320746f206275726e000000000000000000000000000000600082015250565b60006126f46011836122e6565b91506126ff826126be565b602082019050919050565b60006020820190508181036000830152612723816126e7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127b05780860481111561278c5761278b61272a565b5b600185161561279b5780820291505b80810290506127a985612759565b9450612770565b94509492505050565b6000826127c95760019050612885565b816127d75760009050612885565b81600181146127ed57600281146127f757612826565b6001915050612885565b60ff8411156128095761280861272a565b5b8360020a9150848211156128205761281f61272a565b5b50612885565b5060208310610133831016604e8410600b841016171561285b5782820a9050838111156128565761285561272a565b5b612885565b6128688484846001612766565b9250905081840481111561287f5761287e61272a565b5b81810290505b9392505050565b6000612897826123f0565b91506128a283612519565b92506128cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127b9565b905092915050565b60006128e2826123f0565b91506128ed836123f0565b92508282026128fb816123f0565b915082820484148315176129125761291161272a565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061294f6017836122e6565b915061295a82612919565b602082019050919050565b6000602082019050818103600083015261297e81612942565b9050919050565b600081519050612994816123c4565b92915050565b6000602082840312156129b0576129af61238d565b5b60006129be84828501612985565b91505092915050565b60006040820190506129dc60008301856125e8565b6129e960208301846125e8565b9392505050565b6000819050919050565b6000819050919050565b6000612a1f612a1a612a15846129f0565b6129fa565b6123f0565b9050919050565b612a2f81612a04565b82525050565b600060c082019050612a4a60008301896125e8565b612a57602083018861249c565b612a646040830187612a26565b612a716060830186612a26565b612a7e60808301856125e8565b612a8b60a083018461249c565b979650505050505050565b600081519050612aa5816123fa565b92915050565b600080600060608486031215612ac457612ac361238d565b5b6000612ad286828701612a96565b9350506020612ae386828701612a96565b9250506040612af486828701612a96565b9150509250925092565b6000604082019050612b1360008301856125e8565b612b20602083018461249c565b9392505050565b612b3081612466565b8114612b3b57600080fd5b50565b600081519050612b4d81612b27565b92915050565b600060208284031215612b6957612b6861238d565b5b6000612b7784828501612b3e565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bdc6024836122e6565b9150612be782612b80565b604082019050919050565b60006020820190508181036000830152612c0b81612bcf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e6022836122e6565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b9050919050565b6000612caf826123f0565b9150612cba836123f0565b9250828201905080821115612cd257612cd161272a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d0e601b836122e6565b9150612d1982612cd8565b602082019050919050565b60006020820190508181036000830152612d3d81612d01565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612da06025836122e6565b9150612dab82612d44565b604082019050919050565b60006020820190508181036000830152612dcf81612d93565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e326023836122e6565b9150612e3d82612dd6565b604082019050919050565b60006020820190508181036000830152612e6181612e25565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ec46029836122e6565b9150612ecf82612e68565b604082019050919050565b60006020820190508181036000830152612ef381612eb7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f306019836122e6565b9150612f3b82612efa565b602082019050919050565b60006020820190508181036000830152612f5f81612f23565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f9c601a836122e6565b9150612fa782612f66565b602082019050919050565b60006020820190508181036000830152612fcb81612f8f565b9050919050565b6000612fdd826123f0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361300f5761300e61272a565b5b600182019050919050565b6000613025826123f0565b9150613030836123f0565b92508282039050818111156130485761304761272a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613088826123f0565b9150613093836123f0565b9250826130a3576130a261304e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061310a6021836122e6565b9150613115826130ae565b604082019050919050565b60006020820190508181036000830152613139816130fd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6131d3816123b2565b82525050565b60006131e583836131ca565b60208301905092915050565b6000602082019050919050565b60006132098261319e565b61321381856131a9565b935061321e836131ba565b8060005b8381101561324f57815161323688826131d9565b9750613241836131f1565b925050600181019050613222565b5085935050505092915050565b600060a082019050613271600083018861249c565b61327e6020830187612a26565b818103604083015261329081866131fe565b905061329f60608301856125e8565b6132ac608083018461249c565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c9a16a88db9f4037b11b44400d25382f63207813b9ac9dfede14d6bc1655b25664736f6c63430008120033

Deployed Bytecode Sourcemap

4219:8072:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6051:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6884:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11142:293;;;;;;;;;;;;;:::i;:::-;;5283:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6328:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7053:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6237:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6431:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10847;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3300:148;;;;;;;;;;;;;:::i;:::-;;10975:159;;;;;;;;;;;;;:::i;:::-;;5095:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3085:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5157:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6142:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6558:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5219:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11544:707;;;;;;;;;;;;;:::i;:::-;;6733:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6051:83;6088:13;6121:5;;;;;;;;;;;;;;;;;6114:12;;6051:83;:::o;6884:161::-;6959:4;6976:39;6985:12;:10;:12::i;:::-;6999:7;7008:6;6976:8;:39::i;:::-;7033:4;7026:11;;6884:161;;;;:::o;11142:293::-;3223:12;:10;:12::i;:::-;3213:22;;:6;;;;;;;;;;:22;;;3205:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:1:::1;11197:9;:24;11215:4;11197:24;;;;;;;;;;;;;;;;:29:::0;11189:58:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11258:20;11281:9;:24;11299:4;11281:24;;;;;;;;;;;;;;;;11258:47;;11341:1;11316:9;:24;11334:4;11316:24;;;;;;;;;;;;;;;:26;;;;11380:47;11411:15;11380:9;:26;11398:6;11380:26;;;;;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;11353:9;:26;11371:6;11353:26;;;;;;;;;;;;;;;:74;;;;11178:257;11142:293::o:0;5283:51::-;;;;:::o;6328:95::-;6381:7;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;6401:14;;6328:95;:::o;7053:313::-;7151:4;7168:36;7178:6;7186:9;7197:6;7168:9;:36::i;:::-;7215:121;7224:6;7232:12;:10;:12::i;:::-;7246:89;7284:6;7246:89;;;;;;;;;;;;;;;;;:11;:19;7258:6;7246:19;;;;;;;;;;;;;;;:33;7266:12;:10;:12::i;:::-;7246:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7215:8;:121::i;:::-;7354:4;7347:11;;7053:313;;;;;:::o;6237:83::-;6278:5;4914:1;6296:16;;6237:83;:::o;6431:119::-;6497:7;6524:9;:18;6534:7;6524:18;;;;;;;;;;;;;;;;6517:25;;6431:119;;;:::o;10847:::-;3223:12;:10;:12::i;:::-;3213:22;;:6;;;;;;;;;;:22;;;3205:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10946:12:::1;10932:11;;:26;;;;;;;;;;;;;;;;;;10847:119:::0;:::o;3300:148::-;3223:12;:10;:12::i;:::-;3213:22;;:6;;;;;;;;;;:22;;;3205:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3407:1:::1;3370:40;;3391:6;::::0;::::1;;;;;;;;3370:40;;;;;;;;;;;;3438:1;3421:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3300:148::o:0;10975:159::-;3223:12;:10;:12::i;:::-;3213:22;;:6;;;;;;;;;;:22;;;3205:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4914:1:::1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;11028:12;:22;;;;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;11061:14;:22;;;;11099:27;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;11099:27;;;;;;:::i;:::-;;;;;;;;10975:159::o:0;5095:55::-;;;;:::o;3085:79::-;3123:7;3150:6;;;;;;;;;;;3143:13;;3085:79;:::o;5157:55::-;;;;:::o;6142:87::-;6181:13;6214:7;;;;;;;;;;;;;;;;;6207:14;;6142:87;:::o;6558:167::-;6636:4;6653:42;6663:12;:10;:12::i;:::-;6677:9;6688:6;6653:9;:42::i;:::-;6713:4;6706:11;;6558:167;;;;:::o;5219:57::-;;;;:::o;11544:707::-;3223:12;:10;:12::i;:::-;3213:22;;:6;;;;;;;;;;:22;;;3205:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11608:11:::1;;;;;;;;;;;11607:12;11599:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11694:42;11657:15;;:80;;;;;;;;;;;;;;;;;;11748:58;11765:4;11780:15;;;;;;;;;;;4914:1;4969:2;:13;;;;:::i;:::-;4957:9;:25;;;;:::i;:::-;11748:8;:58::i;:::-;11851:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11833:55;;;11897:4;11904:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11833:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11817:13;;:110;;;;;;;;;;;;;;;;;;11938:15;;;;;;;;;;;:31;;;11977:21;12008:4;12014:24;12032:4;12014:9;:24::i;:::-;12039:1;12041::::0;12043:7:::1;:5;:7::i;:::-;12051:15;11938:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12085:13;;;;;;;;;;;12078:29;;;12116:15;;;;;;;;;;;12134:14;12078:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12174:4;12160:11;;:18;;;;;;;;;;;;;;;;;;12203:4;12189:11;;:18;;;;;;;;;;;;;;;;;;12231:12;12218:10;:25;;;;11544:707::o:0;6733:143::-;6814:7;6841:11;:18;6853:5;6841:18;;;;;;;;;;;;;;;:27;6860:7;6841:27;;;;;;;;;;;;;;;;6834:34;;6733:143;;;;:::o;840:98::-;893:7;920:10;913:17;;840:98;:::o;7374:335::-;7484:1;7467:19;;:5;:19;;;7459:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7565:1;7546:21;;:7;:21;;;7538:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7647:6;7617:11;:18;7629:5;7617:18;;;;;;;;;;;;;;;:27;7636:7;7617:27;;;;;;;;;;;;;;;:36;;;;7685:7;7669:32;;7678:5;7669:32;;;7694:6;7669:32;;;;;;:::i;:::-;;;;;;;;7374:335;;;:::o;1646:179::-;1704:7;1724:9;1740:1;1736;:5;;;;:::i;:::-;1724:17;;1765:1;1760;:6;;1752:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1816:1;1809:8;;;1646:179;;;;:::o;7717:2320::-;7821:1;7805:18;;:4;:18;;;7797:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7898:1;7884:16;;:2;:16;;;7876:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7968:1;7959:6;:10;7951:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8026:17;8068:7;:5;:7::i;:::-;8060:15;;:4;:15;;;;:32;;;;;8085:7;:5;:7::i;:::-;8079:13;;:2;:13;;;;8060:32;8056:1625;;;8121:76;8193:3;8121:67;8143:15;;8133:9;;:25;8132:55;;8173:14;;8132:55;;;8160:12;;8132:55;8121:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8109:88;;8226:13;;;;;;;;;;;8218:21;;:4;:21;;;:55;;;;;8257:15;;;;;;;;;;;8243:30;;:2;:30;;;;8218:55;:83;;;;;8279:18;:22;8298:2;8279:22;;;;;;;;;;;;;;;;;;;;;;;;;8277:24;8218:83;8214:436;;;8341:12;;8331:6;:22;;8323:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8436:14;;8426:6;8410:13;8420:2;8410:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8402:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8524:12;8519:1;8506:10;;:14;;;;:::i;:::-;:30;8502:103;;;8570:14;8581:2;8570:10;:14::i;:::-;8569:15;8561:24;;;;;;8502:103;8623:9;;:11;;;;;;;;;:::i;:::-;;;;;;8214:436;8676:13;;;;;;;;;;;8670:19;;:2;:19;;;;:47;;;;;8695:18;:22;8714:2;8695:22;;;;;;;;;;;;;;;;;;;;;;;;;8693:24;8670:47;8666:167;;;8772:14;;8762:6;8746:13;8756:2;8746:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8738:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8666:167;8858:13;;;;;;;;;;;8852:19;;:2;:19;;;:43;;;;;8890:4;8875:20;;:4;:20;;;;8852:43;8849:174;;;8928:79;9003:3;8928:70;8950:16;;8940:9;;:26;8939:58;;8982:15;;8939:58;;;8968:13;;8939:58;8928:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8916:91;;8849:174;9039:28;9070:24;9088:4;9070:9;:24::i;:::-;9039:55;;9114:6;;;;;;;;;;;9113:7;:32;;;;;9132:13;;;;;;;;;;;9124:21;;:2;:21;;;9113:32;:47;;;;;9149:11;;;;;;;;;;;9113:47;:89;;;;;9185:17;;9164:20;:38;9113:89;:121;;;;;9216:18;;9206:9;;:28;9113:121;9109:561;;;9245:29;9277:24;9295:4;9277:9;:24::i;:::-;9245:56;;9320:68;9337:50;9341:6;9348:38;9352:21;9374:11;;9348:3;:38::i;:::-;9337:3;:50::i;:::-;9320:16;:68::i;:::-;9407:26;9436:21;9407:50;;9500:1;9479:18;:22;9476:179;;;9526:11;;;;;;;;;;;:20;;:50;9547:28;9573:1;9547:21;:25;;:28;;;;:::i;:::-;9526:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9599:35;9612:21;9599:12;:35::i;:::-;9476:179;9236:434;;9109:561;8094:1587;8056:1625;9706:1;9696:9;:11;9693:161;;;9746:39;9775:9;9746;:24;9764:4;9746:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9721:9;:24;9739:4;9721:24;;;;;;;;;;;;;;;:64;;;;9826:4;9803:39;;9812:4;9803:39;;;9832:9;9803:39;;;;;;:::i;:::-;;;;;;;;9693:161;9880:27;9900:6;9880:9;:15;9890:4;9880:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9864:9;:15;9874:4;9864:15;;;;;;;;;;;;;;;:43;;;;9932:40;9950:21;9961:9;9950:6;:10;;:21;;;;:::i;:::-;9932:9;:13;9942:2;9932:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9918:9;:13;9928:2;9918:13;;;;;;;;;;;;;;;:54;;;;10003:2;9988:41;;9997:4;9988:41;;;10007:21;10018:9;10007:6;:10;;:21;;;;:::i;:::-;9988:41;;;;;;:::i;:::-;;;;;;;;7786:2251;7717:2320;;;:::o;1977:190::-;2063:7;2096:1;2091;:6;;2099:12;2083:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2123:9;2139:1;2135;:5;;;;:::i;:::-;2123:17;;2158:1;2151:8;;;1977:190;;;;;:::o;2175:246::-;2233:7;2262:1;2257;:6;2253:47;;2287:1;2280:8;;;;2253:47;2310:9;2326:1;2322;:5;;;;:::i;:::-;2310:17;;2355:1;2350;2346;:5;;;;:::i;:::-;:10;2338:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2412:1;2405:8;;;2175:246;;;;;:::o;2429:132::-;2487:7;2514:39;2518:1;2521;2514:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2507:46;;2429:132;;;;:::o;10153:195::-;10212:4;10229:12;10296:7;10284:20;10276:28;;10339:1;10332:4;:8;10325:15;;;10153:195;;;:::o;10047:98::-;10104:7;10131:1;10129;:3;10128:9;;10136:1;10128:9;;;10134:1;10128:9;10121:16;;10047:98;;;;:::o;10356:483::-;5659:4;5650:6;;:13;;;;;;;;;;;;;;;;;;10434:21:::1;10472:1;10458:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10434:40;;10503:4;10485;10490:1;10485:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10529:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10519:4;10524:1;10519:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10562:62;10579:4;10594:15;;;;;;;;;;;10612:11;10562:8;:62::i;:::-;10635:15;;;;;;;;;;;:66;;;10716:11;10742:1;10758:4;10785;10805:15;10635:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10423:416;5695:5:::0;5686:6;;:14;;;;;;;;;;;;;;;;;;10356:483;:::o;11443:92::-;11500:10;;;;;;;;;;;:19;;:27;11520:6;11500:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11443:92;:::o;1833:136::-;1891:7;1918:43;1922:1;1925;1918:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1911:50;;1833:136;;;;:::o;2569:189::-;2655:7;2687:1;2683;:5;2690:12;2675:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2714:9;2730:1;2726;:5;;;;:::i;:::-;2714:17;;2749:1;2742:8;;;2569:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:104::-;5233:7;5262:24;5280:5;5262:24;:::i;:::-;5251:35;;5188:104;;;:::o;5298:138::-;5379:32;5405:5;5379:32;:::i;:::-;5372:5;5369:43;5359:71;;5426:1;5423;5416:12;5359:71;5298:138;:::o;5442:155::-;5496:5;5534:6;5521:20;5512:29;;5550:41;5585:5;5550:41;:::i;:::-;5442:155;;;;:::o;5603:345::-;5670:6;5719:2;5707:9;5698:7;5694:23;5690:32;5687:119;;;5725:79;;:::i;:::-;5687:119;5845:1;5870:61;5923:7;5914:6;5903:9;5899:22;5870:61;:::i;:::-;5860:71;;5816:125;5603:345;;;;:::o;5954:118::-;6041:24;6059:5;6041:24;:::i;:::-;6036:3;6029:37;5954:118;;:::o;6078:222::-;6171:4;6209:2;6198:9;6194:18;6186:26;;6222:71;6290:1;6279:9;6275:17;6266:6;6222:71;:::i;:::-;6078:222;;;;:::o;6306:474::-;6374:6;6382;6431:2;6419:9;6410:7;6406:23;6402:32;6399:119;;;6437:79;;:::i;:::-;6399:119;6557:1;6582:53;6627:7;6618:6;6607:9;6603:22;6582:53;:::i;:::-;6572:63;;6528:117;6684:2;6710:53;6755:7;6746:6;6735:9;6731:22;6710:53;:::i;:::-;6700:63;;6655:118;6306:474;;;;;:::o;6786:182::-;6926:34;6922:1;6914:6;6910:14;6903:58;6786:182;:::o;6974:366::-;7116:3;7137:67;7201:2;7196:3;7137:67;:::i;:::-;7130:74;;7213:93;7302:3;7213:93;:::i;:::-;7331:2;7326:3;7322:12;7315:19;;6974:366;;;:::o;7346:419::-;7512:4;7550:2;7539:9;7535:18;7527:26;;7599:9;7593:4;7589:20;7585:1;7574:9;7570:17;7563:47;7627:131;7753:4;7627:131;:::i;:::-;7619:139;;7346:419;;;:::o;7771:167::-;7911:19;7907:1;7899:6;7895:14;7888:43;7771:167;:::o;7944:366::-;8086:3;8107:67;8171:2;8166:3;8107:67;:::i;:::-;8100:74;;8183:93;8272:3;8183:93;:::i;:::-;8301:2;8296:3;8292:12;8285:19;;7944:366;;;:::o;8316:419::-;8482:4;8520:2;8509:9;8505:18;8497:26;;8569:9;8563:4;8559:20;8555:1;8544:9;8540:17;8533:47;8597:131;8723:4;8597:131;:::i;:::-;8589:139;;8316:419;;;:::o;8741:180::-;8789:77;8786:1;8779:88;8886:4;8883:1;8876:15;8910:4;8907:1;8900:15;8927:102;8969:8;9016:5;9013:1;9009:13;8988:34;;8927:102;;;:::o;9035:848::-;9096:5;9103:4;9127:6;9118:15;;9151:5;9142:14;;9165:712;9186:1;9176:8;9173:15;9165:712;;;9281:4;9276:3;9272:14;9266:4;9263:24;9260:50;;;9290:18;;:::i;:::-;9260:50;9340:1;9330:8;9326:16;9323:451;;;9755:4;9748:5;9744:16;9735:25;;9323:451;9805:4;9799;9795:15;9787:23;;9835:32;9858:8;9835:32;:::i;:::-;9823:44;;9165:712;;;9035:848;;;;;;;:::o;9889:1073::-;9943:5;10134:8;10124:40;;10155:1;10146:10;;10157:5;;10124:40;10183:4;10173:36;;10200:1;10191:10;;10202:5;;10173:36;10269:4;10317:1;10312:27;;;;10353:1;10348:191;;;;10262:277;;10312:27;10330:1;10321:10;;10332:5;;;10348:191;10393:3;10383:8;10380:17;10377:43;;;10400:18;;:::i;:::-;10377:43;10449:8;10446:1;10442:16;10433:25;;10484:3;10477:5;10474:14;10471:40;;;10491:18;;:::i;:::-;10471:40;10524:5;;;10262:277;;10648:2;10638:8;10635:16;10629:3;10623:4;10620:13;10616:36;10598:2;10588:8;10585:16;10580:2;10574:4;10571:12;10567:35;10551:111;10548:246;;;10704:8;10698:4;10694:19;10685:28;;10739:3;10732:5;10729:14;10726:40;;;10746:18;;:::i;:::-;10726:40;10779:5;;10548:246;10819:42;10857:3;10847:8;10841:4;10838:1;10819:42;:::i;:::-;10804:57;;;;10893:4;10888:3;10884:14;10877:5;10874:25;10871:51;;;10902:18;;:::i;:::-;10871:51;10951:4;10944:5;10940:16;10931:25;;9889:1073;;;;;;:::o;10968:281::-;11026:5;11050:23;11068:4;11050:23;:::i;:::-;11042:31;;11094:25;11110:8;11094:25;:::i;:::-;11082:37;;11138:104;11175:66;11165:8;11159:4;11138:104;:::i;:::-;11129:113;;10968:281;;;;:::o;11255:410::-;11295:7;11318:20;11336:1;11318:20;:::i;:::-;11313:25;;11352:20;11370:1;11352:20;:::i;:::-;11347:25;;11407:1;11404;11400:9;11429:30;11447:11;11429:30;:::i;:::-;11418:41;;11608:1;11599:7;11595:15;11592:1;11589:22;11569:1;11562:9;11542:83;11519:139;;11638:18;;:::i;:::-;11519:139;11303:362;11255:410;;;;:::o;11671:173::-;11811:25;11807:1;11799:6;11795:14;11788:49;11671:173;:::o;11850:366::-;11992:3;12013:67;12077:2;12072:3;12013:67;:::i;:::-;12006:74;;12089:93;12178:3;12089:93;:::i;:::-;12207:2;12202:3;12198:12;12191:19;;11850:366;;;:::o;12222:419::-;12388:4;12426:2;12415:9;12411:18;12403:26;;12475:9;12469:4;12465:20;12461:1;12450:9;12446:17;12439:47;12503:131;12629:4;12503:131;:::i;:::-;12495:139;;12222:419;;;:::o;12647:143::-;12704:5;12735:6;12729:13;12720:22;;12751:33;12778:5;12751:33;:::i;:::-;12647:143;;;;:::o;12796:351::-;12866:6;12915:2;12903:9;12894:7;12890:23;12886:32;12883:119;;;12921:79;;:::i;:::-;12883:119;13041:1;13066:64;13122:7;13113:6;13102:9;13098:22;13066:64;:::i;:::-;13056:74;;13012:128;12796:351;;;;:::o;13153:332::-;13274:4;13312:2;13301:9;13297:18;13289:26;;13325:71;13393:1;13382:9;13378:17;13369:6;13325:71;:::i;:::-;13406:72;13474:2;13463:9;13459:18;13450:6;13406:72;:::i;:::-;13153:332;;;;;:::o;13491:85::-;13536:7;13565:5;13554:16;;13491:85;;;:::o;13582:60::-;13610:3;13631:5;13624:12;;13582:60;;;:::o;13648:158::-;13706:9;13739:61;13757:42;13766:32;13792:5;13766:32;:::i;:::-;13757:42;:::i;:::-;13739:61;:::i;:::-;13726:74;;13648:158;;;:::o;13812:147::-;13907:45;13946:5;13907:45;:::i;:::-;13902:3;13895:58;13812:147;;:::o;13965:807::-;14214:4;14252:3;14241:9;14237:19;14229:27;;14266:71;14334:1;14323:9;14319:17;14310:6;14266:71;:::i;:::-;14347:72;14415:2;14404:9;14400:18;14391:6;14347:72;:::i;:::-;14429:80;14505:2;14494:9;14490:18;14481:6;14429:80;:::i;:::-;14519;14595:2;14584:9;14580:18;14571:6;14519:80;:::i;:::-;14609:73;14677:3;14666:9;14662:19;14653:6;14609:73;:::i;:::-;14692;14760:3;14749:9;14745:19;14736:6;14692:73;:::i;:::-;13965:807;;;;;;;;;:::o;14778:143::-;14835:5;14866:6;14860:13;14851:22;;14882:33;14909:5;14882:33;:::i;:::-;14778:143;;;;:::o;14927:663::-;15015:6;15023;15031;15080:2;15068:9;15059:7;15055:23;15051:32;15048:119;;;15086:79;;:::i;:::-;15048:119;15206:1;15231:64;15287:7;15278:6;15267:9;15263:22;15231:64;:::i;:::-;15221:74;;15177:128;15344:2;15370:64;15426:7;15417:6;15406:9;15402:22;15370:64;:::i;:::-;15360:74;;15315:129;15483:2;15509:64;15565:7;15556:6;15545:9;15541:22;15509:64;:::i;:::-;15499:74;;15454:129;14927:663;;;;;:::o;15596:332::-;15717:4;15755:2;15744:9;15740:18;15732:26;;15768:71;15836:1;15825:9;15821:17;15812:6;15768:71;:::i;:::-;15849:72;15917:2;15906:9;15902:18;15893:6;15849:72;:::i;:::-;15596:332;;;;;:::o;15934:116::-;16004:21;16019:5;16004:21;:::i;:::-;15997:5;15994:32;15984:60;;16040:1;16037;16030:12;15984:60;15934:116;:::o;16056:137::-;16110:5;16141:6;16135:13;16126:22;;16157:30;16181:5;16157:30;:::i;:::-;16056:137;;;;:::o;16199:345::-;16266:6;16315:2;16303:9;16294:7;16290:23;16286:32;16283:119;;;16321:79;;:::i;:::-;16283:119;16441:1;16466:61;16519:7;16510:6;16499:9;16495:22;16466:61;:::i;:::-;16456:71;;16412:125;16199:345;;;;:::o;16550:223::-;16690:34;16686:1;16678:6;16674:14;16667:58;16759:6;16754:2;16746:6;16742:15;16735:31;16550:223;:::o;16779:366::-;16921:3;16942:67;17006:2;17001:3;16942:67;:::i;:::-;16935:74;;17018:93;17107:3;17018:93;:::i;:::-;17136:2;17131:3;17127:12;17120:19;;16779:366;;;:::o;17151:419::-;17317:4;17355:2;17344:9;17340:18;17332:26;;17404:9;17398:4;17394:20;17390:1;17379:9;17375:17;17368:47;17432:131;17558:4;17432:131;:::i;:::-;17424:139;;17151:419;;;:::o;17576:221::-;17716:34;17712:1;17704:6;17700:14;17693:58;17785:4;17780:2;17772:6;17768:15;17761:29;17576:221;:::o;17803:366::-;17945:3;17966:67;18030:2;18025:3;17966:67;:::i;:::-;17959:74;;18042:93;18131:3;18042:93;:::i;:::-;18160:2;18155:3;18151:12;18144:19;;17803:366;;;:::o;18175:419::-;18341:4;18379:2;18368:9;18364:18;18356:26;;18428:9;18422:4;18418:20;18414:1;18403:9;18399:17;18392:47;18456:131;18582:4;18456:131;:::i;:::-;18448:139;;18175:419;;;:::o;18600:191::-;18640:3;18659:20;18677:1;18659:20;:::i;:::-;18654:25;;18693:20;18711:1;18693:20;:::i;:::-;18688:25;;18736:1;18733;18729:9;18722:16;;18757:3;18754:1;18751:10;18748:36;;;18764:18;;:::i;:::-;18748:36;18600:191;;;;:::o;18797:177::-;18937:29;18933:1;18925:6;18921:14;18914:53;18797:177;:::o;18980:366::-;19122:3;19143:67;19207:2;19202:3;19143:67;:::i;:::-;19136:74;;19219:93;19308:3;19219:93;:::i;:::-;19337:2;19332:3;19328:12;19321:19;;18980:366;;;:::o;19352:419::-;19518:4;19556:2;19545:9;19541:18;19533:26;;19605:9;19599:4;19595:20;19591:1;19580:9;19576:17;19569:47;19633:131;19759:4;19633:131;:::i;:::-;19625:139;;19352:419;;;:::o;19777:224::-;19917:34;19913:1;19905:6;19901:14;19894:58;19986:7;19981:2;19973:6;19969:15;19962:32;19777:224;:::o;20007:366::-;20149:3;20170:67;20234:2;20229:3;20170:67;:::i;:::-;20163:74;;20246:93;20335:3;20246:93;:::i;:::-;20364:2;20359:3;20355:12;20348:19;;20007:366;;;:::o;20379:419::-;20545:4;20583:2;20572:9;20568:18;20560:26;;20632:9;20626:4;20622:20;20618:1;20607:9;20603:17;20596:47;20660:131;20786:4;20660:131;:::i;:::-;20652:139;;20379:419;;;:::o;20804:222::-;20944:34;20940:1;20932:6;20928:14;20921:58;21013:5;21008:2;21000:6;20996:15;20989:30;20804:222;:::o;21032:366::-;21174:3;21195:67;21259:2;21254:3;21195:67;:::i;:::-;21188:74;;21271:93;21360:3;21271:93;:::i;:::-;21389:2;21384:3;21380:12;21373:19;;21032:366;;;:::o;21404:419::-;21570:4;21608:2;21597:9;21593:18;21585:26;;21657:9;21651:4;21647:20;21643:1;21632:9;21628:17;21621:47;21685:131;21811:4;21685:131;:::i;:::-;21677:139;;21404:419;;;:::o;21829:228::-;21969:34;21965:1;21957:6;21953:14;21946:58;22038:11;22033:2;22025:6;22021:15;22014:36;21829:228;:::o;22063:366::-;22205:3;22226:67;22290:2;22285:3;22226:67;:::i;:::-;22219:74;;22302:93;22391:3;22302:93;:::i;:::-;22420:2;22415:3;22411:12;22404:19;;22063:366;;;:::o;22435:419::-;22601:4;22639:2;22628:9;22624:18;22616:26;;22688:9;22682:4;22678:20;22674:1;22663:9;22659:17;22652:47;22716:131;22842:4;22716:131;:::i;:::-;22708:139;;22435:419;;;:::o;22860:175::-;23000:27;22996:1;22988:6;22984:14;22977:51;22860:175;:::o;23041:366::-;23183:3;23204:67;23268:2;23263:3;23204:67;:::i;:::-;23197:74;;23280:93;23369:3;23280:93;:::i;:::-;23398:2;23393:3;23389:12;23382:19;;23041:366;;;:::o;23413:419::-;23579:4;23617:2;23606:9;23602:18;23594:26;;23666:9;23660:4;23656:20;23652:1;23641:9;23637:17;23630:47;23694:131;23820:4;23694:131;:::i;:::-;23686:139;;23413:419;;;:::o;23838:176::-;23978:28;23974:1;23966:6;23962:14;23955:52;23838:176;:::o;24020:366::-;24162:3;24183:67;24247:2;24242:3;24183:67;:::i;:::-;24176:74;;24259:93;24348:3;24259:93;:::i;:::-;24377:2;24372:3;24368:12;24361:19;;24020:366;;;:::o;24392:419::-;24558:4;24596:2;24585:9;24581:18;24573:26;;24645:9;24639:4;24635:20;24631:1;24620:9;24616:17;24609:47;24673:131;24799:4;24673:131;:::i;:::-;24665:139;;24392:419;;;:::o;24817:233::-;24856:3;24879:24;24897:5;24879:24;:::i;:::-;24870:33;;24925:66;24918:5;24915:77;24912:103;;24995:18;;:::i;:::-;24912:103;25042:1;25035:5;25031:13;25024:20;;24817:233;;;:::o;25056:194::-;25096:4;25116:20;25134:1;25116:20;:::i;:::-;25111:25;;25150:20;25168:1;25150:20;:::i;:::-;25145:25;;25194:1;25191;25187:9;25179:17;;25218:1;25212:4;25209:11;25206:37;;;25223:18;;:::i;:::-;25206:37;25056:194;;;;:::o;25256:180::-;25304:77;25301:1;25294:88;25401:4;25398:1;25391:15;25425:4;25422:1;25415:15;25442:185;25482:1;25499:20;25517:1;25499:20;:::i;:::-;25494:25;;25533:20;25551:1;25533:20;:::i;:::-;25528:25;;25572:1;25562:35;;25577:18;;:::i;:::-;25562:35;25619:1;25616;25612:9;25607:14;;25442:185;;;;:::o;25633:220::-;25773:34;25769:1;25761:6;25757:14;25750:58;25842:3;25837:2;25829:6;25825:15;25818:28;25633:220;:::o;25859:366::-;26001:3;26022:67;26086:2;26081:3;26022:67;:::i;:::-;26015:74;;26098:93;26187:3;26098:93;:::i;:::-;26216:2;26211:3;26207:12;26200:19;;25859:366;;;:::o;26231:419::-;26397:4;26435:2;26424:9;26420:18;26412:26;;26484:9;26478:4;26474:20;26470:1;26459:9;26455:17;26448:47;26512:131;26638:4;26512:131;:::i;:::-;26504:139;;26231:419;;;:::o;26656:180::-;26704:77;26701:1;26694:88;26801:4;26798:1;26791:15;26825:4;26822:1;26815:15;26842:180;26890:77;26887:1;26880:88;26987:4;26984:1;26977:15;27011:4;27008:1;27001:15;27028:114;27095:6;27129:5;27123:12;27113:22;;27028:114;;;:::o;27148:184::-;27247:11;27281:6;27276:3;27269:19;27321:4;27316:3;27312:14;27297:29;;27148:184;;;;:::o;27338:132::-;27405:4;27428:3;27420:11;;27458:4;27453:3;27449:14;27441:22;;27338:132;;;:::o;27476:108::-;27553:24;27571:5;27553:24;:::i;:::-;27548:3;27541:37;27476:108;;:::o;27590:179::-;27659:10;27680:46;27722:3;27714:6;27680:46;:::i;:::-;27758:4;27753:3;27749:14;27735:28;;27590:179;;;;:::o;27775:113::-;27845:4;27877;27872:3;27868:14;27860:22;;27775:113;;;:::o;27924:732::-;28043:3;28072:54;28120:5;28072:54;:::i;:::-;28142:86;28221:6;28216:3;28142:86;:::i;:::-;28135:93;;28252:56;28302:5;28252:56;:::i;:::-;28331:7;28362:1;28347:284;28372:6;28369:1;28366:13;28347:284;;;28448:6;28442:13;28475:63;28534:3;28519:13;28475:63;:::i;:::-;28468:70;;28561:60;28614:6;28561:60;:::i;:::-;28551:70;;28407:224;28394:1;28391;28387:9;28382:14;;28347:284;;;28351:14;28647:3;28640:10;;28048:608;;;27924:732;;;;:::o;28662:831::-;28925:4;28963:3;28952:9;28948:19;28940:27;;28977:71;29045:1;29034:9;29030:17;29021:6;28977:71;:::i;:::-;29058:80;29134:2;29123:9;29119:18;29110:6;29058:80;:::i;:::-;29185:9;29179:4;29175:20;29170:2;29159:9;29155:18;29148:48;29213:108;29316:4;29307:6;29213:108;:::i;:::-;29205:116;;29331:72;29399:2;29388:9;29384:18;29375:6;29331:72;:::i;:::-;29413:73;29481:3;29470:9;29466:19;29457:6;29413:73;:::i;:::-;28662:831;;;;;;;;:::o

Swarm Source

ipfs://c9a16a88db9f4037b11b44400d25382f63207813b9ac9dfede14d6bc1655b256

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.