ETH Price: $2,584.07 (-2.98%)

Token

Lotto Three Digital (3D)
 

Overview

Max Total Supply

1,000,000,000 3D

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,300,000 3D

Value
$0.00
0xC35669545333674D5B563B6eb366DA1eA4e5B3D5
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:
threedigital

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-20
*/

/**
3333333      33333333
      33     33     33
    33       33     33
     33      33     33
333333       33333333
The first 3D lotto token on the ERC network
HOW TO WIN?
1.BUY $3D
Open Uniswap, Access your wallet to Uniswap by clicking ‘Connect to a wallet’ and selecting $3D by the Contract Address.Press ‘Select a token’ and enter the token address $3D
2.BUY LOTTO 3D
Go back to this website and connect the wallet. Click to buy lotto 3D, you can choose random or self-selected numbers.
3.WAITING FOR THE DRAW
To demonstrate fairness, the draw results are the US 3D draw results at 9PM every day.
4.RECEIVE AWARD
If you are lucker, please go back to this website, connect your wallet and click to redeem rewards, your wallet will automatically receive ETH.

Total supply:1,000,000,000
Max buy:7,500,000 0.75%
Max wallet size:33,333,333 3.3%
Tax:14%
4% for marketing
10% for prize pool

Website:https://lotto3d.net/
Twitter:https://twitter.com/LOTTO3DIGITAL
Telegram:https://t.me/Lotto3D_Official3D
*/
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.9;

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
    );
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    
    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

   
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

   
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

   
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, 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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IUniswapV2Router02 {
    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
        );
}

