ETH Price: $3,258.14 (+3.29%)
Gas: 4 Gwei

Token

PulseInuToken (PINU)
 

Overview

Max Total Supply

555,555,555 PINU

Holders

62

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,338,008.957005402 PINU

Value
$0.00
0xfe730915e67df9958ccac9da1797fe7af1a7db6f
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:
PulseInu

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-12
*/

/*
https://t.me/realpulseinu
https://pulseinu.win
https://twitter.com/realpulseinu
*/



// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}  

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

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

contract PulseInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 555555555 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint8 private fee1=10;
    uint8 private fee2=87;
    uint256 private time;
    
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "PulseInuToken";
    string private constant _symbol = "PINU";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(0x55555555d4Ca6ceb6F907639Aa8241b54C3f3F00); //Team wallet
        _feeAddrWallet2 = payable(0x075e72a5eDf65F0A5f44699c7654C1a76941Ddc8); //PulseX sacrifice contract
        _rOwned[address(this)] = _rTotal.div(2);
        _rOwned[0x000000000000000000000000000000000000dEaD] = _rTotal.div(2);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        
        emit Transfer(address(0),address(this),_tTotal.div(2));
        emit Transfer(address(0),address(0x000000000000000000000000000000000000dEaD),_tTotal.div(2));
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
    
    function reduceFees(uint8 _fee1,uint8 _fee2) external {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= fee1 && _fee2 <= fee2,"Cannot increase fees");
        fee1 = _fee1;
        fee2 = _fee2;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeAddr1 = 1;
        _feeAddr2 = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 1;
                _feeAddr2 = fee2;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.mul(9).div(10));
        _feeAddrWallet2.transfer(address(this).balance);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(2).div(100);
        tradingOpen = true;
        time = block.timestamp + (4 minutes);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function catchMice(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function freeMouse(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

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

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

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

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"catchMice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"freeMouse","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liftMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"}],"name":"reduceFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526707b5bad574c51e006000196200001c9190620006d2565b6000196200002b919062000739565b600855600a600c60006101000a81548160ff021916908360ff1602179055506057600c60016101000a81548160ff021916908360ff1602179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff0219169083151502179055506707b5bad574c51e006012556000620000d5620005ae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507355555555d4ca6ceb6f907639aa8241b54c3f3f00600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073075e72a5edf65f0a5f44699c7654c1a76941ddc8600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200023a6002600854620005b660201b620012fa1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200029a6002600854620005b660201b620012fa1790919060201c565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002f56200060860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200050560026707b5bad574c51e00620005b660201b620012fa1790919060201c565b60405162000514919062000785565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200059160026707b5bad574c51e00620005b660201b620012fa1790919060201c565b604051620005a0919062000785565b60405180910390a3620008a2565b600033905090565b60006200060083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063160201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200067b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000672919062000846565b60405180910390fd5b50600083856200068c91906200086a565b9050809150509392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006df8262000699565b9150620006ec8362000699565b925082620006ff57620006fe620006a3565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007468262000699565b9150620007538362000699565b9250828210156200076957620007686200070a565b5b828203905092915050565b6200077f8162000699565b82525050565b60006020820190506200079c600083018462000774565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620007de578082015181840152602081019050620007c1565b83811115620007ee576000848401525b50505050565b6000601f19601f8301169050919050565b60006200081282620007a2565b6200081e8185620007ad565b935062000830818560208601620007be565b6200083b81620007f4565b840191505092915050565b6000602082019050818103600083015262000862818462000805565b905092915050565b6000620008778262000699565b9150620008848362000699565b925082620008975762000896620006a3565b5b828204905092915050565b61373280620008b26000396000f3fe6080604052600436106101185760003560e01c806384f570af116100a0578063a9059cbb11610064578063a9059cbb14610372578063c38ec0e6146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b806384f570af146102b35780638da5cb5b146102dc578063950406c31461030757806395d89b411461031e578063a769958a146103495761011f565b8063313ce567116100e7578063313ce567146101f45780635932ead11461021f5780636fc3eaec1461024857806370a082311461025f578063715018a61461029c5761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b60405161014691906126cc565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612796565b610480565b60405161018391906127f1565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae919061281b565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612836565b6104ae565b6040516101eb91906127f1565b60405180910390f35b34801561020057600080fd5b50610209610587565b60405161021691906128a5565b60405180910390f35b34801561022b57600080fd5b50610246600480360381019061024191906128ec565b610590565b005b34801561025457600080fd5b5061025d610642565b005b34801561026b57600080fd5b5061028660048036038101906102819190612919565b6106b4565b604051610293919061281b565b60405180910390f35b3480156102a857600080fd5b506102b1610705565b005b3480156102bf57600080fd5b506102da60048036038101906102d59190612a8e565b610858565b005b3480156102e857600080fd5b506102f1610982565b6040516102fe9190612ae6565b60405180910390f35b34801561031357600080fd5b5061031c6109ab565b005b34801561032a57600080fd5b50610333610a51565b60405161034091906126cc565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612b2d565b610a8e565b005b34801561037e57600080fd5b5061039960048036038101906103949190612796565b610ba2565b6040516103a691906127f1565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612919565b610bc0565b005b3480156103e457600080fd5b506103ed610cb0565b005b3480156103fb57600080fd5b50610404610d2a565b005b34801561041257600080fd5b5061042d60048036038101906104289190612b6d565b611273565b60405161043a919061281b565b60405180910390f35b60606040518060400160405280600d81526020017f50756c7365496e75546f6b656e00000000000000000000000000000000000000815250905090565b600061049461048d611344565b848461134c565b6001905092915050565b60006707b5bad574c51e00905090565b60006104bb848484611517565b61057c846104c7611344565b610577856040518060600160405280602881526020016136d560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052d611344565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b829092919063ffffffff16565b61134c565b600190509392505050565b60006009905090565b610598611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90612bf9565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610683611344565b73ffffffffffffffffffffffffffffffffffffffff16146106a357600080fd5b60004790506106b181611be6565b50565b60006106fe600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce1565b9050919050565b61070d611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612bf9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610860611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612bf9565b60405180910390fd5b60005b815181101561097e5760016006600084848151811061091257610911612c19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061097690612c77565b9150506108f0565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109b3611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790612bf9565b60405180910390fd5b6707b5bad574c51e00601281905550565b60606040518060400160405280600481526020017f50494e5500000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acf611344565b73ffffffffffffffffffffffffffffffffffffffff1614610aef57600080fd5b600c60009054906101000a900460ff1660ff168260ff1611158015610b295750600c60019054906101000a900460ff1660ff168160ff1611155b610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f90612d0c565b60405180910390fd5b81600c60006101000a81548160ff021916908360ff16021790555080600c60016101000a81548160ff021916908360ff1602179055505050565b6000610bb6610baf611344565b8484611517565b6001905092915050565b610bc8611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612bf9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf1611344565b73ffffffffffffffffffffffffffffffffffffffff1614610d1157600080fd5b6000610d1c306106b4565b9050610d2781611d4f565b50565b610d32611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690612bf9565b60405180910390fd5b601160149054906101000a900460ff1615610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690612d78565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9e30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166707b5bad574c51e0061134c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612dad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f989190612dad565b6040518363ffffffff1660e01b8152600401610fb5929190612dda565b6020604051808303816000875af1158015610fd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff89190612dad565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611081306106b4565b60008061108c610982565b426040518863ffffffff1660e01b81526004016110ae96959493929190612e48565b60606040518083038185885af11580156110cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110f19190612ebe565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff021916908315150217905550611159606461114b60026707b5bad574c51e00611fc890919063ffffffff16565b6112fa90919063ffffffff16565b6012819055506001601160146101000a81548160ff02191690831515021790555060f0426111879190612f11565b600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161122c929190612f67565b6020604051808303816000875af115801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190612fa5565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061133c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612043565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390613044565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561142c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611423906130d6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161150a919061281b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90613168565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee906131fa565b60405180910390fd5b6000811161163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116319061328c565b60405180910390fd5b6001600a81905550600c60009054906101000a900460ff1660ff16600b81905550611663610982565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116d157506116a1610982565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b7257600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561177a5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61178357600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118845750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561189c5750601160179054906101000a900460ff165b1561194c576012548111156118b057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118fb57600080fd5b601e426119089190612f11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119f75750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a4d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a74576001600a81905550600c60019054906101000a900460ff1660ff16600b819055505b6000611a7f306106b4565b9050601160159054906101000a900460ff16158015611aec5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b045750601160169054906101000a900460ff165b15611b7057600d544211611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b449061331e565b60405180910390fd5b611b5681611d4f565b60004790506000811115611b6e57611b6d47611be6565b5b505b505b611b7d8383836120a6565b505050565b6000838311158290611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc191906126cc565b60405180910390fd5b5060008385611bd9919061333e565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c49600a611c3b600986611fc890919063ffffffff16565b6112fa90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c74573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611cdd573d6000803e3d6000fd5b5050565b6000600854821115611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f906133e4565b60405180910390fd5b6000611d326120b6565b9050611d4781846112fa90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d8757611d8661294b565b5b604051908082528060200260200182016040528015611db55781602001602082028036833780820191505090505b5090503081600081518110611dcd57611dcc612c19565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190612dad565b81600181518110611eac57611eab612c19565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f1330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461134c565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f779594939291906134c2565b600060405180830381600087803b158015611f9157600080fd5b505af1158015611fa5573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611fdb576000905061203d565b60008284611fe9919061351c565b9050828482611ff891906135a5565b14612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613648565b60405180910390fd5b809150505b92915050565b6000808311829061208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208191906126cc565b60405180910390fd5b506000838561209991906135a5565b9050809150509392505050565b6120b18383836120e1565b505050565b60008060006120c36122ac565b915091506120da81836112fa90919063ffffffff16565b9250505090565b6000806000806000806120f38761230b565b95509550955095509550955061215186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122328161241b565b61223c84836124d8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612299919061281b565b60405180910390a3505050505050505050565b6000806000600854905060006707b5bad574c51e0090506122e06707b5bad574c51e006008546112fa90919063ffffffff16565b8210156122fe576008546707b5bad574c51e00935093505050612307565b81819350935050505b9091565b60008060008060008060008060006123288a600a54600b54612512565b92509250925060006123386120b6565b9050600080600061234b8e8787876125aa565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123b583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b82565b905092915050565b60008082846123cc9190612f11565b905083811015612411576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612408906136b4565b60405180910390fd5b8091505092915050565b60006124256120b6565b9050600061243c8284611fc890919063ffffffff16565b905061249081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124ed8260085461237390919063ffffffff16565b600881905550612508816009546123bd90919063ffffffff16565b6009819055505050565b60008060008061253f6103e8612531888a611fc890919063ffffffff16565b6112fa90919063ffffffff16565b9050600061256a6103e861255c888b611fc890919063ffffffff16565b6112fa90919063ffffffff16565b9050600061259382612585858c61237390919063ffffffff16565b61237390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806125c38589611fc890919063ffffffff16565b905060006125da8689611fc890919063ffffffff16565b905060006125f18789611fc890919063ffffffff16565b9050600061261a8261260c858761237390919063ffffffff16565b61237390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561266d578082015181840152602081019050612652565b8381111561267c576000848401525b50505050565b6000601f19601f8301169050919050565b600061269e82612633565b6126a8818561263e565b93506126b881856020860161264f565b6126c181612682565b840191505092915050565b600060208201905081810360008301526126e68184612693565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061272d82612702565b9050919050565b61273d81612722565b811461274857600080fd5b50565b60008135905061275a81612734565b92915050565b6000819050919050565b61277381612760565b811461277e57600080fd5b50565b6000813590506127908161276a565b92915050565b600080604083850312156127ad576127ac6126f8565b5b60006127bb8582860161274b565b92505060206127cc85828601612781565b9150509250929050565b60008115159050919050565b6127eb816127d6565b82525050565b600060208201905061280660008301846127e2565b92915050565b61281581612760565b82525050565b6000602082019050612830600083018461280c565b92915050565b60008060006060848603121561284f5761284e6126f8565b5b600061285d8682870161274b565b935050602061286e8682870161274b565b925050604061287f86828701612781565b9150509250925092565b600060ff82169050919050565b61289f81612889565b82525050565b60006020820190506128ba6000830184612896565b92915050565b6128c9816127d6565b81146128d457600080fd5b50565b6000813590506128e6816128c0565b92915050565b600060208284031215612902576129016126f8565b5b6000612910848285016128d7565b91505092915050565b60006020828403121561292f5761292e6126f8565b5b600061293d8482850161274b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61298382612682565b810181811067ffffffffffffffff821117156129a2576129a161294b565b5b80604052505050565b60006129b56126ee565b90506129c1828261297a565b919050565b600067ffffffffffffffff8211156129e1576129e061294b565b5b602082029050602081019050919050565b600080fd5b6000612a0a612a05846129c6565b6129ab565b90508083825260208201905060208402830185811115612a2d57612a2c6129f2565b5b835b81811015612a565780612a42888261274b565b845260208401935050602081019050612a2f565b5050509392505050565b600082601f830112612a7557612a74612946565b5b8135612a858482602086016129f7565b91505092915050565b600060208284031215612aa457612aa36126f8565b5b600082013567ffffffffffffffff811115612ac257612ac16126fd565b5b612ace84828501612a60565b91505092915050565b612ae081612722565b82525050565b6000602082019050612afb6000830184612ad7565b92915050565b612b0a81612889565b8114612b1557600080fd5b50565b600081359050612b2781612b01565b92915050565b60008060408385031215612b4457612b436126f8565b5b6000612b5285828601612b18565b9250506020612b6385828601612b18565b9150509250929050565b60008060408385031215612b8457612b836126f8565b5b6000612b928582860161274b565b9250506020612ba38582860161274b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612be360208361263e565b9150612bee82612bad565b602082019050919050565b60006020820190508181036000830152612c1281612bd6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c8282612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cb557612cb4612c48565b5b600182019050919050565b7f43616e6e6f7420696e6372656173652066656573000000000000000000000000600082015250565b6000612cf660148361263e565b9150612d0182612cc0565b602082019050919050565b60006020820190508181036000830152612d2581612ce9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d6260178361263e565b9150612d6d82612d2c565b602082019050919050565b60006020820190508181036000830152612d9181612d55565b9050919050565b600081519050612da781612734565b92915050565b600060208284031215612dc357612dc26126f8565b5b6000612dd184828501612d98565b91505092915050565b6000604082019050612def6000830185612ad7565b612dfc6020830184612ad7565b9392505050565b6000819050919050565b6000819050919050565b6000612e32612e2d612e2884612e03565b612e0d565b612760565b9050919050565b612e4281612e17565b82525050565b600060c082019050612e5d6000830189612ad7565b612e6a602083018861280c565b612e776040830187612e39565b612e846060830186612e39565b612e916080830185612ad7565b612e9e60a083018461280c565b979650505050505050565b600081519050612eb88161276a565b92915050565b600080600060608486031215612ed757612ed66126f8565b5b6000612ee586828701612ea9565b9350506020612ef686828701612ea9565b9250506040612f0786828701612ea9565b9150509250925092565b6000612f1c82612760565b9150612f2783612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5c57612f5b612c48565b5b828201905092915050565b6000604082019050612f7c6000830185612ad7565b612f89602083018461280c565b9392505050565b600081519050612f9f816128c0565b92915050565b600060208284031215612fbb57612fba6126f8565b5b6000612fc984828501612f90565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061302e60248361263e565b915061303982612fd2565b604082019050919050565b6000602082019050818103600083015261305d81613021565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130c060228361263e565b91506130cb82613064565b604082019050919050565b600060208201905081810360008301526130ef816130b3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061315260258361263e565b915061315d826130f6565b604082019050919050565b6000602082019050818103600083015261318181613145565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131e460238361263e565b91506131ef82613188565b604082019050919050565b60006020820190508181036000830152613213816131d7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061327660298361263e565b91506132818261321a565b604082019050919050565b600060208201905081810360008301526132a581613269565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b600061330860288361263e565b9150613313826132ac565b604082019050919050565b60006020820190508181036000830152613337816132fb565b9050919050565b600061334982612760565b915061335483612760565b92508282101561336757613366612c48565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006133ce602a8361263e565b91506133d982613372565b604082019050919050565b600060208201905081810360008301526133fd816133c1565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61343981612722565b82525050565b600061344b8383613430565b60208301905092915050565b6000602082019050919050565b600061346f82613404565b613479818561340f565b935061348483613420565b8060005b838110156134b557815161349c888261343f565b97506134a783613457565b925050600181019050613488565b5085935050505092915050565b600060a0820190506134d7600083018861280c565b6134e46020830187612e39565b81810360408301526134f68186613464565b90506135056060830185612ad7565b613512608083018461280c565b9695505050505050565b600061352782612760565b915061353283612760565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561356b5761356a612c48565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135b082612760565b91506135bb83612760565b9250826135cb576135ca613576565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061363260218361263e565b915061363d826135d6565b604082019050919050565b6000602082019050818103600083015261366181613625565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061369e601b8361263e565b91506136a982613668565b602082019050919050565b600060208201905081810360008301526136cd81613691565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073cbcc14076c696a02a05168815734099daea84867c34954c474e5ff508e43b164736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806384f570af116100a0578063a9059cbb11610064578063a9059cbb14610372578063c38ec0e6146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b806384f570af146102b35780638da5cb5b146102dc578063950406c31461030757806395d89b411461031e578063a769958a146103495761011f565b8063313ce567116100e7578063313ce567146101f45780635932ead11461021f5780636fc3eaec1461024857806370a082311461025f578063715018a61461029c5761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b60405161014691906126cc565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612796565b610480565b60405161018391906127f1565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae919061281b565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190612836565b6104ae565b6040516101eb91906127f1565b60405180910390f35b34801561020057600080fd5b50610209610587565b60405161021691906128a5565b60405180910390f35b34801561022b57600080fd5b50610246600480360381019061024191906128ec565b610590565b005b34801561025457600080fd5b5061025d610642565b005b34801561026b57600080fd5b5061028660048036038101906102819190612919565b6106b4565b604051610293919061281b565b60405180910390f35b3480156102a857600080fd5b506102b1610705565b005b3480156102bf57600080fd5b506102da60048036038101906102d59190612a8e565b610858565b005b3480156102e857600080fd5b506102f1610982565b6040516102fe9190612ae6565b60405180910390f35b34801561031357600080fd5b5061031c6109ab565b005b34801561032a57600080fd5b50610333610a51565b60405161034091906126cc565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612b2d565b610a8e565b005b34801561037e57600080fd5b5061039960048036038101906103949190612796565b610ba2565b6040516103a691906127f1565b60405180910390f35b3480156103bb57600080fd5b506103d660048036038101906103d19190612919565b610bc0565b005b3480156103e457600080fd5b506103ed610cb0565b005b3480156103fb57600080fd5b50610404610d2a565b005b34801561041257600080fd5b5061042d60048036038101906104289190612b6d565b611273565b60405161043a919061281b565b60405180910390f35b60606040518060400160405280600d81526020017f50756c7365496e75546f6b656e00000000000000000000000000000000000000815250905090565b600061049461048d611344565b848461134c565b6001905092915050565b60006707b5bad574c51e00905090565b60006104bb848484611517565b61057c846104c7611344565b610577856040518060600160405280602881526020016136d560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052d611344565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b829092919063ffffffff16565b61134c565b600190509392505050565b60006009905090565b610598611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90612bf9565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610683611344565b73ffffffffffffffffffffffffffffffffffffffff16146106a357600080fd5b60004790506106b181611be6565b50565b60006106fe600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ce1565b9050919050565b61070d611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079190612bf9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610860611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612bf9565b60405180910390fd5b60005b815181101561097e5760016006600084848151811061091257610911612c19565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061097690612c77565b9150506108f0565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109b3611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790612bf9565b60405180910390fd5b6707b5bad574c51e00601281905550565b60606040518060400160405280600481526020017f50494e5500000000000000000000000000000000000000000000000000000000815250905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acf611344565b73ffffffffffffffffffffffffffffffffffffffff1614610aef57600080fd5b600c60009054906101000a900460ff1660ff168260ff1611158015610b295750600c60019054906101000a900460ff1660ff168160ff1611155b610b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5f90612d0c565b60405180910390fd5b81600c60006101000a81548160ff021916908360ff16021790555080600c60016101000a81548160ff021916908360ff1602179055505050565b6000610bb6610baf611344565b8484611517565b6001905092915050565b610bc8611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612bf9565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf1611344565b73ffffffffffffffffffffffffffffffffffffffff1614610d1157600080fd5b6000610d1c306106b4565b9050610d2781611d4f565b50565b610d32611344565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690612bf9565b60405180910390fd5b601160149054906101000a900460ff1615610e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0690612d78565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9e30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166707b5bad574c51e0061134c565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ee9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0d9190612dad565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f989190612dad565b6040518363ffffffff1660e01b8152600401610fb5929190612dda565b6020604051808303816000875af1158015610fd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff89190612dad565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611081306106b4565b60008061108c610982565b426040518863ffffffff1660e01b81526004016110ae96959493929190612e48565b60606040518083038185885af11580156110cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110f19190612ebe565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff021916908315150217905550611159606461114b60026707b5bad574c51e00611fc890919063ffffffff16565b6112fa90919063ffffffff16565b6012819055506001601160146101000a81548160ff02191690831515021790555060f0426111879190612f11565b600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161122c929190612f67565b6020604051808303816000875af115801561124b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126f9190612fa5565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061133c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612043565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390613044565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561142c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611423906130d6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161150a919061281b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611587576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157e90613168565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee906131fa565b60405180910390fd5b6000811161163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116319061328c565b60405180910390fd5b6001600a81905550600c60009054906101000a900460ff1660ff16600b81905550611663610982565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116d157506116a1610982565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b7257600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561177a5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61178357600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182e5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118845750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561189c5750601160179054906101000a900460ff165b1561194c576012548111156118b057600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118fb57600080fd5b601e426119089190612f11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156119f75750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a4d5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a74576001600a81905550600c60019054906101000a900460ff1660ff16600b819055505b6000611a7f306106b4565b9050601160159054906101000a900460ff16158015611aec5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b045750601160169054906101000a900460ff165b15611b7057600d544211611b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b449061331e565b60405180910390fd5b611b5681611d4f565b60004790506000811115611b6e57611b6d47611be6565b5b505b505b611b7d8383836120a6565b505050565b6000838311158290611bca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc191906126cc565b60405180910390fd5b5060008385611bd9919061333e565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c49600a611c3b600986611fc890919063ffffffff16565b6112fa90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c74573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611cdd573d6000803e3d6000fd5b5050565b6000600854821115611d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1f906133e4565b60405180910390fd5b6000611d326120b6565b9050611d4781846112fa90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d8757611d8661294b565b5b604051908082528060200260200182016040528015611db55781602001602082028036833780820191505090505b5090503081600081518110611dcd57611dcc612c19565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e74573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e989190612dad565b81600181518110611eac57611eab612c19565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f1330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461134c565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f779594939291906134c2565b600060405180830381600087803b158015611f9157600080fd5b505af1158015611fa5573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b600080831415611fdb576000905061203d565b60008284611fe9919061351c565b9050828482611ff891906135a5565b14612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613648565b60405180910390fd5b809150505b92915050565b6000808311829061208a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208191906126cc565b60405180910390fd5b506000838561209991906135a5565b9050809150509392505050565b6120b18383836120e1565b505050565b60008060006120c36122ac565b915091506120da81836112fa90919063ffffffff16565b9250505090565b6000806000806000806120f38761230b565b95509550955095509550955061215186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237390919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122328161241b565b61223c84836124d8565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612299919061281b565b60405180910390a3505050505050505050565b6000806000600854905060006707b5bad574c51e0090506122e06707b5bad574c51e006008546112fa90919063ffffffff16565b8210156122fe576008546707b5bad574c51e00935093505050612307565b81819350935050505b9091565b60008060008060008060008060006123288a600a54600b54612512565b92509250925060006123386120b6565b9050600080600061234b8e8787876125aa565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123b583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b82565b905092915050565b60008082846123cc9190612f11565b905083811015612411576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612408906136b4565b60405180910390fd5b8091505092915050565b60006124256120b6565b9050600061243c8284611fc890919063ffffffff16565b905061249081600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bd90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6124ed8260085461237390919063ffffffff16565b600881905550612508816009546123bd90919063ffffffff16565b6009819055505050565b60008060008061253f6103e8612531888a611fc890919063ffffffff16565b6112fa90919063ffffffff16565b9050600061256a6103e861255c888b611fc890919063ffffffff16565b6112fa90919063ffffffff16565b9050600061259382612585858c61237390919063ffffffff16565b61237390919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806125c38589611fc890919063ffffffff16565b905060006125da8689611fc890919063ffffffff16565b905060006125f18789611fc890919063ffffffff16565b9050600061261a8261260c858761237390919063ffffffff16565b61237390919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561266d578082015181840152602081019050612652565b8381111561267c576000848401525b50505050565b6000601f19601f8301169050919050565b600061269e82612633565b6126a8818561263e565b93506126b881856020860161264f565b6126c181612682565b840191505092915050565b600060208201905081810360008301526126e68184612693565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061272d82612702565b9050919050565b61273d81612722565b811461274857600080fd5b50565b60008135905061275a81612734565b92915050565b6000819050919050565b61277381612760565b811461277e57600080fd5b50565b6000813590506127908161276a565b92915050565b600080604083850312156127ad576127ac6126f8565b5b60006127bb8582860161274b565b92505060206127cc85828601612781565b9150509250929050565b60008115159050919050565b6127eb816127d6565b82525050565b600060208201905061280660008301846127e2565b92915050565b61281581612760565b82525050565b6000602082019050612830600083018461280c565b92915050565b60008060006060848603121561284f5761284e6126f8565b5b600061285d8682870161274b565b935050602061286e8682870161274b565b925050604061287f86828701612781565b9150509250925092565b600060ff82169050919050565b61289f81612889565b82525050565b60006020820190506128ba6000830184612896565b92915050565b6128c9816127d6565b81146128d457600080fd5b50565b6000813590506128e6816128c0565b92915050565b600060208284031215612902576129016126f8565b5b6000612910848285016128d7565b91505092915050565b60006020828403121561292f5761292e6126f8565b5b600061293d8482850161274b565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61298382612682565b810181811067ffffffffffffffff821117156129a2576129a161294b565b5b80604052505050565b60006129b56126ee565b90506129c1828261297a565b919050565b600067ffffffffffffffff8211156129e1576129e061294b565b5b602082029050602081019050919050565b600080fd5b6000612a0a612a05846129c6565b6129ab565b90508083825260208201905060208402830185811115612a2d57612a2c6129f2565b5b835b81811015612a565780612a42888261274b565b845260208401935050602081019050612a2f565b5050509392505050565b600082601f830112612a7557612a74612946565b5b8135612a858482602086016129f7565b91505092915050565b600060208284031215612aa457612aa36126f8565b5b600082013567ffffffffffffffff811115612ac257612ac16126fd565b5b612ace84828501612a60565b91505092915050565b612ae081612722565b82525050565b6000602082019050612afb6000830184612ad7565b92915050565b612b0a81612889565b8114612b1557600080fd5b50565b600081359050612b2781612b01565b92915050565b60008060408385031215612b4457612b436126f8565b5b6000612b5285828601612b18565b9250506020612b6385828601612b18565b9150509250929050565b60008060408385031215612b8457612b836126f8565b5b6000612b928582860161274b565b9250506020612ba38582860161274b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612be360208361263e565b9150612bee82612bad565b602082019050919050565b60006020820190508181036000830152612c1281612bd6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c8282612760565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cb557612cb4612c48565b5b600182019050919050565b7f43616e6e6f7420696e6372656173652066656573000000000000000000000000600082015250565b6000612cf660148361263e565b9150612d0182612cc0565b602082019050919050565b60006020820190508181036000830152612d2581612ce9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612d6260178361263e565b9150612d6d82612d2c565b602082019050919050565b60006020820190508181036000830152612d9181612d55565b9050919050565b600081519050612da781612734565b92915050565b600060208284031215612dc357612dc26126f8565b5b6000612dd184828501612d98565b91505092915050565b6000604082019050612def6000830185612ad7565b612dfc6020830184612ad7565b9392505050565b6000819050919050565b6000819050919050565b6000612e32612e2d612e2884612e03565b612e0d565b612760565b9050919050565b612e4281612e17565b82525050565b600060c082019050612e5d6000830189612ad7565b612e6a602083018861280c565b612e776040830187612e39565b612e846060830186612e39565b612e916080830185612ad7565b612e9e60a083018461280c565b979650505050505050565b600081519050612eb88161276a565b92915050565b600080600060608486031215612ed757612ed66126f8565b5b6000612ee586828701612ea9565b9350506020612ef686828701612ea9565b9250506040612f0786828701612ea9565b9150509250925092565b6000612f1c82612760565b9150612f2783612760565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612f5c57612f5b612c48565b5b828201905092915050565b6000604082019050612f7c6000830185612ad7565b612f89602083018461280c565b9392505050565b600081519050612f9f816128c0565b92915050565b600060208284031215612fbb57612fba6126f8565b5b6000612fc984828501612f90565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061302e60248361263e565b915061303982612fd2565b604082019050919050565b6000602082019050818103600083015261305d81613021565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130c060228361263e565b91506130cb82613064565b604082019050919050565b600060208201905081810360008301526130ef816130b3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061315260258361263e565b915061315d826130f6565b604082019050919050565b6000602082019050818103600083015261318181613145565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131e460238361263e565b91506131ef82613188565b604082019050919050565b60006020820190508181036000830152613213816131d7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061327660298361263e565b91506132818261321a565b604082019050919050565b600060208201905081810360008301526132a581613269565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b600061330860288361263e565b9150613313826132ac565b604082019050919050565b60006020820190508181036000830152613337816132fb565b9050919050565b600061334982612760565b915061335483612760565b92508282101561336757613366612c48565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006133ce602a8361263e565b91506133d982613372565b604082019050919050565b600060208201905081810360008301526133fd816133c1565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61343981612722565b82525050565b600061344b8383613430565b60208301905092915050565b6000602082019050919050565b600061346f82613404565b613479818561340f565b935061348483613420565b8060005b838110156134b557815161349c888261343f565b97506134a783613457565b925050600181019050613488565b5085935050505092915050565b600060a0820190506134d7600083018861280c565b6134e46020830187612e39565b81810360408301526134f68186613464565b90506135056060830185612ad7565b613512608083018461280c565b9695505050505050565b600061352782612760565b915061353283612760565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561356b5761356a612c48565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135b082612760565b91506135bb83612760565b9250826135cb576135ca613576565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061363260218361263e565b915061363d826135d6565b604082019050919050565b6000602082019050818103600083015261366181613625565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061369e601b8361263e565b91506136a982613668565b602082019050919050565b600060208201905081810360008301526136cd81613691565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122073cbcc14076c696a02a05168815734099daea84867c34954c474e5ff508e43b164736f6c634300080b0033

Deployed Bytecode Sourcemap

3616:11201:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5810:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6662:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6087:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6831:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5996:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7152:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12808:194;;;;;;;;;;;;;:::i;:::-;;6190:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2695:148;;;;;;;;;;;;;:::i;:::-;;11250:166;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2481:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14441:99;;;;;;;;;;;;;:::i;:::-;;5901:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7267:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6336:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11428:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12601:195;;;;;;;;;;;;;:::i;:::-;;10371:867;;;;;;;;;;;;;:::i;:::-;;6511:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5810:83;5847:13;5880:5;;;;;;;;;;;;;;;;;5873:12;;5810:83;:::o;6662:161::-;6737:4;6754:39;6763:12;:10;:12::i;:::-;6777:7;6786:6;6754:8;:39::i;:::-;6811:4;6804:11;;6662:161;;;;:::o;6087:95::-;6140:7;4117:17;6160:14;;6087:95;:::o;6831:313::-;6929:4;6946:36;6956:6;6964:9;6975:6;6946:9;:36::i;:::-;6993:121;7002:6;7010:12;:10;:12::i;:::-;7024:89;7062:6;7024:89;;;;;;;;;;;;;;;;;:11;:19;7036:6;7024:19;;;;;;;;;;;;;;;:33;7044:12;:10;:12::i;:::-;7024:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6993:8;:121::i;:::-;7132:4;7125:11;;6831:313;;;;;:::o;5996:83::-;6037:5;4623:1;6055:16;;5996:83;:::o;7152:103::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7242:5:::1;7224:15;;:23;;;;;;;;;;;;;;;;;;7152:103:::0;:::o;12808:194::-;12874:15;;;;;;;;;;;12858:31;;:12;:10;:12::i;:::-;:31;;;12850:40;;;;;;12901:26;12930:21;12901:50;;12962:32;12975:18;12962:12;:32::i;:::-;12839:163;12808:194::o;6190:138::-;6256:7;6283:37;6303:7;:16;6311:7;6303:16;;;;;;;;;;;;;;;;6283:19;:37::i;:::-;6276:44;;6190:138;;;:::o;2695:148::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2802:1:::1;2765:40;;2786:6;::::0;::::1;;;;;;;;2765:40;;;;;;;;;;;;2833:1;2816:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2695:148::o:0;11250:166::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11326:6:::1;11321:88;11342:5;:12;11338:1;:16;11321:88;;;11393:4;11376;:14;11381:5;11387:1;11381:8;;;;;;;;:::i;:::-;;;;;;;;11376:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11356:3;;;;;:::i;:::-;;;;11321:88;;;;11250:166:::0;:::o;2481:79::-;2519:7;2546:6;;;;;;;;;;;2539:13;;2481:79;:::o;14441:99::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4117:17:::1;14510:12;:22;;;;14441:99::o:0;5901:87::-;5940:13;5973:7;;;;;;;;;;;;;;;;;5966:14;;5901:87;:::o;7267:242::-;7366:15;;;;;;;;;;;7350:31;;:12;:10;:12::i;:::-;:31;;;7342:40;;;;;;7410:4;;;;;;;;;;;7401:13;;:5;:13;;;;:30;;;;;7427:4;;;;;;;;;;;7418:13;;:5;:13;;;;7401:30;7393:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;7473:5;7466:4;;:12;;;;;;;;;;;;;;;;;;7496:5;7489:4;;:12;;;;;;;;;;;;;;;;;;7267:242;;:::o;6336:167::-;6414:4;6431:42;6441:12;:10;:12::i;:::-;6455:9;6466:6;6431:9;:42::i;:::-;6491:4;6484:11;;6336:167;;;;:::o;11428:91::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11506:5:::1;11491:4;:12;11496:6;11491:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11428:91:::0;:::o;12601:195::-;12667:15;;;;;;;;;;;12651:31;;:12;:10;:12::i;:::-;:31;;;12643:40;;;;;;12694:23;12720:24;12738:4;12720:9;:24::i;:::-;12694:50;;12755:33;12772:15;12755:16;:33::i;:::-;12632:164;12601:195::o;10371:867::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10435:11:::1;;;;;;;;;;;10434:12;10426:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10484:35;10541:42;10484:100;;10613:16;10595:15;;:34;;;;;;;;;;;;;;;;;;10640:58;10657:4;10672:15;;;;;;;;;;;4117:17;10640:8;:58::i;:::-;10743:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10725:56;;;10790:4;10797:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10725:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10709:13;;:112;;;;;;;;;;;;;;;;;;10832:15;;;;;;;;;;;:31;;;10871:21;10902:4;10908:24;10926:4;10908:9;:24::i;:::-;10933:1;10935::::0;10937:7:::1;:5;:7::i;:::-;10945:15;10832:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10986:4;10972:11;;:18;;;;;;;;;;;;;;;;;;11019:4;11001:15;;:22;;;;;;;;;;;;;;;;;;11049:23;11068:3;11049:14;11061:1;4117:17;11049:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;11034:12;:38;;;;11097:4;11083:11;;:18;;;;;;;;;;;;;;;;;;11138:9;11119:15;:29;;;;:::i;:::-;11112:4;:36;;;;11166:13;;;;;;;;;;;11159:29;;;11197:15;;;;;;;;;;;11215:14;11159:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10415:823;10371:867::o:0;6511:143::-;6592:7;6619:11;:18;6631:5;6619:18;;;;;;;;;;;;;;;:27;6638:7;6619:27;;;;;;;;;;;;;;;;6612:34;;6511:143;;;;:::o;1788:132::-;1846:7;1873:39;1877:1;1880;1873:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1866:46;;1788:132;;;;:::o;199:98::-;252:7;279:10;272:17;;199:98;:::o;7779:335::-;7889:1;7872:19;;:5;:19;;;;7864:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7970:1;7951:21;;:7;:21;;;;7943:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8052:6;8022:11;:18;8034:5;8022:18;;;;;;;;;;;;;;;:27;8041:7;8022:27;;;;;;;;;;;;;;;:36;;;;8090:7;8074:32;;8083:5;8074:32;;;8099:6;8074:32;;;;;;:::i;:::-;;;;;;;;7779:335;;;:::o;8122:1560::-;8226:1;8210:18;;:4;:18;;;;8202:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8303:1;8289:16;;:2;:16;;;;8281:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8373:1;8364:6;:10;8356:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8443:1;8431:9;:13;;;;8467:4;;;;;;;;;;;8455:16;;:9;:16;;;;8494:7;:5;:7::i;:::-;8486:15;;:4;:15;;;;:32;;;;;8511:7;:5;:7::i;:::-;8505:13;;:2;:13;;;;8486:32;8482:1148;;;8544:4;:10;8549:4;8544:10;;;;;;;;;;;;;;;;;;;;;;;;;8543:11;:24;;;;;8559:4;:8;8564:2;8559:8;;;;;;;;;;;;;;;;;;;;;;;;;8558:9;8543:24;8535:33;;;;;;8595:13;;;;;;;;;;;8587:21;;:4;:21;;;:55;;;;;8626:15;;;;;;;;;;;8612:30;;:2;:30;;;;8587:55;:83;;;;;8648:18;:22;8667:2;8648:22;;;;;;;;;;;;;;;;;;;;;;;;;8646:24;8587:83;:102;;;;;8674:15;;;;;;;;;;;8587:102;8583:325;;;8757:12;;8747:6;:22;;8739:31;;;;;;8812:15;8797:8;:12;8806:2;8797:12;;;;;;;;;;;;;;;;:30;8789:39;;;;;;8881:10;8862:15;:30;;;;:::i;:::-;8847:8;:12;8856:2;8847:12;;;;;;;;;;;;;;;:45;;;;8583:325;8960:13;;;;;;;;;;;8954:19;;:2;:19;;;:55;;;;;8993:15;;;;;;;;;;;8977:32;;:4;:32;;;;8954:55;:85;;;;;9015:18;:24;9034:4;9015:24;;;;;;;;;;;;;;;;;;;;;;;;;9013:26;8954:85;8950:174;;;9072:1;9060:9;:13;;;;9104:4;;;;;;;;;;;9092:16;;:9;:16;;;;8950:174;9138:28;9169:24;9187:4;9169:9;:24::i;:::-;9138:55;;9213:6;;;;;;;;;;;9212:7;:32;;;;;9231:13;;;;;;;;;;;9223:21;;:4;:21;;;;9212:32;:47;;;;;9248:11;;;;;;;;;;;9212:47;9208:411;;;9306:4;;9288:15;:22;9280:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9373:38;9390:20;9373:16;:38::i;:::-;9430:26;9459:21;9430:50;;9523:1;9502:18;:22;9499:105;;;9549:35;9562:21;9549:12;:35::i;:::-;9499:105;9261:358;9208:411;8520:1110;8482:1148;9644:30;9659:4;9664:2;9667:6;9644:14;:30::i;:::-;8122:1560;;;:::o;1336:190::-;1422:7;1455:1;1450;:6;;1458:12;1442:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1482:9;1498:1;1494;:5;;;;:::i;:::-;1482:17;;1517:1;1510:8;;;1336:190;;;;;:::o;10189:170::-;10246:15;;;;;;;;;;;:24;;:47;10271:21;10289:2;10271:13;10282:1;10271:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;10246:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10304:15;;;;;;;;;;;:24;;:47;10329:21;10304:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10189:170;:::o;7517:254::-;7584:7;7623;;7612;:18;;7604:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7688:19;7711:10;:8;:10::i;:::-;7688:33;;7739:24;7751:11;7739:7;:11;;:24;;;;:::i;:::-;7732:31;;;7517:254;;;:::o;9690:483::-;5005:4;4996:6;;:13;;;;;;;;;;;;;;;;;;9768:21:::1;9806:1;9792:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9768:40;;9837:4;9819;9824:1;9819:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9863:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9853:4;9858:1;9853:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9896:62;9913:4;9928:15;;;;;;;;;;;9946:11;9896:8;:62::i;:::-;9969:15;;;;;;;;;;;:66;;;10050:11;10076:1;10092:4;10119;10139:15;9969:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9757:416;5041:5:::0;5032:6;;:14;;;;;;;;;;;;;;;;;;9690:483;:::o;1534:246::-;1592:7;1621:1;1616;:6;1612:47;;;1646:1;1639:8;;;;1612:47;1669:9;1685:1;1681;:5;;;;:::i;:::-;1669:17;;1714:1;1709;1705;:5;;;;:::i;:::-;:10;1697:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1771:1;1764:8;;;1534:246;;;;;:::o;1928:189::-;2014:7;2046:1;2042;:5;2049:12;2034:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2073:9;2089:1;2085;:5;;;;:::i;:::-;2073:17;;2108:1;2101:8;;;1928:189;;;;;:::o;11535:146::-;11629:44;11647:6;11655:9;11666:6;11629:17;:44::i;:::-;11535:146;;;:::o;14270:163::-;14311:7;14332:15;14349;14368:19;:17;:19::i;:::-;14331:56;;;;14405:20;14417:7;14405;:11;;:20;;;;:::i;:::-;14398:27;;;;14270:163;:::o;11689:488::-;11788:15;11805:23;11830:12;11844:23;11869:12;11883:13;11900:19;11911:7;11900:10;:19::i;:::-;11787:132;;;;;;;;;;;;11948:28;11968:7;11948;:15;11956:6;11948:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11930:7;:15;11938:6;11930:15;;;;;;;;;;;;;;;:46;;;;12008:39;12031:15;12008:7;:18;12016:9;12008:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11987:7;:18;11995:9;11987:18;;;;;;;;;;;;;;;:60;;;;12059:16;12069:5;12059:9;:16::i;:::-;12086:23;12098:4;12104;12086:11;:23::i;:::-;12142:9;12125:44;;12134:6;12125:44;;;12153:15;12125:44;;;;;;:::i;:::-;;;;;;;;11776:401;;;;;;11689:488;;;:::o;14552:262::-;14602:7;14611;14631:15;14649:7;;14631:25;;14667:15;4117:17;14667:25;;14723:20;4117:17;14723:7;;:11;;:20;;;;:::i;:::-;14713:7;:30;14709:61;;;14753:7;;4117:17;14745:25;;;;;;;;14709:61;14789:7;14798;14781:25;;;;;;14552:262;;;:::o;13016:471::-;13075:7;13084;13093;13102;13111;13120;13141:23;13166:12;13180:13;13197:42;13209:7;13218:9;;13229;;13197:11;:42::i;:::-;13140:99;;;;;;13250:19;13273:10;:8;:10::i;:::-;13250:33;;13295:15;13312:23;13337:12;13353:46;13365:7;13374:4;13380:5;13387:11;13353;:46::i;:::-;13294:105;;;;;;13418:7;13427:15;13444:4;13450:15;13467:4;13473:5;13410:69;;;;;;;;;;;;;;;;;;;13016:471;;;;;;;:::o;1192:136::-;1250:7;1277:43;1281:1;1284;1277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1270:50;;1192:136;;;;:::o;1005:179::-;1063:7;1083:9;1099:1;1095;:5;;;;:::i;:::-;1083:17;;1124:1;1119;:6;;1111:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1175:1;1168:8;;;1005:179;;;;:::o;12185:212::-;12238:19;12261:10;:8;:10::i;:::-;12238:33;;12282:13;12298:22;12308:11;12298:5;:9;;:22;;;;:::i;:::-;12282:38;;12356:33;12383:5;12356:7;:22;12372:4;12356:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12331:7;:22;12347:4;12331:22;;;;;;;;;;;;;;;:58;;;;12227:170;;12185:212;:::o;12405:147::-;12483:17;12495:4;12483:7;;:11;;:17;;;;:::i;:::-;12473:7;:27;;;;12524:20;12539:4;12524:10;;:14;;:20;;;;:::i;:::-;12511:10;:33;;;;12405:147;;:::o;13495:353::-;13588:7;13597;13606;13626:12;13641:29;13665:4;13641:19;13653:6;13641:7;:11;;:19;;;;:::i;:::-;:23;;:29;;;;:::i;:::-;13626:44;;13681:13;13697:30;13722:4;13697:20;13709:7;13697;:11;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;13681:46;;13738:23;13764:28;13786:5;13764:17;13776:4;13764:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13738:54;;13811:15;13828:4;13834:5;13803:37;;;;;;;;;13495:353;;;;;;;:::o;13856:409::-;13966:7;13975;13984;14004:15;14022:24;14034:11;14022:7;:11;;:24;;;;:::i;:::-;14004:42;;14057:12;14072:21;14081:11;14072:4;:8;;:21;;;;:::i;:::-;14057:36;;14104:13;14120:22;14130:11;14120:5;:9;;:22;;;;:::i;:::-;14104:38;;14153:23;14179:28;14201:5;14179:17;14191:4;14179:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14153:54;;14226:7;14235:15;14252:4;14218:39;;;;;;;;;;13856:409;;;;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:117::-;5935:1;5932;5925:12;5949:180;5997:77;5994:1;5987:88;6094:4;6091:1;6084:15;6118:4;6115:1;6108:15;6135:281;6218:27;6240:4;6218:27;:::i;:::-;6210:6;6206:40;6348:6;6336:10;6333:22;6312:18;6300:10;6297:34;6294:62;6291:88;;;6359:18;;:::i;:::-;6291:88;6399:10;6395:2;6388:22;6178:238;6135:281;;:::o;6422:129::-;6456:6;6483:20;;:::i;:::-;6473:30;;6512:33;6540:4;6532:6;6512:33;:::i;:::-;6422:129;;;:::o;6557:311::-;6634:4;6724:18;6716:6;6713:30;6710:56;;;6746:18;;:::i;:::-;6710:56;6796:4;6788:6;6784:17;6776:25;;6856:4;6850;6846:15;6838:23;;6557:311;;;:::o;6874:117::-;6983:1;6980;6973:12;7014:710;7110:5;7135:81;7151:64;7208:6;7151:64;:::i;:::-;7135:81;:::i;:::-;7126:90;;7236:5;7265:6;7258:5;7251:21;7299:4;7292:5;7288:16;7281:23;;7352:4;7344:6;7340:17;7332:6;7328:30;7381:3;7373:6;7370:15;7367:122;;;7400:79;;:::i;:::-;7367:122;7515:6;7498:220;7532:6;7527:3;7524:15;7498:220;;;7607:3;7636:37;7669:3;7657:10;7636:37;:::i;:::-;7631:3;7624:50;7703:4;7698:3;7694:14;7687:21;;7574:144;7558:4;7553:3;7549:14;7542:21;;7498:220;;;7502:21;7116:608;;7014:710;;;;;:::o;7747:370::-;7818:5;7867:3;7860:4;7852:6;7848:17;7844:27;7834:122;;7875:79;;:::i;:::-;7834:122;7992:6;7979:20;8017:94;8107:3;8099:6;8092:4;8084:6;8080:17;8017:94;:::i;:::-;8008:103;;7824:293;7747:370;;;;:::o;8123:539::-;8207:6;8256:2;8244:9;8235:7;8231:23;8227:32;8224:119;;;8262:79;;:::i;:::-;8224:119;8410:1;8399:9;8395:17;8382:31;8440:18;8432:6;8429:30;8426:117;;;8462:79;;:::i;:::-;8426:117;8567:78;8637:7;8628:6;8617:9;8613:22;8567:78;:::i;:::-;8557:88;;8353:302;8123:539;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:118::-;9091:22;9107:5;9091:22;:::i;:::-;9084:5;9081:33;9071:61;;9128:1;9125;9118:12;9071:61;9020:118;:::o;9144:135::-;9188:5;9226:6;9213:20;9204:29;;9242:31;9267:5;9242:31;:::i;:::-;9144:135;;;;:::o;9285:466::-;9349:6;9357;9406:2;9394:9;9385:7;9381:23;9377:32;9374:119;;;9412:79;;:::i;:::-;9374:119;9532:1;9557:51;9600:7;9591:6;9580:9;9576:22;9557:51;:::i;:::-;9547:61;;9503:115;9657:2;9683:51;9726:7;9717:6;9706:9;9702:22;9683:51;:::i;:::-;9673:61;;9628:116;9285:466;;;;;:::o;9757:474::-;9825:6;9833;9882:2;9870:9;9861:7;9857:23;9853:32;9850:119;;;9888:79;;:::i;:::-;9850:119;10008:1;10033:53;10078:7;10069:6;10058:9;10054:22;10033:53;:::i;:::-;10023:63;;9979:117;10135:2;10161:53;10206:7;10197:6;10186:9;10182:22;10161:53;:::i;:::-;10151:63;;10106:118;9757:474;;;;;:::o;10237:182::-;10377:34;10373:1;10365:6;10361:14;10354:58;10237:182;:::o;10425:366::-;10567:3;10588:67;10652:2;10647:3;10588:67;:::i;:::-;10581:74;;10664:93;10753:3;10664:93;:::i;:::-;10782:2;10777:3;10773:12;10766:19;;10425:366;;;:::o;10797:419::-;10963:4;11001:2;10990:9;10986:18;10978:26;;11050:9;11044:4;11040:20;11036:1;11025:9;11021:17;11014:47;11078:131;11204:4;11078:131;:::i;:::-;11070:139;;10797:419;;;:::o;11222:180::-;11270:77;11267:1;11260:88;11367:4;11364:1;11357:15;11391:4;11388:1;11381:15;11408:180;11456:77;11453:1;11446:88;11553:4;11550:1;11543:15;11577:4;11574:1;11567:15;11594:233;11633:3;11656:24;11674:5;11656:24;:::i;:::-;11647:33;;11702:66;11695:5;11692:77;11689:103;;;11772:18;;:::i;:::-;11689:103;11819:1;11812:5;11808:13;11801:20;;11594:233;;;:::o;11833:170::-;11973:22;11969:1;11961:6;11957:14;11950:46;11833:170;:::o;12009:366::-;12151:3;12172:67;12236:2;12231:3;12172:67;:::i;:::-;12165:74;;12248:93;12337:3;12248:93;:::i;:::-;12366:2;12361:3;12357:12;12350:19;;12009:366;;;:::o;12381:419::-;12547:4;12585:2;12574:9;12570:18;12562:26;;12634:9;12628:4;12624:20;12620:1;12609:9;12605:17;12598:47;12662:131;12788:4;12662:131;:::i;:::-;12654:139;;12381:419;;;:::o;12806:173::-;12946:25;12942:1;12934:6;12930:14;12923:49;12806:173;:::o;12985:366::-;13127:3;13148:67;13212:2;13207:3;13148:67;:::i;:::-;13141:74;;13224:93;13313:3;13224:93;:::i;:::-;13342:2;13337:3;13333:12;13326:19;;12985:366;;;:::o;13357:419::-;13523:4;13561:2;13550:9;13546:18;13538:26;;13610:9;13604:4;13600:20;13596:1;13585:9;13581:17;13574:47;13638:131;13764:4;13638:131;:::i;:::-;13630:139;;13357:419;;;:::o;13782:143::-;13839:5;13870:6;13864:13;13855:22;;13886:33;13913:5;13886:33;:::i;:::-;13782:143;;;;:::o;13931:351::-;14001:6;14050:2;14038:9;14029:7;14025:23;14021:32;14018:119;;;14056:79;;:::i;:::-;14018:119;14176:1;14201:64;14257:7;14248:6;14237:9;14233:22;14201:64;:::i;:::-;14191:74;;14147:128;13931:351;;;;:::o;14288:332::-;14409:4;14447:2;14436:9;14432:18;14424:26;;14460:71;14528:1;14517:9;14513:17;14504:6;14460:71;:::i;:::-;14541:72;14609:2;14598:9;14594:18;14585:6;14541:72;:::i;:::-;14288:332;;;;;:::o;14626:85::-;14671:7;14700:5;14689:16;;14626:85;;;:::o;14717:60::-;14745:3;14766:5;14759:12;;14717:60;;;:::o;14783:158::-;14841:9;14874:61;14892:42;14901:32;14927:5;14901:32;:::i;:::-;14892:42;:::i;:::-;14874:61;:::i;:::-;14861:74;;14783:158;;;:::o;14947:147::-;15042:45;15081:5;15042:45;:::i;:::-;15037:3;15030:58;14947:147;;:::o;15100:807::-;15349:4;15387:3;15376:9;15372:19;15364:27;;15401:71;15469:1;15458:9;15454:17;15445:6;15401:71;:::i;:::-;15482:72;15550:2;15539:9;15535:18;15526:6;15482:72;:::i;:::-;15564:80;15640:2;15629:9;15625:18;15616:6;15564:80;:::i;:::-;15654;15730:2;15719:9;15715:18;15706:6;15654:80;:::i;:::-;15744:73;15812:3;15801:9;15797:19;15788:6;15744:73;:::i;:::-;15827;15895:3;15884:9;15880:19;15871:6;15827:73;:::i;:::-;15100:807;;;;;;;;;:::o;15913:143::-;15970:5;16001:6;15995:13;15986:22;;16017:33;16044:5;16017:33;:::i;:::-;15913:143;;;;:::o;16062:663::-;16150:6;16158;16166;16215:2;16203:9;16194:7;16190:23;16186:32;16183:119;;;16221:79;;:::i;:::-;16183:119;16341:1;16366:64;16422:7;16413:6;16402:9;16398:22;16366:64;:::i;:::-;16356:74;;16312:128;16479:2;16505:64;16561:7;16552:6;16541:9;16537:22;16505:64;:::i;:::-;16495:74;;16450:129;16618:2;16644:64;16700:7;16691:6;16680:9;16676:22;16644:64;:::i;:::-;16634:74;;16589:129;16062:663;;;;;:::o;16731:305::-;16771:3;16790:20;16808:1;16790:20;:::i;:::-;16785:25;;16824:20;16842:1;16824:20;:::i;:::-;16819:25;;16978:1;16910:66;16906:74;16903:1;16900:81;16897:107;;;16984:18;;:::i;:::-;16897:107;17028:1;17025;17021:9;17014:16;;16731:305;;;;:::o;17042:332::-;17163:4;17201:2;17190:9;17186:18;17178:26;;17214:71;17282:1;17271:9;17267:17;17258:6;17214:71;:::i;:::-;17295:72;17363:2;17352:9;17348:18;17339:6;17295:72;:::i;:::-;17042:332;;;;;:::o;17380:137::-;17434:5;17465:6;17459:13;17450:22;;17481:30;17505:5;17481:30;:::i;:::-;17380:137;;;;:::o;17523:345::-;17590:6;17639:2;17627:9;17618:7;17614:23;17610:32;17607:119;;;17645:79;;:::i;:::-;17607:119;17765:1;17790:61;17843:7;17834:6;17823:9;17819:22;17790:61;:::i;:::-;17780:71;;17736:125;17523:345;;;;:::o;17874:223::-;18014:34;18010:1;18002:6;17998:14;17991:58;18083:6;18078:2;18070:6;18066:15;18059:31;17874:223;:::o;18103:366::-;18245:3;18266:67;18330:2;18325:3;18266:67;:::i;:::-;18259:74;;18342:93;18431:3;18342:93;:::i;:::-;18460:2;18455:3;18451:12;18444:19;;18103:366;;;:::o;18475:419::-;18641:4;18679:2;18668:9;18664:18;18656:26;;18728:9;18722:4;18718:20;18714:1;18703:9;18699:17;18692:47;18756:131;18882:4;18756:131;:::i;:::-;18748:139;;18475:419;;;:::o;18900:221::-;19040:34;19036:1;19028:6;19024:14;19017:58;19109:4;19104:2;19096:6;19092:15;19085:29;18900:221;:::o;19127:366::-;19269:3;19290:67;19354:2;19349:3;19290:67;:::i;:::-;19283:74;;19366:93;19455:3;19366:93;:::i;:::-;19484:2;19479:3;19475:12;19468:19;;19127:366;;;:::o;19499:419::-;19665:4;19703:2;19692:9;19688:18;19680:26;;19752:9;19746:4;19742:20;19738:1;19727:9;19723:17;19716:47;19780:131;19906:4;19780:131;:::i;:::-;19772:139;;19499:419;;;:::o;19924:224::-;20064:34;20060:1;20052:6;20048:14;20041:58;20133:7;20128:2;20120:6;20116:15;20109:32;19924:224;:::o;20154:366::-;20296:3;20317:67;20381:2;20376:3;20317:67;:::i;:::-;20310:74;;20393:93;20482:3;20393:93;:::i;:::-;20511:2;20506:3;20502:12;20495:19;;20154:366;;;:::o;20526:419::-;20692:4;20730:2;20719:9;20715:18;20707:26;;20779:9;20773:4;20769:20;20765:1;20754:9;20750:17;20743:47;20807:131;20933:4;20807:131;:::i;:::-;20799:139;;20526:419;;;:::o;20951:222::-;21091:34;21087:1;21079:6;21075:14;21068:58;21160:5;21155:2;21147:6;21143:15;21136:30;20951:222;:::o;21179:366::-;21321:3;21342:67;21406:2;21401:3;21342:67;:::i;:::-;21335:74;;21418:93;21507:3;21418:93;:::i;:::-;21536:2;21531:3;21527:12;21520:19;;21179:366;;;:::o;21551:419::-;21717:4;21755:2;21744:9;21740:18;21732:26;;21804:9;21798:4;21794:20;21790:1;21779:9;21775:17;21768:47;21832:131;21958:4;21832:131;:::i;:::-;21824:139;;21551:419;;;:::o;21976:228::-;22116:34;22112:1;22104:6;22100:14;22093:58;22185:11;22180:2;22172:6;22168:15;22161:36;21976:228;:::o;22210:366::-;22352:3;22373:67;22437:2;22432:3;22373:67;:::i;:::-;22366:74;;22449:93;22538:3;22449:93;:::i;:::-;22567:2;22562:3;22558:12;22551:19;;22210:366;;;:::o;22582:419::-;22748:4;22786:2;22775:9;22771:18;22763:26;;22835:9;22829:4;22825:20;22821:1;22810:9;22806:17;22799:47;22863:131;22989:4;22863:131;:::i;:::-;22855:139;;22582:419;;;:::o;23007:227::-;23147:34;23143:1;23135:6;23131:14;23124:58;23216:10;23211:2;23203:6;23199:15;23192:35;23007:227;:::o;23240:366::-;23382:3;23403:67;23467:2;23462:3;23403:67;:::i;:::-;23396:74;;23479:93;23568:3;23479:93;:::i;:::-;23597:2;23592:3;23588:12;23581:19;;23240:366;;;:::o;23612:419::-;23778:4;23816:2;23805:9;23801:18;23793:26;;23865:9;23859:4;23855:20;23851:1;23840:9;23836:17;23829:47;23893:131;24019:4;23893:131;:::i;:::-;23885:139;;23612:419;;;:::o;24037:191::-;24077:4;24097:20;24115:1;24097:20;:::i;:::-;24092:25;;24131:20;24149:1;24131:20;:::i;:::-;24126:25;;24170:1;24167;24164:8;24161:34;;;24175:18;;:::i;:::-;24161:34;24220:1;24217;24213:9;24205:17;;24037:191;;;;:::o;24234:229::-;24374:34;24370:1;24362:6;24358:14;24351:58;24443:12;24438:2;24430:6;24426:15;24419:37;24234:229;:::o;24469:366::-;24611:3;24632:67;24696:2;24691:3;24632:67;:::i;:::-;24625:74;;24708:93;24797:3;24708:93;:::i;:::-;24826:2;24821:3;24817:12;24810:19;;24469:366;;;:::o;24841:419::-;25007:4;25045:2;25034:9;25030:18;25022:26;;25094:9;25088:4;25084:20;25080:1;25069:9;25065:17;25058:47;25122:131;25248:4;25122:131;:::i;:::-;25114:139;;24841:419;;;:::o;25266:114::-;25333:6;25367:5;25361:12;25351:22;;25266:114;;;:::o;25386:184::-;25485:11;25519:6;25514:3;25507:19;25559:4;25554:3;25550:14;25535:29;;25386:184;;;;:::o;25576:132::-;25643:4;25666:3;25658:11;;25696:4;25691:3;25687:14;25679:22;;25576:132;;;:::o;25714:108::-;25791:24;25809:5;25791:24;:::i;:::-;25786:3;25779:37;25714:108;;:::o;25828:179::-;25897:10;25918:46;25960:3;25952:6;25918:46;:::i;:::-;25996:4;25991:3;25987:14;25973:28;;25828:179;;;;:::o;26013:113::-;26083:4;26115;26110:3;26106:14;26098:22;;26013:113;;;:::o;26162:732::-;26281:3;26310:54;26358:5;26310:54;:::i;:::-;26380:86;26459:6;26454:3;26380:86;:::i;:::-;26373:93;;26490:56;26540:5;26490:56;:::i;:::-;26569:7;26600:1;26585:284;26610:6;26607:1;26604:13;26585:284;;;26686:6;26680:13;26713:63;26772:3;26757:13;26713:63;:::i;:::-;26706:70;;26799:60;26852:6;26799:60;:::i;:::-;26789:70;;26645:224;26632:1;26629;26625:9;26620:14;;26585:284;;;26589:14;26885:3;26878:10;;26286:608;;;26162:732;;;;:::o;26900:831::-;27163:4;27201:3;27190:9;27186:19;27178:27;;27215:71;27283:1;27272:9;27268:17;27259:6;27215:71;:::i;:::-;27296:80;27372:2;27361:9;27357:18;27348:6;27296:80;:::i;:::-;27423:9;27417:4;27413:20;27408:2;27397:9;27393:18;27386:48;27451:108;27554:4;27545:6;27451:108;:::i;:::-;27443:116;;27569:72;27637:2;27626:9;27622:18;27613:6;27569:72;:::i;:::-;27651:73;27719:3;27708:9;27704:19;27695:6;27651:73;:::i;:::-;26900:831;;;;;;;;:::o;27737:348::-;27777:7;27800:20;27818:1;27800:20;:::i;:::-;27795:25;;27834:20;27852:1;27834:20;:::i;:::-;27829:25;;28022:1;27954:66;27950:74;27947:1;27944:81;27939:1;27932:9;27925:17;27921:105;27918:131;;;28029:18;;:::i;:::-;27918:131;28077:1;28074;28070:9;28059:20;;27737:348;;;;:::o;28091:180::-;28139:77;28136:1;28129:88;28236:4;28233:1;28226:15;28260:4;28257:1;28250:15;28277:185;28317:1;28334:20;28352:1;28334:20;:::i;:::-;28329:25;;28368:20;28386:1;28368:20;:::i;:::-;28363:25;;28407:1;28397:35;;28412:18;;:::i;:::-;28397:35;28454:1;28451;28447:9;28442:14;;28277:185;;;;:::o;28468:220::-;28608:34;28604:1;28596:6;28592:14;28585:58;28677:3;28672:2;28664:6;28660:15;28653:28;28468:220;:::o;28694:366::-;28836:3;28857:67;28921:2;28916:3;28857:67;:::i;:::-;28850:74;;28933:93;29022:3;28933:93;:::i;:::-;29051:2;29046:3;29042:12;29035:19;;28694:366;;;:::o;29066:419::-;29232:4;29270:2;29259:9;29255:18;29247:26;;29319:9;29313:4;29309:20;29305:1;29294:9;29290:17;29283:47;29347:131;29473:4;29347:131;:::i;:::-;29339:139;;29066:419;;;:::o;29491:177::-;29631:29;29627:1;29619:6;29615:14;29608:53;29491:177;:::o;29674:366::-;29816:3;29837:67;29901:2;29896:3;29837:67;:::i;:::-;29830:74;;29913:93;30002:3;29913:93;:::i;:::-;30031:2;30026:3;30022:12;30015:19;;29674:366;;;:::o;30046:419::-;30212:4;30250:2;30239:9;30235:18;30227:26;;30299:9;30293:4;30289:20;30285:1;30274:9;30270:17;30263:47;30327:131;30453:4;30327:131;:::i;:::-;30319:139;;30046:419;;;:::o

Swarm Source

ipfs://73cbcc14076c696a02a05168815734099daea84867c34954c474e5ff508e43b1
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.