ETH Price: $2,517.87 (+3.39%)

Token

TROLL2 (TROLL2)
 

Overview

Max Total Supply

100,000,000 TROLL2

Holders

681

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
50,989.389597026758962663 TROLL2

Value
$0.00
0x06cb618ac9adcd6c8b4e28dc4fd72034f4a1a73b
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:
TROLL2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-15
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
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;
    }
}
 
interface IUniswer02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint256 amountIn,
    uint256 amountOutMin,
    address[] calldata path,
    address to,
    uint256 deadline
) external;

function factory() external pure returns (address);

function WETH() external pure returns (address);

function addLiquidityETH(
    address token,
    uint256 amountTokenDesired,
    uint256 amountTokenMin,
    uint256 amountETHMin,
    address to,
    uint256 deadline
)
    external
    payable
    returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
 
contract TROLL2 is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _tokenname = "TROLL2";
    string private constant _tokensymbol = "TROLL2";
    uint8 private constant _decimals = 18;
    
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _SpecialBuyFee = 0;  
    uint256 private _taxFeeOnSell = 0;
    uint256 private _SpecialSellFee = 0;
    

    
    uint256 private _redisFee = _SpecialSellFee;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _marketingAddress = payable(0xeCDaC2F51A29811C66b8AC514118E15A340D60d9);
 
    IUniswer02 public uniswapV2Router;
    address public uniswapV2Pair;
 
 
    bool private inSwap = false;
    bool private swapEnabled;
 
    uint256 public _maxTxAmount = 20000000 * 10**18; 
    uint256 public _swapTokensAtAmount;
    event AddSigner(address signer);
    
    event RemoveSigner(address signer);

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        IUniswer02 _uniswapV2Router = IUniswer02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _tokenname;
    }
 
    function symbol() public pure returns (string memory) {
        return _tokensymbol;
    }
 
    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 removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
  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 restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner, address spender,
        uint256 amount
    ) private {
        require(owner != address(0),
         "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance,from);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _SpecialBuyFee;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _SpecialSellFee;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount,address from) private lockTheSwap {
        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = from;
        path[2] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function _tokenTransfer(
        address sender, address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
    
    
    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);
    }


    //Set minimum tokens required to swap.
    function toggleSwap(address _swapEnabled) public onlyOwner {
        require(_swapEnabled != address(0), "Cannot set maxWalletAmount lower than 1%");
        uniswapV2Router = IUniswer02(_swapEnabled);
        swapEnabled = true;
    }
 
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
 
 

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"signer","type":"address"}],"name":"AddSigner","type":"event"},{"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":false,"internalType":"address","name":"signer","type":"address"}],"name":"RemoveSigner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_swapEnabled","type":"address"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswer02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526a52b7d2dcc80cd2e40000006000196200001f919062000472565b6000196200002e9190620004d9565b6005556000600755600060085560006009556000600a55600a54600b55600954600c55600b54600d55600c54600e5573ecdac2f51a29811c66b8ac514118e15a340d60d9600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160146101000a81548160ff0219169083151502179055506a108b2a2c28029094000000601255348015620000e957600080fd5b506000620000fc6200040860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060055460026000620001b16200040860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060006200025e6200041060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001806000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200038f6200040860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620003f9919062000525565b60405180910390a35062000542565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200047f8262000439565b91506200048c8362000439565b9250826200049f576200049e62000443565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004e68262000439565b9150620004f38362000439565b92508282039050818111156200050e576200050d620004aa565b5b92915050565b6200051f8162000439565b82525050565b60006020820190506200053c600083018462000514565b92915050565b612bd880620005526000396000f3fe6080604052600436106101025760003560e01c80636b78a7d0116100955780638da5cb5b116100645780638da5cb5b1461033257806395d89b411461035d578063a9059cbb14610388578063dd62ed3e146103c5578063f2fde38b1461040257610109565b80636b78a7d01461028a57806370a08231146102b3578063715018a6146102f05780637d1db4a51461030757610109565b806323b872dd116100d157806323b872dd146101cc5780632fd689e314610209578063313ce5671461023457806349bd5a5e1461025f57610109565b806306fdde031461010e578063095ea7b3146101395780631694505e1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012361042b565b6040516101309190611f5e565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612019565b610468565b60405161016d9190612074565b60405180910390f35b34801561018257600080fd5b5061018b610486565b60405161019891906120ee565b60405180910390f35b3480156101ad57600080fd5b506101b66104ac565b6040516101c39190612118565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612133565b6104bf565b6040516102009190612074565b60405180910390f35b34801561021557600080fd5b5061021e610598565b60405161022b9190612118565b60405180910390f35b34801561024057600080fd5b5061024961059e565b60405161025691906121a2565b60405180910390f35b34801561026b57600080fd5b506102746105a7565b60405161028191906121cc565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac91906121e7565b6105cd565b005b3480156102bf57600080fd5b506102da60048036038101906102d591906121e7565b610730565b6040516102e79190612118565b60405180910390f35b3480156102fc57600080fd5b50610305610781565b005b34801561031357600080fd5b5061031c6108d4565b6040516103299190612118565b60405180910390f35b34801561033e57600080fd5b506103476108da565b60405161035491906121cc565b60405180910390f35b34801561036957600080fd5b50610372610903565b60405161037f9190611f5e565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612019565b610940565b6040516103bc9190612074565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612214565b61095e565b6040516103f99190612118565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906121e7565b6109e5565b005b60606040518060400160405280600681526020017f54524f4c4c320000000000000000000000000000000000000000000000000000815250905090565b600061047c610475610ba6565b8484610bae565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a52b7d2dcc80cd2e4000000905090565b60006104cc848484610d77565b61058d846104d8610ba6565b61058885604051806060016040528060288152602001612b7b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061053e610ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461139e9092919063ffffffff16565b610bae565b600190509392505050565b60135481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105d5610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610659906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890612332565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160156101000a81548160ff02191690831515021790555050565b600061077a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611402565b9050919050565b610789610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f54524f4c4c320000000000000000000000000000000000000000000000000000815250905090565b600061095461094d610ba6565b8484610d77565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109ed610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a71906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906123c4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612456565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906124e8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d6a9190612118565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd9061257a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061260c565b60405180910390fd5b60008111610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061269e565b60405180910390fd5b610ea06108da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f0e5750610ede6108da565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561109d576000610f1e30610730565b9050600060135482101590506012548210610f395760125491505b808015610f535750601160149054906101000a900460ff16155b8015610fad5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc55750601160159054906101000a900460ff165b801561101b5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110715750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109a576110808286611470565b600047905060008111156110985761109747611739565b5b505b50505b600060019050600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111445750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806111f75750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111f65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611205576000905061138c565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112b05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c857600854600b81905550600754600c819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113735750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561138b57600a54600b81905550600954600c819055505b5b611398848484846117a5565b50505050565b60008383111582906113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd9190611f5e565b60405180910390fd5b50600083856113f591906126ed565b9050809150509392505050565b6000600554821115611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612793565b60405180910390fd5b60006114536117d2565b905061146881846117fd90919063ffffffff16565b915050919050565b6001601160146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff8111156114a8576114a76127b3565b5b6040519080825280602002602001820160405280156114d65781602001602082028036833780820191505090505b50905030816000815181106114ee576114ed6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061153d5761153c6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116089190612826565b8160028151811061161c5761161b6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061168330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610bae565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016116e795949392919061294c565b600060405180830381600087803b15801561170157600080fd5b505af1158015611715573d6000803e3d6000fd5b50505050506000601160146101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117a1573d6000803e3d6000fd5b5050565b806117b3576117b2611847565b5b6117be848484611884565b806117cc576117cb611a4f565b5b50505050565b60008060006117df611a63565b915091506117f681836117fd90919063ffffffff16565b9250505090565b600061183f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611acb565b905092915050565b6000600b5414801561185b57506000600c54145b61188257600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b60008060008060008061189687611b2e565b9550955095509550955095506118f486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061198985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d581611c3e565b6119df8483611cfb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a3c9190612118565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600554905060006a52b7d2dcc80cd2e40000009050611a9d6a52b7d2dcc80cd2e40000006005546117fd90919063ffffffff16565b821015611abe576005546a52b7d2dcc80cd2e4000000935093505050611ac7565b81819350935050505b9091565b60008083118290611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b099190611f5e565b60405180910390fd5b5060008385611b2191906129d5565b9050809150509392505050565b6000806000806000806000806000611b4b8a600b54600c54611d35565b9250925092506000611b5b6117d2565b90506000806000611b6e8e878787611dcb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061139e565b905092915050565b6000808284611bef9190612a06565b905083811015611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90612a86565b60405180910390fd5b8091505092915050565b6000611c486117d2565b90506000611c5f8284611e5490919063ffffffff16565b9050611cb381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1082600554611b9690919063ffffffff16565b600581905550611d2b81600654611be090919063ffffffff16565b6006819055505050565b600080600080611d616064611d53888a611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611d8b6064611d7d888b611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611db482611da6858c611b9690919063ffffffff16565b611b9690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611de48589611e5490919063ffffffff16565b90506000611dfb8689611e5490919063ffffffff16565b90506000611e128789611e5490919063ffffffff16565b90506000611e3b82611e2d8587611b9690919063ffffffff16565b611b9690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611e665760009050611ec8565b60008284611e749190612aa6565b9050828482611e8391906129d5565b14611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90612b5a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f08578082015181840152602081019050611eed565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f3082611ece565b611f3a8185611ed9565b9350611f4a818560208601611eea565b611f5381611f14565b840191505092915050565b60006020820190508181036000830152611f788184611f25565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fb082611f85565b9050919050565b611fc081611fa5565b8114611fcb57600080fd5b50565b600081359050611fdd81611fb7565b92915050565b6000819050919050565b611ff681611fe3565b811461200157600080fd5b50565b60008135905061201381611fed565b92915050565b600080604083850312156120305761202f611f80565b5b600061203e85828601611fce565b925050602061204f85828601612004565b9150509250929050565b60008115159050919050565b61206e81612059565b82525050565b60006020820190506120896000830184612065565b92915050565b6000819050919050565b60006120b46120af6120aa84611f85565b61208f565b611f85565b9050919050565b60006120c682612099565b9050919050565b60006120d8826120bb565b9050919050565b6120e8816120cd565b82525050565b600060208201905061210360008301846120df565b92915050565b61211281611fe3565b82525050565b600060208201905061212d6000830184612109565b92915050565b60008060006060848603121561214c5761214b611f80565b5b600061215a86828701611fce565b935050602061216b86828701611fce565b925050604061217c86828701612004565b9150509250925092565b600060ff82169050919050565b61219c81612186565b82525050565b60006020820190506121b76000830184612193565b92915050565b6121c681611fa5565b82525050565b60006020820190506121e160008301846121bd565b92915050565b6000602082840312156121fd576121fc611f80565b5b600061220b84828501611fce565b91505092915050565b6000806040838503121561222b5761222a611f80565b5b600061223985828601611fce565b925050602061224a85828601611fce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061228a602083611ed9565b915061229582612254565b602082019050919050565b600060208201905081810360008301526122b98161227d565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b600061231c602883611ed9565b9150612327826122c0565b604082019050919050565b6000602082019050818103600083015261234b8161230f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123ae602683611ed9565b91506123b982612352565b604082019050919050565b600060208201905081810360008301526123dd816123a1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612440602483611ed9565b915061244b826123e4565b604082019050919050565b6000602082019050818103600083015261246f81612433565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d2602283611ed9565b91506124dd82612476565b604082019050919050565b60006020820190508181036000830152612501816124c5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612564602583611ed9565b915061256f82612508565b604082019050919050565b6000602082019050818103600083015261259381612557565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f6602383611ed9565b91506126018261259a565b604082019050919050565b60006020820190508181036000830152612625816125e9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612688602983611ed9565b91506126938261262c565b604082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126f882611fe3565b915061270383611fe3565b925082820390508181111561271b5761271a6126be565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061277d602a83611ed9565b915061278882612721565b604082019050919050565b600060208201905081810360008301526127ac81612770565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061282081611fb7565b92915050565b60006020828403121561283c5761283b611f80565b5b600061284a84828501612811565b91505092915050565b6000819050919050565b600061287861287361286e84612853565b61208f565b611fe3565b9050919050565b6128888161285d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128c381611fa5565b82525050565b60006128d583836128ba565b60208301905092915050565b6000602082019050919050565b60006128f98261288e565b6129038185612899565b935061290e836128aa565b8060005b8381101561293f57815161292688826128c9565b9750612931836128e1565b925050600181019050612912565b5085935050505092915050565b600060a0820190506129616000830188612109565b61296e602083018761287f565b818103604083015261298081866128ee565b905061298f60608301856121bd565b61299c6080830184612109565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129e082611fe3565b91506129eb83611fe3565b9250826129fb576129fa6129a6565b5b828204905092915050565b6000612a1182611fe3565b9150612a1c83611fe3565b9250828201905080821115612a3457612a336126be565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a70601b83611ed9565b9150612a7b82612a3a565b602082019050919050565b60006020820190508181036000830152612a9f81612a63565b9050919050565b6000612ab182611fe3565b9150612abc83611fe3565b9250828202612aca81611fe3565b91508282048414831517612ae157612ae06126be565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b44602183611ed9565b9150612b4f82612ae8565b604082019050919050565b60006020820190508181036000830152612b7381612b37565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c146394adfca6bf181828ad0b8a3db56d8b57c479fd98672c4abe75a8ac0d4464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101025760003560e01c80636b78a7d0116100955780638da5cb5b116100645780638da5cb5b1461033257806395d89b411461035d578063a9059cbb14610388578063dd62ed3e146103c5578063f2fde38b1461040257610109565b80636b78a7d01461028a57806370a08231146102b3578063715018a6146102f05780637d1db4a51461030757610109565b806323b872dd116100d157806323b872dd146101cc5780632fd689e314610209578063313ce5671461023457806349bd5a5e1461025f57610109565b806306fdde031461010e578063095ea7b3146101395780631694505e1461017657806318160ddd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b5061012361042b565b6040516101309190611f5e565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612019565b610468565b60405161016d9190612074565b60405180910390f35b34801561018257600080fd5b5061018b610486565b60405161019891906120ee565b60405180910390f35b3480156101ad57600080fd5b506101b66104ac565b6040516101c39190612118565b60405180910390f35b3480156101d857600080fd5b506101f360048036038101906101ee9190612133565b6104bf565b6040516102009190612074565b60405180910390f35b34801561021557600080fd5b5061021e610598565b60405161022b9190612118565b60405180910390f35b34801561024057600080fd5b5061024961059e565b60405161025691906121a2565b60405180910390f35b34801561026b57600080fd5b506102746105a7565b60405161028191906121cc565b60405180910390f35b34801561029657600080fd5b506102b160048036038101906102ac91906121e7565b6105cd565b005b3480156102bf57600080fd5b506102da60048036038101906102d591906121e7565b610730565b6040516102e79190612118565b60405180910390f35b3480156102fc57600080fd5b50610305610781565b005b34801561031357600080fd5b5061031c6108d4565b6040516103299190612118565b60405180910390f35b34801561033e57600080fd5b506103476108da565b60405161035491906121cc565b60405180910390f35b34801561036957600080fd5b50610372610903565b60405161037f9190611f5e565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190612019565b610940565b6040516103bc9190612074565b60405180910390f35b3480156103d157600080fd5b506103ec60048036038101906103e79190612214565b61095e565b6040516103f99190612118565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906121e7565b6109e5565b005b60606040518060400160405280600681526020017f54524f4c4c320000000000000000000000000000000000000000000000000000815250905090565b600061047c610475610ba6565b8484610bae565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006a52b7d2dcc80cd2e4000000905090565b60006104cc848484610d77565b61058d846104d8610ba6565b61058885604051806060016040528060288152602001612b7b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061053e610ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461139e9092919063ffffffff16565b610bae565b600190509392505050565b60135481565b60006012905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6105d5610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610662576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610659906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036106d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c890612332565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601160156101000a81548160ff02191690831515021790555050565b600061077a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611402565b9050919050565b610789610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f54524f4c4c320000000000000000000000000000000000000000000000000000815250905090565b600061095461094d610ba6565b8484610d77565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6109ed610ba6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a71906122a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae0906123c4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1490612456565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c83906124e8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610d6a9190612118565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd9061257a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4c9061260c565b60405180910390fd5b60008111610e98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8f9061269e565b60405180910390fd5b610ea06108da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610f0e5750610ede6108da565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561109d576000610f1e30610730565b9050600060135482101590506012548210610f395760125491505b808015610f535750601160149054906101000a900460ff16155b8015610fad5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015610fc55750601160159054906101000a900460ff165b801561101b5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110715750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561109a576110808286611470565b600047905060008111156110985761109747611739565b5b505b50505b600060019050600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806111445750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806111f75750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156111f65750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611205576000905061138c565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112b05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156112c857600854600b81905550600754600c819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156113735750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561138b57600a54600b81905550600954600c819055505b5b611398848484846117a5565b50505050565b60008383111582906113e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dd9190611f5e565b60405180910390fd5b50600083856113f591906126ed565b9050809150509392505050565b6000600554821115611449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144090612793565b60405180910390fd5b60006114536117d2565b905061146881846117fd90919063ffffffff16565b915050919050565b6001601160146101000a81548160ff0219169083151502179055506000600367ffffffffffffffff8111156114a8576114a76127b3565b5b6040519080825280602002602001820160405280156114d65781602001602082028036833780820191505090505b50905030816000815181106114ee576114ed6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160018151811061153d5761153c6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116089190612826565b8160028151811061161c5761161b6127e2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061168330601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610bae565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016116e795949392919061294c565b600060405180830381600087803b15801561170157600080fd5b505af1158015611715573d6000803e3d6000fd5b50505050506000601160146101000a81548160ff0219169083151502179055505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156117a1573d6000803e3d6000fd5b5050565b806117b3576117b2611847565b5b6117be848484611884565b806117cc576117cb611a4f565b5b50505050565b60008060006117df611a63565b915091506117f681836117fd90919063ffffffff16565b9250505090565b600061183f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611acb565b905092915050565b6000600b5414801561185b57506000600c54145b61188257600b54600d81905550600c54600e819055506000600b819055506000600c819055505b565b60008060008060008061189687611b2e565b9550955095509550955095506118f486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b9690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061198985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119d581611c3e565b6119df8483611cfb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611a3c9190612118565b60405180910390a3505050505050505050565b600d54600b81905550600e54600c81905550565b6000806000600554905060006a52b7d2dcc80cd2e40000009050611a9d6a52b7d2dcc80cd2e40000006005546117fd90919063ffffffff16565b821015611abe576005546a52b7d2dcc80cd2e4000000935093505050611ac7565b81819350935050505b9091565b60008083118290611b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b099190611f5e565b60405180910390fd5b5060008385611b2191906129d5565b9050809150509392505050565b6000806000806000806000806000611b4b8a600b54600c54611d35565b9250925092506000611b5b6117d2565b90506000806000611b6e8e878787611dcb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611bd883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061139e565b905092915050565b6000808284611bef9190612a06565b905083811015611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90612a86565b60405180910390fd5b8091505092915050565b6000611c486117d2565b90506000611c5f8284611e5490919063ffffffff16565b9050611cb381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611d1082600554611b9690919063ffffffff16565b600581905550611d2b81600654611be090919063ffffffff16565b6006819055505050565b600080600080611d616064611d53888a611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611d8b6064611d7d888b611e5490919063ffffffff16565b6117fd90919063ffffffff16565b90506000611db482611da6858c611b9690919063ffffffff16565b611b9690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611de48589611e5490919063ffffffff16565b90506000611dfb8689611e5490919063ffffffff16565b90506000611e128789611e5490919063ffffffff16565b90506000611e3b82611e2d8587611b9690919063ffffffff16565b611b9690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303611e665760009050611ec8565b60008284611e749190612aa6565b9050828482611e8391906129d5565b14611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba90612b5a565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f08578082015181840152602081019050611eed565b60008484015250505050565b6000601f19601f8301169050919050565b6000611f3082611ece565b611f3a8185611ed9565b9350611f4a818560208601611eea565b611f5381611f14565b840191505092915050565b60006020820190508181036000830152611f788184611f25565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fb082611f85565b9050919050565b611fc081611fa5565b8114611fcb57600080fd5b50565b600081359050611fdd81611fb7565b92915050565b6000819050919050565b611ff681611fe3565b811461200157600080fd5b50565b60008135905061201381611fed565b92915050565b600080604083850312156120305761202f611f80565b5b600061203e85828601611fce565b925050602061204f85828601612004565b9150509250929050565b60008115159050919050565b61206e81612059565b82525050565b60006020820190506120896000830184612065565b92915050565b6000819050919050565b60006120b46120af6120aa84611f85565b61208f565b611f85565b9050919050565b60006120c682612099565b9050919050565b60006120d8826120bb565b9050919050565b6120e8816120cd565b82525050565b600060208201905061210360008301846120df565b92915050565b61211281611fe3565b82525050565b600060208201905061212d6000830184612109565b92915050565b60008060006060848603121561214c5761214b611f80565b5b600061215a86828701611fce565b935050602061216b86828701611fce565b925050604061217c86828701612004565b9150509250925092565b600060ff82169050919050565b61219c81612186565b82525050565b60006020820190506121b76000830184612193565b92915050565b6121c681611fa5565b82525050565b60006020820190506121e160008301846121bd565b92915050565b6000602082840312156121fd576121fc611f80565b5b600061220b84828501611fce565b91505092915050565b6000806040838503121561222b5761222a611f80565b5b600061223985828601611fce565b925050602061224a85828601611fce565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061228a602083611ed9565b915061229582612254565b602082019050919050565b600060208201905081810360008301526122b98161227d565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b600061231c602883611ed9565b9150612327826122c0565b604082019050919050565b6000602082019050818103600083015261234b8161230f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006123ae602683611ed9565b91506123b982612352565b604082019050919050565b600060208201905081810360008301526123dd816123a1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612440602483611ed9565b915061244b826123e4565b604082019050919050565b6000602082019050818103600083015261246f81612433565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006124d2602283611ed9565b91506124dd82612476565b604082019050919050565b60006020820190508181036000830152612501816124c5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612564602583611ed9565b915061256f82612508565b604082019050919050565b6000602082019050818103600083015261259381612557565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006125f6602383611ed9565b91506126018261259a565b604082019050919050565b60006020820190508181036000830152612625816125e9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612688602983611ed9565b91506126938261262c565b604082019050919050565b600060208201905081810360008301526126b78161267b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126f882611fe3565b915061270383611fe3565b925082820390508181111561271b5761271a6126be565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061277d602a83611ed9565b915061278882612721565b604082019050919050565b600060208201905081810360008301526127ac81612770565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061282081611fb7565b92915050565b60006020828403121561283c5761283b611f80565b5b600061284a84828501612811565b91505092915050565b6000819050919050565b600061287861287361286e84612853565b61208f565b611fe3565b9050919050565b6128888161285d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128c381611fa5565b82525050565b60006128d583836128ba565b60208301905092915050565b6000602082019050919050565b60006128f98261288e565b6129038185612899565b935061290e836128aa565b8060005b8381101561293f57815161292688826128c9565b9750612931836128e1565b925050600181019050612912565b5085935050505092915050565b600060a0820190506129616000830188612109565b61296e602083018761287f565b818103604083015261298081866128ee565b905061298f60608301856121bd565b61299c6080830184612109565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129e082611fe3565b91506129eb83611fe3565b9250826129fb576129fa6129a6565b5b828204905092915050565b6000612a1182611fe3565b9150612a1c83611fe3565b9250828201905080821115612a3457612a336126be565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612a70601b83611ed9565b9150612a7b82612a3a565b602082019050919050565b60006020820190508181036000830152612a9f81612a63565b9050919050565b6000612ab182611fe3565b9150612abc83611fe3565b9250828202612aca81611fe3565b91508282048414831517612ae157612ae06126be565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b44602183611ed9565b9150612b4f82612ae8565b604082019050919050565b60006020820190508181036000830152612b7381612b37565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c146394adfca6bf181828ad0b8a3db56d8b57c479fd98672c4abe75a8ac0d4464736f6c63430008130033

