ETH Price: $2,627.16 (+0.52%)

Contract

0x246e571bEf4681E1A37dA199763d72d8bBBEb31C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189001622023-12-30 18:38:11292 days ago1703961491IN
0x246e571b...8bBBEb31C
0 ETH0.0009953321.25060602
Approve171770022023-05-03 1:40:23534 days ago1683078023IN
0x246e571b...8bBBEb31C
0 ETH0.001985679.6599666
Approve168618772023-03-19 12:50:35578 days ago1679230235IN
0x246e571b...8bBBEb31C
0 ETH0.0007262915.40384625
Approve168230522023-03-14 1:53:59584 days ago1678758839IN
0x246e571b...8bBBEb31C
0 ETH0.0010874223.06302716
Approve167415102023-03-02 14:36:23595 days ago1677767783IN
0x246e571b...8bBBEb31C
0 ETH0.0013816229.30280854
Approve167078202023-02-25 20:59:59600 days ago1677358799IN
0x246e571b...8bBBEb31C
0 ETH0.0009557820.27112121
Approve165606452023-02-05 5:58:23621 days ago1675576703IN
0x246e571b...8bBBEb31C
0 ETH0.0008386817.78768042
Approve165177902023-01-30 6:16:35627 days ago1675059395IN
0x246e571b...8bBBEb31C
0 ETH0.0006808114.43944458
Approve165060572023-01-28 14:57:35628 days ago1674917855IN
0x246e571b...8bBBEb31C
0 ETH0.0006231513.19957551
Approve164944832023-01-27 0:09:35630 days ago1674778175IN
0x246e571b...8bBBEb31C
0 ETH0.0008024217.01846857
Approve164711152023-01-23 17:51:47633 days ago1674496307IN
0x246e571b...8bBBEb31C
0 ETH0.0015593933.07300195
Approve164652002023-01-22 22:03:23634 days ago1674425003IN
0x246e571b...8bBBEb31C
0 ETH0.000698514.79564947
Approve164583682023-01-21 23:09:11635 days ago1674342551IN
0x246e571b...8bBBEb31C
0 ETH0.0007237415.34981713
Approve164567142023-01-21 17:37:11635 days ago1674322631IN
0x246e571b...8bBBEb31C
0 ETH0.0009096619.29304928
Approve164565292023-01-21 16:59:59635 days ago1674320399IN
0x246e571b...8bBBEb31C
0 ETH0.0011572924.5136653
Approve164445572023-01-20 0:53:59637 days ago1674176039IN
0x246e571b...8bBBEb31C
0 ETH0.000752715.96408228
Approve164443062023-01-20 0:03:23637 days ago1674173003IN
0x246e571b...8bBBEb31C
0 ETH0.0011802525
Approve164442832023-01-19 23:58:47637 days ago1674172727IN
0x246e571b...8bBBEb31C
0 ETH0.0007240215.35587822
Approve164421362023-01-19 16:46:35637 days ago1674146795IN
0x246e571b...8bBBEb31C
0 ETH0.0015107232
Approve164399882023-01-19 9:34:23638 days ago1674120863IN
0x246e571b...8bBBEb31C
0 ETH0.0007431315.76110957
Approve164397612023-01-19 8:48:35638 days ago1674118115IN
0x246e571b...8bBBEb31C
0 ETH0.000725915.37601952
Approve164395142023-01-19 7:58:59638 days ago1674115139IN
0x246e571b...8bBBEb31C
0 ETH0.000754416
Approve164386792023-01-19 5:11:11638 days ago1674105071IN
0x246e571b...8bBBEb31C
0 ETH0.0007206615.26505357
Approve164319152023-01-18 6:31:47639 days ago1674023507IN
0x246e571b...8bBBEb31C
0 ETH0.0008025717
Approve164315492023-01-18 5:18:23639 days ago1674019103IN
0x246e571b...8bBBEb31C
0 ETH0.0008027317.00359236
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
189001642023-12-30 18:38:35292 days ago1703961515
0x246e571b...8bBBEb31C
0.00862612 ETH
189001642023-12-30 18:38:35292 days ago1703961515
0x246e571b...8bBBEb31C
0.00862612 ETH
168230562023-03-14 1:54:47584 days ago1678758887
0x246e571b...8bBBEb31C
0.01131066 ETH
168230562023-03-14 1:54:47584 days ago1678758887
0x246e571b...8bBBEb31C
0.01131066 ETH
164542232023-01-21 9:17:11636 days ago1674292631
0x246e571b...8bBBEb31C
0.0120298 ETH
164542232023-01-21 9:17:11636 days ago1674292631
0x246e571b...8bBBEb31C
0.0120298 ETH
164397662023-01-19 8:49:35638 days ago1674118175
0x246e571b...8bBBEb31C
0.014434 ETH
164397662023-01-19 8:49:35638 days ago1674118175
0x246e571b...8bBBEb31C
0.014434 ETH
164386872023-01-19 5:12:47638 days ago1674105167
0x246e571b...8bBBEb31C
0.00106269 ETH
164386872023-01-19 5:12:47638 days ago1674105167
0x246e571b...8bBBEb31C
0.00106269 ETH
164315292023-01-18 5:14:23639 days ago1674018863
0x246e571b...8bBBEb31C
0.0169885 ETH
164315292023-01-18 5:14:23639 days ago1674018863
0x246e571b...8bBBEb31C
0.0169885 ETH
164196612023-01-16 13:30:59640 days ago1673875859
0x246e571b...8bBBEb31C
0.01775234 ETH
164196612023-01-16 13:30:59640 days ago1673875859
0x246e571b...8bBBEb31C
0.01775234 ETH
164065222023-01-14 17:25:11642 days ago1673717111
0x246e571b...8bBBEb31C
0.02173006 ETH
164065222023-01-14 17:25:11642 days ago1673717111
0x246e571b...8bBBEb31C
0.02173006 ETH
164029072023-01-14 5:19:11643 days ago1673673551
0x246e571b...8bBBEb31C
0.00944891 ETH
164029072023-01-14 5:19:11643 days ago1673673551
0x246e571b...8bBBEb31C
0.00944891 ETH
163928922023-01-12 19:45:47644 days ago1673552747
0x246e571b...8bBBEb31C
0.02110537 ETH
163928922023-01-12 19:45:47644 days ago1673552747
0x246e571b...8bBBEb31C
0.02110537 ETH
163914572023-01-12 14:55:47644 days ago1673535347
0x246e571b...8bBBEb31C
0.0242981 ETH
163914572023-01-12 14:55:47644 days ago1673535347
0x246e571b...8bBBEb31C
0.0242981 ETH
163907472023-01-12 12:33:11644 days ago1673526791
0x246e571b...8bBBEb31C
0.02901867 ETH
163907472023-01-12 12:33:11644 days ago1673526791
0x246e571b...8bBBEb31C
0.02901867 ETH
163886802023-01-12 5:37:35645 days ago1673501855
0x246e571b...8bBBEb31C
0.03310723 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DegenDetector

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**

https://t.me/DegenDetector 

Degen Detector is a new tool that will allow users the ability to access whether a Token is an investable asset by compiling data from Etherscan and delivering it via a slick and user friendly Telegram Bot. Utility LIVE at launch. 

Twitter - https://twitter.com/Degen_Detector
Website - http://degendetector.com/

