ETH Price: $3,255.20 (+2.51%)
Gas: 2 Gwei

Token

ReJi Inu (REJI)
 

Overview

Max Total Supply

1,000,000,000,000 REJI

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
2,520,694,732.119519 REJI

Value
$0.00
0xb809aeff162300e46f1c90c82a45452010000000
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:
Reji

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2022-12-30
*/
// 6 BUY 6 SELL TAX! Locked and Renounced!
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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 Reji is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "ReJi Inu";
    string private constant _symbol = "REJI";
    uint8 private constant _decimals = 6;

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

    //Buy Fee
    uint256 private _taxFeeOnBuy = 6;

    //Sell Fee
    uint256 private _taxFeeOnSell = 6;

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

    mapping(address => bool) public bots;


    address payable private _marketingAddress = payable(0xA177357D759679A3Ee26565000783C4138A42cC2);

    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 = 50000000000 * 10**6; //5
    uint256 public _maxWalletSize = 50000000000 * 10**6; //5
    uint256 public _swapTokensAtAmount = 5000000000 * 10**6; //0.5

    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 setTrading(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 setFees(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":[],"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":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFees","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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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"}]

6080604052670de0b6b3a764000060055560068055600660075560075460085560085460095573a177357d759679a3ee26565000783c4138a42cc2600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506001600d60166101000a81548160ff0219169083151502179055506001600d60176101000a81548160ff02191690831515021790555066b1a2bc2ec50000600e5566b1a2bc2ec50000600f556611c37937e080006010553480156200011457600080fd5b506200013562000129620005ec60201b60201c565b620005f460201b60201c565b600554600160006200014c620005ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022b57600080fd5b505afa15801562000240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002669190620006f8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c957600080fd5b505afa158015620002de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003049190620006f8565b6040518363ffffffff1660e01b8152600401620003239291906200074c565b602060405180830381600087803b1580156200033e57600080fd5b505af115801562000353573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003799190620006f8565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000620003cf620006b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200057c620005ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620005dd919062000779565b60405180910390a350620007f3565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620006f281620007d9565b92915050565b600060208284031215620007115762000710620007d4565b5b60006200072184828501620006e1565b91505092915050565b620007358162000796565b82525050565b6200074681620007ca565b82525050565b60006040820190506200076360008301856200072a565b6200077260208301846200072a565b9392505050565b60006020820190506200079060008301846200073b565b92915050565b6000620007a382620007aa565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b620007e48162000796565b8114620007f057600080fd5b50565b613fc080620008036000396000f3fe6080604052600436106101d05760003560e01c8063715018a6116100f757806395d89b4111610095578063c3c8cd8011610064578063c3c8cd801461065a578063dd62ed3e14610671578063ea1644d5146106ae578063f2fde38b146106d7576101d7565b806395d89b411461058c57806398a5c315146105b7578063a9059cbb146105e0578063bfd792841461061d576101d7565b80638da5cb5b116100d15780638da5cb5b146104f65780638eb59a5f146105215780638f70ccf7146105385780638f9a55c014610561576101d7565b8063715018a61461048b57806374010ece146104a25780637d1db4a5146104cb576101d7565b80632fd689e31161016f578063672434821161013e57806367243482146103d35780636b999053146103fc5780636d8aa8f81461042557806370a082311461044e576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f578063658d4b7f146103aa576101d7565b80630b78f9c0116101ab5780630b78f9c01461026d5780631694505e1461029657806318160ddd146102c157806323b872dd146102ec576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe919061301c565b610700565b005b34801561021157600080fd5b5061021a610811565b6040516102279190613506565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612f5b565b61084e565b60405161026491906134d0565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f91906130bf565b61086c565b005b3480156102a257600080fd5b506102ab6108fa565b6040516102b891906134eb565b60405180910390f35b3480156102cd57600080fd5b506102d6610920565b6040516102e391906136e8565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e9190612ec8565b61092a565b60405161032091906134d0565b60405180910390f35b34801561033557600080fd5b5061033e610a03565b60405161034b91906136e8565b60405180910390f35b34801561036057600080fd5b50610369610a09565b604051610376919061375d565b60405180910390f35b34801561038b57600080fd5b50610394610a12565b6040516103a19190613454565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190612f1b565b610a38565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612f9b565b610b0f565b005b34801561040857600080fd5b50610423600480360381019061041e9190612e2e565b610bff565b005b34801561043157600080fd5b5061044c60048036038101906104479190613065565b610cd6565b005b34801561045a57600080fd5b5061047560048036038101906104709190612e2e565b610d6f565b60405161048291906136e8565b60405180910390f35b34801561049757600080fd5b506104a0610db8565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190613092565b610e40565b005b3480156104d757600080fd5b506104e0610ec6565b6040516104ed91906136e8565b60405180910390f35b34801561050257600080fd5b5061050b610ecc565b6040516105189190613454565b60405180910390f35b34801561052d57600080fd5b50610536610ef5565b005b34801561054457600080fd5b5061055f600480360381019061055a9190613065565b610f9d565b005b34801561056d57600080fd5b50610576611036565b60405161058391906136e8565b60405180910390f35b34801561059857600080fd5b506105a161103c565b6040516105ae9190613506565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613092565b611079565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612f5b565b6110ff565b60405161061491906134d0565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190612e2e565b61111d565b60405161065191906134d0565b60405180910390f35b34801561066657600080fd5b5061066f61113d565b005b34801561067d57600080fd5b5061069860048036038101906106939190612e88565b6111d2565b6040516106a591906136e8565b60405180910390f35b3480156106ba57600080fd5b506106d560048036038101906106d09190613092565b611259565b005b3480156106e357600080fd5b506106fe60048036038101906106f99190612e2e565b6112df565b005b610708611495565b73ffffffffffffffffffffffffffffffffffffffff16610726610ecc565b73ffffffffffffffffffffffffffffffffffffffff161461077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077390613648565b60405180910390fd5b60005b815181101561080d576001600a60008484815181106107a1576107a0613adb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080590613a34565b91505061077f565b5050565b60606040518060400160405280600881526020017f52654a6920496e75000000000000000000000000000000000000000000000000815250905090565b600061086261085b611495565b848461149d565b6001905092915050565b610874611495565b73ffffffffffffffffffffffffffffffffffffffff16610892610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df90613648565b60405180910390fd5b81600681905550806007819055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b6000610937848484611668565b6109f884610943611495565b6109f385604051806060016040528060288152602001613f6360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a9611495565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b61149d565b600190509392505050565b60105481565b60006006905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a40611495565b73ffffffffffffffffffffffffffffffffffffffff16610a5e610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613648565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610b17611495565b73ffffffffffffffffffffffffffffffffffffffff16610b35610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613648565b60405180910390fd5b60005b84849050811015610bf857610be433868684818110610bb057610baf613adb565b5b9050602002016020810190610bc59190612e2e565b858585818110610bd857610bd7613adb565b5b90506020020135612062565b508080610bf090613a34565b915050610b8e565b5050505050565b610c07611495565b73ffffffffffffffffffffffffffffffffffffffff16610c25610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290613648565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cde611495565b73ffffffffffffffffffffffffffffffffffffffff16610cfc610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613648565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dc0611495565b73ffffffffffffffffffffffffffffffffffffffff16610dde610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b90613648565b60405180910390fd5b610e3e6000612235565b565b610e48611495565b73ffffffffffffffffffffffffffffffffffffffff16610e66610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390613648565b60405180910390fd5b80600e8190555050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610efd611495565b73ffffffffffffffffffffffffffffffffffffffff16610f1b610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6890613648565b60405180910390fd5b600d60179054906101000a900460ff1615600d60176101000a81548160ff021916908315150217905550565b610fa5611495565b73ffffffffffffffffffffffffffffffffffffffff16610fc3610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090613648565b60405180910390fd5b80600d60146101000a81548160ff02191690831515021790555050565b600f5481565b60606040518060400160405280600481526020017f52454a4900000000000000000000000000000000000000000000000000000000815250905090565b611081611495565b73ffffffffffffffffffffffffffffffffffffffff1661109f610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90613648565b60405180910390fd5b8060108190555050565b600061111361110c611495565b8484611668565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b611145611495565b73ffffffffffffffffffffffffffffffffffffffff16611163610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090613648565b60405180910390fd5b60006111c430610d6f565b90506111cf816122f9565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611261611495565b73ffffffffffffffffffffffffffffffffffffffff1661127f610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90613648565b60405180910390fd5b80600f8190555050565b6112e7611495565b73ffffffffffffffffffffffffffffffffffffffff16611305610ecc565b73ffffffffffffffffffffffffffffffffffffffff161461135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290613648565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613568565b60405180910390fd5b6000600460006113d9610ecc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061143381612235565b600160046000611441610ecc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906136c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490613588565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165b91906136e8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90613688565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90613528565b60405180910390fd5b6000811161178b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178290613668565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8757600d60149054906101000a900460ff16611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a906135c8565b60405180910390fd5b600e548111156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613548565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561196c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a2906135a8565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baa57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a695750600d60179054906101000a900460ff165b15611b52574260b4600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb919061381e565b108015611b1257504260b4600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b10919061381e565b105b611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4890613608565b60405180910390fd5b5b600f5481611b5f84610d6f565b611b69919061381e565b10611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba0906136a8565b60405180910390fd5b5b6000611bb530610d6f565b9050600060105482101590506010548210611bd05760105491505b808015611bea5750600d60159054906101000a900460ff16155b8015611c445750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600d60169054906101000a900460ff165b15611c8457611c6a826122f9565b60004790506000811115611c8257611c814761260c565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611de15750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611de05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611def5760009050611f64565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e9a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ea9576006546008819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f545750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f63576007546008819055505b5b42600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff884848484612678565b50505050565b6000838311158290612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d9190613506565b60405180910390fd5b506000838561205591906138ff565b9050809150509392505050565b60006120ed826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161222291906136e8565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600d60156101000a81548160ff021916908315150217905550600061233d606461232f6055856126fe90919063ffffffff16565b61277990919063ffffffff16565b90506000818361234d91906138ff565b905060004790506000600267ffffffffffffffff81111561237157612370613b0a565b5b60405190808252806020026020018201604052801561239f5781602001602082028036833780820191505090505b50905030816000815181106123b7576123b6613adb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124919190612e5b565b816001815181106124a5576124a4613adb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250c30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168761149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612570959493929190613703565b600060405180830381600087803b15801561258a57600080fd5b505af115801561259e573d6000803e3d6000fd5b5050505060006125b783476127c390919063ffffffff16565b90506125e9846125e460646125d6600f866126fe90919063ffffffff16565b61277990919063ffffffff16565b61280d565b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612674573d6000803e3d6000fd5b5050565b8061268e57612688848484612062565b5061269a565b6126998484846128fb565b5b50505050565b60008082846126af919061381e565b9050838110156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb906135e8565b60405180910390fd5b8091505092915050565b6000808314156127115760009050612773565b6000828461271f91906138a5565b905082848261272e9190613874565b1461276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613628565b60405180910390fd5b809150505b92915050565b60006127bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad5565b905092915050565b600061280583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ffe565b905092915050565b61283a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b81526004016128a29695949392919061346f565b6060604051808303818588803b1580156128bb57600080fd5b505af11580156128cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128f491906130ff565b5050505050565b60006129078483612b38565b9050612992826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a2781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ac791906136e8565b60405180910390a350505050565b60008083118290612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b139190613506565b60405180910390fd5b5060008385612b2b9190613874565b9050809150509392505050565b600080612b636064612b55600854866126fe90919063ffffffff16565b61277990919063ffffffff16565b9050612bb781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c5791906136e8565b60405180910390a3612c7281846127c390919063ffffffff16565b91505092915050565b6000612c8e612c898461379d565b613778565b90508083825260208201905082856020860282011115612cb157612cb0613b43565b5b60005b85811015612ce15781612cc78882612ceb565b845260208401935060208301925050600181019050612cb4565b5050509392505050565b600081359050612cfa81613f1d565b92915050565b600081519050612d0f81613f1d565b92915050565b60008083601f840112612d2b57612d2a613b3e565b5b8235905067ffffffffffffffff811115612d4857612d47613b39565b5b602083019150836020820283011115612d6457612d63613b43565b5b9250929050565b600082601f830112612d8057612d7f613b3e565b5b8135612d90848260208601612c7b565b91505092915050565b60008083601f840112612daf57612dae613b3e565b5b8235905067ffffffffffffffff811115612dcc57612dcb613b39565b5b602083019150836020820283011115612de857612de7613b43565b5b9250929050565b600081359050612dfe81613f34565b92915050565b600081359050612e1381613f4b565b92915050565b600081519050612e2881613f4b565b92915050565b600060208284031215612e4457612e43613b4d565b5b6000612e5284828501612ceb565b91505092915050565b600060208284031215612e7157612e70613b4d565b5b6000612e7f84828501612d00565b91505092915050565b60008060408385031215612e9f57612e9e613b4d565b5b6000612ead85828601612ceb565b9250506020612ebe85828601612ceb565b9150509250929050565b600080600060608486031215612ee157612ee0613b4d565b5b6000612eef86828701612ceb565b9350506020612f0086828701612ceb565b9250506040612f1186828701612e04565b9150509250925092565b60008060408385031215612f3257612f31613b4d565b5b6000612f4085828601612ceb565b9250506020612f5185828601612def565b9150509250929050565b60008060408385031215612f7257612f71613b4d565b5b6000612f8085828601612ceb565b9250506020612f9185828601612e04565b9150509250929050565b60008060008060408587031215612fb557612fb4613b4d565b5b600085013567ffffffffffffffff811115612fd357612fd2613b48565b5b612fdf87828801612d15565b9450945050602085013567ffffffffffffffff81111561300257613001613b48565b5b61300e87828801612d99565b925092505092959194509250565b60006020828403121561303257613031613b4d565b5b600082013567ffffffffffffffff8111156130505761304f613b48565b5b61305c84828501612d6b565b91505092915050565b60006020828403121561307b5761307a613b4d565b5b600061308984828501612def565b91505092915050565b6000602082840312156130a8576130a7613b4d565b5b60006130b684828501612e04565b91505092915050565b600080604083850312156130d6576130d5613b4d565b5b60006130e485828601612e04565b92505060206130f585828601612e04565b9150509250929050565b60008060006060848603121561311857613117613b4d565b5b600061312686828701612e19565b935050602061313786828701612e19565b925050604061314886828701612e19565b9150509250925092565b600061315e838361316a565b60208301905092915050565b61317381613933565b82525050565b61318281613933565b82525050565b6000613193826137d9565b61319d81856137fc565b93506131a8836137c9565b8060005b838110156131d95781516131c08882613152565b97506131cb836137ef565b9250506001810190506131ac565b5085935050505092915050565b6131ef81613945565b82525050565b6131fe81613988565b82525050565b61320d8161399a565b82525050565b600061321e826137e4565b613228818561380d565b93506132388185602086016139d0565b61324181613b52565b840191505092915050565b600061325960238361380d565b915061326482613b63565b604082019050919050565b600061327c601c8361380d565b915061328782613bb2565b602082019050919050565b600061329f60268361380d565b91506132aa82613bdb565b604082019050919050565b60006132c260228361380d565b91506132cd82613c2a565b604082019050919050565b60006132e560238361380d565b91506132f082613c79565b604082019050919050565b6000613308601e8361380d565b915061331382613cc8565b602082019050919050565b600061332b601b8361380d565b915061333682613cf1565b602082019050919050565b600061334e60268361380d565b915061335982613d1a565b604082019050919050565b600061337160218361380d565b915061337c82613d69565b604082019050919050565b600061339460208361380d565b915061339f82613db8565b602082019050919050565b60006133b760298361380d565b91506133c282613de1565b604082019050919050565b60006133da60258361380d565b91506133e582613e30565b604082019050919050565b60006133fd60238361380d565b915061340882613e7f565b604082019050919050565b600061342060248361380d565b915061342b82613ece565b604082019050919050565b61343f81613971565b82525050565b61344e8161397b565b82525050565b60006020820190506134696000830184613179565b92915050565b600060c0820190506134846000830189613179565b6134916020830188613436565b61349e6040830187613204565b6134ab6060830186613204565b6134b86080830185613179565b6134c560a0830184613436565b979650505050505050565b60006020820190506134e560008301846131e6565b92915050565b600060208201905061350060008301846131f5565b92915050565b600060208201905081810360008301526135208184613213565b905092915050565b600060208201905081810360008301526135418161324c565b9050919050565b600060208201905081810360008301526135618161326f565b9050919050565b6000602082019050818103600083015261358181613292565b9050919050565b600060208201905081810360008301526135a1816132b5565b9050919050565b600060208201905081810360008301526135c1816132d8565b9050919050565b600060208201905081810360008301526135e1816132fb565b9050919050565b600060208201905081810360008301526136018161331e565b9050919050565b6000602082019050818103600083015261362181613341565b9050919050565b6000602082019050818103600083015261364181613364565b9050919050565b6000602082019050818103600083015261366181613387565b9050919050565b60006020820190508181036000830152613681816133aa565b9050919050565b600060208201905081810360008301526136a1816133cd565b9050919050565b600060208201905081810360008301526136c1816133f0565b9050919050565b600060208201905081810360008301526136e181613413565b9050919050565b60006020820190506136fd6000830184613436565b92915050565b600060a0820190506137186000830188613436565b6137256020830187613204565b81810360408301526137378186613188565b90506137466060830185613179565b6137536080830184613436565b9695505050505050565b60006020820190506137726000830184613445565b92915050565b6000613782613793565b905061378e8282613a03565b919050565b6000604051905090565b600067ffffffffffffffff8211156137b8576137b7613b0a565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061382982613971565b915061383483613971565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561386957613868613a7d565b5b828201905092915050565b600061387f82613971565b915061388a83613971565b92508261389a57613899613aac565b5b828204905092915050565b60006138b082613971565b91506138bb83613971565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138f4576138f3613a7d565b5b828202905092915050565b600061390a82613971565b915061391583613971565b92508282101561392857613927613a7d565b5b828203905092915050565b600061393e82613951565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613993826139ac565b9050919050565b60006139a582613971565b9050919050565b60006139b7826139be565b9050919050565b60006139c982613951565b9050919050565b60005b838110156139ee5780820151818401526020810190506139d3565b838111156139fd576000848401525b50505050565b613a0c82613b52565b810181811067ffffffffffffffff82111715613a2b57613a2a613b0a565b5b80604052505050565b6000613a3f82613971565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613a7257613a71613a7d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a2033206d696e7574657320636f6f6c646f776e2062657477656560008201527f6e20627579730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613f2681613933565b8114613f3157600080fd5b50565b613f3d81613945565b8114613f4857600080fd5b50565b613f5481613971565b8114613f5f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a329b754613523973e204dc0496b32e984bf497bb1305b40399dad229f49220964736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101d05760003560e01c8063715018a6116100f757806395d89b4111610095578063c3c8cd8011610064578063c3c8cd801461065a578063dd62ed3e14610671578063ea1644d5146106ae578063f2fde38b146106d7576101d7565b806395d89b411461058c57806398a5c315146105b7578063a9059cbb146105e0578063bfd792841461061d576101d7565b80638da5cb5b116100d15780638da5cb5b146104f65780638eb59a5f146105215780638f70ccf7146105385780638f9a55c014610561576101d7565b8063715018a61461048b57806374010ece146104a25780637d1db4a5146104cb576101d7565b80632fd689e31161016f578063672434821161013e57806367243482146103d35780636b999053146103fc5780636d8aa8f81461042557806370a082311461044e576101d7565b80632fd689e314610329578063313ce5671461035457806349bd5a5e1461037f578063658d4b7f146103aa576101d7565b80630b78f9c0116101ab5780630b78f9c01461026d5780631694505e1461029657806318160ddd146102c157806323b872dd146102ec576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe919061301c565b610700565b005b34801561021157600080fd5b5061021a610811565b6040516102279190613506565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190612f5b565b61084e565b60405161026491906134d0565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f91906130bf565b61086c565b005b3480156102a257600080fd5b506102ab6108fa565b6040516102b891906134eb565b60405180910390f35b3480156102cd57600080fd5b506102d6610920565b6040516102e391906136e8565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e9190612ec8565b61092a565b60405161032091906134d0565b60405180910390f35b34801561033557600080fd5b5061033e610a03565b60405161034b91906136e8565b60405180910390f35b34801561036057600080fd5b50610369610a09565b604051610376919061375d565b60405180910390f35b34801561038b57600080fd5b50610394610a12565b6040516103a19190613454565b60405180910390f35b3480156103b657600080fd5b506103d160048036038101906103cc9190612f1b565b610a38565b005b3480156103df57600080fd5b506103fa60048036038101906103f59190612f9b565b610b0f565b005b34801561040857600080fd5b50610423600480360381019061041e9190612e2e565b610bff565b005b34801561043157600080fd5b5061044c60048036038101906104479190613065565b610cd6565b005b34801561045a57600080fd5b5061047560048036038101906104709190612e2e565b610d6f565b60405161048291906136e8565b60405180910390f35b34801561049757600080fd5b506104a0610db8565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190613092565b610e40565b005b3480156104d757600080fd5b506104e0610ec6565b6040516104ed91906136e8565b60405180910390f35b34801561050257600080fd5b5061050b610ecc565b6040516105189190613454565b60405180910390f35b34801561052d57600080fd5b50610536610ef5565b005b34801561054457600080fd5b5061055f600480360381019061055a9190613065565b610f9d565b005b34801561056d57600080fd5b50610576611036565b60405161058391906136e8565b60405180910390f35b34801561059857600080fd5b506105a161103c565b6040516105ae9190613506565b60405180910390f35b3480156105c357600080fd5b506105de60048036038101906105d99190613092565b611079565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612f5b565b6110ff565b60405161061491906134d0565b60405180910390f35b34801561062957600080fd5b50610644600480360381019061063f9190612e2e565b61111d565b60405161065191906134d0565b60405180910390f35b34801561066657600080fd5b5061066f61113d565b005b34801561067d57600080fd5b5061069860048036038101906106939190612e88565b6111d2565b6040516106a591906136e8565b60405180910390f35b3480156106ba57600080fd5b506106d560048036038101906106d09190613092565b611259565b005b3480156106e357600080fd5b506106fe60048036038101906106f99190612e2e565b6112df565b005b610708611495565b73ffffffffffffffffffffffffffffffffffffffff16610726610ecc565b73ffffffffffffffffffffffffffffffffffffffff161461077c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077390613648565b60405180910390fd5b60005b815181101561080d576001600a60008484815181106107a1576107a0613adb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061080590613a34565b91505061077f565b5050565b60606040518060400160405280600881526020017f52654a6920496e75000000000000000000000000000000000000000000000000815250905090565b600061086261085b611495565b848461149d565b6001905092915050565b610874611495565b73ffffffffffffffffffffffffffffffffffffffff16610892610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146108e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108df90613648565b60405180910390fd5b81600681905550806007819055505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600554905090565b6000610937848484611668565b6109f884610943611495565b6109f385604051806060016040528060288152602001613f6360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a9611495565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b61149d565b600190509392505050565b60105481565b60006006905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a40611495565b73ffffffffffffffffffffffffffffffffffffffff16610a5e610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613648565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b610b17611495565b73ffffffffffffffffffffffffffffffffffffffff16610b35610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613648565b60405180910390fd5b60005b84849050811015610bf857610be433868684818110610bb057610baf613adb565b5b9050602002016020810190610bc59190612e2e565b858585818110610bd857610bd7613adb565b5b90506020020135612062565b508080610bf090613a34565b915050610b8e565b5050505050565b610c07611495565b73ffffffffffffffffffffffffffffffffffffffff16610c25610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290613648565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610cde611495565b73ffffffffffffffffffffffffffffffffffffffff16610cfc610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613648565b60405180910390fd5b80600d60166101000a81548160ff02191690831515021790555050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dc0611495565b73ffffffffffffffffffffffffffffffffffffffff16610dde610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2b90613648565b60405180910390fd5b610e3e6000612235565b565b610e48611495565b73ffffffffffffffffffffffffffffffffffffffff16610e66610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390613648565b60405180910390fd5b80600e8190555050565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610efd611495565b73ffffffffffffffffffffffffffffffffffffffff16610f1b610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6890613648565b60405180910390fd5b600d60179054906101000a900460ff1615600d60176101000a81548160ff021916908315150217905550565b610fa5611495565b73ffffffffffffffffffffffffffffffffffffffff16610fc3610ecc565b73ffffffffffffffffffffffffffffffffffffffff1614611019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101090613648565b60405180910390fd5b80600d60146101000a81548160ff02191690831515021790555050565b600f5481565b60606040518060400160405280600481526020017f52454a4900000000000000000000000000000000000000000000000000000000815250905090565b611081611495565b73ffffffffffffffffffffffffffffffffffffffff1661109f610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146110f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ec90613648565b60405180910390fd5b8060108190555050565b600061111361110c611495565b8484611668565b6001905092915050565b600a6020528060005260406000206000915054906101000a900460ff1681565b611145611495565b73ffffffffffffffffffffffffffffffffffffffff16611163610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090613648565b60405180910390fd5b60006111c430610d6f565b90506111cf816122f9565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611261611495565b73ffffffffffffffffffffffffffffffffffffffff1661127f610ecc565b73ffffffffffffffffffffffffffffffffffffffff16146112d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cc90613648565b60405180910390fd5b80600f8190555050565b6112e7611495565b73ffffffffffffffffffffffffffffffffffffffff16611305610ecc565b73ffffffffffffffffffffffffffffffffffffffff161461135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290613648565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613568565b60405180910390fd5b6000600460006113d9610ecc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061143381612235565b600160046000611441610ecc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561150d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611504906136c8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561157d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157490613588565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161165b91906136e8565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90613688565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90613528565b60405180910390fd5b6000811161178b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178290613668565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561182f5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c8757600d60149054906101000a900460ff16611883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187a906135c8565b60405180910390fd5b600e548111156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90613548565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561196c5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a2906135a8565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baa57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a695750600d60179054906101000a900460ff165b15611b52574260b4600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611abb919061381e565b108015611b1257504260b4600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b10919061381e565b105b611b51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4890613608565b60405180910390fd5b5b600f5481611b5f84610d6f565b611b69919061381e565b10611ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba0906136a8565b60405180910390fd5b5b6000611bb530610d6f565b9050600060105482101590506010548210611bd05760105491505b808015611bea5750600d60159054906101000a900460ff16155b8015611c445750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600d60169054906101000a900460ff165b15611c8457611c6a826122f9565b60004790506000811115611c8257611c814761260c565b5b505b50505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d2e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611de15750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611de05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611def5760009050611f64565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611e9a5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ea9576006546008819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611f545750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611f63576007546008819055505b5b42600260003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff884848484612678565b50505050565b6000838311158290612046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203d9190613506565b60405180910390fd5b506000838561205591906138ff565b9050809150509392505050565b60006120ed826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061218282600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161222291906136e8565b60405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001600d60156101000a81548160ff021916908315150217905550600061233d606461232f6055856126fe90919063ffffffff16565b61277990919063ffffffff16565b90506000818361234d91906138ff565b905060004790506000600267ffffffffffffffff81111561237157612370613b0a565b5b60405190808252806020026020018201604052801561239f5781602001602082028036833780820191505090505b50905030816000815181106123b7576123b6613adb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124919190612e5b565b816001815181106124a5576124a4613adb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061250c30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168761149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612570959493929190613703565b600060405180830381600087803b15801561258a57600080fd5b505af115801561259e573d6000803e3d6000fd5b5050505060006125b783476127c390919063ffffffff16565b90506125e9846125e460646125d6600f866126fe90919063ffffffff16565b61277990919063ffffffff16565b61280d565b50505050506000600d60156101000a81548160ff02191690831515021790555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612674573d6000803e3d6000fd5b5050565b8061268e57612688848484612062565b5061269a565b6126998484846128fb565b5b50505050565b60008082846126af919061381e565b9050838110156126f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126eb906135e8565b60405180910390fd5b8091505092915050565b6000808314156127115760009050612773565b6000828461271f91906138a5565b905082848261272e9190613874565b1461276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613628565b60405180910390fd5b809150505b92915050565b60006127bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ad5565b905092915050565b600061280583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ffe565b905092915050565b61283a30600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461149d565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806000426040518863ffffffff1660e01b81526004016128a29695949392919061346f565b6060604051808303818588803b1580156128bb57600080fd5b505af11580156128cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906128f491906130ff565b5050505050565b60006129078483612b38565b9050612992826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ffe9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a2781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ac791906136e8565b60405180910390a350505050565b60008083118290612b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b139190613506565b60405180910390fd5b5060008385612b2b9190613874565b9050809150509392505050565b600080612b636064612b55600854866126fe90919063ffffffff16565b61277990919063ffffffff16565b9050612bb781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c5791906136e8565b60405180910390a3612c7281846127c390919063ffffffff16565b91505092915050565b6000612c8e612c898461379d565b613778565b90508083825260208201905082856020860282011115612cb157612cb0613b43565b5b60005b85811015612ce15781612cc78882612ceb565b845260208401935060208301925050600181019050612cb4565b5050509392505050565b600081359050612cfa81613f1d565b92915050565b600081519050612d0f81613f1d565b92915050565b60008083601f840112612d2b57612d2a613b3e565b5b8235905067ffffffffffffffff811115612d4857612d47613b39565b5b602083019150836020820283011115612d6457612d63613b43565b5b9250929050565b600082601f830112612d8057612d7f613b3e565b5b8135612d90848260208601612c7b565b91505092915050565b60008083601f840112612daf57612dae613b3e565b5b8235905067ffffffffffffffff811115612dcc57612dcb613b39565b5b602083019150836020820283011115612de857612de7613b43565b5b9250929050565b600081359050612dfe81613f34565b92915050565b600081359050612e1381613f4b565b92915050565b600081519050612e2881613f4b565b92915050565b600060208284031215612e4457612e43613b4d565b5b6000612e5284828501612ceb565b91505092915050565b600060208284031215612e7157612e70613b4d565b5b6000612e7f84828501612d00565b91505092915050565b60008060408385031215612e9f57612e9e613b4d565b5b6000612ead85828601612ceb565b9250506020612ebe85828601612ceb565b9150509250929050565b600080600060608486031215612ee157612ee0613b4d565b5b6000612eef86828701612ceb565b9350506020612f0086828701612ceb565b9250506040612f1186828701612e04565b9150509250925092565b60008060408385031215612f3257612f31613b4d565b5b6000612f4085828601612ceb565b9250506020612f5185828601612def565b9150509250929050565b60008060408385031215612f7257612f71613b4d565b5b6000612f8085828601612ceb565b9250506020612f9185828601612e04565b9150509250929050565b60008060008060408587031215612fb557612fb4613b4d565b5b600085013567ffffffffffffffff811115612fd357612fd2613b48565b5b612fdf87828801612d15565b9450945050602085013567ffffffffffffffff81111561300257613001613b48565b5b61300e87828801612d99565b925092505092959194509250565b60006020828403121561303257613031613b4d565b5b600082013567ffffffffffffffff8111156130505761304f613b48565b5b61305c84828501612d6b565b91505092915050565b60006020828403121561307b5761307a613b4d565b5b600061308984828501612def565b91505092915050565b6000602082840312156130a8576130a7613b4d565b5b60006130b684828501612e04565b91505092915050565b600080604083850312156130d6576130d5613b4d565b5b60006130e485828601612e04565b92505060206130f585828601612e04565b9150509250929050565b60008060006060848603121561311857613117613b4d565b5b600061312686828701612e19565b935050602061313786828701612e19565b925050604061314886828701612e19565b9150509250925092565b600061315e838361316a565b60208301905092915050565b61317381613933565b82525050565b61318281613933565b82525050565b6000613193826137d9565b61319d81856137fc565b93506131a8836137c9565b8060005b838110156131d95781516131c08882613152565b97506131cb836137ef565b9250506001810190506131ac565b5085935050505092915050565b6131ef81613945565b82525050565b6131fe81613988565b82525050565b61320d8161399a565b82525050565b600061321e826137e4565b613228818561380d565b93506132388185602086016139d0565b61324181613b52565b840191505092915050565b600061325960238361380d565b915061326482613b63565b604082019050919050565b600061327c601c8361380d565b915061328782613bb2565b602082019050919050565b600061329f60268361380d565b91506132aa82613bdb565b604082019050919050565b60006132c260228361380d565b91506132cd82613c2a565b604082019050919050565b60006132e560238361380d565b91506132f082613c79565b604082019050919050565b6000613308601e8361380d565b915061331382613cc8565b602082019050919050565b600061332b601b8361380d565b915061333682613cf1565b602082019050919050565b600061334e60268361380d565b915061335982613d1a565b604082019050919050565b600061337160218361380d565b915061337c82613d69565b604082019050919050565b600061339460208361380d565b915061339f82613db8565b602082019050919050565b60006133b760298361380d565b91506133c282613de1565b604082019050919050565b60006133da60258361380d565b91506133e582613e30565b604082019050919050565b60006133fd60238361380d565b915061340882613e7f565b604082019050919050565b600061342060248361380d565b915061342b82613ece565b604082019050919050565b61343f81613971565b82525050565b61344e8161397b565b82525050565b60006020820190506134696000830184613179565b92915050565b600060c0820190506134846000830189613179565b6134916020830188613436565b61349e6040830187613204565b6134ab6060830186613204565b6134b86080830185613179565b6134c560a0830184613436565b979650505050505050565b60006020820190506134e560008301846131e6565b92915050565b600060208201905061350060008301846131f5565b92915050565b600060208201905081810360008301526135208184613213565b905092915050565b600060208201905081810360008301526135418161324c565b9050919050565b600060208201905081810360008301526135618161326f565b9050919050565b6000602082019050818103600083015261358181613292565b9050919050565b600060208201905081810360008301526135a1816132b5565b9050919050565b600060208201905081810360008301526135c1816132d8565b9050919050565b600060208201905081810360008301526135e1816132fb565b9050919050565b600060208201905081810360008301526136018161331e565b9050919050565b6000602082019050818103600083015261362181613341565b9050919050565b6000602082019050818103600083015261364181613364565b9050919050565b6000602082019050818103600083015261366181613387565b9050919050565b60006020820190508181036000830152613681816133aa565b9050919050565b600060208201905081810360008301526136a1816133cd565b9050919050565b600060208201905081810360008301526136c1816133f0565b9050919050565b600060208201905081810360008301526136e181613413565b9050919050565b60006020820190506136fd6000830184613436565b92915050565b600060a0820190506137186000830188613436565b6137256020830187613204565b81810360408301526137378186613188565b90506137466060830185613179565b6137536080830184613436565b9695505050505050565b60006020820190506137726000830184613445565b92915050565b6000613782613793565b905061378e8282613a03565b919050565b6000604051905090565b600067ffffffffffffffff8211156137b8576137b7613b0a565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061382982613971565b915061383483613971565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561386957613868613a7d565b5b828201905092915050565b600061387f82613971565b915061388a83613971565b92508261389a57613899613aac565b5b828204905092915050565b60006138b082613971565b91506138bb83613971565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138f4576138f3613a7d565b5b828202905092915050565b600061390a82613971565b915061391583613971565b92508282101561392857613927613a7d565b5b828203905092915050565b600061393e82613951565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613993826139ac565b9050919050565b60006139a582613971565b9050919050565b60006139b7826139be565b9050919050565b60006139c982613951565b9050919050565b60005b838110156139ee5780820151818401526020810190506139d3565b838111156139fd576000848401525b50505050565b613a0c82613b52565b810181811067ffffffffffffffff82111715613a2b57613a2a613b0a565b5b80604052505050565b6000613a3f82613971565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613a7257613a71613a7d565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2054726164696e67206e6f742079657420737461727465640000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f544f4b454e3a2033206d696e7574657320636f6f6c646f776e2062657477656560008201527f6e20627579730000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b613f2681613933565b8114613f3157600080fd5b50565b613f3d81613945565b8114613f4857600080fd5b50565b613f5481613971565b8114613f5f57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a329b754613523973e204dc0496b32e984bf497bb1305b40399dad229f49220964736f6c63430008070033