contract threedigital is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Lotto Three Digital";
    string private constant _symbol = "3D";
    uint8 private constant _decimals = 9;

    mapping (address => uint256) _balances;
    mapping(address => uint256) _lastTX;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 _totalSupply = 1000000000 * 10**9;

    //Buy Fee
    uint256 private _taxFeeOnBuy = 14;

    //Sell Fee
    uint256 private _taxFeeOnSell = 14;

    //Original Fee
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots;


    address payable private _marketingAddress = payable(0x760C2B9B788aaC4d010E6BE9afa50AF60339AafF);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool private transferDelay = true;

    uint256 public _maxTxAmount = 7500000 * 10**9;
    uint256 public _maxWalletSize = 33333333 * 10**9; 
    uint256 public _swapTokensAtAmount = 5000000 * 10**9; 

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

    constructor() {

        _balances[_msgSender()] = _totalSupply;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
	    _isExcludedFromFee[_marketingAddress] = true; //multisig

        

        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 view override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!_isExcludedFromFee[to] && !_isExcludedFromFee[from]) {
	    require(tradingOpen, "TOKEN: Trading not yet started");
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
		        if(from == uniswapV2Pair && transferDelay){
		            require(_lastTX[tx.origin] + 3 minutes < block.timestamp && _lastTX[to] + 3 minutes < block.timestamp, "TOKEN: 3 minutes cooldown between buys");
		        }
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount)
            {
                contractTokenBalance = _swapTokensAtAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance); // Reserve of 15% of tokens for liquidity
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0 ether) {
                    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)) {
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _taxFee = _taxFeeOnSell;
            }

        }
	    _lastTX[tx.origin] = block.timestamp;
	    _lastTX[to] = block.timestamp;
        _tokenTransfer(from, to, amount, takeFee);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
	uint256 ethAmt = tokenAmount.mul(85).div(100);
	uint256 liqAmt = tokenAmount - ethAmt;
        uint256 balanceBefore = address(this).balance;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            ethAmt,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);

      addLiquidity(liqAmt, amountETH.mul(15).div(100));
    }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            address(0),
            block.timestamp
        );

    }

    function EnbleTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

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

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) {_transferNoTax(sender,recipient, amount);}
        else {_transferStandard(sender, recipient, amount);}
    }

     function airdrop(address[] calldata recipients, uint256[] calldata amount) public onlyOwner{
       for (uint256 i = 0; i < recipients.length; i++) {
            _transferNoTax(msg.sender,recipients[i], amount[i]);
        }
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 amount
    ) private {
        uint256 amountReceived = takeFees(sender, amount);
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
     function _transferNoTax(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    function takeFees(address sender,uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(_taxFee).div(100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }


    receive() external payable {}

    function transferOwnership(address newOwner) public override onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _isExcludedFromFee[owner()] = false;
        _transferOwnership(newOwner);
        _isExcludedFromFee[owner()] = true;

    }
  
    function UpdateFees(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }
    
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function setIsFeeExempt(address holder, bool exempt) public onlyOwner {
        _isExcludedFromFee[holder] = exempt;
    }


    function toggleTransferDelay() public onlyOwner {
        transferDelay = !transferDelay;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"EnbleTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"UpdateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amount","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTransferDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a7640000600555600e600655600e60075560075460085560085460095573760c2b9b788aac4d010e6be9afa50af60339aaff600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506001600d60166101000a81548160ff0219169083151502179055506001600d60176101000a81548160ff021916908315150217905550661aa535d3d0c000600e5566766c7d60a51200600f556611c37937e080006010553480156200011557600080fd5b50620001366200012a620005ed60201b60201c565b620005f560201b60201c565b600554600160006200014d620005ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022c57600080fd5b505afa15801562000241573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026791906200074c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ca57600080fd5b505afa158015620002df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030591906200074c565b6040518363ffffffff1660e01b8152600401620003249291906200078f565b602060405180830381600087803b1580156200033f57600080fd5b505af115801562000354573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037a91906200074c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620003d0620006b960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200057d620005ed60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620005de9190620007d7565b60405180910390a350620007f4565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200071482620006e7565b9050919050565b620007268162000707565b81146200073257600080fd5b50565b60008151905062000746816200071b565b92915050565b600060208284031215620007655762000764620006e2565b5b6000620007758482850162000735565b91505092915050565b620007898162000707565b82525050565b6000604082019050620007a660008301856200077e565b620007b560208301846200077e565b9392505050565b6000819050919050565b620007d181620007bc565b82525050565b6000602082019050620007ee6000830184620007c6565b92915050565b613fed80620008046000396000f3fe6080604052600436106101d05760003560e01c806370a08231116100f757806395d89b4111610095578063c3c8cd8011610064578063c3c8cd801461065a578063dd62ed3e14610671578063ea1644d5146106ae578063f2fde38b146106d7576101d7565b806395d89b411461058c57806398a5c315146105b7578063a9059cbb146105e0578063bfd792841461061d576101d7565b80637d1db4a5116100d15780637d1db4a5146104f45780638da5cb5b1461051f5780638eb59a5f1461054a5780638f9a55c014610561576101d7565b806370a0823114610477578063715018a6146104b457806374010ece146104cb576101d7565b80632fd689e31161016f578063658d4b7f1161013e578063658d4b7f146103d357806367243482146103fc5780636b999053146104255780636d8aa8f81461044e576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f57806353482196146103aa576101d7565b80630e66e7f1116101ab5780630e66e7f11461026d5780631694505e1461029657806318160ddd146102c157806323b872dd146102ec576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612e46565b610700565b005b34801561021157600080fd5b5061021a610811565b6040516102279190612f17565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612f6f565b61084e565b6040516102649190612fca565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f9190613011565b61086c565b005b3480156102a257600080fd5b506102ab610905565b6040516102b8919061309d565b60405180910390f35b3480156102cd57600080fd5b506102d661092b565b6040516102e391906130c7565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e91906130e2565b610935565b6040516103209190612fca565b60405180910390f35b34801561033557600080fd5b5061033e610a0e565b60405161034b91906130c7565b60405180910390f35b34801561036057600080fd5b50610369610a14565b6040516103769190613151565b60405180910390f35b34801561038b57600080fd5b50610394610a1d565b6040516103a1919061317b565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190613196565b610a43565b005b3480156103df57600080fd5b506103fa60048036038101906103f591906131d6565b610ad1565b005b34801561040857600080fd5b50610423600480360381019061041e91906132c7565b610ba8565b005b34801561043157600080fd5b5061044c60048036038101906104479190613348565b610c98565b005b34801561045a57600080fd5b5061047560048036038101906104709190613011565b610d6f565b005b34801561048357600080fd5b5061049e60048036038101906104999190613348565b610e08565b6040516104ab91906130c7565b60405180910390f35b3480156104c057600080fd5b506104c9610e51565b005b3480156104d757600080fd5b506104f260048036038101906104ed9190613375565b610ed9565b005b34801561050057600080fd5b50610509610f5f565b60405161051691906130c7565b60405180910390f35b34801561052b57600080fd5b50610534610f65565b604051610541919061317b565b60405180910390f35b34801561055657600080fd5b5061055f610f8e565b005b34801561056d57600080fd5b50610576611036565b60405161058391906130c7565b60405180910390f35b34801561059857600080fd5b506105a161103c565b6040516105ae9190612f17565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613375565b611079565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612f6f565b6110ff565b6040516106149190612fca565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190613348565b61111d565b6040516106519190612fca565b60405180910390f35b34801561066657600080fd5b5061066f61113d565b005b34801561067d57600080fd5b50610698600480360381019061069391906133a2565b6111d2565b6040516106a591906130c7565b60405180910390f35b3480156106ba57600080fd5b506106d560048036038101906106d09190613375565b611259565b005b3480156106e357600080fd5b506106fe60048036038101906106f99190613348565b6112df565b005b610708611495565b73ffffffffffffffffffffffffffffffffffffffff16610726610f65565b73ffffffffffffffffffffffffffffffffffffffff161461077c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107739061342e565b60405180910390fd5b60005b815181101561080d576001600a60008484815181106107a1576107a061344e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610805906134ac565b91505061077f565b5050565b60606040518060400160405280601381526020017f4c6f74746f205468726565204469676974616c00000000000000000000000000815250905090565b600061086261085b611495565b848461149d565b6001905092915050565b610874611495565b73ffffffffffffffffffffffffffffffffffffffff16610892610f65565b73ffffffffffffffffffffffffffffffffffffffff16146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df9061342e565b60405180910390fd5b80600d60146101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b6000610942848484611668565b610a038461094e611495565b6109fe85604051806060016040528060288152602001613f9060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b4611495565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b61149d565b600190509392505050565b60105481565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a4b611495565b73ffffffffffffffffffffffffffffffffffffffff16610a69610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab69061342e565b60405180910390fd5b81600681905550806007819055505050565b610ad9611495565b73ffffffffffffffffffffffffffffffffffffffff16610af7610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b449061342e565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610bb0611495565b73ffffffffffffffffffffffffffffffffffffffff16610bce610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b9061342e565b60405180910390fd5b60005b84849050811015610c9157610c7d33868684818110610c4957610c4861344e565b5b9050602002016020810190610c5e9190613348565b858585818110610c7157610c7061344e565b5b90506020020135612062565b508080610c89906134ac565b915050610c27565b5050505050565b610ca0611495565b73ffffffffffffffffffffffffffffffffffffffff16610cbe610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b9061342e565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d77611495565b73ffffffffffffffffffffffffffffffffffffffff16610d95610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de29061342e565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e59611495565b73ffffffffffffffffffffffffffffffffffffffff16610e77610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec49061342e565b60405180910390fd5b610ed76000612235565b565b610ee1611495565b73ffffffffffffffffffffffffffffffffffffffff16610eff610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c9061342e565b60405180910390fd5b80600e8190555050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f96611495565b73ffffffffffffffffffffffffffffffffffffffff16610fb4610f65565b73ffffffffffffffffffffffffffffffffffffffff161461100a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110019061342e565b60405180910390fd5b600d60179054906101000a900460ff1615600d60176101000a81548160ff021916908315150217905550565b600f5481565b60606040518060400160405280600281526020017f3344000000000000000000000000000000000000000000000000000000000000815250905090565b611081611495565b73ffffffffffffffffffffffffffffffffffffffff1661109f610f65565b73ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec9061342e565b60405180910390fd5b8060108190555050565b600061111361110c611495565b8484611668565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b611145611495565b73ffffffffffffffffffffffffffffffffffffffff16611163610f65565b73ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b09061342e565b60405180910390fd5b60006111c430610e08565b90506111cf816122f9565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611261611495565b73ffffffffffffffffffffffffffffffffffffffff1661127f610f65565b73ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc9061342e565b60405180910390fd5b80600f8190555050565b6112e7611495565b73ffffffffffffffffffffffffffffffffffffffff16611305610f65565b73ffffffffffffffffffffffffffffffffffffffff161461135b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113529061342e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613567565b60405180910390fd5b6000600460006113d9610f65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061143381612235565b600160046000611441610f65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906135f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115749061368b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165b91906130c7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf9061371d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f906137af565b60405180910390fd5b6000811161178b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178290613841565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8757600d60149054906101000a900460ff16611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a906138ad565b60405180910390fd5b600e548111156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613919565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561196c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a2906139ab565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baa57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a695750600d60179054906101000a900460ff165b15611b52574260b4600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb91906139cb565b108015611b1257504260b4600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1091906139cb565b105b611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4890613a93565b60405180910390fd5b5b600f5481611b5f84610e08565b611b6991906139cb565b10611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613b25565b60405180910390fd5b5b6000611bb530610e08565b9050600060105482101590506010548210611bd05760105491505b808015611bea5750600d60159054906101000a900460ff16155b8015611c445750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600d60169054906101000a900460ff165b15611c8457611c6a826122f9565b60004790506000811115611c8257611c814761260c565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611de15750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611de05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611def5760009050611f64565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e9a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ea9576006546008819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f545750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f63576007546008819055505b5b42600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff884848484612678565b50505050565b6000838311158290612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d9190612f17565b60405180910390fd5b50600083856120559190613b45565b9050809150509392505050565b60006120ed826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161222291906130c7565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600d60156101000a81548160ff021916908315150217905550600061233d606461232f6055856126fe90919063ffffffff16565b61277990919063ffffffff16565b90506000818361234d9190613b45565b905060004790506000600267ffffffffffffffff81111561237157612370612ca5565b5b60405190808252806020026020018201604052801561239f5781602001602082028036833780820191505090505b50905030816000815181106123b7576123b661344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124919190613b8e565b816001815181106124a5576124a461344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250c30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168761149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612570959493929190613cb4565b600060405180830381600087803b15801561258a57600080fd5b505af115801561259e573d6000803e3d6000fd5b5050505060006125b783476127c390919063ffffffff16565b90506125e9846125e460646125d6600f866126fe90919063ffffffff16565b61277990919063ffffffff16565b61280d565b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612674573d6000803e3d6000fd5b5050565b8061268e57612688848484612062565b5061269a565b6126998484846128fb565b5b50505050565b60008082846126af91906139cb565b9050838110156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90613d5a565b60405180910390fd5b8091505092915050565b6000808314156127115760009050612773565b6000828461271f9190613d7a565b905082848261272e9190613e03565b1461276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613ea6565b60405180910390fd5b809150505b92915050565b60006127bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad5565b905092915050565b600061280583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ffe565b905092915050565b61283a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b81526004016128a296959493929190613ec6565b6060604051808303818588803b1580156128bb57600080fd5b505af11580156128cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128f49190613f3c565b5050505050565b60006129078483612b38565b9050612992826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a2781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ac791906130c7565b60405180910390a350505050565b60008083118290612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b139190612f17565b60405180910390fd5b5060008385612b2b9190613e03565b9050809150509392505050565b600080612b636064612b55600854866126fe90919063ffffffff16565b61277990919063ffffffff16565b9050612bb781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c5791906130c7565b60405180910390a3612c7281846127c390919063ffffffff16565b91505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cdd82612c94565b810181811067ffffffffffffffff82111715612cfc57612cfb612ca5565b5b80604052505050565b6000612d0f612c7b565b9050612d1b8282612cd4565b919050565b600067ffffffffffffffff821115612d3b57612d3a612ca5565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d7c82612d51565b9050919050565b612d8c81612d71565b8114612d9757600080fd5b50565b600081359050612da981612d83565b92915050565b6000612dc2612dbd84612d20565b612d05565b90508083825260208201905060208402830185811115612de557612de4612d4c565b5b835b81811015612e0e5780612dfa8882612d9a565b845260208401935050602081019050612de7565b5050509392505050565b600082601f830112612e2d57612e2c612c8f565b5b8135612e3d848260208601612daf565b91505092915050565b600060208284031215612e5c57612e5b612c85565b5b600082013567ffffffffffffffff811115612e7a57612e79612c8a565b5b612e8684828501612e18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ec9578082015181840152602081019050612eae565b83811115612ed8576000848401525b50505050565b6000612ee982612e8f565b612ef38185612e9a565b9350612f03818560208601612eab565b612f0c81612c94565b840191505092915050565b60006020820190508181036000830152612f318184612ede565b905092915050565b6000819050919050565b612f4c81612f39565b8114612f5757600080fd5b50565b600081359050612f6981612f43565b92915050565b60008060408385031215612f8657612f85612c85565b5b6000612f9485828601612d9a565b9250506020612fa585828601612f5a565b9150509250929050565b60008115159050919050565b612fc481612faf565b82525050565b6000602082019050612fdf6000830184612fbb565b92915050565b612fee81612faf565b8114612ff957600080fd5b50565b60008135905061300b81612fe5565b92915050565b60006020828403121561302757613026612c85565b5b600061303584828501612ffc565b91505092915050565b6000819050919050565b600061306361305e61305984612d51565b61303e565b612d51565b9050919050565b600061307582613048565b9050919050565b60006130878261306a565b9050919050565b6130978161307c565b82525050565b60006020820190506130b2600083018461308e565b92915050565b6130c181612f39565b82525050565b60006020820190506130dc60008301846130b8565b92915050565b6000806000606084860312156130fb576130fa612c85565b5b600061310986828701612d9a565b935050602061311a86828701612d9a565b925050604061312b86828701612f5a565b9150509250925092565b600060ff82169050919050565b61314b81613135565b82525050565b60006020820190506131666000830184613142565b92915050565b61317581612d71565b82525050565b6000602082019050613190600083018461316c565b92915050565b600080604083850312156131ad576131ac612c85565b5b60006131bb85828601612f5a565b92505060206131cc85828601612f5a565b9150509250929050565b600080604083850312156131ed576131ec612c85565b5b60006131fb85828601612d9a565b925050602061320c85828601612ffc565b9150509250929050565b600080fd5b60008083601f84011261323157613230612c8f565b5b8235905067ffffffffffffffff81111561324e5761324d613216565b5b60208301915083602082028301111561326a57613269612d4c565b5b9250929050565b60008083601f84011261328757613286612c8f565b5b8235905067ffffffffffffffff8111156132a4576132a3613216565b5b6020830191508360208202830111156132c0576132bf612d4c565b5b9250929050565b600080600080604085870312156132e1576132e0612c85565b5b600085013567ffffffffffffffff8111156132ff576132fe612c8a565b5b61330b8782880161321b565b9450945050602085013567ffffffffffffffff81111561332e5761332d612c8a565b5b61333a87828801613271565b925092505092959194509250565b60006020828403121561335e5761335d612c85565b5b600061336c84828501612d9a565b91505092915050565b60006020828403121561338b5761338a612c85565b5b600061339984828501612f5a565b91505092915050565b600080604083850312156133b9576133b8612c85565b5b60006133c785828601612d9a565b92505060206133d885828601612d9a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613418602083612e9a565b9150613423826133e2565b602082019050919050565b600060208201905081810360008301526134478161340b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134b782612f39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134ea576134e961347d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613551602683612e9a565b915061355c826134f5565b604082019050919050565b6000602082019050818103600083015261358081613544565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135e3602483612e9a565b91506135ee82613587565b604082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613675602283612e9a565b915061368082613619565b604082019050919050565b600060208201905081810360008301526136a481613668565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613707602583612e9a565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613799602383612e9a565b91506137a48261373d565b604082019050919050565b600060208201905081810360008301526137c88161378c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061382b602983612e9a565b9150613836826137cf565b604082019050919050565b6000602082019050818103600083015261385a8161381e565b9050919050565b7f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000600082015250565b6000613897601e83612e9a565b91506138a282613861565b602082019050919050565b600060208201905081810360008301526138c68161388a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613903601c83612e9a565b915061390e826138cd565b602082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613995602383612e9a565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b60006139d682612f39565b91506139e183612f39565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a1657613a1561347d565b5b828201905092915050565b7f544f4b454e3a2033206d696e7574657320636f6f6c646f776e2062657477656560008201527f6e20627579730000000000000000000000000000000000000000000000000000602082015250565b6000613a7d602683612e9a565b9150613a8882613a21565b604082019050919050565b60006020820190508181036000830152613aac81613a70565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b0f602383612e9a565b9150613b1a82613ab3565b604082019050919050565b60006020820190508181036000830152613b3e81613b02565b9050919050565b6000613b5082612f39565b9150613b5b83612f39565b925082821015613b6e57613b6d61347d565b5b828203905092915050565b600081519050613b8881612d83565b92915050565b600060208284031215613ba457613ba3612c85565b5b6000613bb284828501613b79565b91505092915050565b6000819050919050565b6000613be0613bdb613bd684613bbb565b61303e565b612f39565b9050919050565b613bf081613bc5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c2b81612d71565b82525050565b6000613c3d8383613c22565b60208301905092915050565b6000602082019050919050565b6000613c6182613bf6565b613c6b8185613c01565b9350613c7683613c12565b8060005b83811015613ca7578151613c8e8882613c31565b9750613c9983613c49565b925050600181019050613c7a565b5085935050505092915050565b600060a082019050613cc960008301886130b8565b613cd66020830187613be7565b8181036040830152613ce88186613c56565b9050613cf7606083018561316c565b613d0460808301846130b8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d44601b83612e9a565b9150613d4f82613d0e565b602082019050919050565b60006020820190508181036000830152613d7381613d37565b9050919050565b6000613d8582612f39565b9150613d9083612f39565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dc957613dc861347d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e0e82612f39565b9150613e1983612f39565b925082613e2957613e28613dd4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e90602183612e9a565b9150613e9b82613e34565b604082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b600060c082019050613edb600083018961316c565b613ee860208301886130b8565b613ef56040830187613be7565b613f026060830186613be7565b613f0f608083018561316c565b613f1c60a08301846130b8565b979650505050505050565b600081519050613f3681612f43565b92915050565b600080600060608486031215613f5557613f54612c85565b5b6000613f6386828701613f27565b9350506020613f7486828701613f27565b9250506040613f8586828701613f27565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122027484e2e58ef3a9cca190c69a8559292c83e0b35fc86ba98eb64cfd7312e137164736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c806370a08231116100f757806395d89b4111610095578063c3c8cd8011610064578063c3c8cd801461065a578063dd62ed3e14610671578063ea1644d5146106ae578063f2fde38b146106d7576101d7565b806395d89b411461058c57806398a5c315146105b7578063a9059cbb146105e0578063bfd792841461061d576101d7565b80637d1db4a5116100d15780637d1db4a5146104f45780638da5cb5b1461051f5780638eb59a5f1461054a5780638f9a55c014610561576101d7565b806370a0823114610477578063715018a6146104b457806374010ece146104cb576101d7565b80632fd689e31161016f578063658d4b7f1161013e578063658d4b7f146103d357806367243482146103fc5780636b999053146104255780636d8aa8f81461044e576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f57806353482196146103aa576101d7565b80630e66e7f1116101ab5780630e66e7f11461026d5780631694505e1461029657806318160ddd146102c157806323b872dd146102ec576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612e46565b610700565b005b34801561021157600080fd5b5061021a610811565b6040516102279190612f17565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612f6f565b61084e565b6040516102649190612fca565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f9190613011565b61086c565b005b3480156102a257600080fd5b506102ab610905565b6040516102b8919061309d565b60405180910390f35b3480156102cd57600080fd5b506102d661092b565b6040516102e391906130c7565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e91906130e2565b610935565b6040516103209190612fca565b60405180910390f35b34801561033557600080fd5b5061033e610a0e565b60405161034b91906130c7565b60405180910390f35b34801561036057600080fd5b50610369610a14565b6040516103769190613151565b60405180910390f35b34801561038b57600080fd5b50610394610a1d565b6040516103a1919061317b565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190613196565b610a43565b005b3480156103df57600080fd5b506103fa60048036038101906103f591906131d6565b610ad1565b005b34801561040857600080fd5b50610423600480360381019061041e91906132c7565b610ba8565b005b34801561043157600080fd5b5061044c60048036038101906104479190613348565b610c98565b005b34801561045a57600080fd5b5061047560048036038101906104709190613011565b610d6f565b005b34801561048357600080fd5b5061049e60048036038101906104999190613348565b610e08565b6040516104ab91906130c7565b60405180910390f35b3480156104c057600080fd5b506104c9610e51565b005b3480156104d757600080fd5b506104f260048036038101906104ed9190613375565b610ed9565b005b34801561050057600080fd5b50610509610f5f565b60405161051691906130c7565b60405180910390f35b34801561052b57600080fd5b50610534610f65565b604051610541919061317b565b60405180910390f35b34801561055657600080fd5b5061055f610f8e565b005b34801561056d57600080fd5b50610576611036565b60405161058391906130c7565b60405180910390f35b34801561059857600080fd5b506105a161103c565b6040516105ae9190612f17565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613375565b611079565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612f6f565b6110ff565b6040516106149190612fca565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190613348565b61111d565b6040516106519190612fca565b60405180910390f35b34801561066657600080fd5b5061066f61113d565b005b34801561067d57600080fd5b50610698600480360381019061069391906133a2565b6111d2565b6040516106a591906130c7565b60405180910390f35b3480156106ba57600080fd5b506106d560048036038101906106d09190613375565b611259565b005b3480156106e357600080fd5b506106fe60048036038101906106f99190613348565b6112df565b005b610708611495565b73ffffffffffffffffffffffffffffffffffffffff16610726610f65565b73ffffffffffffffffffffffffffffffffffffffff161461077c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107739061342e565b60405180910390fd5b60005b815181101561080d576001600a60008484815181106107a1576107a061344e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610805906134ac565b91505061077f565b5050565b60606040518060400160405280601381526020017f4c6f74746f205468726565204469676974616c00000000000000000000000000815250905090565b600061086261085b611495565b848461149d565b6001905092915050565b610874611495565b73ffffffffffffffffffffffffffffffffffffffff16610892610f65565b73ffffffffffffffffffffffffffffffffffffffff16146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df9061342e565b60405180910390fd5b80600d60146101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b6000610942848484611668565b610a038461094e611495565b6109fe85604051806060016040528060288152602001613f9060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109b4611495565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b61149d565b600190509392505050565b60105481565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a4b611495565b73ffffffffffffffffffffffffffffffffffffffff16610a69610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610abf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab69061342e565b60405180910390fd5b81600681905550806007819055505050565b610ad9611495565b73ffffffffffffffffffffffffffffffffffffffff16610af7610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b449061342e565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610bb0611495565b73ffffffffffffffffffffffffffffffffffffffff16610bce610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b9061342e565b60405180910390fd5b60005b84849050811015610c9157610c7d33868684818110610c4957610c4861344e565b5b9050602002016020810190610c5e9190613348565b858585818110610c7157610c7061344e565b5b90506020020135612062565b508080610c89906134ac565b915050610c27565b5050505050565b610ca0611495565b73ffffffffffffffffffffffffffffffffffffffff16610cbe610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b9061342e565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610d77611495565b73ffffffffffffffffffffffffffffffffffffffff16610d95610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de29061342e565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e59611495565b73ffffffffffffffffffffffffffffffffffffffff16610e77610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec49061342e565b60405180910390fd5b610ed76000612235565b565b610ee1611495565b73ffffffffffffffffffffffffffffffffffffffff16610eff610f65565b73ffffffffffffffffffffffffffffffffffffffff1614610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c9061342e565b60405180910390fd5b80600e8190555050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f96611495565b73ffffffffffffffffffffffffffffffffffffffff16610fb4610f65565b73ffffffffffffffffffffffffffffffffffffffff161461100a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110019061342e565b60405180910390fd5b600d60179054906101000a900460ff1615600d60176101000a81548160ff021916908315150217905550565b600f5481565b60606040518060400160405280600281526020017f3344000000000000000000000000000000000000000000000000000000000000815250905090565b611081611495565b73ffffffffffffffffffffffffffffffffffffffff1661109f610f65565b73ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec9061342e565b60405180910390fd5b8060108190555050565b600061111361110c611495565b8484611668565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b611145611495565b73ffffffffffffffffffffffffffffffffffffffff16611163610f65565b73ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b09061342e565b60405180910390fd5b60006111c430610e08565b90506111cf816122f9565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611261611495565b73ffffffffffffffffffffffffffffffffffffffff1661127f610f65565b73ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc9061342e565b60405180910390fd5b80600f8190555050565b6112e7611495565b73ffffffffffffffffffffffffffffffffffffffff16611305610f65565b73ffffffffffffffffffffffffffffffffffffffff161461135b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113529061342e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613567565b60405180910390fd5b6000600460006113d9610f65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061143381612235565b600160046000611441610f65565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906135f9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115749061368b565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165b91906130c7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf9061371d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f906137af565b60405180910390fd5b6000811161178b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178290613841565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8757600d60149054906101000a900460ff16611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a906138ad565b60405180910390fd5b600e548111156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613919565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561196c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a2906139ab565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baa57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a695750600d60179054906101000a900460ff165b15611b52574260b4600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb91906139cb565b108015611b1257504260b4600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b1091906139cb565b105b611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4890613a93565b60405180910390fd5b5b600f5481611b5f84610e08565b611b6991906139cb565b10611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba090613b25565b60405180910390fd5b5b6000611bb530610e08565b9050600060105482101590506010548210611bd05760105491505b808015611bea5750600d60159054906101000a900460ff16155b8015611c445750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600d60169054906101000a900460ff165b15611c8457611c6a826122f9565b60004790506000811115611c8257611c814761260c565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611de15750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611de05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611def5760009050611f64565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e9a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ea9576006546008819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f545750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f63576007546008819055505b5b42600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff884848484612678565b50505050565b6000838311158290612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d9190612f17565b60405180910390fd5b50600083856120559190613b45565b9050809150509392505050565b60006120ed826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161222291906130c7565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600d60156101000a81548160ff021916908315150217905550600061233d606461232f6055856126fe90919063ffffffff16565b61277990919063ffffffff16565b90506000818361234d9190613b45565b905060004790506000600267ffffffffffffffff81111561237157612370612ca5565b5b60405190808252806020026020018201604052801561239f5781602001602082028036833780820191505090505b50905030816000815181106123b7576123b661344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124919190613b8e565b816001815181106124a5576124a461344e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250c30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168761149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612570959493929190613cb4565b600060405180830381600087803b15801561258a57600080fd5b505af115801561259e573d6000803e3d6000fd5b5050505060006125b783476127c390919063ffffffff16565b90506125e9846125e460646125d6600f866126fe90919063ffffffff16565b61277990919063ffffffff16565b61280d565b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612674573d6000803e3d6000fd5b5050565b8061268e57612688848484612062565b5061269a565b6126998484846128fb565b5b50505050565b60008082846126af91906139cb565b9050838110156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb90613d5a565b60405180910390fd5b8091505092915050565b6000808314156127115760009050612773565b6000828461271f9190613d7a565b905082848261272e9190613e03565b1461276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613ea6565b60405180910390fd5b809150505b92915050565b60006127bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad5565b905092915050565b600061280583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ffe565b905092915050565b61283a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b81526004016128a296959493929190613ec6565b6060604051808303818588803b1580156128bb57600080fd5b505af11580156128cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128f49190613f3c565b5050505050565b60006129078483612b38565b9050612992826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a2781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ac791906130c7565b60405180910390a350505050565b60008083118290612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b139190612f17565b60405180910390fd5b5060008385612b2b9190613e03565b9050809150509392505050565b600080612b636064612b55600854866126fe90919063ffffffff16565b61277990919063ffffffff16565b9050612bb781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c5791906130c7565b60405180910390a3612c7281846127c390919063ffffffff16565b91505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cdd82612c94565b810181811067ffffffffffffffff82111715612cfc57612cfb612ca5565b5b80604052505050565b6000612d0f612c7b565b9050612d1b8282612cd4565b919050565b600067ffffffffffffffff821115612d3b57612d3a612ca5565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d7c82612d51565b9050919050565b612d8c81612d71565b8114612d9757600080fd5b50565b600081359050612da981612d83565b92915050565b6000612dc2612dbd84612d20565b612d05565b90508083825260208201905060208402830185811115612de557612de4612d4c565b5b835b81811015612e0e5780612dfa8882612d9a565b845260208401935050602081019050612de7565b5050509392505050565b600082601f830112612e2d57612e2c612c8f565b5b8135612e3d848260208601612daf565b91505092915050565b600060208284031215612e5c57612e5b612c85565b5b600082013567ffffffffffffffff811115612e7a57612e79612c8a565b5b612e8684828501612e18565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ec9578082015181840152602081019050612eae565b83811115612ed8576000848401525b50505050565b6000612ee982612e8f565b612ef38185612e9a565b9350612f03818560208601612eab565b612f0c81612c94565b840191505092915050565b60006020820190508181036000830152612f318184612ede565b905092915050565b6000819050919050565b612f4c81612f39565b8114612f5757600080fd5b50565b600081359050612f6981612f43565b92915050565b60008060408385031215612f8657612f85612c85565b5b6000612f9485828601612d9a565b9250506020612fa585828601612f5a565b9150509250929050565b60008115159050919050565b612fc481612faf565b82525050565b6000602082019050612fdf6000830184612fbb565b92915050565b612fee81612faf565b8114612ff957600080fd5b50565b60008135905061300b81612fe5565b92915050565b60006020828403121561302757613026612c85565b5b600061303584828501612ffc565b91505092915050565b6000819050919050565b600061306361305e61305984612d51565b61303e565b612d51565b9050919050565b600061307582613048565b9050919050565b60006130878261306a565b9050919050565b6130978161307c565b82525050565b60006020820190506130b2600083018461308e565b92915050565b6130c181612f39565b82525050565b60006020820190506130dc60008301846130b8565b92915050565b6000806000606084860312156130fb576130fa612c85565b5b600061310986828701612d9a565b935050602061311a86828701612d9a565b925050604061312b86828701612f5a565b9150509250925092565b600060ff82169050919050565b61314b81613135565b82525050565b60006020820190506131666000830184613142565b92915050565b61317581612d71565b82525050565b6000602082019050613190600083018461316c565b92915050565b600080604083850312156131ad576131ac612c85565b5b60006131bb85828601612f5a565b92505060206131cc85828601612f5a565b9150509250929050565b600080604083850312156131ed576131ec612c85565b5b60006131fb85828601612d9a565b925050602061320c85828601612ffc565b9150509250929050565b600080fd5b60008083601f84011261323157613230612c8f565b5b8235905067ffffffffffffffff81111561324e5761324d613216565b5b60208301915083602082028301111561326a57613269612d4c565b5b9250929050565b60008083601f84011261328757613286612c8f565b5b8235905067ffffffffffffffff8111156132a4576132a3613216565b5b6020830191508360208202830111156132c0576132bf612d4c565b5b9250929050565b600080600080604085870312156132e1576132e0612c85565b5b600085013567ffffffffffffffff8111156132ff576132fe612c8a565b5b61330b8782880161321b565b9450945050602085013567ffffffffffffffff81111561332e5761332d612c8a565b5b61333a87828801613271565b925092505092959194509250565b60006020828403121561335e5761335d612c85565b5b600061336c84828501612d9a565b91505092915050565b60006020828403121561338b5761338a612c85565b5b600061339984828501612f5a565b91505092915050565b600080604083850312156133b9576133b8612c85565b5b60006133c785828601612d9a565b92505060206133d885828601612d9a565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613418602083612e9a565b9150613423826133e2565b602082019050919050565b600060208201905081810360008301526134478161340b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134b782612f39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134ea576134e961347d565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613551602683612e9a565b915061355c826134f5565b604082019050919050565b6000602082019050818103600083015261358081613544565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135e3602483612e9a565b91506135ee82613587565b604082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613675602283612e9a565b915061368082613619565b604082019050919050565b600060208201905081810360008301526136a481613668565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613707602583612e9a565b9150613712826136ab565b604082019050919050565b60006020820190508181036000830152613736816136fa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613799602383612e9a565b91506137a48261373d565b604082019050919050565b600060208201905081810360008301526137c88161378c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061382b602983612e9a565b9150613836826137cf565b604082019050919050565b6000602082019050818103600083015261385a8161381e565b9050919050565b7f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000600082015250565b6000613897601e83612e9a565b91506138a282613861565b602082019050919050565b600060208201905081810360008301526138c68161388a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613903601c83612e9a565b915061390e826138cd565b602082019050919050565b60006020820190508181036000830152613932816138f6565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613995602383612e9a565b91506139a082613939565b604082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b60006139d682612f39565b91506139e183612f39565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a1657613a1561347d565b5b828201905092915050565b7f544f4b454e3a2033206d696e7574657320636f6f6c646f776e2062657477656560008201527f6e20627579730000000000000000000000000000000000000000000000000000602082015250565b6000613a7d602683612e9a565b9150613a8882613a21565b604082019050919050565b60006020820190508181036000830152613aac81613a70565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b0f602383612e9a565b9150613b1a82613ab3565b604082019050919050565b60006020820190508181036000830152613b3e81613b02565b9050919050565b6000613b5082612f39565b9150613b5b83612f39565b925082821015613b6e57613b6d61347d565b5b828203905092915050565b600081519050613b8881612d83565b92915050565b600060208284031215613ba457613ba3612c85565b5b6000613bb284828501613b79565b91505092915050565b6000819050919050565b6000613be0613bdb613bd684613bbb565b61303e565b612f39565b9050919050565b613bf081613bc5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c2b81612d71565b82525050565b6000613c3d8383613c22565b60208301905092915050565b6000602082019050919050565b6000613c6182613bf6565b613c6b8185613c01565b9350613c7683613c12565b8060005b83811015613ca7578151613c8e8882613c31565b9750613c9983613c49565b925050600181019050613c7a565b5085935050505092915050565b600060a082019050613cc960008301886130b8565b613cd66020830187613be7565b8181036040830152613ce88186613c56565b9050613cf7606083018561316c565b613d0460808301846130b8565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d44601b83612e9a565b9150613d4f82613d0e565b602082019050919050565b60006020820190508181036000830152613d7381613d37565b9050919050565b6000613d8582612f39565b9150613d9083612f39565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dc957613dc861347d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613e0e82612f39565b9150613e1983612f39565b925082613e2957613e28613dd4565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e90602183612e9a565b9150613e9b82613e34565b604082019050919050565b60006020820190508181036000830152613ebf81613e83565b9050919050565b600060c082019050613edb600083018961316c565b613ee860208301886130b8565b613ef56040830187613be7565b613f026060830186613be7565b613f0f608083018561316c565b613f1c60a08301846130b8565b979650505050505050565b600081519050613f3681612f43565b92915050565b600080600060608486031215613f5557613f54612c85565b5b6000613f6386828701613f27565b9350506020613f7486828701613f27565b9250506040613f8586828701613f27565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122027484e2e58ef3a9cca190c69a8559292c83e0b35fc86ba98eb64cfd7312e137164736f6c63430008090033

Deployed Bytecode Sourcemap

5123:11324:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13312:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7248:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8160:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13039:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6019:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7525:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8361:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6365:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7434:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6067:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15534:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16213:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13875:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13489:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15857:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7633:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2491:103;;;;;;;;;;;;;:::i;:::-;;15970:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6257:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2258:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16347:97;;;;;;;;;;;;;:::i;:::-;;6309:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7339:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15706:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7761:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5868:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13150:154;;;;;;;;;;;;;:::i;:::-;;7968:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16090:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15229:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13312:169;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13388:9:::1;13383:91;13407:5;:12;13403:1;:16;13383:91;;;13458:4;13441;:14;13446:5;13452:1;13446:8;;;;;;;;:::i;:::-;;;;;;;;13441:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13421:3;;;;;:::i;:::-;;;;13383:91;;;;13312:169:::0;:::o;7248:83::-;7285:13;7318:5;;;;;;;;;;;;;;;;;7311:12;;7248:83;:::o;8160:193::-;8262:4;8284:39;8293:12;:10;:12::i;:::-;8307:7;8316:6;8284:8;:39::i;:::-;8341:4;8334:11;;8160:193;;;;:::o;13039:103::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13122:12:::1;13108:11;;:26;;;;;;;;;;;;;;;;;;13039:103:::0;:::o;6019:41::-;;;;;;;;;;;;;:::o;7525:100::-;7578:7;7605:12;;7598:19;;7525:100;:::o;8361:446::-;8493:4;8510:36;8520:6;8528:9;8539:6;8510:9;:36::i;:::-;8557:220;8580:6;8601:12;:10;:12::i;:::-;8628:138;8684:6;8628:138;;;;;;;;;;;;;;;;;:11;:19;8640:6;8628:19;;;;;;;;;;;;;;;:33;8648:12;:10;:12::i;:::-;8628:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8557:8;:220::i;:::-;8795:4;8788:11;;8361:446;;;;;:::o;6365:52::-;;;;:::o;7434:83::-;7475:5;5357:1;7493:16;;7434:83;:::o;6067:28::-;;;;;;;;;;;;;:::o;15534:164::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15640:11:::1;15625:12;:26;;;;15678:12;15662:13;:28;;;;15534:164:::0;;:::o;16213:124::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16323:6:::1;16294:18;:26;16313:6;16294:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16213:124:::0;;:::o;13875:234::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13981:9:::1;13976:126;14000:10;;:17;;13996:1;:21;13976:126;;;14039:51;14054:10;14065;;14076:1;14065:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14080:6;;14087:1;14080:9;;;;;;;:::i;:::-;;;;;;;;14039:14;:51::i;:::-;;14019:3;;;;;:::i;:::-;;;;13976:126;;;;13875:234:::0;;;;:::o;13489:92::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13568:5:::1;13553:4;:12;13558:6;13553:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13489:92:::0;:::o;15857:101::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15938:12:::1;15924:11;;:26;;;;;;;;;;;;;;;;;;15857:101:::0;:::o;7633:120::-;7699:7;7726:9;:18;7736:7;7726:18;;;;;;;;;;;;;;;;7719:25;;7633:120;;;:::o;2491:103::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2556:30:::1;2583:1;2556:18;:30::i;:::-;2491:103::o:0;15970:108::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16059:11:::1;16044:12;:26;;;;15970:108:::0;:::o;6257:45::-;;;;:::o;2258:87::-;2304:7;2331:6;;;;;;;;;;;2324:13;;2258:87;:::o;16347:97::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16423:13:::1;;;;;;;;;;;16422:14;16406:13;;:30;;;;;;;;;;;;;;;;;;16347:97::o:0;6309:48::-;;;;:::o;7339:87::-;7378:13;7411:7;;;;;;;;;;;;;;;;;7404:14;;7339:87;:::o;15706:139::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15819:18:::1;15797:19;:40;;;;15706:139:::0;:::o;7761:199::-;7866:4;7888:42;7898:12;:10;:12::i;:::-;7912:9;7923:6;7888:9;:42::i;:::-;7948:4;7941:11;;7761:199;;;;:::o;5868:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13150:154::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13202:23:::1;13228:24;13246:4;13228:9;:24::i;:::-;13202:50;;13263:33;13280:15;13263:16;:33::i;:::-;13191:113;13150:154::o:0;7968:184::-;8085:7;8117:11;:18;8129:5;8117:18;;;;;;;;;;;;;;;:27;8136:7;8117:27;;;;;;;;;;;;;;;;8110:34;;7968:184;;;;:::o;16090:115::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16184:13:::1;16167:14;:30;;;;16090:115:::0;:::o;15229:295::-;2409:12;:10;:12::i;:::-;2398:23;;:7;:5;:7::i;:::-;:23;;;2390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15339:1:::1;15319:22;;:8;:22;;;;15311:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15425:5;15395:18;:27;15414:7;:5;:7::i;:::-;15395:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15441:28;15460:8;15441:18;:28::i;:::-;15510:4;15480:18;:27;15499:7;:5;:7::i;:::-;15480:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;15229:295:::0;:::o;1144:98::-;1197:7;1224:10;1217:17;;1144:98;:::o;8815:369::-;8959:1;8942:19;;:5;:19;;;;8934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9040:1;9021:21;;:7;:21;;;;9013:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9122:6;9092:11;:18;9104:5;9092:18;;;;;;;;;;;;;;;:27;9111:7;9092:27;;;;;;;;;;;;;;;:36;;;;9160:7;9144:32;;9153:5;9144:32;;;9169:6;9144:32;;;;;;:::i;:::-;;;;;;;;8815:369;;;:::o;9192:2440::-;9330:1;9314:18;;:4;:18;;;;9306:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9407:1;9393:16;;:2;:16;;;;9385:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9477:1;9468:6;:10;9460:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9542:18;:22;9561:2;9542:22;;;;;;;;;;;;;;;;;;;;;;;;;9541:23;:52;;;;;9569:18;:24;9588:4;9569:24;;;;;;;;;;;;;;;;;;;;;;;;;9568:25;9541:52;9537:1381;;;9611:11;;;;;;;;;;;9603:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;9690:12;;9680:6;:22;;9672:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9759:4;:10;9764:4;9759:10;;;;;;;;;;;;;;;;;;;;;;;;;9758:11;:24;;;;;9774:4;:8;9779:2;9774:8;;;;;;;;;;;;;;;;;;;;;;;;;9773:9;9758:24;9750:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;9848:13;;;;;;;;;;;9842:19;;:2;:19;;;9839:375;;9887:13;;;;;;;;;;;9879:21;;:4;:21;;;:38;;;;;9904:13;;;;;;;;;;;9879:38;9876:217;;;9976:15;9964:9;9943:7;:18;9951:9;9943:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:48;:93;;;;;10021:15;10009:9;9995:7;:11;10003:2;9995:11;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:41;9943:93;9935:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;9876:217;10144:14;;10135:6;10119:13;10129:2;10119:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10111:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9839:375;10230:28;10261:24;10279:4;10261:9;:24::i;:::-;10230:55;;10300:12;10339:19;;10315:20;:43;;10300:58;;10402:19;;10378:20;:43;10375:138;;10478:19;;10455:42;;10375:138;10533:7;:18;;;;;10545:6;;;;;;;;;;;10544:7;10533:18;:43;;;;;10563:13;;;;;;;;;;;10555:21;;:4;:21;;;;10533:43;:58;;;;;10580:11;;;;;;;;;;;10533:58;10529:378;;;10612:38;10629:20;10612:16;:38::i;:::-;10711:26;10740:21;10711:50;;10805:7;10784:18;:28;10780:112;;;10837:35;10850:21;10837:12;:35::i;:::-;10780:112;10593:314;10529:378;9595:1323;;9537:1381;10930:12;10945:4;10930:19;;10994:18;:24;11013:4;10994:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11022:18;:22;11041:2;11022:22;;;;;;;;;;;;;;;;;;;;;;;;;10994:50;10993:102;;;;11058:13;;;;;;;;;;;11050:21;;:4;:21;;;;:44;;;;;11081:13;;;;;;;;;;;11075:19;;:2;:19;;;;11050:44;10993:102;10989:503;;;11122:5;11112:15;;10989:503;;;11205:13;;;;;;;;;;;11197:21;;:4;:21;;;:55;;;;;11236:15;;;;;;;;;;;11222:30;;:2;:30;;;;11197:55;11194:117;;;11283:12;;11273:7;:22;;;;11194:117;11370:13;;;;;;;;;;;11364:19;;:2;:19;;;:55;;;;;11403:15;;;;;;;;;;;11387:32;;:4;:32;;;;11364:55;11360:119;;;11450:13;;11440:7;:23;;;;11360:119;10989:503;11520:15;11499:7;:18;11507:9;11499:18;;;;;;;;;;;;;;;:36;;;;11557:15;11543:7;:11;11551:2;11543:11;;;;;;;;;;;;;;;:29;;;;11583:41;11598:4;11604:2;11608:6;11616:7;11583:14;:41::i;:::-;9295:2337;9192:2440;;;:::o;3374:224::-;3494:7;3527:1;3522;:6;;3530:12;3514:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3554:9;3570:1;3566;:5;;;;:::i;:::-;3554:17;;3589:1;3582:8;;;3374:224;;;;;:::o;14529:330::-;14622:4;14659:53;14681:6;14659:53;;;;;;;;;;;;;;;;;:9;:17;14669:6;14659:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14639:9;:17;14649:6;14639:17;;;;;;;;;;;;;;;:73;;;;14746:32;14771:6;14746:9;:20;14756:9;14746:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;14723:9;:20;14733:9;14723:20;;;;;;;;;;;;;;;:55;;;;14811:9;14794:35;;14803:6;14794:35;;;14822:6;14794:35;;;;;;:::i;:::-;;;;;;;;14847:4;14840:11;;14529:330;;;;;:::o;2821:191::-;2895:16;2914:6;;;;;;;;;;;2895:25;;2940:8;2931:6;;:17;;;;;;;;;;;;;;;;;;2995:8;2964:40;;2985:8;2964:40;;;;;;;;;;;;2884:128;2821:191;:::o;11640:756::-;6521:4;6512:6;;:13;;;;;;;;;;;;;;;;;;11711:14:::1;11728:28;11752:3;11728:19;11744:2;11728:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11711:45;;11760:14;11791:6;11777:11;:20;;;;:::i;:::-;11760:37;;11808:21;11832;11808:45;;11866:21;11904:1;11890:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11866:40;;11935:4;11917;11922:1;11917:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11961:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11951:4;11956:1;11951:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11994:62;12011:4;12026:15;;;;;;;;;;;12044:11;11994:8;:62::i;:::-;12067:15;;;;;;;;;;;:66;;;12148:6;12169:1;12185:4;12212;12232:15;12067:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12269:17;12289:40;12315:13;12289:21;:25;;:40;;;;:::i;:::-;12269:60;;12340:48;12353:6;12361:26;12383:3;12361:17;12375:2;12361:9;:13;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;12340:12;:48::i;:::-;11707:689;;;;;6557:5:::0;6548:6;;:14;;;;;;;;;;;;;;;;;;11640:756;:::o;12404:99::-;12461:17;;;;;;;;;;;:26;;:34;12488:6;12461:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12404:99;:::o;13589:277::-;13745:7;13740:119;;13755:40;13770:6;13777:9;13788:6;13755:14;:40::i;:::-;;13740:119;;;13813:44;13831:6;13839:9;13850:6;13813:17;:44::i;:::-;13740:119;13589:277;;;;:::o;3043:179::-;3101:7;3121:9;3137:1;3133;:5;;;;:::i;:::-;3121:17;;3162:1;3157;:6;;3149:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3213:1;3206:8;;;3043:179;;;;:::o;3606:246::-;3664:7;3693:1;3688;:6;3684:47;;;3718:1;3711:8;;;;3684:47;3741:9;3757:1;3753;:5;;;;:::i;:::-;3741:17;;3786:1;3781;3777;:5;;;;:::i;:::-;:10;3769:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3843:1;3836:8;;;3606:246;;;;;:::o;3860:132::-;3918:7;3945:39;3949:1;3952;3945:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3938:46;;3860:132;;;;:::o;3230:136::-;3288:7;3315:43;3319:1;3322;3315:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3308:50;;3230:136;;;;:::o;12511:520::-;12661:62;12678:4;12693:15;;;;;;;;;;;12711:11;12661:8;:62::i;:::-;12766:15;;;;;;;;;;;:31;;;12805:9;12838:4;12858:11;12884:1;12927;12978;12995:15;12766:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12511:520;;:::o;14117:405::-;14248:22;14273:24;14282:6;14290;14273:8;:24::i;:::-;14248:49;;14328:53;14350:6;14328:53;;;;;;;;;;;;;;;;;:9;:17;14338:6;14328:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14308:9;:17;14318:6;14308:17;;;;;;;;;;;;;;;:73;;;;14415:40;14440:14;14415:9;:20;14425:9;14415:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14392:9;:20;14402:9;14392:20;;;;;;;;;;;;;;;:63;;;;14488:9;14471:43;;14480:6;14471:43;;;14499:14;14471:43;;;;;;:::i;:::-;;;;;;;;14237:285;14117:405;;;:::o;4000:223::-;4120:7;4152:1;4148;:5;4155:12;4140:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4179:9;4195:1;4191;:5;;;;:::i;:::-;4179:17;;4214:1;4207:8;;;4000:223;;;;;:::o;14865:317::-;14932:7;14952:17;14972:28;14996:3;14972:19;14983:7;;14972:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14952:48;;15038:39;15067:9;15038;:24;15056:4;15038:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15011:9;:24;15029:4;15011:24;;;;;;;;;;;;;;;:66;;;;15118:4;15093:42;;15102:6;15093:42;;;15125:9;15093:42;;;;;;:::i;:::-;;;;;;;;15153:21;15164:9;15153:6;:10;;:21;;;;:::i;:::-;15146:28;;;14865:317;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:307::-;4139:1;4149:113;4163:6;4160:1;4157:13;4149:113;;;4248:1;4243:3;4239:11;4233:18;4229:1;4224:3;4220:11;4213:39;4185:2;4182:1;4178:10;4173:15;;4149:113;;;4280:6;4277:1;4274:13;4271:101;;;4360:1;4351:6;4346:3;4342:16;4335:27;4271:101;4120:258;4071:307;;;:::o;4384:364::-;4472:3;4500:39;4533:5;4500:39;:::i;:::-;4555:71;4619:6;4614:3;4555:71;:::i;:::-;4548:78;;4635:52;4680:6;4675:3;4668:4;4661:5;4657:16;4635:52;:::i;:::-;4712:29;4734:6;4712:29;:::i;:::-;4707:3;4703:39;4696:46;;4476:272;4384:364;;;;:::o;4754:313::-;4867:4;4905:2;4894:9;4890:18;4882:26;;4954:9;4948:4;4944:20;4940:1;4929:9;4925:17;4918:47;4982:78;5055:4;5046:6;4982:78;:::i;:::-;4974:86;;4754:313;;;;:::o;5073:77::-;5110:7;5139:5;5128:16;;5073:77;;;:::o;5156:122::-;5229:24;5247:5;5229:24;:::i;:::-;5222:5;5219:35;5209:63;;5268:1;5265;5258:12;5209:63;5156:122;:::o;5284:139::-;5330:5;5368:6;5355:20;5346:29;;5384:33;5411:5;5384:33;:::i;:::-;5284:139;;;;:::o;5429:474::-;5497:6;5505;5554:2;5542:9;5533:7;5529:23;5525:32;5522:119;;;5560:79;;:::i;:::-;5522:119;5680:1;5705:53;5750:7;5741:6;5730:9;5726:22;5705:53;:::i;:::-;5695:63;;5651:117;5807:2;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5778:118;5429:474;;;;;:::o;5909:90::-;5943:7;5986:5;5979:13;5972:21;5961:32;;5909:90;;;:::o;6005:109::-;6086:21;6101:5;6086:21;:::i;:::-;6081:3;6074:34;6005:109;;:::o;6120:210::-;6207:4;6245:2;6234:9;6230:18;6222:26;;6258:65;6320:1;6309:9;6305:17;6296:6;6258:65;:::i;:::-;6120:210;;;;:::o;6336:116::-;6406:21;6421:5;6406:21;:::i;:::-;6399:5;6396:32;6386:60;;6442:1;6439;6432:12;6386:60;6336:116;:::o;6458:133::-;6501:5;6539:6;6526:20;6517:29;;6555:30;6579:5;6555:30;:::i;:::-;6458:133;;;;:::o;6597:323::-;6653:6;6702:2;6690:9;6681:7;6677:23;6673:32;6670:119;;;6708:79;;:::i;:::-;6670:119;6828:1;6853:50;6895:7;6886:6;6875:9;6871:22;6853:50;:::i;:::-;6843:60;;6799:114;6597:323;;;;:::o;6926:60::-;6954:3;6975:5;6968:12;;6926:60;;;:::o;6992:142::-;7042:9;7075:53;7093:34;7102:24;7120:5;7102:24;:::i;:::-;7093:34;:::i;:::-;7075:53;:::i;:::-;7062:66;;6992:142;;;:::o;7140:126::-;7190:9;7223:37;7254:5;7223:37;:::i;:::-;7210:50;;7140:126;;;:::o;7272:152::-;7348:9;7381:37;7412:5;7381:37;:::i;:::-;7368:50;;7272:152;;;:::o;7430:183::-;7543:63;7600:5;7543:63;:::i;:::-;7538:3;7531:76;7430:183;;:::o;7619:274::-;7738:4;7776:2;7765:9;7761:18;7753:26;;7789:97;7883:1;7872:9;7868:17;7859:6;7789:97;:::i;:::-;7619:274;;;;:::o;7899:118::-;7986:24;8004:5;7986:24;:::i;:::-;7981:3;7974:37;7899:118;;:::o;8023:222::-;8116:4;8154:2;8143:9;8139:18;8131:26;;8167:71;8235:1;8224:9;8220:17;8211:6;8167:71;:::i;:::-;8023:222;;;;:::o;8251:619::-;8328:6;8336;8344;8393:2;8381:9;8372:7;8368:23;8364:32;8361:119;;;8399:79;;:::i;:::-;8361:119;8519:1;8544:53;8589:7;8580:6;8569:9;8565:22;8544:53;:::i;:::-;8534:63;;8490:117;8646:2;8672:53;8717:7;8708:6;8697:9;8693:22;8672:53;:::i;:::-;8662:63;;8617:118;8774:2;8800:53;8845:7;8836:6;8825:9;8821:22;8800:53;:::i;:::-;8790:63;;8745:118;8251:619;;;;;:::o;8876:86::-;8911:7;8951:4;8944:5;8940:16;8929:27;;8876:86;;;:::o;8968:112::-;9051:22;9067:5;9051:22;:::i;:::-;9046:3;9039:35;8968:112;;:::o;9086:214::-;9175:4;9213:2;9202:9;9198:18;9190:26;;9226:67;9290:1;9279:9;9275:17;9266:6;9226:67;:::i;:::-;9086:214;;;;:::o;9306:118::-;9393:24;9411:5;9393:24;:::i;:::-;9388:3;9381:37;9306:118;;:::o;9430:222::-;9523:4;9561:2;9550:9;9546:18;9538:26;;9574:71;9642:1;9631:9;9627:17;9618:6;9574:71;:::i;:::-;9430:222;;;;:::o;9658:474::-;9726:6;9734;9783:2;9771:9;9762:7;9758:23;9754:32;9751:119;;;9789:79;;:::i;:::-;9751:119;9909:1;9934:53;9979:7;9970:6;9959:9;9955:22;9934:53;:::i;:::-;9924:63;;9880:117;10036:2;10062:53;10107:7;10098:6;10087:9;10083:22;10062:53;:::i;:::-;10052:63;;10007:118;9658:474;;;;;:::o;10138:468::-;10203:6;10211;10260:2;10248:9;10239:7;10235:23;10231:32;10228:119;;;10266:79;;:::i;:::-;10228:119;10386:1;10411:53;10456:7;10447:6;10436:9;10432:22;10411:53;:::i;:::-;10401:63;;10357:117;10513:2;10539:50;10581:7;10572:6;10561:9;10557:22;10539:50;:::i;:::-;10529:60;;10484:115;10138:468;;;;;:::o;10612:117::-;10721:1;10718;10711:12;10752:568;10825:8;10835:6;10885:3;10878:4;10870:6;10866:17;10862:27;10852:122;;10893:79;;:::i;:::-;10852:122;11006:6;10993:20;10983:30;;11036:18;11028:6;11025:30;11022:117;;;11058:79;;:::i;:::-;11022:117;11172:4;11164:6;11160:17;11148:29;;11226:3;11218:4;11210:6;11206:17;11196:8;11192:32;11189:41;11186:128;;;11233:79;;:::i;:::-;11186:128;10752:568;;;;;:::o;11343:::-;11416:8;11426:6;11476:3;11469:4;11461:6;11457:17;11453:27;11443:122;;11484:79;;:::i;:::-;11443:122;11597:6;11584:20;11574:30;;11627:18;11619:6;11616:30;11613:117;;;11649:79;;:::i;:::-;11613:117;11763:4;11755:6;11751:17;11739:29;;11817:3;11809:4;11801:6;11797:17;11787:8;11783:32;11780:41;11777:128;;;11824:79;;:::i;:::-;11777:128;11343:568;;;;;:::o;11917:934::-;12039:6;12047;12055;12063;12112:2;12100:9;12091:7;12087:23;12083:32;12080:119;;;12118:79;;:::i;:::-;12080:119;12266:1;12255:9;12251:17;12238:31;12296:18;12288:6;12285:30;12282:117;;;12318:79;;:::i;:::-;12282:117;12431:80;12503:7;12494:6;12483:9;12479:22;12431:80;:::i;:::-;12413:98;;;;12209:312;12588:2;12577:9;12573:18;12560:32;12619:18;12611:6;12608:30;12605:117;;;12641:79;;:::i;:::-;12605:117;12754:80;12826:7;12817:6;12806:9;12802:22;12754:80;:::i;:::-;12736:98;;;;12531:313;11917:934;;;;;;;:::o;12857:329::-;12916:6;12965:2;12953:9;12944:7;12940:23;12936:32;12933:119;;;12971:79;;:::i;:::-;12933:119;13091:1;13116:53;13161:7;13152:6;13141:9;13137:22;13116:53;:::i;:::-;13106:63;;13062:117;12857:329;;;;:::o;13192:::-;13251:6;13300:2;13288:9;13279:7;13275:23;13271:32;13268:119;;;13306:79;;:::i;:::-;13268:119;13426:1;13451:53;13496:7;13487:6;13476:9;13472:22;13451:53;:::i;:::-;13441:63;;13397:117;13192:329;;;;:::o;13527:474::-;13595:6;13603;13652:2;13640:9;13631:7;13627:23;13623:32;13620:119;;;13658:79;;:::i;:::-;13620:119;13778:1;13803:53;13848:7;13839:6;13828:9;13824:22;13803:53;:::i;:::-;13793:63;;13749:117;13905:2;13931:53;13976:7;13967:6;13956:9;13952:22;13931:53;:::i;:::-;13921:63;;13876:118;13527:474;;;;;:::o;14007:182::-;14147:34;14143:1;14135:6;14131:14;14124:58;14007:182;:::o;14195:366::-;14337:3;14358:67;14422:2;14417:3;14358:67;:::i;:::-;14351:74;;14434:93;14523:3;14434:93;:::i;:::-;14552:2;14547:3;14543:12;14536:19;;14195:366;;;:::o;14567:419::-;14733:4;14771:2;14760:9;14756:18;14748:26;;14820:9;14814:4;14810:20;14806:1;14795:9;14791:17;14784:47;14848:131;14974:4;14848:131;:::i;:::-;14840:139;;14567:419;;;:::o;14992:180::-;15040:77;15037:1;15030:88;15137:4;15134:1;15127:15;15161:4;15158:1;15151:15;15178:180;15226:77;15223:1;15216:88;15323:4;15320:1;15313:15;15347:4;15344:1;15337:15;15364:233;15403:3;15426:24;15444:5;15426:24;:::i;:::-;15417:33;;15472:66;15465:5;15462:77;15459:103;;;15542:18;;:::i;:::-;15459:103;15589:1;15582:5;15578:13;15571:20;;15364:233;;;:::o;15603:225::-;15743:34;15739:1;15731:6;15727:14;15720:58;15812:8;15807:2;15799:6;15795:15;15788:33;15603:225;:::o;15834:366::-;15976:3;15997:67;16061:2;16056:3;15997:67;:::i;:::-;15990:74;;16073:93;16162:3;16073:93;:::i;:::-;16191:2;16186:3;16182:12;16175:19;;15834:366;;;:::o;16206:419::-;16372:4;16410:2;16399:9;16395:18;16387:26;;16459:9;16453:4;16449:20;16445:1;16434:9;16430:17;16423:47;16487:131;16613:4;16487:131;:::i;:::-;16479:139;;16206:419;;;:::o;16631:223::-;16771:34;16767:1;16759:6;16755:14;16748:58;16840:6;16835:2;16827:6;16823:15;16816:31;16631:223;:::o;16860:366::-;17002:3;17023:67;17087:2;17082:3;17023:67;:::i;:::-;17016:74;;17099:93;17188:3;17099:93;:::i;:::-;17217:2;17212:3;17208:12;17201:19;;16860:366;;;:::o;17232:419::-;17398:4;17436:2;17425:9;17421:18;17413:26;;17485:9;17479:4;17475:20;17471:1;17460:9;17456:17;17449:47;17513:131;17639:4;17513:131;:::i;:::-;17505:139;;17232:419;;;:::o;17657:221::-;17797:34;17793:1;17785:6;17781:14;17774:58;17866:4;17861:2;17853:6;17849:15;17842:29;17657:221;:::o;17884:366::-;18026:3;18047:67;18111:2;18106:3;18047:67;:::i;:::-;18040:74;;18123:93;18212:3;18123:93;:::i;:::-;18241:2;18236:3;18232:12;18225:19;;17884:366;;;:::o;18256:419::-;18422:4;18460:2;18449:9;18445:18;18437:26;;18509:9;18503:4;18499:20;18495:1;18484:9;18480:17;18473:47;18537:131;18663:4;18537:131;:::i;:::-;18529:139;;18256:419;;;:::o;18681:224::-;18821:34;18817:1;18809:6;18805:14;18798:58;18890:7;18885:2;18877:6;18873:15;18866:32;18681:224;:::o;18911:366::-;19053:3;19074:67;19138:2;19133:3;19074:67;:::i;:::-;19067:74;;19150:93;19239:3;19150:93;:::i;:::-;19268:2;19263:3;19259:12;19252:19;;18911:366;;;:::o;19283:419::-;19449:4;19487:2;19476:9;19472:18;19464:26;;19536:9;19530:4;19526:20;19522:1;19511:9;19507:17;19500:47;19564:131;19690:4;19564:131;:::i;:::-;19556:139;;19283:419;;;:::o;19708:222::-;19848:34;19844:1;19836:6;19832:14;19825:58;19917:5;19912:2;19904:6;19900:15;19893:30;19708:222;:::o;19936:366::-;20078:3;20099:67;20163:2;20158:3;20099:67;:::i;:::-;20092:74;;20175:93;20264:3;20175:93;:::i;:::-;20293:2;20288:3;20284:12;20277:19;;19936:366;;;:::o;20308:419::-;20474:4;20512:2;20501:9;20497:18;20489:26;;20561:9;20555:4;20551:20;20547:1;20536:9;20532:17;20525:47;20589:131;20715:4;20589:131;:::i;:::-;20581:139;;20308:419;;;:::o;20733:228::-;20873:34;20869:1;20861:6;20857:14;20850:58;20942:11;20937:2;20929:6;20925:15;20918:36;20733:228;:::o;20967:366::-;21109:3;21130:67;21194:2;21189:3;21130:67;:::i;:::-;21123:74;;21206:93;21295:3;21206:93;:::i;:::-;21324:2;21319:3;21315:12;21308:19;;20967:366;;;:::o;21339:419::-;21505:4;21543:2;21532:9;21528:18;21520:26;;21592:9;21586:4;21582:20;21578:1;21567:9;21563:17;21556:47;21620:131;21746:4;21620:131;:::i;:::-;21612:139;;21339:419;;;:::o;21764:180::-;21904:32;21900:1;21892:6;21888:14;21881:56;21764:180;:::o;21950:366::-;22092:3;22113:67;22177:2;22172:3;22113:67;:::i;:::-;22106:74;;22189:93;22278:3;22189:93;:::i;:::-;22307:2;22302:3;22298:12;22291:19;;21950:366;;;:::o;22322:419::-;22488:4;22526:2;22515:9;22511:18;22503:26;;22575:9;22569:4;22565:20;22561:1;22550:9;22546:17;22539:47;22603:131;22729:4;22603:131;:::i;:::-;22595:139;;22322:419;;;:::o;22747:178::-;22887:30;22883:1;22875:6;22871:14;22864:54;22747:178;:::o;22931:366::-;23073:3;23094:67;23158:2;23153:3;23094:67;:::i;:::-;23087:74;;23170:93;23259:3;23170:93;:::i;:::-;23288:2;23283:3;23279:12;23272:19;;22931:366;;;:::o;23303:419::-;23469:4;23507:2;23496:9;23492:18;23484:26;;23556:9;23550:4;23546:20;23542:1;23531:9;23527:17;23520:47;23584:131;23710:4;23584:131;:::i;:::-;23576:139;;23303:419;;;:::o;23728:222::-;23868:34;23864:1;23856:6;23852:14;23845:58;23937:5;23932:2;23924:6;23920:15;23913:30;23728:222;:::o;23956:366::-;24098:3;24119:67;24183:2;24178:3;24119:67;:::i;:::-;24112:74;;24195:93;24284:3;24195:93;:::i;:::-;24313:2;24308:3;24304:12;24297:19;;23956:366;;;:::o;24328:419::-;24494:4;24532:2;24521:9;24517:18;24509:26;;24581:9;24575:4;24571:20;24567:1;24556:9;24552:17;24545:47;24609:131;24735:4;24609:131;:::i;:::-;24601:139;;24328:419;;;:::o;24753:305::-;24793:3;24812:20;24830:1;24812:20;:::i;:::-;24807:25;;24846:20;24864:1;24846:20;:::i;:::-;24841:25;;25000:1;24932:66;24928:74;24925:1;24922:81;24919:107;;;25006:18;;:::i;:::-;24919:107;25050:1;25047;25043:9;25036:16;;24753:305;;;;:::o;25064:225::-;25204:34;25200:1;25192:6;25188:14;25181:58;25273:8;25268:2;25260:6;25256:15;25249:33;25064:225;:::o;25295:366::-;25437:3;25458:67;25522:2;25517:3;25458:67;:::i;:::-;25451:74;;25534:93;25623:3;25534:93;:::i;:::-;25652:2;25647:3;25643:12;25636:19;;25295:366;;;:::o;25667:419::-;25833:4;25871:2;25860:9;25856:18;25848:26;;25920:9;25914:4;25910:20;25906:1;25895:9;25891:17;25884:47;25948:131;26074:4;25948:131;:::i;:::-;25940:139;;25667:419;;;:::o;26092:222::-;26232:34;26228:1;26220:6;26216:14;26209:58;26301:5;26296:2;26288:6;26284:15;26277:30;26092:222;:::o;26320:366::-;26462:3;26483:67;26547:2;26542:3;26483:67;:::i;:::-;26476:74;;26559:93;26648:3;26559:93;:::i;:::-;26677:2;26672:3;26668:12;26661:19;;26320:366;;;:::o;26692:419::-;26858:4;26896:2;26885:9;26881:18;26873:26;;26945:9;26939:4;26935:20;26931:1;26920:9;26916:17;26909:47;26973:131;27099:4;26973:131;:::i;:::-;26965:139;;26692:419;;;:::o;27117:191::-;27157:4;27177:20;27195:1;27177:20;:::i;:::-;27172:25;;27211:20;27229:1;27211:20;:::i;:::-;27206:25;;27250:1;27247;27244:8;27241:34;;;27255:18;;:::i;:::-;27241:34;27300:1;27297;27293:9;27285:17;;27117:191;;;;:::o;27314:143::-;27371:5;27402:6;27396:13;27387:22;;27418:33;27445:5;27418:33;:::i;:::-;27314:143;;;;:::o;27463:351::-;27533:6;27582:2;27570:9;27561:7;27557:23;27553:32;27550:119;;;27588:79;;:::i;:::-;27550:119;27708:1;27733:64;27789:7;27780:6;27769:9;27765:22;27733:64;:::i;:::-;27723:74;;27679:128;27463:351;;;;:::o;27820:85::-;27865:7;27894:5;27883:16;;27820:85;;;:::o;27911:158::-;27969:9;28002:61;28020:42;28029:32;28055:5;28029:32;:::i;:::-;28020:42;:::i;:::-;28002:61;:::i;:::-;27989:74;;27911:158;;;:::o;28075:147::-;28170:45;28209:5;28170:45;:::i;:::-;28165:3;28158:58;28075:147;;:::o;28228:114::-;28295:6;28329:5;28323:12;28313:22;;28228:114;;;:::o;28348:184::-;28447:11;28481:6;28476:3;28469:19;28521:4;28516:3;28512:14;28497:29;;28348:184;;;;:::o;28538:132::-;28605:4;28628:3;28620:11;;28658:4;28653:3;28649:14;28641:22;;28538:132;;;:::o;28676:108::-;28753:24;28771:5;28753:24;:::i;:::-;28748:3;28741:37;28676:108;;:::o;28790:179::-;28859:10;28880:46;28922:3;28914:6;28880:46;:::i;:::-;28958:4;28953:3;28949:14;28935:28;;28790:179;;;;:::o;28975:113::-;29045:4;29077;29072:3;29068:14;29060:22;;28975:113;;;:::o;29124:732::-;29243:3;29272:54;29320:5;29272:54;:::i;:::-;29342:86;29421:6;29416:3;29342:86;:::i;:::-;29335:93;;29452:56;29502:5;29452:56;:::i;:::-;29531:7;29562:1;29547:284;29572:6;29569:1;29566:13;29547:284;;;29648:6;29642:13;29675:63;29734:3;29719:13;29675:63;:::i;:::-;29668:70;;29761:60;29814:6;29761:60;:::i;:::-;29751:70;;29607:224;29594:1;29591;29587:9;29582:14;;29547:284;;;29551:14;29847:3;29840:10;;29248:608;;;29124:732;;;;:::o;29862:831::-;30125:4;30163:3;30152:9;30148:19;30140:27;;30177:71;30245:1;30234:9;30230:17;30221:6;30177:71;:::i;:::-;30258:80;30334:2;30323:9;30319:18;30310:6;30258:80;:::i;:::-;30385:9;30379:4;30375:20;30370:2;30359:9;30355:18;30348:48;30413:108;30516:4;30507:6;30413:108;:::i;:::-;30405:116;;30531:72;30599:2;30588:9;30584:18;30575:6;30531:72;:::i;:::-;30613:73;30681:3;30670:9;30666:19;30657:6;30613:73;:::i;:::-;29862:831;;;;;;;;:::o;30699:177::-;30839:29;30835:1;30827:6;30823:14;30816:53;30699:177;:::o;30882:366::-;31024:3;31045:67;31109:2;31104:3;31045:67;:::i;:::-;31038:74;;31121:93;31210:3;31121:93;:::i;:::-;31239:2;31234:3;31230:12;31223:19;;30882:366;;;:::o;31254:419::-;31420:4;31458:2;31447:9;31443:18;31435:26;;31507:9;31501:4;31497:20;31493:1;31482:9;31478:17;31471:47;31535:131;31661:4;31535:131;:::i;:::-;31527:139;;31254:419;;;:::o;31679:348::-;31719:7;31742:20;31760:1;31742:20;:::i;:::-;31737:25;;31776:20;31794:1;31776:20;:::i;:::-;31771:25;;31964:1;31896:66;31892:74;31889:1;31886:81;31881:1;31874:9;31867:17;31863:105;31860:131;;;31971:18;;:::i;:::-;31860:131;32019:1;32016;32012:9;32001:20;;31679:348;;;;:::o;32033:180::-;32081:77;32078:1;32071:88;32178:4;32175:1;32168:15;32202:4;32199:1;32192:15;32219:185;32259:1;32276:20;32294:1;32276:20;:::i;:::-;32271:25;;32310:20;32328:1;32310:20;:::i;:::-;32305:25;;32349:1;32339:35;;32354:18;;:::i;:::-;32339:35;32396:1;32393;32389:9;32384:14;;32219:185;;;;:::o;32410:220::-;32550:34;32546:1;32538:6;32534:14;32527:58;32619:3;32614:2;32606:6;32602:15;32595:28;32410:220;:::o;32636:366::-;32778:3;32799:67;32863:2;32858:3;32799:67;:::i;:::-;32792:74;;32875:93;32964:3;32875:93;:::i;:::-;32993:2;32988:3;32984:12;32977:19;;32636:366;;;:::o;33008:419::-;33174:4;33212:2;33201:9;33197:18;33189:26;;33261:9;33255:4;33251:20;33247:1;33236:9;33232:17;33225:47;33289:131;33415:4;33289:131;:::i;:::-;33281:139;;33008:419;;;:::o;33433:807::-;33682:4;33720:3;33709:9;33705:19;33697:27;;33734:71;33802:1;33791:9;33787:17;33778:6;33734:71;:::i;:::-;33815:72;33883:2;33872:9;33868:18;33859:6;33815:72;:::i;:::-;33897:80;33973:2;33962:9;33958:18;33949:6;33897:80;:::i;:::-;33987;34063:2;34052:9;34048:18;34039:6;33987:80;:::i;:::-;34077:73;34145:3;34134:9;34130:19;34121:6;34077:73;:::i;:::-;34160;34228:3;34217:9;34213:19;34204:6;34160:73;:::i;:::-;33433:807;;;;;;;;;:::o;34246:143::-;34303:5;34334:6;34328:13;34319:22;;34350:33;34377:5;34350:33;:::i;:::-;34246:143;;;;:::o;34395:663::-;34483:6;34491;34499;34548:2;34536:9;34527:7;34523:23;34519:32;34516:119;;;34554:79;;:::i;:::-;34516:119;34674:1;34699:64;34755:7;34746:6;34735:9;34731:22;34699:64;:::i;:::-;34689:74;;34645:128;34812:2;34838:64;34894:7;34885:6;34874:9;34870:22;34838:64;:::i;:::-;34828:74;;34783:129;34951:2;34977:64;35033:7;35024:6;35013:9;35009:22;34977:64;:::i;:::-;34967:74;;34922:129;34395:663;;;;;:::o

Swarm Source

ipfs://27484e2e58ef3a9cca190c69a8559292c83e0b35fc86ba98eb64cfd7312e1371
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.