**/
pragma solidity 0.8.17;

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 DegenDetector 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;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=10;
    uint256 private _initialSellTax=15;
    uint256 private _finalTax=5;
    uint256 private _reduceBuyTaxAt=50;
    uint256 private _reduceSellTaxAt=50;
    uint256 private _preventSwapBefore=15;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    string private constant _name = unicode"DegenDetector";
    string private constant _symbol = unicode"DD";
    uint256 public _maxTxAmount =   20000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000 * 10**_decimals;
    uint256 public _taxSwapThreshold=2500 * 10**_decimals;
    uint256 public _maxTaxSwap=2500 * 10**_decimals;

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

    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()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

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

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    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);
        swapEnabled = true;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    

    receive() external payable {}

    function manualSwap() external {
        require(msg.sender ==_taxWallet,"unauthorized");
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600660006101000a81548160ff021916908315150217905550600a600755600f60085560056009556032600a556032600b55600f600c556000600d556008600a62000052919062000620565b614e2062000061919062000671565b600e556008600a62000074919062000620565b614e2062000083919062000671565b600f556008600a62000096919062000620565b6109c4620000a5919062000671565b6010556008600a620000b8919062000620565b6109c4620000c7919062000671565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200010d57600080fd5b506000620001206200045560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ce6200045560201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200021e919062000620565b620f42406200022e919062000671565b60016000620002426200045560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002966200045d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003c96200045560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000428919062000620565b620f424062000438919062000671565b604051620004479190620006cd565b60405180910390a3620006ea565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200051457808604811115620004ec57620004eb62000486565b5b6001851615620004fc5780820291505b80810290506200050c85620004b5565b9450620004cc565b94509492505050565b6000826200052f576001905062000602565b816200053f576000905062000602565b8160018114620005585760028114620005635762000599565b600191505062000602565b60ff84111562000578576200057762000486565b5b8360020a91508482111562000592576200059162000486565b5b5062000602565b5060208310610133831016604e8410600b8410161715620005d35782820a905083811115620005cd57620005cc62000486565b5b62000602565b620005e28484846001620004c2565b92509050818404811115620005fc57620005fb62000486565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200062d8262000609565b91506200063a8362000613565b9250620006697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200051d565b905092915050565b60006200067e8262000609565b91506200068b8362000609565b92508282026200069b8162000609565b91508282048414831517620006b557620006b462000486565b5b5092915050565b620006c78162000609565b82525050565b6000602082019050620006e46000830184620006bc565b92915050565b61367480620006fa6000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103ff578063bf474bed1461043c578063c876d0b914610467578063c9567bf914610492578063d34628cc146104a9578063dd62ed3e146104d257610140565b8063751039fc1461033c5780637d1db4a5146103535780638da5cb5b1461037e5780638f9a55c0146103a957806395d89b41146103d457610140565b8063313ce567116100fd578063313ce5671461024057806331c2d8471461026b5780633bbac5791461029457806351bc3c85146102d157806370a08231146102e8578063715018a61461032557610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050f565b604051610167919061250d565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906125d7565b61054c565b6040516101a49190612632565b60405180910390f35b3480156101b957600080fd5b506101c261056a565b6040516101cf919061265c565b60405180910390f35b3480156101e457600080fd5b506101ed610570565b6040516101fa919061265c565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612677565b610593565b6040516102379190612632565b60405180910390f35b34801561024c57600080fd5b5061025561066c565b60405161026291906126e6565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612849565b610675565b005b3480156102a057600080fd5b506102bb60048036038101906102b69190612892565b61079f565b6040516102c89190612632565b60405180910390f35b3480156102dd57600080fd5b506102e66107f5565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612892565b6108c1565b60405161031c919061265c565b60405180910390f35b34801561033157600080fd5b5061033a61090a565b005b34801561034857600080fd5b50610351610a5d565b005b34801561035f57600080fd5b50610368610ba5565b604051610375919061265c565b60405180910390f35b34801561038a57600080fd5b50610393610bab565b6040516103a091906128ce565b60405180910390f35b3480156103b557600080fd5b506103be610bd4565b6040516103cb919061265c565b60405180910390f35b3480156103e057600080fd5b506103e9610bda565b6040516103f6919061250d565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906125d7565b610c17565b6040516104339190612632565b60405180910390f35b34801561044857600080fd5b50610451610c35565b60405161045e919061265c565b60405180910390f35b34801561047357600080fd5b5061047c610c3b565b6040516104899190612632565b60405180910390f35b34801561049e57600080fd5b506104a7610c4e565b005b3480156104b557600080fd5b506104d060048036038101906104cb9190612849565b611185565b005b3480156104de57600080fd5b506104f960048036038101906104f491906128e9565b6112af565b604051610506919061265c565b60405180910390f35b60606040518060400160405280600d81526020017f446567656e4465746563746f7200000000000000000000000000000000000000815250905090565b6000610560610559611336565b848461133e565b6001905092915050565b60115481565b60006008600a6105809190612a8b565b620f424061058e9190612ad6565b905090565b60006105a0848484611507565b610661846105ac611336565b61065c8560405180606001604052806028815260200161361760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610612611336565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4c9092919063ffffffff16565b61133e565b600190509392505050565b60006008905090565b61067d611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070190612b64565b60405180910390fd5b60005b815181101561079b5760006004600084848151811061072f5761072e612b84565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061079390612bb3565b91505061070d565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612c47565b60405180910390fd5b6000610890306108c1565b905060008111156108a5576108a481611fb0565b5b600047905060008111156108bd576108bc81612229565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610912611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612b64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a65611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612b64565b60405180910390fd5b6008600a610b009190612a8b565b620f4240610b0e9190612ad6565b600e819055506008600a610b229190612a8b565b620f4240610b309190612ad6565b600f819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b809190612a8b565b620f4240610b8e9190612ad6565b604051610b9b919061265c565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600281526020017f4444000000000000000000000000000000000000000000000000000000000000815250905090565b6000610c2b610c24611336565b8484611507565b6001905092915050565b60105481565b600660009054906101000a900460ff1681565b610c56611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda90612b64565b60405180910390fd5b601360149054906101000a900460ff1615610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612cb3565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610dbd9190612a8b565b620f4240610dcb9190612ad6565b61133e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190612ce8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190612ce8565b6040518363ffffffff1660e01b8152600401610f2b929190612d15565b6020604051808303816000875af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612ce8565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff7306108c1565b600080611002610bab565b426040518863ffffffff1660e01b815260040161102496959493929190612d83565b60606040518083038185885af1158015611042573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110679190612df9565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161113f929190612e4c565b6020604051808303816000875af115801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190612ea1565b50565b61118d611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612b64565b60405180910390fd5b60005b81518110156112ab5760016004600084848151811061123f5761123e612b84565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112a390612bb3565b91505061121d565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390612fd2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114fa919061265c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d90613064565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906130f6565b60405180910390fd5b60008111611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f90613188565b60405180910390fd5b6000611632610bab565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a05750611670610bab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c8f57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117495750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61175257600080fd5b61178e6064611780600a54600d541161176d57600754611771565b6009545b8561229590919063ffffffff16565b61230f90919063ffffffff16565b9050600660009054906101000a900460ff161561191d57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118515750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191c5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613240565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119c85750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad957600e54821115611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f906132ac565b60405180910390fd5b600f5482611a75856108c1565b611a7f91906132cc565b1115611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab79061334c565b60405180910390fd5b600d6000815480929190611ad390612bb3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b6257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ba657611ba36064611b95600b54600d5411611b8257600854611b86565b6009545b8561229590919063ffffffff16565b61230f90919063ffffffff16565b90505b6000611bb1306108c1565b9050601360159054906101000a900460ff16158015611c1d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c355750601360169054906101000a900460ff165b8015611c42575060105481115b8015611c515750600c54600d54115b15611c8d57611c73611c6e84611c6984601154612359565b612359565b611fb0565b60004790506000811115611c8b57611c8a47612229565b5b505b505b611ce182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d88611d3a828461237290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e2d848661237290919063ffffffff16565b604051611e3a919061265c565b60405180910390a36000811115611f4657611e9d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f3d919061265c565b60405180910390a35b50505050565b6000838311158290611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8b919061250d565b60405180910390fd5b5060008385611fa3919061336c565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fe857611fe7612706565b5b6040519080825280602002602001820160405280156120165781602001602082028036833780820191505090505b509050308160008151811061202e5761202d612b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190612ce8565b8160018151811061210d5761210c612b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061217430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461133e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121d895949392919061345e565b600060405180830381600087803b1580156121f257600080fd5b505af1158015612206573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612291573d6000803e3d6000fd5b5050565b60008083036122a75760009050612309565b600082846122b59190612ad6565b90508284826122c491906134e7565b14612304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fb9061358a565b60405180910390fd5b809150505b92915050565b600061235183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061241a565b905092915050565b6000818311612368578261236a565b815b905092915050565b60006123b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4c565b905092915050565b60008082846123cb91906132cc565b905083811015612410576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612407906135f6565b60405180910390fd5b8091505092915050565b60008083118290612461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612458919061250d565b60405180910390fd5b506000838561247091906134e7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124b757808201518184015260208101905061249c565b60008484015250505050565b6000601f19601f8301169050919050565b60006124df8261247d565b6124e98185612488565b93506124f9818560208601612499565b612502816124c3565b840191505092915050565b6000602082019050818103600083015261252781846124d4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256e82612543565b9050919050565b61257e81612563565b811461258957600080fd5b50565b60008135905061259b81612575565b92915050565b6000819050919050565b6125b4816125a1565b81146125bf57600080fd5b50565b6000813590506125d1816125ab565b92915050565b600080604083850312156125ee576125ed612539565b5b60006125fc8582860161258c565b925050602061260d858286016125c2565b9150509250929050565b60008115159050919050565b61262c81612617565b82525050565b60006020820190506126476000830184612623565b92915050565b612656816125a1565b82525050565b6000602082019050612671600083018461264d565b92915050565b6000806000606084860312156126905761268f612539565b5b600061269e8682870161258c565b93505060206126af8682870161258c565b92505060406126c0868287016125c2565b9150509250925092565b600060ff82169050919050565b6126e0816126ca565b82525050565b60006020820190506126fb60008301846126d7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61273e826124c3565b810181811067ffffffffffffffff8211171561275d5761275c612706565b5b80604052505050565b600061277061252f565b905061277c8282612735565b919050565b600067ffffffffffffffff82111561279c5761279b612706565b5b602082029050602081019050919050565b600080fd5b60006127c56127c084612781565b612766565b905080838252602082019050602084028301858111156127e8576127e76127ad565b5b835b8181101561281157806127fd888261258c565b8452602084019350506020810190506127ea565b5050509392505050565b600082601f8301126128305761282f612701565b5b81356128408482602086016127b2565b91505092915050565b60006020828403121561285f5761285e612539565b5b600082013567ffffffffffffffff81111561287d5761287c61253e565b5b6128898482850161281b565b91505092915050565b6000602082840312156128a8576128a7612539565b5b60006128b68482850161258c565b91505092915050565b6128c881612563565b82525050565b60006020820190506128e360008301846128bf565b92915050565b60008060408385031215612900576128ff612539565b5b600061290e8582860161258c565b925050602061291f8582860161258c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129af5780860481111561298b5761298a612929565b5b600185161561299a5780820291505b80810290506129a885612958565b945061296f565b94509492505050565b6000826129c85760019050612a84565b816129d65760009050612a84565b81600181146129ec57600281146129f657612a25565b6001915050612a84565b60ff841115612a0857612a07612929565b5b8360020a915084821115612a1f57612a1e612929565b5b50612a84565b5060208310610133831016604e8410600b8410161715612a5a5782820a905083811115612a5557612a54612929565b5b612a84565b612a678484846001612965565b92509050818404811115612a7e57612a7d612929565b5b81810290505b9392505050565b6000612a96826125a1565b9150612aa1836126ca565b9250612ace7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b8565b905092915050565b6000612ae1826125a1565b9150612aec836125a1565b9250828202612afa816125a1565b91508282048414831517612b1157612b10612929565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b4e602083612488565b9150612b5982612b18565b602082019050919050565b60006020820190508181036000830152612b7d81612b41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bbe826125a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bf057612bef612929565b5b600182019050919050565b7f756e617574686f72697a65640000000000000000000000000000000000000000600082015250565b6000612c31600c83612488565b9150612c3c82612bfb565b602082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c9d601783612488565b9150612ca882612c67565b602082019050919050565b60006020820190508181036000830152612ccc81612c90565b9050919050565b600081519050612ce281612575565b92915050565b600060208284031215612cfe57612cfd612539565b5b6000612d0c84828501612cd3565b91505092915050565b6000604082019050612d2a60008301856128bf565b612d3760208301846128bf565b9392505050565b6000819050919050565b6000819050919050565b6000612d6d612d68612d6384612d3e565b612d48565b6125a1565b9050919050565b612d7d81612d52565b82525050565b600060c082019050612d9860008301896128bf565b612da5602083018861264d565b612db26040830187612d74565b612dbf6060830186612d74565b612dcc60808301856128bf565b612dd960a083018461264d565b979650505050505050565b600081519050612df3816125ab565b92915050565b600080600060608486031215612e1257612e11612539565b5b6000612e2086828701612de4565b9350506020612e3186828701612de4565b9250506040612e4286828701612de4565b9150509250925092565b6000604082019050612e6160008301856128bf565b612e6e602083018461264d565b9392505050565b612e7e81612617565b8114612e8957600080fd5b50565b600081519050612e9b81612e75565b92915050565b600060208284031215612eb757612eb6612539565b5b6000612ec584828501612e8c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f2a602483612488565b9150612f3582612ece565b604082019050919050565b60006020820190508181036000830152612f5981612f1d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbc602283612488565b9150612fc782612f60565b604082019050919050565b60006020820190508181036000830152612feb81612faf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061304e602583612488565b915061305982612ff2565b604082019050919050565b6000602082019050818103600083015261307d81613041565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130e0602383612488565b91506130eb82613084565b604082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613172602983612488565b915061317d82613116565b604082019050919050565b600060208201905081810360008301526131a181613165565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061322a604983612488565b9150613235826131a8565b606082019050919050565b600060208201905081810360008301526132598161321d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613296601983612488565b91506132a182613260565b602082019050919050565b600060208201905081810360008301526132c581613289565b9050919050565b60006132d7826125a1565b91506132e2836125a1565b92508282019050808211156132fa576132f9612929565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613336601a83612488565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b6000613377826125a1565b9150613382836125a1565b925082820390508181111561339a57613399612929565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133d581612563565b82525050565b60006133e783836133cc565b60208301905092915050565b6000602082019050919050565b600061340b826133a0565b61341581856133ab565b9350613420836133bc565b8060005b8381101561345157815161343888826133db565b9750613443836133f3565b925050600181019050613424565b5085935050505092915050565b600060a082019050613473600083018861264d565b6134806020830187612d74565b81810360408301526134928186613400565b90506134a160608301856128bf565b6134ae608083018461264d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134f2826125a1565b91506134fd836125a1565b92508261350d5761350c6134b8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613574602183612488565b915061357f82613518565b604082019050919050565b600060208201905081810360008301526135a381613567565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006135e0601b83612488565b91506135eb826135aa565b602082019050919050565b6000602082019050818103600083015261360f816135d3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ee24c15339c0444d2ebea240dcdc085d785b92c45ee4b61dcf71d365f6a008f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103ff578063bf474bed1461043c578063c876d0b914610467578063c9567bf914610492578063d34628cc146104a9578063dd62ed3e146104d257610140565b8063751039fc1461033c5780637d1db4a5146103535780638da5cb5b1461037e5780638f9a55c0146103a957806395d89b41146103d457610140565b8063313ce567116100fd578063313ce5671461024057806331c2d8471461026b5780633bbac5791461029457806351bc3c85146102d157806370a08231146102e8578063715018a61461032557610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a61050f565b604051610167919061250d565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906125d7565b61054c565b6040516101a49190612632565b60405180910390f35b3480156101b957600080fd5b506101c261056a565b6040516101cf919061265c565b60405180910390f35b3480156101e457600080fd5b506101ed610570565b6040516101fa919061265c565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612677565b610593565b6040516102379190612632565b60405180910390f35b34801561024c57600080fd5b5061025561066c565b60405161026291906126e6565b60405180910390f35b34801561027757600080fd5b50610292600480360381019061028d9190612849565b610675565b005b3480156102a057600080fd5b506102bb60048036038101906102b69190612892565b61079f565b6040516102c89190612632565b60405180910390f35b3480156102dd57600080fd5b506102e66107f5565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612892565b6108c1565b60405161031c919061265c565b60405180910390f35b34801561033157600080fd5b5061033a61090a565b005b34801561034857600080fd5b50610351610a5d565b005b34801561035f57600080fd5b50610368610ba5565b604051610375919061265c565b60405180910390f35b34801561038a57600080fd5b50610393610bab565b6040516103a091906128ce565b60405180910390f35b3480156103b557600080fd5b506103be610bd4565b6040516103cb919061265c565b60405180910390f35b3480156103e057600080fd5b506103e9610bda565b6040516103f6919061250d565b60405180910390f35b34801561040b57600080fd5b50610426600480360381019061042191906125d7565b610c17565b6040516104339190612632565b60405180910390f35b34801561044857600080fd5b50610451610c35565b60405161045e919061265c565b60405180910390f35b34801561047357600080fd5b5061047c610c3b565b6040516104899190612632565b60405180910390f35b34801561049e57600080fd5b506104a7610c4e565b005b3480156104b557600080fd5b506104d060048036038101906104cb9190612849565b611185565b005b3480156104de57600080fd5b506104f960048036038101906104f491906128e9565b6112af565b604051610506919061265c565b60405180910390f35b60606040518060400160405280600d81526020017f446567656e4465746563746f7200000000000000000000000000000000000000815250905090565b6000610560610559611336565b848461133e565b6001905092915050565b60115481565b60006008600a6105809190612a8b565b620f424061058e9190612ad6565b905090565b60006105a0848484611507565b610661846105ac611336565b61065c8560405180606001604052806028815260200161361760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610612611336565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4c9092919063ffffffff16565b61133e565b600190509392505050565b60006008905090565b61067d611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070190612b64565b60405180910390fd5b60005b815181101561079b5760006004600084848151811061072f5761072e612b84565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061079390612bb3565b91505061070d565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c90612c47565b60405180910390fd5b6000610890306108c1565b905060008111156108a5576108a481611fb0565b5b600047905060008111156108bd576108bc81612229565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610912611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099690612b64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a65611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae990612b64565b60405180910390fd5b6008600a610b009190612a8b565b620f4240610b0e9190612ad6565b600e819055506008600a610b229190612a8b565b620f4240610b309190612ad6565b600f819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b809190612a8b565b620f4240610b8e9190612ad6565b604051610b9b919061265c565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600281526020017f4444000000000000000000000000000000000000000000000000000000000000815250905090565b6000610c2b610c24611336565b8484611507565b6001905092915050565b60105481565b600660009054906101000a900460ff1681565b610c56611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cda90612b64565b60405180910390fd5b601360149054906101000a900460ff1615610d33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2a90612cb3565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd030601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610dbd9190612a8b565b620f4240610dcb9190612ad6565b61133e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190612ce8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190612ce8565b6040518363ffffffff1660e01b8152600401610f2b929190612d15565b6020604051808303816000875af1158015610f4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6e9190612ce8565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff7306108c1565b600080611002610bab565b426040518863ffffffff1660e01b815260040161102496959493929190612d83565b60606040518083038185885af1158015611042573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110679190612df9565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161113f929190612e4c565b6020604051808303816000875af115801561115e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111829190612ea1565b50565b61118d611336565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461121a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121190612b64565b60405180910390fd5b60005b81518110156112ab5760016004600084848151811061123f5761123e612b84565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112a390612bb3565b91505061121d565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a490612f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141390612fd2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114fa919061265c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611576576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156d90613064565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906130f6565b60405180910390fd5b60008111611628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161f90613188565b60405180910390fd5b6000611632610bab565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116a05750611670610bab565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c8f57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117495750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61175257600080fd5b61178e6064611780600a54600d541161176d57600754611771565b6009545b8561229590919063ffffffff16565b61230f90919063ffffffff16565b9050600660009054906101000a900460ff161561191d57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118515750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191c5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613240565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119c85750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad957600e54821115611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f906132ac565b60405180910390fd5b600f5482611a75856108c1565b611a7f91906132cc565b1115611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab79061334c565b60405180910390fd5b600d6000815480929190611ad390612bb3565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b6257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ba657611ba36064611b95600b54600d5411611b8257600854611b86565b6009545b8561229590919063ffffffff16565b61230f90919063ffffffff16565b90505b6000611bb1306108c1565b9050601360159054906101000a900460ff16158015611c1d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c355750601360169054906101000a900460ff165b8015611c42575060105481115b8015611c515750600c54600d54115b15611c8d57611c73611c6e84611c6984601154612359565b612359565b611fb0565b60004790506000811115611c8b57611c8a47612229565b5b505b505b611ce182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d88611d3a828461237290919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e2d848661237290919063ffffffff16565b604051611e3a919061265c565b60405180910390a36000811115611f4657611e9d81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bc90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f3d919061265c565b60405180910390a35b50505050565b6000838311158290611f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8b919061250d565b60405180910390fd5b5060008385611fa3919061336c565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fe857611fe7612706565b5b6040519080825280602002602001820160405280156120165781602001602082028036833780820191505090505b509050308160008151811061202e5761202d612b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f99190612ce8565b8160018151811061210d5761210c612b84565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061217430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461133e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121d895949392919061345e565b600060405180830381600087803b1580156121f257600080fd5b505af1158015612206573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612291573d6000803e3d6000fd5b5050565b60008083036122a75760009050612309565b600082846122b59190612ad6565b90508284826122c491906134e7565b14612304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fb9061358a565b60405180910390fd5b809150505b92915050565b600061235183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061241a565b905092915050565b6000818311612368578261236a565b815b905092915050565b60006123b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f4c565b905092915050565b60008082846123cb91906132cc565b905083811015612410576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612407906135f6565b60405180910390fd5b8091505092915050565b60008083118290612461576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612458919061250d565b60405180910390fd5b506000838561247091906134e7565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124b757808201518184015260208101905061249c565b60008484015250505050565b6000601f19601f8301169050919050565b60006124df8261247d565b6124e98185612488565b93506124f9818560208601612499565b612502816124c3565b840191505092915050565b6000602082019050818103600083015261252781846124d4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256e82612543565b9050919050565b61257e81612563565b811461258957600080fd5b50565b60008135905061259b81612575565b92915050565b6000819050919050565b6125b4816125a1565b81146125bf57600080fd5b50565b6000813590506125d1816125ab565b92915050565b600080604083850312156125ee576125ed612539565b5b60006125fc8582860161258c565b925050602061260d858286016125c2565b9150509250929050565b60008115159050919050565b61262c81612617565b82525050565b60006020820190506126476000830184612623565b92915050565b612656816125a1565b82525050565b6000602082019050612671600083018461264d565b92915050565b6000806000606084860312156126905761268f612539565b5b600061269e8682870161258c565b93505060206126af8682870161258c565b92505060406126c0868287016125c2565b9150509250925092565b600060ff82169050919050565b6126e0816126ca565b82525050565b60006020820190506126fb60008301846126d7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61273e826124c3565b810181811067ffffffffffffffff8211171561275d5761275c612706565b5b80604052505050565b600061277061252f565b905061277c8282612735565b919050565b600067ffffffffffffffff82111561279c5761279b612706565b5b602082029050602081019050919050565b600080fd5b60006127c56127c084612781565b612766565b905080838252602082019050602084028301858111156127e8576127e76127ad565b5b835b8181101561281157806127fd888261258c565b8452602084019350506020810190506127ea565b5050509392505050565b600082601f8301126128305761282f612701565b5b81356128408482602086016127b2565b91505092915050565b60006020828403121561285f5761285e612539565b5b600082013567ffffffffffffffff81111561287d5761287c61253e565b5b6128898482850161281b565b91505092915050565b6000602082840312156128a8576128a7612539565b5b60006128b68482850161258c565b91505092915050565b6128c881612563565b82525050565b60006020820190506128e360008301846128bf565b92915050565b60008060408385031215612900576128ff612539565b5b600061290e8582860161258c565b925050602061291f8582860161258c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156129af5780860481111561298b5761298a612929565b5b600185161561299a5780820291505b80810290506129a885612958565b945061296f565b94509492505050565b6000826129c85760019050612a84565b816129d65760009050612a84565b81600181146129ec57600281146129f657612a25565b6001915050612a84565b60ff841115612a0857612a07612929565b5b8360020a915084821115612a1f57612a1e612929565b5b50612a84565b5060208310610133831016604e8410600b8410161715612a5a5782820a905083811115612a5557612a54612929565b5b612a84565b612a678484846001612965565b92509050818404811115612a7e57612a7d612929565b5b81810290505b9392505050565b6000612a96826125a1565b9150612aa1836126ca565b9250612ace7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b8565b905092915050565b6000612ae1826125a1565b9150612aec836125a1565b9250828202612afa816125a1565b91508282048414831517612b1157612b10612929565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612b4e602083612488565b9150612b5982612b18565b602082019050919050565b60006020820190508181036000830152612b7d81612b41565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612bbe826125a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612bf057612bef612929565b5b600182019050919050565b7f756e617574686f72697a65640000000000000000000000000000000000000000600082015250565b6000612c31600c83612488565b9150612c3c82612bfb565b602082019050919050565b60006020820190508181036000830152612c6081612c24565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c9d601783612488565b9150612ca882612c67565b602082019050919050565b60006020820190508181036000830152612ccc81612c90565b9050919050565b600081519050612ce281612575565b92915050565b600060208284031215612cfe57612cfd612539565b5b6000612d0c84828501612cd3565b91505092915050565b6000604082019050612d2a60008301856128bf565b612d3760208301846128bf565b9392505050565b6000819050919050565b6000819050919050565b6000612d6d612d68612d6384612d3e565b612d48565b6125a1565b9050919050565b612d7d81612d52565b82525050565b600060c082019050612d9860008301896128bf565b612da5602083018861264d565b612db26040830187612d74565b612dbf6060830186612d74565b612dcc60808301856128bf565b612dd960a083018461264d565b979650505050505050565b600081519050612df3816125ab565b92915050565b600080600060608486031215612e1257612e11612539565b5b6000612e2086828701612de4565b9350506020612e3186828701612de4565b9250506040612e4286828701612de4565b9150509250925092565b6000604082019050612e6160008301856128bf565b612e6e602083018461264d565b9392505050565b612e7e81612617565b8114612e8957600080fd5b50565b600081519050612e9b81612e75565b92915050565b600060208284031215612eb757612eb6612539565b5b6000612ec584828501612e8c565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f2a602483612488565b9150612f3582612ece565b604082019050919050565b60006020820190508181036000830152612f5981612f1d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fbc602283612488565b9150612fc782612f60565b604082019050919050565b60006020820190508181036000830152612feb81612faf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061304e602583612488565b915061305982612ff2565b604082019050919050565b6000602082019050818103600083015261307d81613041565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130e0602383612488565b91506130eb82613084565b604082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613172602983612488565b915061317d82613116565b604082019050919050565b600060208201905081810360008301526131a181613165565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061322a604983612488565b9150613235826131a8565b606082019050919050565b600060208201905081810360008301526132598161321d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613296601983612488565b91506132a182613260565b602082019050919050565b600060208201905081810360008301526132c581613289565b9050919050565b60006132d7826125a1565b91506132e2836125a1565b92508282019050808211156132fa576132f9612929565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613336601a83612488565b915061334182613300565b602082019050919050565b6000602082019050818103600083015261336581613329565b9050919050565b6000613377826125a1565b9150613382836125a1565b925082820390508181111561339a57613399612929565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133d581612563565b82525050565b60006133e783836133cc565b60208301905092915050565b6000602082019050919050565b600061340b826133a0565b61341581856133ab565b9350613420836133bc565b8060005b8381101561345157815161343888826133db565b9750613443836133f3565b925050600181019050613424565b5085935050505092915050565b600060a082019050613473600083018861264d565b6134806020830187612d74565b81810360408301526134928186613400565b90506134a160608301856128bf565b6134ae608083018461264d565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134f2826125a1565b91506134fd836125a1565b92508261350d5761350c6134b8565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613574602183612488565b915061357f82613518565b604082019050919050565b600060208201905081810360008301526135a381613567565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006135e0601b83612488565b91506135eb826135aa565b602082019050919050565b6000602082019050818103600083015261360f816135d3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ee24c15339c0444d2ebea240dcdc085d785b92c45ee4b61dcf71d365f6a008f64736f6c63430008110033

Deployed Bytecode Sourcemap

3834:8422:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5718:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4998:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5904:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10906:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11076:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11891:362;;;;;;;;;;;;;:::i;:::-;;6098:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2915:148;;;;;;;;;;;;;:::i;:::-;;10430:196;;;;;;;;;;;;;:::i;:::-;;4818:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2701:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4878:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5809:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6225:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4938:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4229:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11167:671;;;;;;;;;;;;;:::i;:::-;;10734:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6400:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5718:83;5755:13;5788:5;;;;;;;;;;;;;;;;;5781:12;;5718:83;:::o;6551:161::-;6626:4;6643:39;6652:12;:10;:12::i;:::-;6666:7;6675:6;6643:8;:39::i;:::-;6700:4;6693:11;;6551:161;;;;:::o;4998:47::-;;;;:::o;5995:95::-;6048:7;4632:1;4685:2;:13;;;;:::i;:::-;4675:7;:23;;;;:::i;:::-;6068:14;;5995:95;:::o;6720:313::-;6818:4;6835:36;6845:6;6853:9;6864:6;6835:9;:36::i;:::-;6882:121;6891:6;6899:12;:10;:12::i;:::-;6913:89;6951:6;6913:89;;;;;;;;;;;;;;;;;:11;:19;6925:6;6913:19;;;;;;;;;;;;;;;:33;6933:12;:10;:12::i;:::-;6913:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6882:8;:121::i;:::-;7021:4;7014:11;;6720:313;;;;;:::o;5904:83::-;5945:5;4632:1;5963:16;;5904:83;:::o;10906:162::-;2838:12;:10;:12::i;:::-;2828:22;;:6;;;;;;;;;;:22;;;2820:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10979:6:::1;10974:87;10995:6;:13;10991:1;:17;10974:87;;;11046:5;11028:4;:15;11033:6;11040:1;11033:9;;;;;;;;:::i;:::-;;;;;;;;11028:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11010:3;;;;;:::i;:::-;;;;10974:87;;;;10906:162:::0;:::o;11076:83::-;11123:4;11144;:7;11149:1;11144:7;;;;;;;;;;;;;;;;;;;;;;;;;11137:14;;11076:83;;;:::o;11891:362::-;11954:10;;;;;;;;;;;11941:23;;:10;:23;;;11933:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11991:20;12012:24;12030:4;12012:9;:24::i;:::-;11991:45;;12063:1;12050:12;:14;12047:73;;;12078:30;12095:12;12078:16;:30::i;:::-;12047:73;12130:18;12149:21;12130:40;;12195:1;12184:10;:12;12181:65;;;12210:24;12223:10;12210:12;:24::i;:::-;12181:65;11922:331;;11891:362::o;6098:119::-;6164:7;6191:9;:18;6201:7;6191:18;;;;;;;;;;;;;;;;6184:25;;6098:119;;;:::o;2915:148::-;2838:12;:10;:12::i;:::-;2828:22;;:6;;;;;;;;;;:22;;;2820:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3022:1:::1;2985:40;;3006:6;::::0;::::1;;;;;;;;2985:40;;;;;;;;;;;;3053:1;3036:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2915:148::o:0;10430:196::-;2838:12;:10;:12::i;:::-;2828:22;;:6;;;;;;;;;;:22;;;2820:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4632:1:::1;4685:2;:13;;;;:::i;:::-;4675:7;:23;;;;:::i;:::-;10483:12;:22;;;;4632:1;4685:2;:13;;;;:::i;:::-;4675:7;:23;;;;:::i;:::-;10516:14;:22;;;;10570:5;10549:20;;:26;;;;;;;;;;;;;;;;;;10591:27;4632:1;4685:2;:13;;;;:::i;:::-;4675:7;:23;;;;:::i;:::-;10591:27;;;;;;:::i;:::-;;;;;;;;10430:196::o:0;4818:53::-;;;;:::o;2701:79::-;2739:7;2766:6;;;;;;;;;;;2759:13;;2701:79;:::o;4878:53::-;;;;:::o;5809:87::-;5848:13;5881:7;;;;;;;;;;;;;;;;;5874:14;;5809:87;:::o;6225:167::-;6303:4;6320:42;6330:12;:10;:12::i;:::-;6344:9;6355:6;6320:9;:42::i;:::-;6380:4;6373:11;;6225:167;;;;:::o;4938:53::-;;;;:::o;4229:40::-;;;;;;;;;;;;;:::o;11167:671::-;2838:12;:10;:12::i;:::-;2828:22;;:6;;;;;;;;;;:22;;;2820:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11231:11:::1;;;;;;;;;;;11230:12;11222:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11317:42;11280:15;;:80;;;;;;;;;;;;;;;;;;11371:58;11388:4;11403:15;;;;;;;;;;;4632:1;4685:2;:13;;;;:::i;:::-;4675:7;:23;;;;:::i;:::-;11371:8;:58::i;:::-;11474:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11456:55;;;11520:4;11527:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11456:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11440:13;;:110;;;;;;;;;;;;;;;;;;11561:15;;;;;;;;;;;:31;;;11600:21;11631:4;11637:24;11655:4;11637:9;:24::i;:::-;11662:1;11664::::0;11666:7:::1;:5;:7::i;:::-;11674:15;11561:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11715:4;11701:11;;:18;;;;;;;;;;;;;;;;;;11744:4;11730:11;;:18;;;;;;;;;;;;;;;;;;11766:13;;;;;;;;;;;11759:29;;;11797:15;;;;;;;;;;;11815:14;11759:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11167:671::o:0;10734:164::-;2838:12;:10;:12::i;:::-;2828:22;;:6;;;;;;;;;;:22;;;2820:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10808:6:::1;10803:88;10824:5;:12;10820:1;:16;10803:88;;;10875:4;10858;:14;10863:5;10869:1;10863:8;;;;;;;;:::i;:::-;;;;;;;;10858:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10838:3;;;;;:::i;:::-;;;;10803:88;;;;10734:164:::0;:::o;6400:143::-;6481:7;6508:11;:18;6520:5;6508:18;;;;;;;;;;;;;;;:27;6527:7;6508:27;;;;;;;;;;;;;;;;6501:34;;6400:143;;;;:::o;456:98::-;509:7;536:10;529:17;;456:98;:::o;7041:335::-;7151:1;7134:19;;:5;:19;;;7126:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7232:1;7213:21;;:7;:21;;;7205:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:6;7284:11;:18;7296:5;7284:18;;;;;;;;;;;;;;;:27;7303:7;7284:27;;;;;;;;;;;;;;;:36;;;;7352:7;7336:32;;7345:5;7336:32;;;7361:6;7336:32;;;;;;:::i;:::-;;;;;;;;7041:335;;;:::o;7384:2439::-;7488:1;7472:18;;:4;:18;;;7464:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7565:1;7551:16;;:2;:16;;;7543:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7635:1;7626:6;:10;7618:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7693:17;7735:7;:5;:7::i;:::-;7727:15;;:4;:15;;;;:32;;;;;7752:7;:5;:7::i;:::-;7746:13;;:2;:13;;;;7727:32;7723:1744;;;7785:4;:10;7790:4;7785:10;;;;;;;;;;;;;;;;;;;;;;;;;7784:11;:24;;;;;7800:4;:8;7805:2;7800:8;;;;;;;;;;;;;;;;;;;;;;;;;7799:9;7784:24;7776:33;;;;;;7836:73;7905:3;7836:64;7858:15;;7848:9;;:25;7847:52;;7885:14;;7847:52;;;7875:9;;7847:52;7836:6;:10;;:64;;;;:::i;:::-;:68;;:73;;;;:::i;:::-;7824:85;;7930:20;;;;;;;;;;;7926:508;;;7991:15;;;;;;;;;;;7977:30;;:2;:30;;;;:62;;;;;8025:13;;;;;;;;;;;8011:28;;:2;:28;;;;7977:62;7973:444;;;8175:12;8102:28;:39;8131:9;8102:39;;;;;;;;;;;;;;;;:85;8066:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8383:12;8341:28;:39;8370:9;8341:39;;;;;;;;;;;;;;;:54;;;;7973:444;7926:508;8462:13;;;;;;;;;;;8454:21;;:4;:21;;;:55;;;;;8493:15;;;;;;;;;;;8479:30;;:2;:30;;;;8454:55;:83;;;;;8515:18;:22;8534:2;8515:22;;;;;;;;;;;;;;;;;;;;;;;;;8513:24;8454:83;8450:313;;;8577:12;;8567:6;:22;;8559:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8672:14;;8662:6;8646:13;8656:2;8646:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8638:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8736:9;;:11;;;;;;;;;:::i;:::-;;;;;;8450:313;8788:13;;;;;;;;;;;8782:19;;:2;:19;;;:43;;;;;8820:4;8805:20;;:4;:20;;;;8782:43;8779:170;;;8858:75;8929:3;8858:66;8880:16;;8870:9;;:26;8869:54;;8908:15;;8869:54;;;8898:9;;8869:54;8858:6;:10;;:66;;;;:::i;:::-;:70;;:75;;;;:::i;:::-;8846:87;;8779:170;8965:28;8996:24;9014:4;8996:9;:24::i;:::-;8965:55;;9040:6;;;;;;;;;;;9039:7;:32;;;;;9058:13;;;;;;;;;;;9050:21;;:2;:21;;;9039:32;:47;;;;;9075:11;;;;;;;;;;;9039:47;:89;;;;;9111:17;;9090:20;:38;9039:89;:121;;;;;9142:18;;9132:9;;:28;9039:121;9035:421;;;9181:67;9198:49;9202:6;9209:37;9213:20;9234:11;;9209:3;:37::i;:::-;9198:3;:49::i;:::-;9181:16;:67::i;:::-;9267:26;9296:21;9267:50;;9360:1;9339:18;:22;9336:105;;;9386:35;9399:21;9386:12;:35::i;:::-;9336:105;9162:294;9035:421;7761:1706;7723:1744;9495:27;9515:6;9495:9;:15;9505:4;9495:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9479:9;:15;9489:4;9479:15;;;;;;;;;;;;;;;:43;;;;9547:40;9565:21;9576:9;9565:6;:10;;:21;;;;:::i;:::-;9547:9;:13;9557:2;9547:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9533:9;:13;9543:2;9533:13;;;;;;;;;;;;;;;:54;;;;9618:2;9603:41;;9612:4;9603:41;;;9622:21;9633:9;9622:6;:10;;:21;;;;:::i;:::-;9603:41;;;;;;:::i;:::-;;;;;;;;9668:1;9658:9;:11;9655:161;;;9708:39;9737:9;9708;:24;9726:4;9708:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9683:9;:24;9701:4;9683:24;;;;;;;;;;;;;;;:64;;;;9788:4;9765:39;;9774:4;9765:39;;;9794:9;9765:39;;;;;;:::i;:::-;;;;;;;;9655:161;7453:2370;7384:2439;;;:::o;1593:190::-;1679:7;1712:1;1707;:6;;1715:12;1699:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1739:9;1755:1;1751;:5;;;;:::i;:::-;1739:17;;1774:1;1767:8;;;1593:190;;;;;:::o;9939:483::-;5336:4;5327:6;;:13;;;;;;;;;;;;;;;;;;10017:21:::1;10055:1;10041:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10017:40;;10086:4;10068;10073:1;10068:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10112:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10102:4;10107:1;10102:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10145:62;10162:4;10177:15;;;;;;;;;;;10195:11;10145:8;:62::i;:::-;10218:15;;;;;;;;;;;:66;;;10299:11;10325:1;10341:4;10368;10388:15;10218:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10006:416;5372:5:::0;5363:6;;:14;;;;;;;;;;;;;;;;;;9939:483;:::o;10634:92::-;10691:10;;;;;;;;;;;:19;;:27;10711:6;10691:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10634:92;:::o;1791:246::-;1849:7;1878:1;1873;:6;1869:47;;1903:1;1896:8;;;;1869:47;1926:9;1942:1;1938;:5;;;;:::i;:::-;1926:17;;1971:1;1966;1962;:5;;;;:::i;:::-;:10;1954:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2028:1;2021:8;;;1791:246;;;;;:::o;2045:132::-;2103:7;2130:39;2134:1;2137;2130:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2123:46;;2045:132;;;;:::o;9833:98::-;9890:7;9917:1;9915;:3;9914:9;;9922:1;9914:9;;;9920:1;9914:9;9907:16;;9833:98;;;;:::o;1449:136::-;1507:7;1534:43;1538:1;1541;1534:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1527:50;;1449:136;;;;:::o;1262:179::-;1320:7;1340:9;1356:1;1352;:5;;;;:::i;:::-;1340:17;;1381:1;1376;:6;;1368:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1432:1;1425:8;;;1262:179;;;;:::o;2185:189::-;2271:7;2303:1;2299;:5;2306:12;2291:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2330:9;2346:1;2342;:5;;;;:::i;:::-;2330:17;;2365:1;2358:8;;;2185: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:180::-;8910:77;8907:1;8900:88;9007:4;9004:1;8997:15;9031:4;9028:1;9021:15;9048:102;9090:8;9137:5;9134:1;9130:13;9109:34;;9048:102;;;:::o;9156:848::-;9217:5;9224:4;9248:6;9239:15;;9272:5;9263:14;;9286:712;9307:1;9297:8;9294:15;9286:712;;;9402:4;9397:3;9393:14;9387:4;9384:24;9381:50;;;9411:18;;:::i;:::-;9381:50;9461:1;9451:8;9447:16;9444:451;;;9876:4;9869:5;9865:16;9856:25;;9444:451;9926:4;9920;9916:15;9908:23;;9956:32;9979:8;9956:32;:::i;:::-;9944:44;;9286:712;;;9156:848;;;;;;;:::o;10010:1073::-;10064:5;10255:8;10245:40;;10276:1;10267:10;;10278:5;;10245:40;10304:4;10294:36;;10321:1;10312:10;;10323:5;;10294:36;10390:4;10438:1;10433:27;;;;10474:1;10469:191;;;;10383:277;;10433:27;10451:1;10442:10;;10453:5;;;10469:191;10514:3;10504:8;10501:17;10498:43;;;10521:18;;:::i;:::-;10498:43;10570:8;10567:1;10563:16;10554:25;;10605:3;10598:5;10595:14;10592:40;;;10612:18;;:::i;:::-;10592:40;10645:5;;;10383:277;;10769:2;10759:8;10756:16;10750:3;10744:4;10741:13;10737:36;10719:2;10709:8;10706:16;10701:2;10695:4;10692:12;10688:35;10672:111;10669:246;;;10825:8;10819:4;10815:19;10806:28;;10860:3;10853:5;10850:14;10847:40;;;10867:18;;:::i;:::-;10847:40;10900:5;;10669:246;10940:42;10978:3;10968:8;10962:4;10959:1;10940:42;:::i;:::-;10925:57;;;;11014:4;11009:3;11005:14;10998:5;10995:25;10992:51;;;11023:18;;:::i;:::-;10992:51;11072:4;11065:5;11061:16;11052:25;;10010:1073;;;;;;:::o;11089:281::-;11147:5;11171:23;11189:4;11171:23;:::i;:::-;11163:31;;11215:25;11231:8;11215:25;:::i;:::-;11203:37;;11259:104;11296:66;11286:8;11280:4;11259:104;:::i;:::-;11250:113;;11089:281;;;;:::o;11376:410::-;11416:7;11439:20;11457:1;11439:20;:::i;:::-;11434:25;;11473:20;11491:1;11473:20;:::i;:::-;11468:25;;11528:1;11525;11521:9;11550:30;11568:11;11550:30;:::i;:::-;11539:41;;11729:1;11720:7;11716:15;11713:1;11710:22;11690:1;11683:9;11663:83;11640:139;;11759:18;;:::i;:::-;11640:139;11424:362;11376:410;;;;:::o;11792:182::-;11932:34;11928:1;11920:6;11916:14;11909:58;11792:182;:::o;11980:366::-;12122:3;12143:67;12207:2;12202:3;12143:67;:::i;:::-;12136:74;;12219:93;12308:3;12219:93;:::i;:::-;12337:2;12332:3;12328:12;12321:19;;11980:366;;;:::o;12352:419::-;12518:4;12556:2;12545:9;12541:18;12533:26;;12605:9;12599:4;12595:20;12591:1;12580:9;12576:17;12569:47;12633:131;12759:4;12633:131;:::i;:::-;12625:139;;12352:419;;;:::o;12777:180::-;12825:77;12822:1;12815:88;12922:4;12919:1;12912:15;12946:4;12943:1;12936:15;12963:233;13002:3;13025:24;13043:5;13025:24;:::i;:::-;13016:33;;13071:66;13064:5;13061:77;13058:103;;13141:18;;:::i;:::-;13058:103;13188:1;13181:5;13177:13;13170:20;;12963:233;;;:::o;13202:162::-;13342:14;13338:1;13330:6;13326:14;13319:38;13202:162;:::o;13370:366::-;13512:3;13533:67;13597:2;13592:3;13533:67;:::i;:::-;13526:74;;13609:93;13698:3;13609:93;:::i;:::-;13727:2;13722:3;13718:12;13711:19;;13370:366;;;:::o;13742:419::-;13908:4;13946:2;13935:9;13931:18;13923:26;;13995:9;13989:4;13985:20;13981:1;13970:9;13966:17;13959:47;14023:131;14149:4;14023:131;:::i;:::-;14015:139;;13742:419;;;:::o;14167:173::-;14307:25;14303:1;14295:6;14291:14;14284:49;14167:173;:::o;14346:366::-;14488:3;14509:67;14573:2;14568:3;14509:67;:::i;:::-;14502:74;;14585:93;14674:3;14585:93;:::i;:::-;14703:2;14698:3;14694:12;14687:19;;14346:366;;;:::o;14718:419::-;14884:4;14922:2;14911:9;14907:18;14899:26;;14971:9;14965:4;14961:20;14957:1;14946:9;14942:17;14935:47;14999:131;15125:4;14999:131;:::i;:::-;14991:139;;14718:419;;;:::o;15143:143::-;15200:5;15231:6;15225:13;15216:22;;15247:33;15274:5;15247:33;:::i;:::-;15143:143;;;;:::o;15292:351::-;15362:6;15411:2;15399:9;15390:7;15386:23;15382:32;15379:119;;;15417:79;;:::i;:::-;15379:119;15537:1;15562:64;15618:7;15609:6;15598:9;15594:22;15562:64;:::i;:::-;15552:74;;15508:128;15292:351;;;;:::o;15649:332::-;15770:4;15808:2;15797:9;15793:18;15785:26;;15821:71;15889:1;15878:9;15874:17;15865:6;15821:71;:::i;:::-;15902:72;15970:2;15959:9;15955:18;15946:6;15902:72;:::i;:::-;15649:332;;;;;:::o;15987:85::-;16032:7;16061:5;16050:16;;15987:85;;;:::o;16078:60::-;16106:3;16127:5;16120:12;;16078:60;;;:::o;16144:158::-;16202:9;16235:61;16253:42;16262:32;16288:5;16262:32;:::i;:::-;16253:42;:::i;:::-;16235:61;:::i;:::-;16222:74;;16144:158;;;:::o;16308:147::-;16403:45;16442:5;16403:45;:::i;:::-;16398:3;16391:58;16308:147;;:::o;16461:807::-;16710:4;16748:3;16737:9;16733:19;16725:27;;16762:71;16830:1;16819:9;16815:17;16806:6;16762:71;:::i;:::-;16843:72;16911:2;16900:9;16896:18;16887:6;16843:72;:::i;:::-;16925:80;17001:2;16990:9;16986:18;16977:6;16925:80;:::i;:::-;17015;17091:2;17080:9;17076:18;17067:6;17015:80;:::i;:::-;17105:73;17173:3;17162:9;17158:19;17149:6;17105:73;:::i;:::-;17188;17256:3;17245:9;17241:19;17232:6;17188:73;:::i;:::-;16461:807;;;;;;;;;:::o;17274:143::-;17331:5;17362:6;17356:13;17347:22;;17378:33;17405:5;17378:33;:::i;:::-;17274:143;;;;:::o;17423:663::-;17511:6;17519;17527;17576:2;17564:9;17555:7;17551:23;17547:32;17544:119;;;17582:79;;:::i;:::-;17544:119;17702:1;17727:64;17783:7;17774:6;17763:9;17759:22;17727:64;:::i;:::-;17717:74;;17673:128;17840:2;17866:64;17922:7;17913:6;17902:9;17898:22;17866:64;:::i;:::-;17856:74;;17811:129;17979:2;18005:64;18061:7;18052:6;18041:9;18037:22;18005:64;:::i;:::-;17995:74;;17950:129;17423:663;;;;;:::o;18092:332::-;18213:4;18251:2;18240:9;18236:18;18228:26;;18264:71;18332:1;18321:9;18317:17;18308:6;18264:71;:::i;:::-;18345:72;18413:2;18402:9;18398:18;18389:6;18345:72;:::i;:::-;18092:332;;;;;:::o;18430:116::-;18500:21;18515:5;18500:21;:::i;:::-;18493:5;18490:32;18480:60;;18536:1;18533;18526:12;18480:60;18430:116;:::o;18552:137::-;18606:5;18637:6;18631:13;18622:22;;18653:30;18677:5;18653:30;:::i;:::-;18552:137;;;;:::o;18695:345::-;18762:6;18811:2;18799:9;18790:7;18786:23;18782:32;18779:119;;;18817:79;;:::i;:::-;18779:119;18937:1;18962:61;19015:7;19006:6;18995:9;18991:22;18962:61;:::i;:::-;18952:71;;18908:125;18695:345;;;;:::o;19046:223::-;19186:34;19182:1;19174:6;19170:14;19163:58;19255:6;19250:2;19242:6;19238:15;19231:31;19046:223;:::o;19275:366::-;19417:3;19438:67;19502:2;19497:3;19438:67;:::i;:::-;19431:74;;19514:93;19603:3;19514:93;:::i;:::-;19632:2;19627:3;19623:12;19616:19;;19275:366;;;:::o;19647:419::-;19813:4;19851:2;19840:9;19836:18;19828:26;;19900:9;19894:4;19890:20;19886:1;19875:9;19871:17;19864:47;19928:131;20054:4;19928:131;:::i;:::-;19920:139;;19647:419;;;:::o;20072:221::-;20212:34;20208:1;20200:6;20196:14;20189:58;20281:4;20276:2;20268:6;20264:15;20257:29;20072:221;:::o;20299:366::-;20441:3;20462:67;20526:2;20521:3;20462:67;:::i;:::-;20455:74;;20538:93;20627:3;20538:93;:::i;:::-;20656:2;20651:3;20647:12;20640:19;;20299:366;;;:::o;20671:419::-;20837:4;20875:2;20864:9;20860:18;20852:26;;20924:9;20918:4;20914:20;20910:1;20899:9;20895:17;20888:47;20952:131;21078:4;20952:131;:::i;:::-;20944:139;;20671:419;;;:::o;21096:224::-;21236:34;21232:1;21224:6;21220:14;21213:58;21305:7;21300:2;21292:6;21288:15;21281:32;21096:224;:::o;21326:366::-;21468:3;21489:67;21553:2;21548:3;21489:67;:::i;:::-;21482:74;;21565:93;21654:3;21565:93;:::i;:::-;21683:2;21678:3;21674:12;21667:19;;21326:366;;;:::o;21698:419::-;21864:4;21902:2;21891:9;21887:18;21879:26;;21951:9;21945:4;21941:20;21937:1;21926:9;21922:17;21915:47;21979:131;22105:4;21979:131;:::i;:::-;21971:139;;21698:419;;;:::o;22123:222::-;22263:34;22259:1;22251:6;22247:14;22240:58;22332:5;22327:2;22319:6;22315:15;22308:30;22123:222;:::o;22351:366::-;22493:3;22514:67;22578:2;22573:3;22514:67;:::i;:::-;22507:74;;22590:93;22679:3;22590:93;:::i;:::-;22708:2;22703:3;22699:12;22692:19;;22351:366;;;:::o;22723:419::-;22889:4;22927:2;22916:9;22912:18;22904:26;;22976:9;22970:4;22966:20;22962:1;22951:9;22947:17;22940:47;23004:131;23130:4;23004:131;:::i;:::-;22996:139;;22723:419;;;:::o;23148:228::-;23288:34;23284:1;23276:6;23272:14;23265:58;23357:11;23352:2;23344:6;23340:15;23333:36;23148:228;:::o;23382:366::-;23524:3;23545:67;23609:2;23604:3;23545:67;:::i;:::-;23538:74;;23621:93;23710:3;23621:93;:::i;:::-;23739:2;23734:3;23730:12;23723:19;;23382:366;;;:::o;23754:419::-;23920:4;23958:2;23947:9;23943:18;23935:26;;24007:9;24001:4;23997:20;23993:1;23982:9;23978:17;23971:47;24035:131;24161:4;24035:131;:::i;:::-;24027:139;;23754:419;;;:::o;24179:297::-;24319:34;24315:1;24307:6;24303:14;24296:58;24388:34;24383:2;24375:6;24371:15;24364:59;24457:11;24452:2;24444:6;24440:15;24433:36;24179:297;:::o;24482:366::-;24624:3;24645:67;24709:2;24704:3;24645:67;:::i;:::-;24638:74;;24721:93;24810:3;24721:93;:::i;:::-;24839:2;24834:3;24830:12;24823:19;;24482:366;;;:::o;24854:419::-;25020:4;25058:2;25047:9;25043:18;25035:26;;25107:9;25101:4;25097:20;25093:1;25082:9;25078:17;25071:47;25135:131;25261:4;25135:131;:::i;:::-;25127:139;;24854:419;;;:::o;25279:175::-;25419:27;25415:1;25407:6;25403:14;25396:51;25279:175;:::o;25460:366::-;25602:3;25623:67;25687:2;25682:3;25623:67;:::i;:::-;25616:74;;25699:93;25788:3;25699:93;:::i;:::-;25817:2;25812:3;25808:12;25801:19;;25460:366;;;:::o;25832:419::-;25998:4;26036:2;26025:9;26021:18;26013:26;;26085:9;26079:4;26075:20;26071:1;26060:9;26056:17;26049:47;26113:131;26239:4;26113:131;:::i;:::-;26105:139;;25832:419;;;:::o;26257:191::-;26297:3;26316:20;26334:1;26316:20;:::i;:::-;26311:25;;26350:20;26368:1;26350:20;:::i;:::-;26345:25;;26393:1;26390;26386:9;26379:16;;26414:3;26411:1;26408:10;26405:36;;;26421:18;;:::i;:::-;26405:36;26257:191;;;;:::o;26454:176::-;26594:28;26590:1;26582:6;26578:14;26571:52;26454:176;:::o;26636:366::-;26778:3;26799:67;26863:2;26858:3;26799:67;:::i;:::-;26792:74;;26875:93;26964:3;26875:93;:::i;:::-;26993:2;26988:3;26984:12;26977:19;;26636:366;;;:::o;27008:419::-;27174:4;27212:2;27201:9;27197:18;27189:26;;27261:9;27255:4;27251:20;27247:1;27236:9;27232:17;27225:47;27289:131;27415:4;27289:131;:::i;:::-;27281:139;;27008:419;;;:::o;27433:194::-;27473:4;27493:20;27511:1;27493:20;:::i;:::-;27488:25;;27527:20;27545:1;27527:20;:::i;:::-;27522:25;;27571:1;27568;27564:9;27556:17;;27595:1;27589:4;27586:11;27583:37;;;27600:18;;:::i;:::-;27583:37;27433:194;;;;:::o;27633:114::-;27700:6;27734:5;27728:12;27718:22;;27633:114;;;:::o;27753:184::-;27852:11;27886:6;27881:3;27874:19;27926:4;27921:3;27917:14;27902:29;;27753:184;;;;:::o;27943:132::-;28010:4;28033:3;28025:11;;28063:4;28058:3;28054:14;28046:22;;27943:132;;;:::o;28081:108::-;28158:24;28176:5;28158:24;:::i;:::-;28153:3;28146:37;28081:108;;:::o;28195:179::-;28264:10;28285:46;28327:3;28319:6;28285:46;:::i;:::-;28363:4;28358:3;28354:14;28340:28;;28195:179;;;;:::o;28380:113::-;28450:4;28482;28477:3;28473:14;28465:22;;28380:113;;;:::o;28529:732::-;28648:3;28677:54;28725:5;28677:54;:::i;:::-;28747:86;28826:6;28821:3;28747:86;:::i;:::-;28740:93;;28857:56;28907:5;28857:56;:::i;:::-;28936:7;28967:1;28952:284;28977:6;28974:1;28971:13;28952:284;;;29053:6;29047:13;29080:63;29139:3;29124:13;29080:63;:::i;:::-;29073:70;;29166:60;29219:6;29166:60;:::i;:::-;29156:70;;29012:224;28999:1;28996;28992:9;28987:14;;28952:284;;;28956:14;29252:3;29245:10;;28653:608;;;28529:732;;;;:::o;29267:831::-;29530:4;29568:3;29557:9;29553:19;29545:27;;29582:71;29650:1;29639:9;29635:17;29626:6;29582:71;:::i;:::-;29663:80;29739:2;29728:9;29724:18;29715:6;29663:80;:::i;:::-;29790:9;29784:4;29780:20;29775:2;29764:9;29760:18;29753:48;29818:108;29921:4;29912:6;29818:108;:::i;:::-;29810:116;;29936:72;30004:2;29993:9;29989:18;29980:6;29936:72;:::i;:::-;30018:73;30086:3;30075:9;30071:19;30062:6;30018:73;:::i;:::-;29267:831;;;;;;;;:::o;30104:180::-;30152:77;30149:1;30142:88;30249:4;30246:1;30239:15;30273:4;30270:1;30263:15;30290:185;30330:1;30347:20;30365:1;30347:20;:::i;:::-;30342:25;;30381:20;30399:1;30381:20;:::i;:::-;30376:25;;30420:1;30410:35;;30425:18;;:::i;:::-;30410:35;30467:1;30464;30460:9;30455:14;;30290:185;;;;:::o;30481:220::-;30621:34;30617:1;30609:6;30605:14;30598:58;30690:3;30685:2;30677:6;30673:15;30666:28;30481:220;:::o;30707:366::-;30849:3;30870:67;30934:2;30929:3;30870:67;:::i;:::-;30863:74;;30946:93;31035:3;30946:93;:::i;:::-;31064:2;31059:3;31055:12;31048:19;;30707:366;;;:::o;31079:419::-;31245:4;31283:2;31272:9;31268:18;31260:26;;31332:9;31326:4;31322:20;31318:1;31307:9;31303:17;31296:47;31360:131;31486:4;31360:131;:::i;:::-;31352:139;;31079:419;;;:::o;31504:177::-;31644:29;31640:1;31632:6;31628:14;31621:53;31504:177;:::o;31687:366::-;31829:3;31850:67;31914:2;31909:3;31850:67;:::i;:::-;31843:74;;31926:93;32015:3;31926:93;:::i;:::-;32044:2;32039:3;32035:12;32028:19;;31687:366;;;:::o;32059:419::-;32225:4;32263:2;32252:9;32248:18;32240:26;;32312:9;32306:4;32302:20;32298:1;32287:9;32283:17;32276:47;32340:131;32466:4;32340:131;:::i;:::-;32332:139;;32059:419;;;:::o

Swarm Source

ipfs://7ee24c15339c0444d2ebea240dcdc085d785b92c45ee4b61dcf71d365f6a008f

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.