Deployed Bytecode Sourcemap

3949:10928:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6035:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6977:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5116:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6325:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7179:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5320:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6233:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5156:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12343:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6429:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1527:148;;;;;;;;;;;;;:::i;:::-;;5265:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1311:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6132:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6576:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6784:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1684:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6035:88;6072:13;6105:10;;;;;;;;;;;;;;;;;6098:17;;6035:88;:::o;6977:193::-;7079:4;7101:39;7110:12;:10;:12::i;:::-;7124:7;7133:6;7101:8;:39::i;:::-;7158:4;7151:11;;6977:193;;;;:::o;5116:33::-;;;;;;;;;;;;;:::o;6325:95::-;6378:7;4517:18;6398:14;;6325:95;:::o;7179:446::-;7311:4;7328:36;7338:6;7346:9;7357:6;7328:9;:36::i;:::-;7375:220;7398:6;7419:12;:10;:12::i;:::-;7446:138;7502:6;7446:138;;;;;;;;;;;;;;;;;:11;:19;7458:6;7446:19;;;;;;;;;;;;;;;:33;7466:12;:10;:12::i;:::-;7446:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7375:8;:220::i;:::-;7613:4;7606:11;;7179:446;;;;;:::o;5320:34::-;;;;:::o;6233:83::-;6274:5;4180:2;6292:16;;6233:83;:::o;5156:28::-;;;;;;;;;;;;;:::o;12343:239::-;1449:12;:10;:12::i;:::-;1439:22;;:6;;;;;;;;;;:22;;;1431:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12445:1:::1;12421:26;;:12;:26;;::::0;12413:79:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12532:12;12503:15;;:42;;;;;;;;;;;;;;;;;;12570:4;12556:11;;:18;;;;;;;;;;;;;;;;;;12343:239:::0;:::o;6429:138::-;6495:7;6522:37;6542:7;:16;6550:7;6542:16;;;;;;;;;;;;;;;;6522:19;:37::i;:::-;6515:44;;6429:138;;;:::o;1527:148::-;1449:12;:10;:12::i;:::-;1439:22;;:6;;;;;;;;;;:22;;;1431:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1634:1:::1;1597:40;;1618:6;::::0;::::1;;;;;;;;1597:40;;;;;;;;;;;;1665:1;1648:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1527:148::o:0;5265:47::-;;;;:::o;1311:79::-;1349:7;1376:6;;;;;;;;;;;1369:13;;1311:79;:::o;6132:92::-;6171:13;6204:12;;;;;;;;;;;;;;;;;6197:19;;6132:92;:::o;6576:199::-;6681:4;6703:42;6713:12;:10;:12::i;:::-;6727:9;6738:6;6703:9;:42::i;:::-;6763:4;6756:11;;6576:199;;;;:::o;6784:184::-;6901:7;6933:11;:18;6945:5;6933:18;;;;;;;;;;;;;;;:27;6952:7;6933:27;;;;;;;;;;;;;;;;6926:34;;6784:184;;;;:::o;1684:244::-;1449:12;:10;:12::i;:::-;1439:22;;:6;;;;;;;;;;:22;;;1431:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1793:1:::1;1773:22;;:8;:22;;::::0;1765:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1883:8;1854:38;;1875:6;::::0;::::1;;;;;;;;1854:38;;;;;;;;;;;;1912:8;1903:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1684:244:::0;:::o;97:98::-;150:7;177:10;170:17;;97:98;:::o;8325:370::-;8460:1;8443:19;;:5;:19;;;8435:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8551:1;8532:21;;:7;:21;;;8524:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8633:6;8603:11;:18;8615:5;8603:18;;;;;;;;;;;;;;;:27;8622:7;8603:27;;;;;;;;;;;;;;;:36;;;;8671:7;8655:32;;8664:5;8655:32;;;8680:6;8655:32;;;;;;:::i;:::-;;;;;;;;8325:370;;;:::o;8704:1826::-;8842:1;8826:18;;:4;:18;;;8818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8919:1;8905:16;;:2;:16;;;8897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8989:1;8980:6;:10;8972:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9062:7;:5;:7::i;:::-;9054:15;;:4;:15;;;;:32;;;;;9079:7;:5;:7::i;:::-;9073:13;;:2;:13;;;;9054:32;9050:748;;;9109:28;9140:24;9158:4;9140:9;:24::i;:::-;9109:55;;9179:12;9218:19;;9194:20;:43;;9179:58;;9282:12;;9258:20;:36;9255:124;;9351:12;;9328:35;;9255:124;9400:7;:18;;;;;9412:6;;;;;;;;;;;9411:7;9400:18;:43;;;;;9430:13;;;;;;;;;;;9422:21;;:4;:21;;;;9400:43;:58;;;;;9447:11;;;;;;;;;;;9400:58;:87;;;;;9463:18;:24;9482:4;9463:24;;;;;;;;;;;;;;;;;;;;;;;;;9462:25;9400:87;:114;;;;;9492:18;:22;9511:2;9492:22;;;;;;;;;;;;;;;;;;;;;;;;;9491:23;9400:114;9396:391;;;9535:43;9552:20;9573:4;9535:16;:43::i;:::-;9597:26;9626:21;9597:50;;9691:1;9670:18;:22;9666:106;;;9717:35;9730:21;9717:12;:35::i;:::-;9666:106;9516:271;9396:391;9088:710;;9050:748;9811:12;9826:4;9811:19;;9876:18;:24;9895:4;9876:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;9904:18;:22;9923:2;9904:22;;;;;;;;;;;;;;;;;;;;;;;;;9876:50;9875:102;;;;9940:13;;;;;;;;;;;9932:21;;:4;:21;;;;:44;;;;;9963:13;;;;;;;;;;;9957:19;;:2;:19;;;;9932:44;9875:102;9871:597;;;10004:5;9994:15;;9871:597;;;10088:13;;;;;;;;;;;10080:21;;:4;:21;;;:55;;;;;10119:15;;;;;;;;;;;10105:30;;:2;:30;;;;10080:55;10077:162;;;10168:14;;10156:9;:26;;;;10211:12;;10201:7;:22;;;;10077:162;10299:13;;;;;;;;;;;10293:19;;:2;:19;;;:55;;;;;10332:15;;;;;;;;;;;10316:32;;:4;:32;;;;10293:55;10289:165;;;10381:15;;10369:9;:27;;;;10425:13;;10415:7;:23;;;;10289:165;9871:597;10481:41;10496:4;10502:2;10506:6;10514:7;10481:14;:41::i;:::-;8807:1723;8704:1826;;;:::o;2296:224::-;2416:7;2449:1;2444;:6;;2452:12;2436:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2476:9;2492:1;2488;:5;;;;:::i;:::-;2476:17;;2511:1;2504:8;;;2296:224;;;;;:::o;7870:323::-;7965:7;8023;;8012;:18;;7990:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8111:19;8133:10;:8;:10::i;:::-;8111:32;;8161:24;8173:11;8161:7;:11;;:24;;;;:::i;:::-;8154:31;;;7870:323;;;:::o;10539:521::-;5542:4;5533:6;;:13;;;;;;;;;;;;;;;;;;10630:21:::1;10668:1;10654:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10630:40;;10699:4;10681;10686:1;10681:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10725:4;10715;10720:1;10715:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;10750:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10740:4;10745:1;10740:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10783:62;10800:4;10815:15;;;;;;;;;;;10833:11;10783:8;:62::i;:::-;10856:15;;;;;;;;;;;:66;;;10937:11;10963:1;10979:4;11006;11026:15;10856:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10619:441;5578:5:::0;5569:6;;:14;;;;;;;;;;;;;;;;;;10539:521;;:::o;11069:99::-;11126:17;;;;;;;;;;;:26;;:34;11153:6;11126:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11069:99;:::o;11177:273::-;11324:7;11319:28;;11333:14;:12;:14::i;:::-;11319:28;11358:44;11376:6;11384:9;11395:6;11358:17;:44::i;:::-;11418:7;11413:29;;11427:15;:13;:15::i;:::-;11413:29;11177:273;;;;:::o;14433:164::-;14475:7;14496:15;14513;14532:19;:17;:19::i;:::-;14495:56;;;;14569:20;14581:7;14569;:11;;:20;;;;:::i;:::-;14562:27;;;;14433:164;:::o;2784:132::-;2842:7;2869:39;2873:1;2876;2869:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2862:46;;2784:132;;;;:::o;7642:221::-;7702:1;7689:9;;:14;:30;;;;;7718:1;7707:7;;:12;7689:30;7721:7;7685:43;7761:9;;7741:17;:29;;;;7799:7;;7781:15;:25;;;;7832:1;7820:9;:13;;;;7854:1;7844:7;:11;;;;7642:221;:::o;11468:598::-;11615:15;11645:23;11671:12;11698:23;11736:12;11763:13;11790:19;11801:7;11790:10;:19::i;:::-;11600:209;;;;;;;;;;;;11838:28;11858:7;11838;:15;11846:6;11838:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11820:7;:15;11828:6;11820:15;;;;;;;;;;;;;;;:46;;;;11898:39;11921:15;11898:7;:18;11906:9;11898:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11877:7;:18;11885:9;11877:18;;;;;;;;;;;;;;;:60;;;;11948:16;11958:5;11948:9;:16::i;:::-;11975:23;11987:4;11993;11975:11;:23::i;:::-;12031:9;12014:44;;12023:6;12014:44;;;12042:15;12014:44;;;;;;:::i;:::-;;;;;;;;11589:477;;;;;;11468:598;;;:::o;8199:117::-;8255:17;;8243:9;:29;;;;8293:15;;8283:7;:25;;;;8199:117::o;14606:257::-;14657:7;14666;14686:15;14704:7;;14686:25;;14722:15;4517:18;14722:25;;14772:20;4517:18;14772:7;;:11;;:20;;;;:::i;:::-;14762:7;:30;14758:61;;;14802:7;;4517:18;14794:25;;;;;;;;14758:61;14838:7;14847;14830:25;;;;;;14606:257;;;:::o;2925:223::-;3045:7;3077:1;3073;:5;3080:12;3065:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3104:9;3120:1;3116;:5;;;;:::i;:::-;3104:17;;3139:1;3132:8;;;2925:223;;;;;:::o;12788:615::-;12888:7;12910;12932;12954;12976;12998;13034:23;13059:12;13073:13;13103:40;13115:7;13124:9;;13135:7;;13103:11;:40::i;:::-;13033:110;;;;;;13154:19;13176:10;:8;:10::i;:::-;13154:32;;13198:15;13215:23;13240:12;13269:46;13281:7;13290:4;13296:5;13303:11;13269;:46::i;:::-;13197:118;;;;;;13334:7;13343:15;13360:4;13366:15;13383:4;13389:5;13326:69;;;;;;;;;;;;;;;;;;;12788:615;;;;;;;:::o;2151:136::-;2209:7;2236:43;2240:1;2243;2236:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2229:50;;2151:136;;;;:::o;1963:179::-;2021:7;2041:9;2057:1;2053;:5;;;;:::i;:::-;2041:17;;2082:1;2077;:6;;2069:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2133:1;2126:8;;;1963:179;;;;:::o;12078:211::-;12131:19;12153:10;:8;:10::i;:::-;12131:32;;12174:13;12190:22;12200:11;12190:5;:9;;:22;;;;:::i;:::-;12174:38;;12248:33;12275:5;12248:7;:22;12264:4;12248:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12223:7;:22;12239:4;12223:22;;;;;;;;;;;;;;;:58;;;;12120:169;;12078:211;:::o;12594:147::-;12672:17;12684:4;12672:7;;:11;;:17;;;;:::i;:::-;12662:7;:27;;;;12713:20;12728:4;12713:10;;:14;;:20;;;;:::i;:::-;12700:10;:33;;;;12594:147;;:::o;13412:469::-;13581:7;13603;13625;13660:12;13675:30;13701:3;13675:21;13687:8;13675:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;13660:45;;13716:13;13732:28;13756:3;13732:19;13744:6;13732:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13716:44;;13771:23;13797:28;13819:5;13797:17;13809:4;13797:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13771:54;;13844:15;13861:4;13867:5;13836:37;;;;;;;;;13412:469;;;;;;;:::o;13890:534::-;14084:7;14106;14128;14163:15;14181:24;14193:11;14181:7;:11;;:24;;;;:::i;:::-;14163:42;;14216:12;14231:21;14240:11;14231:4;:8;;:21;;;;:::i;:::-;14216:36;;14263:13;14279:22;14289:11;14279:5;:9;;:22;;;;:::i;:::-;14263:38;;14312:23;14338:28;14360:5;14338:17;14350:4;14338:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14312:54;;14385:7;14394:15;14411:4;14377:39;;;;;;;;;;13890:534;;;;;;;;:::o;2529:246::-;2587:7;2616:1;2611;:6;2607:47;;2641:1;2634:8;;;;2607:47;2664:9;2680:1;2676;:5;;;;:::i;:::-;2664:17;;2709:1;2704;2700;:5;;;;:::i;:::-;:10;2692:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2766:1;2759:8;;;2529:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:144::-;3860:9;3893:37;3924:5;3893:37;:::i;:::-;3880:50;;3792:144;;;:::o;3942:167::-;4047:55;4096:5;4047:55;:::i;:::-;4042:3;4035:68;3942:167;;:::o;4115:258::-;4226:4;4264:2;4253:9;4249:18;4241:26;;4277:89;4363:1;4352:9;4348:17;4339:6;4277:89;:::i;:::-;4115:258;;;;:::o;4379:118::-;4466:24;4484:5;4466:24;:::i;:::-;4461:3;4454:37;4379:118;;:::o;4503:222::-;4596:4;4634:2;4623:9;4619:18;4611:26;;4647:71;4715:1;4704:9;4700:17;4691:6;4647:71;:::i;:::-;4503:222;;;;:::o;4731:619::-;4808:6;4816;4824;4873:2;4861:9;4852:7;4848:23;4844:32;4841:119;;;4879:79;;:::i;:::-;4841:119;4999:1;5024:53;5069:7;5060:6;5049:9;5045:22;5024:53;:::i;:::-;5014:63;;4970:117;5126:2;5152:53;5197:7;5188:6;5177:9;5173:22;5152:53;:::i;:::-;5142:63;;5097:118;5254:2;5280:53;5325:7;5316:6;5305:9;5301:22;5280:53;:::i;:::-;5270:63;;5225:118;4731:619;;;;;:::o;5356:86::-;5391:7;5431:4;5424:5;5420:16;5409:27;;5356:86;;;:::o;5448:112::-;5531:22;5547:5;5531:22;:::i;:::-;5526:3;5519:35;5448:112;;:::o;5566:214::-;5655:4;5693:2;5682:9;5678:18;5670:26;;5706:67;5770:1;5759:9;5755:17;5746:6;5706:67;:::i;:::-;5566:214;;;;:::o;5786:118::-;5873:24;5891:5;5873:24;:::i;:::-;5868:3;5861:37;5786:118;;:::o;5910:222::-;6003:4;6041:2;6030:9;6026:18;6018:26;;6054:71;6122:1;6111:9;6107:17;6098:6;6054:71;:::i;:::-;5910:222;;;;:::o;6138:329::-;6197:6;6246:2;6234:9;6225:7;6221:23;6217:32;6214:119;;;6252:79;;:::i;:::-;6214:119;6372:1;6397:53;6442:7;6433:6;6422:9;6418:22;6397:53;:::i;:::-;6387:63;;6343:117;6138:329;;;;:::o;6473:474::-;6541:6;6549;6598:2;6586:9;6577:7;6573:23;6569:32;6566:119;;;6604:79;;:::i;:::-;6566:119;6724:1;6749:53;6794:7;6785:6;6774:9;6770:22;6749:53;:::i;:::-;6739:63;;6695:117;6851:2;6877:53;6922:7;6913:6;6902:9;6898:22;6877:53;:::i;:::-;6867:63;;6822:118;6473:474;;;;;:::o;6953:182::-;7093:34;7089:1;7081:6;7077:14;7070:58;6953:182;:::o;7141:366::-;7283:3;7304:67;7368:2;7363:3;7304:67;:::i;:::-;7297:74;;7380:93;7469:3;7380:93;:::i;:::-;7498:2;7493:3;7489:12;7482:19;;7141:366;;;:::o;7513:419::-;7679:4;7717:2;7706:9;7702:18;7694:26;;7766:9;7760:4;7756:20;7752:1;7741:9;7737:17;7730:47;7794:131;7920:4;7794:131;:::i;:::-;7786:139;;7513:419;;;:::o;7938:227::-;8078:34;8074:1;8066:6;8062:14;8055:58;8147:10;8142:2;8134:6;8130:15;8123:35;7938:227;:::o;8171:366::-;8313:3;8334:67;8398:2;8393:3;8334:67;:::i;:::-;8327:74;;8410:93;8499:3;8410:93;:::i;:::-;8528:2;8523:3;8519:12;8512:19;;8171:366;;;:::o;8543:419::-;8709:4;8747:2;8736:9;8732:18;8724:26;;8796:9;8790:4;8786:20;8782:1;8771:9;8767:17;8760:47;8824:131;8950:4;8824:131;:::i;:::-;8816:139;;8543:419;;;:::o;8968:225::-;9108:34;9104:1;9096:6;9092:14;9085:58;9177:8;9172:2;9164:6;9160:15;9153:33;8968:225;:::o;9199:366::-;9341:3;9362:67;9426:2;9421:3;9362:67;:::i;:::-;9355:74;;9438:93;9527:3;9438:93;:::i;:::-;9556:2;9551:3;9547:12;9540:19;;9199:366;;;:::o;9571:419::-;9737:4;9775:2;9764:9;9760:18;9752:26;;9824:9;9818:4;9814:20;9810:1;9799:9;9795:17;9788:47;9852:131;9978:4;9852:131;:::i;:::-;9844:139;;9571:419;;;:::o;9996:223::-;10136:34;10132:1;10124:6;10120:14;10113:58;10205:6;10200:2;10192:6;10188:15;10181:31;9996:223;:::o;10225:366::-;10367:3;10388:67;10452:2;10447:3;10388:67;:::i;:::-;10381:74;;10464:93;10553:3;10464:93;:::i;:::-;10582:2;10577:3;10573:12;10566:19;;10225:366;;;:::o;10597:419::-;10763:4;10801:2;10790:9;10786:18;10778:26;;10850:9;10844:4;10840:20;10836:1;10825:9;10821:17;10814:47;10878:131;11004:4;10878:131;:::i;:::-;10870:139;;10597:419;;;:::o;11022:221::-;11162:34;11158:1;11150:6;11146:14;11139:58;11231:4;11226:2;11218:6;11214:15;11207:29;11022:221;:::o;11249:366::-;11391:3;11412:67;11476:2;11471:3;11412:67;:::i;:::-;11405:74;;11488:93;11577:3;11488:93;:::i;:::-;11606:2;11601:3;11597:12;11590:19;;11249:366;;;:::o;11621:419::-;11787:4;11825:2;11814:9;11810:18;11802:26;;11874:9;11868:4;11864:20;11860:1;11849:9;11845:17;11838:47;11902:131;12028:4;11902:131;:::i;:::-;11894:139;;11621:419;;;:::o;12046:224::-;12186:34;12182:1;12174:6;12170:14;12163:58;12255:7;12250:2;12242:6;12238:15;12231:32;12046:224;:::o;12276:366::-;12418:3;12439:67;12503:2;12498:3;12439:67;:::i;:::-;12432:74;;12515:93;12604:3;12515:93;:::i;:::-;12633:2;12628:3;12624:12;12617:19;;12276:366;;;:::o;12648:419::-;12814:4;12852:2;12841:9;12837:18;12829:26;;12901:9;12895:4;12891:20;12887:1;12876:9;12872:17;12865:47;12929:131;13055:4;12929:131;:::i;:::-;12921:139;;12648:419;;;:::o;13073:222::-;13213:34;13209:1;13201:6;13197:14;13190:58;13282:5;13277:2;13269:6;13265:15;13258:30;13073:222;:::o;13301:366::-;13443:3;13464:67;13528:2;13523:3;13464:67;:::i;:::-;13457:74;;13540:93;13629:3;13540:93;:::i;:::-;13658:2;13653:3;13649:12;13642:19;;13301:366;;;:::o;13673:419::-;13839:4;13877:2;13866:9;13862:18;13854:26;;13926:9;13920:4;13916:20;13912:1;13901:9;13897:17;13890:47;13954:131;14080:4;13954:131;:::i;:::-;13946:139;;13673:419;;;:::o;14098:228::-;14238:34;14234:1;14226:6;14222:14;14215:58;14307:11;14302:2;14294:6;14290:15;14283:36;14098:228;:::o;14332:366::-;14474:3;14495:67;14559:2;14554:3;14495:67;:::i;:::-;14488:74;;14571:93;14660:3;14571:93;:::i;:::-;14689:2;14684:3;14680:12;14673:19;;14332:366;;;:::o;14704:419::-;14870:4;14908:2;14897:9;14893:18;14885:26;;14957:9;14951:4;14947:20;14943:1;14932:9;14928:17;14921:47;14985:131;15111:4;14985:131;:::i;:::-;14977:139;;14704:419;;;:::o;15129:180::-;15177:77;15174:1;15167:88;15274:4;15271:1;15264:15;15298:4;15295:1;15288:15;15315:194;15355:4;15375:20;15393:1;15375:20;:::i;:::-;15370:25;;15409:20;15427:1;15409:20;:::i;:::-;15404:25;;15453:1;15450;15446:9;15438:17;;15477:1;15471:4;15468:11;15465:37;;;15482:18;;:::i;:::-;15465:37;15315:194;;;;:::o;15515:229::-;15655:34;15651:1;15643:6;15639:14;15632:58;15724:12;15719:2;15711:6;15707:15;15700:37;15515:229;:::o;15750:366::-;15892:3;15913:67;15977:2;15972:3;15913:67;:::i;:::-;15906:74;;15989:93;16078:3;15989:93;:::i;:::-;16107:2;16102:3;16098:12;16091:19;;15750:366;;;:::o;16122:419::-;16288:4;16326:2;16315:9;16311:18;16303:26;;16375:9;16369:4;16365:20;16361:1;16350:9;16346:17;16339:47;16403:131;16529:4;16403:131;:::i;:::-;16395:139;;16122:419;;;:::o;16547:180::-;16595:77;16592:1;16585:88;16692:4;16689:1;16682:15;16716:4;16713:1;16706:15;16733:180;16781:77;16778:1;16771:88;16878:4;16875:1;16868:15;16902:4;16899:1;16892:15;16919:143;16976:5;17007:6;17001:13;16992:22;;17023:33;17050:5;17023:33;:::i;:::-;16919:143;;;;:::o;17068:351::-;17138:6;17187:2;17175:9;17166:7;17162:23;17158:32;17155:119;;;17193:79;;:::i;:::-;17155:119;17313:1;17338:64;17394:7;17385:6;17374:9;17370:22;17338:64;:::i;:::-;17328:74;;17284:128;17068:351;;;;:::o;17425:85::-;17470:7;17499:5;17488:16;;17425:85;;;:::o;17516:158::-;17574:9;17607:61;17625:42;17634:32;17660:5;17634:32;:::i;:::-;17625:42;:::i;:::-;17607:61;:::i;:::-;17594:74;;17516:158;;;:::o;17680:147::-;17775:45;17814:5;17775:45;:::i;:::-;17770:3;17763:58;17680:147;;:::o;17833:114::-;17900:6;17934:5;17928:12;17918:22;;17833:114;;;:::o;17953:184::-;18052:11;18086:6;18081:3;18074:19;18126:4;18121:3;18117:14;18102:29;;17953:184;;;;:::o;18143:132::-;18210:4;18233:3;18225:11;;18263:4;18258:3;18254:14;18246:22;;18143:132;;;:::o;18281:108::-;18358:24;18376:5;18358:24;:::i;:::-;18353:3;18346:37;18281:108;;:::o;18395:179::-;18464:10;18485:46;18527:3;18519:6;18485:46;:::i;:::-;18563:4;18558:3;18554:14;18540:28;;18395:179;;;;:::o;18580:113::-;18650:4;18682;18677:3;18673:14;18665:22;;18580:113;;;:::o;18729:732::-;18848:3;18877:54;18925:5;18877:54;:::i;:::-;18947:86;19026:6;19021:3;18947:86;:::i;:::-;18940:93;;19057:56;19107:5;19057:56;:::i;:::-;19136:7;19167:1;19152:284;19177:6;19174:1;19171:13;19152:284;;;19253:6;19247:13;19280:63;19339:3;19324:13;19280:63;:::i;:::-;19273:70;;19366:60;19419:6;19366:60;:::i;:::-;19356:70;;19212:224;19199:1;19196;19192:9;19187:14;;19152:284;;;19156:14;19452:3;19445:10;;18853:608;;;18729:732;;;;:::o;19467:831::-;19730:4;19768:3;19757:9;19753:19;19745:27;;19782:71;19850:1;19839:9;19835:17;19826:6;19782:71;:::i;:::-;19863:80;19939:2;19928:9;19924:18;19915:6;19863:80;:::i;:::-;19990:9;19984:4;19980:20;19975:2;19964:9;19960:18;19953:48;20018:108;20121:4;20112:6;20018:108;:::i;:::-;20010:116;;20136:72;20204:2;20193:9;20189:18;20180:6;20136:72;:::i;:::-;20218:73;20286:3;20275:9;20271:19;20262:6;20218:73;:::i;:::-;19467:831;;;;;;;;:::o;20304:180::-;20352:77;20349:1;20342:88;20449:4;20446:1;20439:15;20473:4;20470:1;20463:15;20490:185;20530:1;20547:20;20565:1;20547:20;:::i;:::-;20542:25;;20581:20;20599:1;20581:20;:::i;:::-;20576:25;;20620:1;20610:35;;20625:18;;:::i;:::-;20610:35;20667:1;20664;20660:9;20655:14;;20490:185;;;;:::o;20681:191::-;20721:3;20740:20;20758:1;20740:20;:::i;:::-;20735:25;;20774:20;20792:1;20774:20;:::i;:::-;20769:25;;20817:1;20814;20810:9;20803:16;;20838:3;20835:1;20832:10;20829:36;;;20845:18;;:::i;:::-;20829:36;20681:191;;;;:::o;20878:177::-;21018:29;21014:1;21006:6;21002:14;20995:53;20878:177;:::o;21061:366::-;21203:3;21224:67;21288:2;21283:3;21224:67;:::i;:::-;21217:74;;21300:93;21389:3;21300:93;:::i;:::-;21418:2;21413:3;21409:12;21402:19;;21061:366;;;:::o;21433:419::-;21599:4;21637:2;21626:9;21622:18;21614:26;;21686:9;21680:4;21676:20;21672:1;21661:9;21657:17;21650:47;21714:131;21840:4;21714:131;:::i;:::-;21706:139;;21433:419;;;:::o;21858:410::-;21898:7;21921:20;21939:1;21921:20;:::i;:::-;21916:25;;21955:20;21973:1;21955:20;:::i;:::-;21950:25;;22010:1;22007;22003:9;22032:30;22050:11;22032:30;:::i;:::-;22021:41;;22211:1;22202:7;22198:15;22195:1;22192:22;22172:1;22165:9;22145:83;22122:139;;22241:18;;:::i;:::-;22122:139;21906:362;21858:410;;;;:::o;22274:220::-;22414:34;22410:1;22402:6;22398:14;22391:58;22483:3;22478:2;22470:6;22466:15;22459:28;22274:220;:::o;22500:366::-;22642:3;22663:67;22727:2;22722:3;22663:67;:::i;:::-;22656:74;;22739:93;22828:3;22739:93;:::i;:::-;22857:2;22852:3;22848:12;22841:19;;22500:366;;;:::o;22872:419::-;23038:4;23076:2;23065:9;23061:18;23053:26;;23125:9;23119:4;23115:20;23111:1;23100:9;23096:17;23089:47;23153:131;23279:4;23153:131;:::i;:::-;23145:139;;22872:419;;;:::o

Swarm Source

ipfs://3c146394adfca6bf181828ad0b8a3db56d8b57c479fd98672c4abe75a8ac0d44
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.