Deployed Bytecode Sourcemap

4194:11325:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12387:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6325:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7237:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14609:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5074:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6602:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7438:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5434:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6511:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5122:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15285:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12950:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12564:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14929:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6710:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1562:103;;;;;;;;;;;;;:::i;:::-;;15042:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5312:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1329:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15419:97;;;;;;;;;;;;;:::i;:::-;;12116:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5372:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6416:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14778:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6838:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4923:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12225:154;;;;;;;;;;;;;:::i;:::-;;7045:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15162:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14304:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12387:169;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12463:9:::1;12458:91;12482:5;:12;12478:1;:16;12458:91;;;12533:4;12516;:14;12521:5;12527:1;12521:8;;;;;;;;:::i;:::-;;;;;;;;12516:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12496:3;;;;;:::i;:::-;;;;12458:91;;;;12387:169:::0;:::o;6325:83::-;6362:13;6395:5;;;;;;;;;;;;;;;;;6388:12;;6325:83;:::o;7237:193::-;7339:4;7361:39;7370:12;:10;:12::i;:::-;7384:7;7393:6;7361:8;:39::i;:::-;7418:4;7411:11;;7237:193;;;;:::o;14609:161::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14712:11:::1;14697:12;:26;;;;14750:12;14734:13;:28;;;;14609:161:::0;;:::o;5074:41::-;;;;;;;;;;;;;:::o;6602:100::-;6655:7;6682:12;;6675:19;;6602:100;:::o;7438:446::-;7570:4;7587:36;7597:6;7605:9;7616:6;7587:9;:36::i;:::-;7634:220;7657:6;7678:12;:10;:12::i;:::-;7705:138;7761:6;7705:138;;;;;;;;;;;;;;;;;:11;:19;7717:6;7705:19;;;;;;;;;;;;;;;:33;7725:12;:10;:12::i;:::-;7705:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7634:8;:220::i;:::-;7872:4;7865:11;;7438:446;;;;;:::o;5434:55::-;;;;:::o;6511:83::-;6552:5;4411:1;6570:16;;6511:83;:::o;5122:28::-;;;;;;;;;;;;;:::o;15285:124::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15395:6:::1;15366:18;:26;15385:6;15366:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;15285:124:::0;;:::o;12950:234::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13056:9:::1;13051:126;13075:10;;:17;;13071:1;:21;13051:126;;;13114:51;13129:10;13140;;13151:1;13140:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13155:6;;13162:1;13155:9;;;;;;;:::i;:::-;;;;;;;;13114:14;:51::i;:::-;;13094:3;;;;;:::i;:::-;;;;13051:126;;;;12950:234:::0;;;;:::o;12564:92::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12643:5:::1;12628:4;:12;12633:6;12628:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12564:92:::0;:::o;14929:101::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15010:12:::1;14996:11;;:26;;;;;;;;;;;;;;;;;;14929:101:::0;:::o;6710:120::-;6776:7;6803:9;:18;6813:7;6803:18;;;;;;;;;;;;;;;;6796:25;;6710:120;;;:::o;1562:103::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1627:30:::1;1654:1;1627:18;:30::i;:::-;1562:103::o:0;15042:108::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15131:11:::1;15116:12;:26;;;;15042:108:::0;:::o;5312:49::-;;;;:::o;1329:87::-;1375:7;1402:6;;;;;;;;;;;1395:13;;1329:87;:::o;15419:97::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15495:13:::1;;;;;;;;;;;15494:14;15478:13;;:30;;;;;;;;;;;;;;;;;;15419:97::o:0;12116:101::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12197:12:::1;12183:11;;:26;;;;;;;;;;;;;;;;;;12116:101:::0;:::o;5372:51::-;;;;:::o;6416:87::-;6455:13;6488:7;;;;;;;;;;;;;;;;;6481:14;;6416:87;:::o;14778:139::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14891:18:::1;14869:19;:40;;;;14778:139:::0;:::o;6838:199::-;6943:4;6965:42;6975:12;:10;:12::i;:::-;6989:9;7000:6;6965:9;:42::i;:::-;7025:4;7018:11;;6838:199;;;;:::o;4923:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12225:154::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12277:23:::1;12303:24;12321:4;12303:9;:24::i;:::-;12277:50;;12338:33;12355:15;12338:16;:33::i;:::-;12266:113;12225:154::o:0;7045:184::-;7162:7;7194:11;:18;7206:5;7194:18;;;;;;;;;;;;;;;:27;7213:7;7194:27;;;;;;;;;;;;;;;;7187:34;;7045:184;;;;:::o;15162:115::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15256:13:::1;15239:14;:30;;;;15162:115:::0;:::o;14304:295::-;1480:12;:10;:12::i;:::-;1469:23;;:7;:5;:7::i;:::-;:23;;;1461:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14414:1:::1;14394:22;;:8;:22;;;;14386:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;14500:5;14470:18;:27;14489:7;:5;:7::i;:::-;14470:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14516:28;14535:8;14516:18;:28::i;:::-;14585:4;14555:18;:27;14574:7;:5;:7::i;:::-;14555:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14304:295:::0;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;7892:369::-;8036:1;8019:19;;:5;:19;;;;8011:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8117:1;8098:21;;:7;:21;;;;8090:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8199:6;8169:11;:18;8181:5;8169:18;;;;;;;;;;;;;;;:27;8188:7;8169:27;;;;;;;;;;;;;;;:36;;;;8237:7;8221:32;;8230:5;8221:32;;;8246:6;8221:32;;;;;;:::i;:::-;;;;;;;;7892:369;;;:::o;8269:2440::-;8407:1;8391:18;;:4;:18;;;;8383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8484:1;8470:16;;:2;:16;;;;8462:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8554:1;8545:6;:10;8537:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8619:18;:22;8638:2;8619:22;;;;;;;;;;;;;;;;;;;;;;;;;8618:23;:52;;;;;8646:18;:24;8665:4;8646:24;;;;;;;;;;;;;;;;;;;;;;;;;8645:25;8618:52;8614:1381;;;8688:11;;;;;;;;;;;8680:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8767:12;;8757:6;:22;;8749:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;8836:4;:10;8841:4;8836:10;;;;;;;;;;;;;;;;;;;;;;;;;8835:11;:24;;;;;8851:4;:8;8856:2;8851:8;;;;;;;;;;;;;;;;;;;;;;;;;8850:9;8835:24;8827:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;8925:13;;;;;;;;;;;8919:19;;:2;:19;;;8916:375;;8964:13;;;;;;;;;;;8956:21;;:4;:21;;;:38;;;;;8981:13;;;;;;;;;;;8956:38;8953:217;;;9053:15;9041:9;9020:7;:18;9028:9;9020:18;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;:48;:93;;;;;9098:15;9086:9;9072:7;:11;9080:2;9072:11;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;:41;9020:93;9012:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;8953:217;9221:14;;9212:6;9196:13;9206:2;9196:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9188:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8916:375;9307:28;9338:24;9356:4;9338:9;:24::i;:::-;9307:55;;9377:12;9416:19;;9392:20;:43;;9377:58;;9479:19;;9455:20;:43;9452:138;;9555:19;;9532:42;;9452:138;9610:7;:18;;;;;9622:6;;;;;;;;;;;9621:7;9610:18;:43;;;;;9640:13;;;;;;;;;;;9632:21;;:4;:21;;;;9610:43;:58;;;;;9657:11;;;;;;;;;;;9610:58;9606:378;;;9689:38;9706:20;9689:16;:38::i;:::-;9788:26;9817:21;9788:50;;9882:7;9861:18;:28;9857:112;;;9914:35;9927:21;9914:12;:35::i;:::-;9857:112;9670:314;9606:378;8672:1323;;8614:1381;10007:12;10022:4;10007:19;;10071:18;:24;10090:4;10071:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10099:18;:22;10118:2;10099:22;;;;;;;;;;;;;;;;;;;;;;;;;10071:50;10070:102;;;;10135:13;;;;;;;;;;;10127:21;;:4;:21;;;;:44;;;;;10158:13;;;;;;;;;;;10152:19;;:2;:19;;;;10127:44;10070:102;10066:503;;;10199:5;10189:15;;10066:503;;;10282:13;;;;;;;;;;;10274:21;;:4;:21;;;:55;;;;;10313:15;;;;;;;;;;;10299:30;;:2;:30;;;;10274:55;10271:117;;;10360:12;;10350:7;:22;;;;10271:117;10447:13;;;;;;;;;;;10441:19;;:2;:19;;;:55;;;;;10480:15;;;;;;;;;;;10464:32;;:4;:32;;;;10441:55;10437:119;;;10527:13;;10517:7;:23;;;;10437:119;10066:503;10597:15;10576:7;:18;10584:9;10576:18;;;;;;;;;;;;;;;:36;;;;10634:15;10620:7;:11;10628:2;10620:11;;;;;;;;;;;;;;;:29;;;;10660:41;10675:4;10681:2;10685:6;10693:7;10660:14;:41::i;:::-;8372:2337;8269:2440;;;:::o;2445:224::-;2565:7;2598:1;2593;:6;;2601:12;2585:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2625:9;2641:1;2637;:5;;;;:::i;:::-;2625:17;;2660:1;2653:8;;;2445:224;;;;;:::o;13604:330::-;13697:4;13734:53;13756:6;13734:53;;;;;;;;;;;;;;;;;:9;:17;13744:6;13734:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13714:9;:17;13724:6;13714:17;;;;;;;;;;;;;;;:73;;;;13821:32;13846:6;13821:9;:20;13831:9;13821:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;13798:9;:20;13808:9;13798:20;;;;;;;;;;;;;;;:55;;;;13886:9;13869:35;;13878:6;13869:35;;;13897:6;13869:35;;;;;;:::i;:::-;;;;;;;;13922:4;13915:11;;13604:330;;;;;:::o;1892:191::-;1966:16;1985:6;;;;;;;;;;;1966:25;;2011:8;2002:6;;:17;;;;;;;;;;;;;;;;;;2066:8;2035:40;;2056:8;2035:40;;;;;;;;;;;;1955:128;1892:191;:::o;10717:756::-;5598:4;5589:6;;:13;;;;;;;;;;;;;;;;;;10788:14:::1;10805:28;10829:3;10805:19;10821:2;10805:11;:15;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10788:45;;10837:14;10868:6;10854:11;:20;;;;:::i;:::-;10837:37;;10885:21;10909;10885:45;;10943:21;10981:1;10967:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10943:40;;11012:4;10994;10999:1;10994:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11038:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11028:4;11033:1;11028:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11071:62;11088:4;11103:15;;;;;;;;;;;11121:11;11071:8;:62::i;:::-;11144:15;;;;;;;;;;;:66;;;11225:6;11246:1;11262:4;11289;11309:15;11144:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11346:17;11366:40;11392:13;11366:21;:25;;:40;;;;:::i;:::-;11346:60;;11417:48;11430:6;11438:26;11460:3;11438:17;11452:2;11438:9;:13;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;11417:12;:48::i;:::-;10784:689;;;;;5634:5:::0;5625:6;;:14;;;;;;;;;;;;;;;;;;10717:756;:::o;11481:99::-;11538:17;;;;;;;;;;;:26;;:34;11565:6;11538:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11481:99;:::o;12664:277::-;12820:7;12815:119;;12830:40;12845:6;12852:9;12863:6;12830:14;:40::i;:::-;;12815:119;;;12888:44;12906:6;12914:9;12925:6;12888:17;:44::i;:::-;12815:119;12664:277;;;;:::o;2114:179::-;2172:7;2192:9;2208:1;2204;:5;;;;:::i;:::-;2192:17;;2233:1;2228;:6;;2220:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2284:1;2277:8;;;2114:179;;;;:::o;2677:246::-;2735:7;2764:1;2759;:6;2755:47;;;2789:1;2782:8;;;;2755:47;2812:9;2828:1;2824;:5;;;;:::i;:::-;2812:17;;2857:1;2852;2848;:5;;;;:::i;:::-;:10;2840:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2914:1;2907:8;;;2677:246;;;;;:::o;2931:132::-;2989:7;3016:39;3020:1;3023;3016:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3009:46;;2931:132;;;;:::o;2301:136::-;2359:7;2386:43;2390:1;2393;2386:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2379:50;;2301:136;;;;:::o;11588:520::-;11738:62;11755:4;11770:15;;;;;;;;;;;11788:11;11738:8;:62::i;:::-;11843:15;;;;;;;;;;;:31;;;11882:9;11915:4;11935:11;11961:1;12004;12055;12072:15;11843:255;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11588:520;;:::o;13192:405::-;13323:22;13348:24;13357:6;13365;13348:8;:24::i;:::-;13323:49;;13403:53;13425:6;13403:53;;;;;;;;;;;;;;;;;:9;:17;13413:6;13403:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;13383:9;:17;13393:6;13383:17;;;;;;;;;;;;;;;:73;;;;13490:40;13515:14;13490:9;:20;13500:9;13490:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;13467:9;:20;13477:9;13467:20;;;;;;;;;;;;;;;:63;;;;13563:9;13546:43;;13555:6;13546:43;;;13574:14;13546:43;;;;;;:::i;:::-;;;;;;;;13312:285;13192:405;;;:::o;3071:223::-;3191:7;3223:1;3219;:5;3226:12;3211:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3250:9;3266:1;3262;:5;;;;:::i;:::-;3250:17;;3285:1;3278:8;;;3071:223;;;;;:::o;13940:317::-;14007:7;14027:17;14047:28;14071:3;14047:19;14058:7;;14047:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14027:48;;14113:39;14142:9;14113;:24;14131:4;14113:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;14086:9;:24;14104:4;14086:24;;;;;;;;;;;;;;;:66;;;;14193:4;14168:42;;14177:6;14168:42;;;14200:9;14168:42;;;;;;:::i;:::-;;;;;;;;14228:21;14239:9;14228:6;:10;;:21;;;;:::i;:::-;14221:28;;;13940:317;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:568::-;1136:8;1146:6;1196:3;1189:4;1181:6;1177:17;1173:27;1163:122;;1204:79;;:::i;:::-;1163:122;1317:6;1304:20;1294:30;;1347:18;1339:6;1336:30;1333:117;;;1369:79;;:::i;:::-;1333:117;1483:4;1475:6;1471:17;1459:29;;1537:3;1529:4;1521:6;1517:17;1507:8;1503:32;1500:41;1497:128;;;1544:79;;:::i;:::-;1497:128;1063:568;;;;;:::o;1654:370::-;1725:5;1774:3;1767:4;1759:6;1755:17;1751:27;1741:122;;1782:79;;:::i;:::-;1741:122;1899:6;1886:20;1924:94;2014:3;2006:6;1999:4;1991:6;1987:17;1924:94;:::i;:::-;1915:103;;1731:293;1654:370;;;;:::o;2047:568::-;2120:8;2130:6;2180:3;2173:4;2165:6;2161:17;2157:27;2147:122;;2188:79;;:::i;:::-;2147:122;2301:6;2288:20;2278:30;;2331:18;2323:6;2320:30;2317:117;;;2353:79;;:::i;:::-;2317:117;2467:4;2459:6;2455:17;2443:29;;2521:3;2513:4;2505:6;2501:17;2491:8;2487:32;2484:41;2481:128;;;2528:79;;:::i;:::-;2481:128;2047:568;;;;;:::o;2621:133::-;2664:5;2702:6;2689:20;2680:29;;2718:30;2742:5;2718:30;:::i;:::-;2621:133;;;;:::o;2760:139::-;2806:5;2844:6;2831:20;2822:29;;2860:33;2887:5;2860:33;:::i;:::-;2760:139;;;;:::o;2905:143::-;2962:5;2993:6;2987:13;2978:22;;3009:33;3036:5;3009:33;:::i;:::-;2905:143;;;;:::o;3054:329::-;3113:6;3162:2;3150:9;3141:7;3137:23;3133:32;3130:119;;;3168:79;;:::i;:::-;3130:119;3288:1;3313:53;3358:7;3349:6;3338:9;3334:22;3313:53;:::i;:::-;3303:63;;3259:117;3054:329;;;;:::o;3389:351::-;3459:6;3508:2;3496:9;3487:7;3483:23;3479:32;3476:119;;;3514:79;;:::i;:::-;3476:119;3634:1;3659:64;3715:7;3706:6;3695:9;3691:22;3659:64;:::i;:::-;3649:74;;3605:128;3389:351;;;;:::o;3746:474::-;3814:6;3822;3871:2;3859:9;3850:7;3846:23;3842:32;3839:119;;;3877:79;;:::i;:::-;3839:119;3997:1;4022:53;4067:7;4058:6;4047:9;4043:22;4022:53;:::i;:::-;4012:63;;3968:117;4124:2;4150:53;4195:7;4186:6;4175:9;4171:22;4150:53;:::i;:::-;4140:63;;4095:118;3746:474;;;;;:::o;4226:619::-;4303:6;4311;4319;4368:2;4356:9;4347:7;4343:23;4339:32;4336:119;;;4374:79;;:::i;:::-;4336:119;4494:1;4519:53;4564:7;4555:6;4544:9;4540:22;4519:53;:::i;:::-;4509:63;;4465:117;4621:2;4647:53;4692:7;4683:6;4672:9;4668:22;4647:53;:::i;:::-;4637:63;;4592:118;4749:2;4775:53;4820:7;4811:6;4800:9;4796:22;4775:53;:::i;:::-;4765:63;;4720:118;4226:619;;;;;:::o;4851:468::-;4916:6;4924;4973:2;4961:9;4952:7;4948:23;4944:32;4941:119;;;4979:79;;:::i;:::-;4941:119;5099:1;5124:53;5169:7;5160:6;5149:9;5145:22;5124:53;:::i;:::-;5114:63;;5070:117;5226:2;5252:50;5294:7;5285:6;5274:9;5270:22;5252:50;:::i;:::-;5242:60;;5197:115;4851:468;;;;;:::o;5325:474::-;5393:6;5401;5450:2;5438:9;5429:7;5425:23;5421:32;5418:119;;;5456:79;;:::i;:::-;5418:119;5576:1;5601:53;5646:7;5637:6;5626:9;5622:22;5601:53;:::i;:::-;5591:63;;5547:117;5703:2;5729:53;5774:7;5765:6;5754:9;5750:22;5729:53;:::i;:::-;5719:63;;5674:118;5325:474;;;;;:::o;5805:934::-;5927:6;5935;5943;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6154:1;6143:9;6139:17;6126:31;6184:18;6176:6;6173:30;6170:117;;;6206:79;;:::i;:::-;6170:117;6319:80;6391:7;6382:6;6371:9;6367:22;6319:80;:::i;:::-;6301:98;;;;6097:312;6476:2;6465:9;6461:18;6448:32;6507:18;6499:6;6496:30;6493:117;;;6529:79;;:::i;:::-;6493:117;6642:80;6714:7;6705:6;6694:9;6690:22;6642:80;:::i;:::-;6624:98;;;;6419:313;5805:934;;;;;;;:::o;6745:539::-;6829:6;6878:2;6866:9;6857:7;6853:23;6849:32;6846:119;;;6884:79;;:::i;:::-;6846:119;7032:1;7021:9;7017:17;7004:31;7062:18;7054:6;7051:30;7048:117;;;7084:79;;:::i;:::-;7048:117;7189:78;7259:7;7250:6;7239:9;7235:22;7189:78;:::i;:::-;7179:88;;6975:302;6745:539;;;;:::o;7290:323::-;7346:6;7395:2;7383:9;7374:7;7370:23;7366:32;7363:119;;;7401:79;;:::i;:::-;7363:119;7521:1;7546:50;7588:7;7579:6;7568:9;7564:22;7546:50;:::i;:::-;7536:60;;7492:114;7290:323;;;;:::o;7619:329::-;7678:6;7727:2;7715:9;7706:7;7702:23;7698:32;7695:119;;;7733:79;;:::i;:::-;7695:119;7853:1;7878:53;7923:7;7914:6;7903:9;7899:22;7878:53;:::i;:::-;7868:63;;7824:117;7619:329;;;;:::o;7954:474::-;8022:6;8030;8079:2;8067:9;8058:7;8054:23;8050:32;8047:119;;;8085:79;;:::i;:::-;8047:119;8205:1;8230:53;8275:7;8266:6;8255:9;8251:22;8230:53;:::i;:::-;8220:63;;8176:117;8332:2;8358:53;8403:7;8394:6;8383:9;8379:22;8358:53;:::i;:::-;8348:63;;8303:118;7954:474;;;;;:::o;8434:663::-;8522:6;8530;8538;8587:2;8575:9;8566:7;8562:23;8558:32;8555:119;;;8593:79;;:::i;:::-;8555:119;8713:1;8738:64;8794:7;8785:6;8774:9;8770:22;8738:64;:::i;:::-;8728:74;;8684:128;8851:2;8877:64;8933:7;8924:6;8913:9;8909:22;8877:64;:::i;:::-;8867:74;;8822:129;8990:2;9016:64;9072:7;9063:6;9052:9;9048:22;9016:64;:::i;:::-;9006:74;;8961:129;8434:663;;;;;:::o;9103:179::-;9172:10;9193:46;9235:3;9227:6;9193:46;:::i;:::-;9271:4;9266:3;9262:14;9248:28;;9103:179;;;;:::o;9288:108::-;9365:24;9383:5;9365:24;:::i;:::-;9360:3;9353:37;9288:108;;:::o;9402:118::-;9489:24;9507:5;9489:24;:::i;:::-;9484:3;9477:37;9402:118;;:::o;9556:732::-;9675:3;9704:54;9752:5;9704:54;:::i;:::-;9774:86;9853:6;9848:3;9774:86;:::i;:::-;9767:93;;9884:56;9934:5;9884:56;:::i;:::-;9963:7;9994:1;9979:284;10004:6;10001:1;9998:13;9979:284;;;10080:6;10074:13;10107:63;10166:3;10151:13;10107:63;:::i;:::-;10100:70;;10193:60;10246:6;10193:60;:::i;:::-;10183:70;;10039:224;10026:1;10023;10019:9;10014:14;;9979:284;;;9983:14;10279:3;10272:10;;9680:608;;;9556:732;;;;:::o;10294:109::-;10375:21;10390:5;10375:21;:::i;:::-;10370:3;10363:34;10294:109;;:::o;10409:183::-;10522:63;10579:5;10522:63;:::i;:::-;10517:3;10510:76;10409:183;;:::o;10598:147::-;10693:45;10732:5;10693:45;:::i;:::-;10688:3;10681:58;10598:147;;:::o;10751:364::-;10839:3;10867:39;10900:5;10867:39;:::i;:::-;10922:71;10986:6;10981:3;10922:71;:::i;:::-;10915:78;;11002:52;11047:6;11042:3;11035:4;11028:5;11024:16;11002:52;:::i;:::-;11079:29;11101:6;11079:29;:::i;:::-;11074:3;11070:39;11063:46;;10843:272;10751:364;;;;:::o;11121:366::-;11263:3;11284:67;11348:2;11343:3;11284:67;:::i;:::-;11277:74;;11360:93;11449:3;11360:93;:::i;:::-;11478:2;11473:3;11469:12;11462:19;;11121:366;;;:::o;11493:::-;11635:3;11656:67;11720:2;11715:3;11656:67;:::i;:::-;11649:74;;11732:93;11821:3;11732:93;:::i;:::-;11850:2;11845:3;11841:12;11834:19;;11493:366;;;:::o;11865:::-;12007:3;12028:67;12092:2;12087:3;12028:67;:::i;:::-;12021:74;;12104:93;12193:3;12104:93;:::i;:::-;12222:2;12217:3;12213:12;12206:19;;11865:366;;;:::o;12237:::-;12379:3;12400:67;12464:2;12459:3;12400:67;:::i;:::-;12393:74;;12476:93;12565:3;12476:93;:::i;:::-;12594:2;12589:3;12585:12;12578:19;;12237:366;;;:::o;12609:::-;12751:3;12772:67;12836:2;12831:3;12772:67;:::i;:::-;12765:74;;12848:93;12937:3;12848:93;:::i;:::-;12966:2;12961:3;12957:12;12950:19;;12609:366;;;:::o;12981:::-;13123:3;13144:67;13208:2;13203:3;13144:67;:::i;:::-;13137:74;;13220:93;13309:3;13220:93;:::i;:::-;13338:2;13333:3;13329:12;13322:19;;12981:366;;;:::o;13353:::-;13495:3;13516:67;13580:2;13575:3;13516:67;:::i;:::-;13509:74;;13592:93;13681:3;13592:93;:::i;:::-;13710:2;13705:3;13701:12;13694:19;;13353:366;;;:::o;13725:::-;13867:3;13888:67;13952:2;13947:3;13888:67;:::i;:::-;13881:74;;13964:93;14053:3;13964:93;:::i;:::-;14082:2;14077:3;14073:12;14066:19;;13725:366;;;:::o;14097:::-;14239:3;14260:67;14324:2;14319:3;14260:67;:::i;:::-;14253:74;;14336:93;14425:3;14336:93;:::i;:::-;14454:2;14449:3;14445:12;14438:19;;14097:366;;;:::o;14469:::-;14611:3;14632:67;14696:2;14691:3;14632:67;:::i;:::-;14625:74;;14708:93;14797:3;14708:93;:::i;:::-;14826:2;14821:3;14817:12;14810:19;;14469:366;;;:::o;14841:::-;14983:3;15004:67;15068:2;15063:3;15004:67;:::i;:::-;14997:74;;15080:93;15169:3;15080:93;:::i;:::-;15198:2;15193:3;15189:12;15182:19;;14841:366;;;:::o;15213:::-;15355:3;15376:67;15440:2;15435:3;15376:67;:::i;:::-;15369:74;;15452:93;15541:3;15452:93;:::i;:::-;15570:2;15565:3;15561:12;15554:19;;15213:366;;;:::o;15585:::-;15727:3;15748:67;15812:2;15807:3;15748:67;:::i;:::-;15741:74;;15824:93;15913:3;15824:93;:::i;:::-;15942:2;15937:3;15933:12;15926:19;;15585:366;;;:::o;15957:::-;16099:3;16120:67;16184:2;16179:3;16120:67;:::i;:::-;16113:74;;16196:93;16285:3;16196:93;:::i;:::-;16314:2;16309:3;16305:12;16298:19;;15957:366;;;:::o;16329:118::-;16416:24;16434:5;16416:24;:::i;:::-;16411:3;16404:37;16329:118;;:::o;16453:112::-;16536:22;16552:5;16536:22;:::i;:::-;16531:3;16524:35;16453:112;;:::o;16571:222::-;16664:4;16702:2;16691:9;16687:18;16679:26;;16715:71;16783:1;16772:9;16768:17;16759:6;16715:71;:::i;:::-;16571:222;;;;:::o;16799:807::-;17048:4;17086:3;17075:9;17071:19;17063:27;;17100:71;17168:1;17157:9;17153:17;17144:6;17100:71;:::i;:::-;17181:72;17249:2;17238:9;17234:18;17225:6;17181:72;:::i;:::-;17263:80;17339:2;17328:9;17324:18;17315:6;17263:80;:::i;:::-;17353;17429:2;17418:9;17414:18;17405:6;17353:80;:::i;:::-;17443:73;17511:3;17500:9;17496:19;17487:6;17443:73;:::i;:::-;17526;17594:3;17583:9;17579:19;17570:6;17526:73;:::i;:::-;16799:807;;;;;;;;;:::o;17612:210::-;17699:4;17737:2;17726:9;17722:18;17714:26;;17750:65;17812:1;17801:9;17797:17;17788:6;17750:65;:::i;:::-;17612:210;;;;:::o;17828:274::-;17947:4;17985:2;17974:9;17970:18;17962:26;;17998:97;18092:1;18081:9;18077:17;18068:6;17998:97;:::i;:::-;17828:274;;;;:::o;18108:313::-;18221:4;18259:2;18248:9;18244:18;18236:26;;18308:9;18302:4;18298:20;18294:1;18283:9;18279:17;18272:47;18336:78;18409:4;18400:6;18336:78;:::i;:::-;18328:86;;18108:313;;;;:::o;18427:419::-;18593:4;18631:2;18620:9;18616:18;18608:26;;18680:9;18674:4;18670:20;18666:1;18655:9;18651:17;18644:47;18708:131;18834:4;18708:131;:::i;:::-;18700:139;;18427:419;;;:::o;18852:::-;19018:4;19056:2;19045:9;19041:18;19033:26;;19105:9;19099:4;19095:20;19091:1;19080:9;19076:17;19069:47;19133:131;19259:4;19133:131;:::i;:::-;19125:139;;18852:419;;;:::o;19277:::-;19443:4;19481:2;19470:9;19466:18;19458:26;;19530:9;19524:4;19520:20;19516:1;19505:9;19501:17;19494:47;19558:131;19684:4;19558:131;:::i;:::-;19550:139;;19277:419;;;:::o;19702:::-;19868:4;19906:2;19895:9;19891:18;19883:26;;19955:9;19949:4;19945:20;19941:1;19930:9;19926:17;19919:47;19983:131;20109:4;19983:131;:::i;:::-;19975:139;;19702:419;;;:::o;20127:::-;20293:4;20331:2;20320:9;20316:18;20308:26;;20380:9;20374:4;20370:20;20366:1;20355:9;20351:17;20344:47;20408:131;20534:4;20408:131;:::i;:::-;20400:139;;20127:419;;;:::o;20552:::-;20718:4;20756:2;20745:9;20741:18;20733:26;;20805:9;20799:4;20795:20;20791:1;20780:9;20776:17;20769:47;20833:131;20959:4;20833:131;:::i;:::-;20825:139;;20552:419;;;:::o;20977:::-;21143:4;21181:2;21170:9;21166:18;21158:26;;21230:9;21224:4;21220:20;21216:1;21205:9;21201:17;21194:47;21258:131;21384:4;21258:131;:::i;:::-;21250:139;;20977:419;;;:::o;21402:::-;21568:4;21606:2;21595:9;21591:18;21583:26;;21655:9;21649:4;21645:20;21641:1;21630:9;21626:17;21619:47;21683:131;21809:4;21683:131;:::i;:::-;21675:139;;21402:419;;;:::o;21827:::-;21993:4;22031:2;22020:9;22016:18;22008:26;;22080:9;22074:4;22070:20;22066:1;22055:9;22051:17;22044:47;22108:131;22234:4;22108:131;:::i;:::-;22100:139;;21827:419;;;:::o;22252:::-;22418:4;22456:2;22445:9;22441:18;22433:26;;22505:9;22499:4;22495:20;22491:1;22480:9;22476:17;22469:47;22533:131;22659:4;22533:131;:::i;:::-;22525:139;;22252:419;;;:::o;22677:::-;22843:4;22881:2;22870:9;22866:18;22858:26;;22930:9;22924:4;22920:20;22916:1;22905:9;22901:17;22894:47;22958:131;23084:4;22958:131;:::i;:::-;22950:139;;22677:419;;;:::o;23102:::-;23268:4;23306:2;23295:9;23291:18;23283:26;;23355:9;23349:4;23345:20;23341:1;23330:9;23326:17;23319:47;23383:131;23509:4;23383:131;:::i;:::-;23375:139;;23102:419;;;:::o;23527:::-;23693:4;23731:2;23720:9;23716:18;23708:26;;23780:9;23774:4;23770:20;23766:1;23755:9;23751:17;23744:47;23808:131;23934:4;23808:131;:::i;:::-;23800:139;;23527:419;;;:::o;23952:::-;24118:4;24156:2;24145:9;24141:18;24133:26;;24205:9;24199:4;24195:20;24191:1;24180:9;24176:17;24169:47;24233:131;24359:4;24233:131;:::i;:::-;24225:139;;23952:419;;;:::o;24377:222::-;24470:4;24508:2;24497:9;24493:18;24485:26;;24521:71;24589:1;24578:9;24574:17;24565:6;24521:71;:::i;:::-;24377:222;;;;:::o;24605:831::-;24868:4;24906:3;24895:9;24891:19;24883:27;;24920:71;24988:1;24977:9;24973:17;24964:6;24920:71;:::i;:::-;25001:80;25077:2;25066:9;25062:18;25053:6;25001:80;:::i;:::-;25128:9;25122:4;25118:20;25113:2;25102:9;25098:18;25091:48;25156:108;25259:4;25250:6;25156:108;:::i;:::-;25148:116;;25274:72;25342:2;25331:9;25327:18;25318:6;25274:72;:::i;:::-;25356:73;25424:3;25413:9;25409:19;25400:6;25356:73;:::i;:::-;24605:831;;;;;;;;:::o;25442:214::-;25531:4;25569:2;25558:9;25554:18;25546:26;;25582:67;25646:1;25635:9;25631:17;25622:6;25582:67;:::i;:::-;25442:214;;;;:::o;25662:129::-;25696:6;25723:20;;:::i;:::-;25713:30;;25752:33;25780:4;25772:6;25752:33;:::i;:::-;25662:129;;;:::o;25797:75::-;25830:6;25863:2;25857:9;25847:19;;25797:75;:::o;25878:311::-;25955:4;26045:18;26037:6;26034:30;26031:56;;;26067:18;;:::i;:::-;26031:56;26117:4;26109:6;26105:17;26097:25;;26177:4;26171;26167:15;26159:23;;25878:311;;;:::o;26195:132::-;26262:4;26285:3;26277:11;;26315:4;26310:3;26306:14;26298:22;;26195:132;;;:::o;26333:114::-;26400:6;26434:5;26428:12;26418:22;;26333:114;;;:::o;26453:99::-;26505:6;26539:5;26533:12;26523:22;;26453:99;;;:::o;26558:113::-;26628:4;26660;26655:3;26651:14;26643:22;;26558:113;;;:::o;26677:184::-;26776:11;26810:6;26805:3;26798:19;26850:4;26845:3;26841:14;26826:29;;26677:184;;;;:::o;26867:169::-;26951:11;26985:6;26980:3;26973:19;27025:4;27020:3;27016:14;27001:29;;26867:169;;;;:::o;27042:305::-;27082:3;27101:20;27119:1;27101:20;:::i;:::-;27096:25;;27135:20;27153:1;27135:20;:::i;:::-;27130:25;;27289:1;27221:66;27217:74;27214:1;27211:81;27208:107;;;27295:18;;:::i;:::-;27208:107;27339:1;27336;27332:9;27325:16;;27042:305;;;;:::o;27353:185::-;27393:1;27410:20;27428:1;27410:20;:::i;:::-;27405:25;;27444:20;27462:1;27444:20;:::i;:::-;27439:25;;27483:1;27473:35;;27488:18;;:::i;:::-;27473:35;27530:1;27527;27523:9;27518:14;;27353:185;;;;:::o;27544:348::-;27584:7;27607:20;27625:1;27607:20;:::i;:::-;27602:25;;27641:20;27659:1;27641:20;:::i;:::-;27636:25;;27829:1;27761:66;27757:74;27754:1;27751:81;27746:1;27739:9;27732:17;27728:105;27725:131;;;27836:18;;:::i;:::-;27725:131;27884:1;27881;27877:9;27866:20;;27544:348;;;;:::o;27898:191::-;27938:4;27958:20;27976:1;27958:20;:::i;:::-;27953:25;;27992:20;28010:1;27992:20;:::i;:::-;27987:25;;28031:1;28028;28025:8;28022:34;;;28036:18;;:::i;:::-;28022:34;28081:1;28078;28074:9;28066:17;;27898:191;;;;:::o;28095:96::-;28132:7;28161:24;28179:5;28161:24;:::i;:::-;28150:35;;28095:96;;;:::o;28197:90::-;28231:7;28274:5;28267:13;28260:21;28249:32;;28197:90;;;:::o;28293:126::-;28330:7;28370:42;28363:5;28359:54;28348:65;;28293:126;;;:::o;28425:77::-;28462:7;28491:5;28480:16;;28425:77;;;:::o;28508:86::-;28543:7;28583:4;28576:5;28572:16;28561:27;;28508:86;;;:::o;28600:152::-;28676:9;28709:37;28740:5;28709:37;:::i;:::-;28696:50;;28600:152;;;:::o;28758:121::-;28816:9;28849:24;28867:5;28849:24;:::i;:::-;28836:37;;28758:121;;;:::o;28885:126::-;28935:9;28968:37;28999:5;28968:37;:::i;:::-;28955:50;;28885:126;;;:::o;29017:113::-;29067:9;29100:24;29118:5;29100:24;:::i;:::-;29087:37;;29017:113;;;:::o;29136:307::-;29204:1;29214:113;29228:6;29225:1;29222:13;29214:113;;;29313:1;29308:3;29304:11;29298:18;29294:1;29289:3;29285:11;29278:39;29250:2;29247:1;29243:10;29238:15;;29214:113;;;29345:6;29342:1;29339:13;29336:101;;;29425:1;29416:6;29411:3;29407:16;29400:27;29336:101;29185:258;29136:307;;;:::o;29449:281::-;29532:27;29554:4;29532:27;:::i;:::-;29524:6;29520:40;29662:6;29650:10;29647:22;29626:18;29614:10;29611:34;29608:62;29605:88;;;29673:18;;:::i;:::-;29605:88;29713:10;29709:2;29702:22;29492:238;29449:281;;:::o;29736:233::-;29775:3;29798:24;29816:5;29798:24;:::i;:::-;29789:33;;29844:66;29837:5;29834:77;29831:103;;;29914:18;;:::i;:::-;29831:103;29961:1;29954:5;29950:13;29943:20;;29736:233;;;:::o;29975:180::-;30023:77;30020:1;30013:88;30120:4;30117:1;30110:15;30144:4;30141:1;30134:15;30161:180;30209:77;30206:1;30199:88;30306:4;30303:1;30296:15;30330:4;30327:1;30320:15;30347:180;30395:77;30392:1;30385:88;30492:4;30489:1;30482:15;30516:4;30513:1;30506:15;30533:180;30581:77;30578:1;30571:88;30678:4;30675:1;30668:15;30702:4;30699:1;30692:15;30719:117;30828:1;30825;30818:12;30842:117;30951:1;30948;30941:12;30965:117;31074:1;31071;31064:12;31088:117;31197:1;31194;31187:12;31211:117;31320:1;31317;31310:12;31334:102;31375:6;31426:2;31422:7;31417:2;31410:5;31406:14;31402:28;31392:38;;31334:102;;;:::o;31442:222::-;31582:34;31578:1;31570:6;31566:14;31559:58;31651:5;31646:2;31638:6;31634:15;31627:30;31442:222;:::o;31670:178::-;31810:30;31806:1;31798:6;31794:14;31787:54;31670:178;:::o;31854:225::-;31994:34;31990:1;31982:6;31978:14;31971:58;32063:8;32058:2;32050:6;32046:15;32039:33;31854:225;:::o;32085:221::-;32225:34;32221:1;32213:6;32209:14;32202:58;32294:4;32289:2;32281:6;32277:15;32270:29;32085:221;:::o;32312:222::-;32452:34;32448:1;32440:6;32436:14;32429:58;32521:5;32516:2;32508:6;32504:15;32497:30;32312:222;:::o;32540:180::-;32680:32;32676:1;32668:6;32664:14;32657:56;32540:180;:::o;32726:177::-;32866:29;32862:1;32854:6;32850:14;32843:53;32726:177;:::o;32909:225::-;33049:34;33045:1;33037:6;33033:14;33026:58;33118:8;33113:2;33105:6;33101:15;33094:33;32909:225;:::o;33140:220::-;33280:34;33276:1;33268:6;33264:14;33257:58;33349:3;33344:2;33336:6;33332:15;33325:28;33140:220;:::o;33366:182::-;33506:34;33502:1;33494:6;33490:14;33483:58;33366:182;:::o;33554:228::-;33694:34;33690:1;33682:6;33678:14;33671:58;33763:11;33758:2;33750:6;33746:15;33739:36;33554:228;:::o;33788:224::-;33928:34;33924:1;33916:6;33912:14;33905:58;33997:7;33992:2;33984:6;33980:15;33973:32;33788:224;:::o;34018:222::-;34158:34;34154:1;34146:6;34142:14;34135:58;34227:5;34222:2;34214:6;34210:15;34203:30;34018:222;:::o;34246:223::-;34386:34;34382:1;34374:6;34370:14;34363:58;34455:6;34450:2;34442:6;34438:15;34431:31;34246:223;:::o;34475:122::-;34548:24;34566:5;34548:24;:::i;:::-;34541:5;34538:35;34528:63;;34587:1;34584;34577:12;34528:63;34475:122;:::o;34603:116::-;34673:21;34688:5;34673:21;:::i;:::-;34666:5;34663:32;34653:60;;34709:1;34706;34699:12;34653:60;34603:116;:::o;34725:122::-;34798:24;34816:5;34798:24;:::i;:::-;34791:5;34788:35;34778:63;;34837:1;34834;34827:12;34778:63;34725:122;:::o

Swarm Source

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