ETH Price: $2,680.95 (-0.75%)

Token

THE MACHINE (MACHINE)
 

Overview

Max Total Supply

1,000,000 MACHINE

Holders

141

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,215.325780061 MACHINE

Value
$0.00
0x8d692C0dd15cb0a4A7C4DBFFCdDA25bde2CE01DD
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:
THEMACHINE

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-07
*/

/*
57656c636f6d6520746f20544845204d414348494e45210a4920414d20544845204f4e45210a444f204e4f542055534520424f545321

t.me/themachineERC

*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        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 THEMACHINE is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "THE MACHINE";
    string private constant _symbol = "MACHINE";
    uint8 private constant _decimals = 9;

    // RFI
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 1; // reflections
    uint256 private _teamFee = 12; //feeding the machine
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousTeamFee = _teamFee;

    // Bot detection
    mapping(address => bool) private rekt;
    mapping(address => uint256) private cooldown;
    address payable private _devFund;
    address payable private _marketingFunds;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    uint256 public launchBlock;

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

    constructor(address payable devFundAddr, address payable marketingFundAddr) {
        _devFund = devFundAddr;
        _marketingFunds = marketingFundAddr;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devFund] = true;
        _isExcludedFromFee[_marketingFunds] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function toggleFrontrun(bool onoff) external  {
        require(_msgSender() == _devFund);
        cooldownEnabled = onoff;
    }

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

    function removeAllFee() private {
        if (_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousTeamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousTeamFee;
    }

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

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

        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (
                    from != address(this) &&
                    to != address(this) &&
                    from != address(uniswapV2Router) &&
                    to != address(uniswapV2Router)
                ) {
                    require(tradingOpen, "Trading not yet enabled.");
                    require(
                        _msgSender() == address(uniswapV2Router) ||
                            _msgSender() == uniswapV2Pair,
                        "ERR: Uniswap only"
                    );
                }
            }
            if(from != address(this)){
                require(amount <= _maxTxAmount);
            }
            require(!rekt[from] && !rekt[to] && !rekt[msg.sender]);

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to] &&
                cooldownEnabled
            ) {
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (25 seconds);
            }

            if (block.number == launchBlock) {
                if (from != uniswapV2Pair && from != address(uniswapV2Router)) {
                    rekt[from] = true;
                } else if (to != uniswapV2Pair && to != address(uniswapV2Router)) {
                    rekt[to] = true;
                }
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    function isRekt(address account) public view returns (bool) {
        return rekt[account];
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _devFund.transfer(amount.mul(7).div(10));
        _marketingFunds.transfer(amount.mul(3).div(10));
     
    }

    function addLiquidity() external onlyOwner() {
        require(!tradingOpen, "trading is already open");
        IUniswapV2Router02 _uniswapV2Router =
            IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 10000 * 10**9;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }

    function openTrading() external onlyOwner() {
        launchBlock = block.number;
        tradingOpen = true;
     }

   
    function manualswap() external {
        require(_msgSender() == _devFund);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _devFund);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function Rekt(address[] memory rekt_) public onlyOwner {
        for (uint256 i = 0; i < rekt_.length; i++) {
            rekt[rekt_[i]] = true;
        }
    }

    function Unrekt(address unrekt) public onlyOwner {
        rekt[unrekt] = false;
    }
   
    function setLuckyAddress(address payable luckyone) external {
        require(_msgSender() == _devFund);
        _marketingFunds = luckyone;
    }




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

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

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

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

    receive() external payable {}

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

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

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

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

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

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }


    function changeFee(uint256 newTax, uint256 newTeam) external {
        require(_msgSender() == _devFund);
        require (newTax > 0);
        require (newTeam > 0);
        require((newTax + newTeam) <= 15,"Max total fee is 15"); // machine do not allows abuse
        _taxFee = newTax;
        _teamFee = newTeam;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"devFundAddr","type":"address"},{"internalType":"address payable","name":"marketingFundAddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"rekt_","type":"address[]"}],"name":"Rekt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"unrekt","type":"address"}],"name":"Unrekt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidity","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":"uint256","name":"newTax","type":"uint256"},{"internalType":"uint256","name":"newTeam","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isRekt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"luckyone","type":"address"}],"name":"setLuckyAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleFrontrun","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c680006000196200001b9190620005c2565b6000196200002a919062000549565b6006556001600855600c600955600854600a55600954600b556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff02191690831515021790555066038d7ea4c68000601255348015620000ac57600080fd5b5060405162004729380380620047298339818101604052810190620000d29190620004da565b6000620000e46200049260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200021b6200049260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200026f6200049a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200041c6200049260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c680006040516200048291906200052c565b60405180910390a3505062000672565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004d48162000658565b92915050565b60008060408385031215620004ee57600080fd5b6000620004fe85828601620004c3565b92505060206200051185828601620004c3565b9150509250929050565b6200052681620005b8565b82525050565b60006020820190506200054360008301846200051b565b92915050565b60006200055682620005b8565b91506200056383620005b8565b925082821015620005795762000578620005fa565b5b828203905092915050565b6000620005918262000598565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620005cf82620005b8565b9150620005dc83620005b8565b925082620005ef57620005ee62000629565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006638162000584565b81146200066f57600080fd5b50565b6140a780620006826000396000f3fe60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063cba0e9961161006f578063cba0e99614610463578063d00efb2f146104a0578063d543dbeb146104cb578063dd62ed3e146104f4578063e3ca2d6514610531578063e8078d941461055a57610156565b80638da5cb5b14610365578063935003871461039057806395d89b41146103cd578063a9059cbb146103f8578063c3c8cd8014610435578063c9567bf91461044c57610156565b8063504f5b0311610108578063504f5b031461027f5780636fc3eaec146102a857806370a08231146102bf578063715018a6146102fc5780637ed6f17d146103135780638d3480081461033c57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee5780633095fce61461022b578063313ce5671461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610571565b60405161017d91906136b4565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190613155565b6105ae565b6040516101ba9190613699565b60405180910390f35b3480156101cf57600080fd5b506101d86105cc565b6040516101e59190613896565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190613106565b6105db565b6040516102229190613699565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061304f565b6106b4565b005b34801561026057600080fd5b506102696107a4565b604051610276919061390b565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190613191565b6107ad565b005b3480156102b457600080fd5b506102bd6108fd565b005b3480156102cb57600080fd5b506102e660048036038101906102e1919061304f565b61096f565b6040516102f39190613896565b60405180910390f35b34801561030857600080fd5b506103116109c0565b005b34801561031f57600080fd5b5061033a600480360381019061033591906131d2565b610b13565b005b34801561034857600080fd5b50610363600480360381019061035e91906130a1565b610b91565b005b34801561037157600080fd5b5061037a610c36565b60405161038791906135cb565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b2919061304f565b610c5f565b6040516103c49190613699565b60405180910390f35b3480156103d957600080fd5b506103e2610cb5565b6040516103ef91906136b4565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190613155565b610cf2565b60405161042c9190613699565b60405180910390f35b34801561044157600080fd5b5061044a610d10565b005b34801561045857600080fd5b50610461610d8a565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061304f565b610e43565b6040516104979190613699565b60405180910390f35b3480156104ac57600080fd5b506104b5610e99565b6040516104c29190613896565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190613224565b610e9f565b005b34801561050057600080fd5b5061051b600480360381019061051691906130ca565b610fe6565b6040516105289190613896565b60405180910390f35b34801561053d57600080fd5b506105586004803603810190610553919061324d565b61106d565b005b34801561056657600080fd5b5061056f611149565b005b60606040518060400160405280600b81526020017f544845204d414348494e45000000000000000000000000000000000000000000815250905090565b60006105c26105bb611686565b848461168e565b6001905092915050565b600066038d7ea4c68000905090565b60006105e8848484611859565b6106a9846105f4611686565b6106a48560405180606001604052806028815260200161404a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061065a611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123159092919063ffffffff16565b61168e565b600190509392505050565b6106bc611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074090613796565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6107b5611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990613796565b60405180910390fd5b60005b81518110156108f9576001600c600084848151811061088d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108f190613bbe565b915050610845565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e611686565b73ffffffffffffffffffffffffffffffffffffffff161461095e57600080fd5b600047905061096c81612379565b50565b60006109b9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249a565b9050919050565b6109c8611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90613796565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b54611686565b73ffffffffffffffffffffffffffffffffffffffff1614610b7457600080fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd2611686565b73ffffffffffffffffffffffffffffffffffffffff1614610bf257600080fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606040518060400160405280600781526020017f4d414348494e4500000000000000000000000000000000000000000000000000815250905090565b6000610d06610cff611686565b8484611859565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d51611686565b73ffffffffffffffffffffffffffffffffffffffff1614610d7157600080fd5b6000610d7c3061096f565b9050610d8781612508565b50565b610d92611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690613796565b60405180910390fd5b436013819055506001601160146101000a81548160ff021916908315150217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b610ea7611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613796565b60405180910390fd5b60008111610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613756565b60405180910390fd5b610fa46064610f968366038d7ea4c6800061280290919063ffffffff16565b61287d90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601254604051610fdb9190613896565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ae611686565b73ffffffffffffffffffffffffffffffffffffffff16146110ce57600080fd5b600082116110db57600080fd5b600081116110e857600080fd5b600f81836110f691906139cc565b1115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e906137d6565b60405180910390fd5b81600881905550806009819055505050565b611151611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590613796565b60405180910390fd5b601160149054906101000a900460ff161561122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590613836565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112bc30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c6800061168e565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561130257600080fd5b505afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a9190613078565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561139c57600080fd5b505afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d49190613078565b6040518363ffffffff1660e01b81526004016113f19291906135e6565b602060405180830381600087803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114439190613078565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114cc3061096f565b6000806114d7610c36565b426040518863ffffffff1660e01b81526004016114f996959493929190613638565b6060604051808303818588803b15801561151257600080fd5b505af1158015611526573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061154b9190613289565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506509184e72a000601281905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161163092919061360f565b602060405180830381600087803b15801561164a57600080fd5b505af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906131fb565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613816565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590613716565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161184c9190613896565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906137f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906136d6565b60405180910390fd5b6000811161197c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611973906137b6565b60405180910390fd5b611984610c36565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119f257506119c2610c36565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561225257601160179054906101000a900460ff1615611c74573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a7457503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ace5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b285750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c7357601160149054906101000a900460ff16611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390613856565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bbd611686565b73ffffffffffffffffffffffffffffffffffffffff161480611c335750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c1b611686565b73ffffffffffffffffffffffffffffffffffffffff16145b611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990613876565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cb757601254811115611cb657600080fd5b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d5b5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dba57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e655750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ebb5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ed35750601160179054906101000a900460ff165b15611f745742600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611f2357600080fd5b601942611f3091906139cc565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60135443141561219857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561202a5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561208c576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612197565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121385750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612196576001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b60006121a33061096f565b9050601160159054906101000a900460ff161580156122105750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122285750601160169054906101000a900460ff165b156122505761223681612508565b6000479050600081111561224e5761224d47612379565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122f95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561230357600090505b61230f848484846128c7565b50505050565b600083831115829061235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235491906136b4565b60405180910390fd5b506000838561236c9190613aad565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123dc600a6123ce60078661280290919063ffffffff16565b61287d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612407573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61246b600a61245d60038661280290919063ffffffff16565b61287d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612496573d6000803e3d6000fd5b5050565b60006006548211156124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d8906136f6565b60405180910390fd5b60006124eb6128f4565b9050612500818461287d90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612566577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125945781602001602082028036833780820191505090505b50905030816000815181106125d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561267457600080fd5b505afa158015612688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ac9190613078565b816001815181106126e6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061274d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127b19594939291906138b1565b600060405180830381600087803b1580156127cb57600080fd5b505af11580156127df573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000808314156128155760009050612877565b600082846128239190613a53565b90508284826128329190613a22565b14612872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286990613776565b60405180910390fd5b809150505b92915050565b60006128bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061291f565b905092915050565b806128d5576128d4612982565b5b6128e08484846129c5565b806128ee576128ed612b90565b5b50505050565b6000806000612901612ba4565b91509150612918818361287d90919063ffffffff16565b9250505090565b60008083118290612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d91906136b4565b60405180910390fd5b50600083856129759190613a22565b9050809150509392505050565b600060085414801561299657506000600954145b156129a0576129c3565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b6000806000806000806129d787612c00565b955095509550955095509550612a3586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aca85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1681612d10565b612b208483612dcd565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b7d9190613896565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b60008060006006549050600066038d7ea4c680009050612bd666038d7ea4c6800060065461287d90919063ffffffff16565b821015612bf35760065466038d7ea4c68000935093505050612bfc565b81819350935050505b9091565b6000806000806000806000806000612c1d8a600854600954612e07565b9250925092506000612c2d6128f4565b90506000806000612c408e878787612e9d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612caa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612315565b905092915050565b6000808284612cc191906139cc565b905083811015612d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfd90613736565b60405180910390fd5b8091505092915050565b6000612d1a6128f4565b90506000612d31828461280290919063ffffffff16565b9050612d8581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612de282600654612c6890919063ffffffff16565b600681905550612dfd81600754612cb290919063ffffffff16565b6007819055505050565b600080600080612e336064612e25888a61280290919063ffffffff16565b61287d90919063ffffffff16565b90506000612e5d6064612e4f888b61280290919063ffffffff16565b61287d90919063ffffffff16565b90506000612e8682612e78858c612c6890919063ffffffff16565b612c6890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612eb6858961280290919063ffffffff16565b90506000612ecd868961280290919063ffffffff16565b90506000612ee4878961280290919063ffffffff16565b90506000612f0d82612eff8587612c6890919063ffffffff16565b612c6890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612f39612f348461394b565b613926565b90508083825260208201905082856020860282011115612f5857600080fd5b60005b85811015612f885781612f6e8882612f92565b845260208401935060208301925050600181019050612f5b565b5050509392505050565b600081359050612fa181613fed565b92915050565b600081519050612fb681613fed565b92915050565b600081359050612fcb81614004565b92915050565b600082601f830112612fe257600080fd5b8135612ff2848260208601612f26565b91505092915050565b60008135905061300a8161401b565b92915050565b60008151905061301f8161401b565b92915050565b60008135905061303481614032565b92915050565b60008151905061304981614032565b92915050565b60006020828403121561306157600080fd5b600061306f84828501612f92565b91505092915050565b60006020828403121561308a57600080fd5b600061309884828501612fa7565b91505092915050565b6000602082840312156130b357600080fd5b60006130c184828501612fbc565b91505092915050565b600080604083850312156130dd57600080fd5b60006130eb85828601612f92565b92505060206130fc85828601612f92565b9150509250929050565b60008060006060848603121561311b57600080fd5b600061312986828701612f92565b935050602061313a86828701612f92565b925050604061314b86828701613025565b9150509250925092565b6000806040838503121561316857600080fd5b600061317685828601612f92565b925050602061318785828601613025565b9150509250929050565b6000602082840312156131a357600080fd5b600082013567ffffffffffffffff8111156131bd57600080fd5b6131c984828501612fd1565b91505092915050565b6000602082840312156131e457600080fd5b60006131f284828501612ffb565b91505092915050565b60006020828403121561320d57600080fd5b600061321b84828501613010565b91505092915050565b60006020828403121561323657600080fd5b600061324484828501613025565b91505092915050565b6000806040838503121561326057600080fd5b600061326e85828601613025565b925050602061327f85828601613025565b9150509250929050565b60008060006060848603121561329e57600080fd5b60006132ac8682870161303a565b93505060206132bd8682870161303a565b92505060406132ce8682870161303a565b9150509250925092565b60006132e483836132f0565b60208301905092915050565b6132f981613ae1565b82525050565b61330881613ae1565b82525050565b600061331982613987565b61332381856139aa565b935061332e83613977565b8060005b8381101561335f57815161334688826132d8565b97506133518361399d565b925050600181019050613332565b5085935050505092915050565b61337581613b05565b82525050565b61338481613b48565b82525050565b600061339582613992565b61339f81856139bb565b93506133af818560208601613b5a565b6133b881613c94565b840191505092915050565b60006133d06023836139bb565b91506133db82613ca5565b604082019050919050565b60006133f3602a836139bb565b91506133fe82613cf4565b604082019050919050565b60006134166022836139bb565b915061342182613d43565b604082019050919050565b6000613439601b836139bb565b915061344482613d92565b602082019050919050565b600061345c601d836139bb565b915061346782613dbb565b602082019050919050565b600061347f6021836139bb565b915061348a82613de4565b604082019050919050565b60006134a26020836139bb565b91506134ad82613e33565b602082019050919050565b60006134c56029836139bb565b91506134d082613e5c565b604082019050919050565b60006134e86013836139bb565b91506134f382613eab565b602082019050919050565b600061350b6025836139bb565b915061351682613ed4565b604082019050919050565b600061352e6024836139bb565b915061353982613f23565b604082019050919050565b60006135516017836139bb565b915061355c82613f72565b602082019050919050565b60006135746018836139bb565b915061357f82613f9b565b602082019050919050565b60006135976011836139bb565b91506135a282613fc4565b602082019050919050565b6135b681613b31565b82525050565b6135c581613b3b565b82525050565b60006020820190506135e060008301846132ff565b92915050565b60006040820190506135fb60008301856132ff565b61360860208301846132ff565b9392505050565b600060408201905061362460008301856132ff565b61363160208301846135ad565b9392505050565b600060c08201905061364d60008301896132ff565b61365a60208301886135ad565b613667604083018761337b565b613674606083018661337b565b61368160808301856132ff565b61368e60a08301846135ad565b979650505050505050565b60006020820190506136ae600083018461336c565b92915050565b600060208201905081810360008301526136ce818461338a565b905092915050565b600060208201905081810360008301526136ef816133c3565b9050919050565b6000602082019050818103600083015261370f816133e6565b9050919050565b6000602082019050818103600083015261372f81613409565b9050919050565b6000602082019050818103600083015261374f8161342c565b9050919050565b6000602082019050818103600083015261376f8161344f565b9050919050565b6000602082019050818103600083015261378f81613472565b9050919050565b600060208201905081810360008301526137af81613495565b9050919050565b600060208201905081810360008301526137cf816134b8565b9050919050565b600060208201905081810360008301526137ef816134db565b9050919050565b6000602082019050818103600083015261380f816134fe565b9050919050565b6000602082019050818103600083015261382f81613521565b9050919050565b6000602082019050818103600083015261384f81613544565b9050919050565b6000602082019050818103600083015261386f81613567565b9050919050565b6000602082019050818103600083015261388f8161358a565b9050919050565b60006020820190506138ab60008301846135ad565b92915050565b600060a0820190506138c660008301886135ad565b6138d3602083018761337b565b81810360408301526138e5818661330e565b90506138f460608301856132ff565b61390160808301846135ad565b9695505050505050565b600060208201905061392060008301846135bc565b92915050565b6000613930613941565b905061393c8282613b8d565b919050565b6000604051905090565b600067ffffffffffffffff82111561396657613965613c65565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006139d782613b31565b91506139e283613b31565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a1757613a16613c07565b5b828201905092915050565b6000613a2d82613b31565b9150613a3883613b31565b925082613a4857613a47613c36565b5b828204905092915050565b6000613a5e82613b31565b9150613a6983613b31565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aa257613aa1613c07565b5b828202905092915050565b6000613ab882613b31565b9150613ac383613b31565b925082821015613ad657613ad5613c07565b5b828203905092915050565b6000613aec82613b11565b9050919050565b6000613afe82613b11565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b5382613b31565b9050919050565b60005b83811015613b78578082015181840152602081019050613b5d565b83811115613b87576000848401525b50505050565b613b9682613c94565b810181811067ffffffffffffffff82111715613bb557613bb4613c65565b5b80604052505050565b6000613bc982613b31565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bfc57613bfb613c07565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4d617820746f74616c2066656520697320313500000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b613ff681613ae1565b811461400157600080fd5b50565b61400d81613af3565b811461401857600080fd5b50565b61402481613b05565b811461402f57600080fd5b50565b61403b81613b31565b811461404657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7d9a8fe56b19cbdca827f3806911d212e2ea1eab3c70970ef8da588bfcce69564736f6c6343000804003300000000000000000000000098d3548fde1d3d538215b975efd39c47e56c334600000000000000000000000098d3548fde1d3d538215b975efd39c47e56c3346

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638da5cb5b116100b6578063cba0e9961161006f578063cba0e99614610463578063d00efb2f146104a0578063d543dbeb146104cb578063dd62ed3e146104f4578063e3ca2d6514610531578063e8078d941461055a57610156565b80638da5cb5b14610365578063935003871461039057806395d89b41146103cd578063a9059cbb146103f8578063c3c8cd8014610435578063c9567bf91461044c57610156565b8063504f5b0311610108578063504f5b031461027f5780636fc3eaec146102a857806370a08231146102bf578063715018a6146102fc5780637ed6f17d146103135780638d3480081461033c57610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee5780633095fce61461022b578063313ce5671461025457610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610571565b60405161017d91906136b4565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190613155565b6105ae565b6040516101ba9190613699565b60405180910390f35b3480156101cf57600080fd5b506101d86105cc565b6040516101e59190613896565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190613106565b6105db565b6040516102229190613699565b60405180910390f35b34801561023757600080fd5b50610252600480360381019061024d919061304f565b6106b4565b005b34801561026057600080fd5b506102696107a4565b604051610276919061390b565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190613191565b6107ad565b005b3480156102b457600080fd5b506102bd6108fd565b005b3480156102cb57600080fd5b506102e660048036038101906102e1919061304f565b61096f565b6040516102f39190613896565b60405180910390f35b34801561030857600080fd5b506103116109c0565b005b34801561031f57600080fd5b5061033a600480360381019061033591906131d2565b610b13565b005b34801561034857600080fd5b50610363600480360381019061035e91906130a1565b610b91565b005b34801561037157600080fd5b5061037a610c36565b60405161038791906135cb565b60405180910390f35b34801561039c57600080fd5b506103b760048036038101906103b2919061304f565b610c5f565b6040516103c49190613699565b60405180910390f35b3480156103d957600080fd5b506103e2610cb5565b6040516103ef91906136b4565b60405180910390f35b34801561040457600080fd5b5061041f600480360381019061041a9190613155565b610cf2565b60405161042c9190613699565b60405180910390f35b34801561044157600080fd5b5061044a610d10565b005b34801561045857600080fd5b50610461610d8a565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061304f565b610e43565b6040516104979190613699565b60405180910390f35b3480156104ac57600080fd5b506104b5610e99565b6040516104c29190613896565b60405180910390f35b3480156104d757600080fd5b506104f260048036038101906104ed9190613224565b610e9f565b005b34801561050057600080fd5b5061051b600480360381019061051691906130ca565b610fe6565b6040516105289190613896565b60405180910390f35b34801561053d57600080fd5b506105586004803603810190610553919061324d565b61106d565b005b34801561056657600080fd5b5061056f611149565b005b60606040518060400160405280600b81526020017f544845204d414348494e45000000000000000000000000000000000000000000815250905090565b60006105c26105bb611686565b848461168e565b6001905092915050565b600066038d7ea4c68000905090565b60006105e8848484611859565b6106a9846105f4611686565b6106a48560405180606001604052806028815260200161404a60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061065a611686565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123159092919063ffffffff16565b61168e565b600190509392505050565b6106bc611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074090613796565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6107b5611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083990613796565b60405180910390fd5b60005b81518110156108f9576001600c600084848151811061088d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108f190613bbe565b915050610845565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e611686565b73ffffffffffffffffffffffffffffffffffffffff161461095e57600080fd5b600047905061096c81612379565b50565b60006109b9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249a565b9050919050565b6109c8611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90613796565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b54611686565b73ffffffffffffffffffffffffffffffffffffffff1614610b7457600080fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd2611686565b73ffffffffffffffffffffffffffffffffffffffff1614610bf257600080fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60606040518060400160405280600781526020017f4d414348494e4500000000000000000000000000000000000000000000000000815250905090565b6000610d06610cff611686565b8484611859565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d51611686565b73ffffffffffffffffffffffffffffffffffffffff1614610d7157600080fd5b6000610d7c3061096f565b9050610d8781612508565b50565b610d92611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690613796565b60405180910390fd5b436013819055506001601160146101000a81548160ff021916908315150217905550565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60135481565b610ea7611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613796565b60405180910390fd5b60008111610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613756565b60405180910390fd5b610fa46064610f968366038d7ea4c6800061280290919063ffffffff16565b61287d90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601254604051610fdb9190613896565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ae611686565b73ffffffffffffffffffffffffffffffffffffffff16146110ce57600080fd5b600082116110db57600080fd5b600081116110e857600080fd5b600f81836110f691906139cc565b1115611137576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112e906137d6565b60405180910390fd5b81600881905550806009819055505050565b611151611686565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d590613796565b60405180910390fd5b601160149054906101000a900460ff161561122e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122590613836565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112bc30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c6800061168e565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561130257600080fd5b505afa158015611316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133a9190613078565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561139c57600080fd5b505afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d49190613078565b6040518363ffffffff1660e01b81526004016113f19291906135e6565b602060405180830381600087803b15801561140b57600080fd5b505af115801561141f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114439190613078565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306114cc3061096f565b6000806114d7610c36565b426040518863ffffffff1660e01b81526004016114f996959493929190613638565b6060604051808303818588803b15801561151257600080fd5b505af1158015611526573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061154b9190613289565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506509184e72a000601281905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161163092919061360f565b602060405180830381600087803b15801561164a57600080fd5b505af115801561165e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168291906131fb565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f590613816565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590613716565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161184c9190613896565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c0906137f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906136d6565b60405180910390fd5b6000811161197c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611973906137b6565b60405180910390fd5b611984610c36565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119f257506119c2610c36565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561225257601160179054906101000a900460ff1615611c74573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a7457503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ace5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b285750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c7357601160149054906101000a900460ff16611b7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7390613856565b60405180910390fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611bbd611686565b73ffffffffffffffffffffffffffffffffffffffff161480611c335750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611c1b611686565b73ffffffffffffffffffffffffffffffffffffffff16145b611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990613876565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611cb757601254811115611cb657600080fd5b5b600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d5b5750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611dba57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e655750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ebb5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ed35750601160179054906101000a900460ff165b15611f745742600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611f2357600080fd5b601942611f3091906139cc565b600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b60135443141561219857601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561202a5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561208c576001600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612197565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156121385750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612196576001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b60006121a33061096f565b9050601160159054906101000a900460ff161580156122105750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122285750601160169054906101000a900460ff165b156122505761223681612508565b6000479050600081111561224e5761224d47612379565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122f95750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561230357600090505b61230f848484846128c7565b50505050565b600083831115829061235d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235491906136b4565b60405180910390fd5b506000838561236c9190613aad565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6123dc600a6123ce60078661280290919063ffffffff16565b61287d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612407573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61246b600a61245d60038661280290919063ffffffff16565b61287d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612496573d6000803e3d6000fd5b5050565b60006006548211156124e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d8906136f6565b60405180910390fd5b60006124eb6128f4565b9050612500818461287d90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612566577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156125945781602001602082028036833780820191505090505b50905030816000815181106125d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561267457600080fd5b505afa158015612688573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ac9190613078565b816001815181106126e6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061274d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016127b19594939291906138b1565b600060405180830381600087803b1580156127cb57600080fd5b505af11580156127df573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000808314156128155760009050612877565b600082846128239190613a53565b90508284826128329190613a22565b14612872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286990613776565b60405180910390fd5b809150505b92915050565b60006128bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061291f565b905092915050565b806128d5576128d4612982565b5b6128e08484846129c5565b806128ee576128ed612b90565b5b50505050565b6000806000612901612ba4565b91509150612918818361287d90919063ffffffff16565b9250505090565b60008083118290612966576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295d91906136b4565b60405180910390fd5b50600083856129759190613a22565b9050809150509392505050565b600060085414801561299657506000600954145b156129a0576129c3565b600854600a81905550600954600b81905550600060088190555060006009819055505b565b6000806000806000806129d787612c00565b955095509550955095509550612a3586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c6890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612aca85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1681612d10565b612b208483612dcd565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612b7d9190613896565b60405180910390a3505050505050505050565b600a54600881905550600b54600981905550565b60008060006006549050600066038d7ea4c680009050612bd666038d7ea4c6800060065461287d90919063ffffffff16565b821015612bf35760065466038d7ea4c68000935093505050612bfc565b81819350935050505b9091565b6000806000806000806000806000612c1d8a600854600954612e07565b9250925092506000612c2d6128f4565b90506000806000612c408e878787612e9d565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612caa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612315565b905092915050565b6000808284612cc191906139cc565b905083811015612d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cfd90613736565b60405180910390fd5b8091505092915050565b6000612d1a6128f4565b90506000612d31828461280290919063ffffffff16565b9050612d8581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612cb290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612de282600654612c6890919063ffffffff16565b600681905550612dfd81600754612cb290919063ffffffff16565b6007819055505050565b600080600080612e336064612e25888a61280290919063ffffffff16565b61287d90919063ffffffff16565b90506000612e5d6064612e4f888b61280290919063ffffffff16565b61287d90919063ffffffff16565b90506000612e8682612e78858c612c6890919063ffffffff16565b612c6890919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612eb6858961280290919063ffffffff16565b90506000612ecd868961280290919063ffffffff16565b90506000612ee4878961280290919063ffffffff16565b90506000612f0d82612eff8587612c6890919063ffffffff16565b612c6890919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612f39612f348461394b565b613926565b90508083825260208201905082856020860282011115612f5857600080fd5b60005b85811015612f885781612f6e8882612f92565b845260208401935060208301925050600181019050612f5b565b5050509392505050565b600081359050612fa181613fed565b92915050565b600081519050612fb681613fed565b92915050565b600081359050612fcb81614004565b92915050565b600082601f830112612fe257600080fd5b8135612ff2848260208601612f26565b91505092915050565b60008135905061300a8161401b565b92915050565b60008151905061301f8161401b565b92915050565b60008135905061303481614032565b92915050565b60008151905061304981614032565b92915050565b60006020828403121561306157600080fd5b600061306f84828501612f92565b91505092915050565b60006020828403121561308a57600080fd5b600061309884828501612fa7565b91505092915050565b6000602082840312156130b357600080fd5b60006130c184828501612fbc565b91505092915050565b600080604083850312156130dd57600080fd5b60006130eb85828601612f92565b92505060206130fc85828601612f92565b9150509250929050565b60008060006060848603121561311b57600080fd5b600061312986828701612f92565b935050602061313a86828701612f92565b925050604061314b86828701613025565b9150509250925092565b6000806040838503121561316857600080fd5b600061317685828601612f92565b925050602061318785828601613025565b9150509250929050565b6000602082840312156131a357600080fd5b600082013567ffffffffffffffff8111156131bd57600080fd5b6131c984828501612fd1565b91505092915050565b6000602082840312156131e457600080fd5b60006131f284828501612ffb565b91505092915050565b60006020828403121561320d57600080fd5b600061321b84828501613010565b91505092915050565b60006020828403121561323657600080fd5b600061324484828501613025565b91505092915050565b6000806040838503121561326057600080fd5b600061326e85828601613025565b925050602061327f85828601613025565b9150509250929050565b60008060006060848603121561329e57600080fd5b60006132ac8682870161303a565b93505060206132bd8682870161303a565b92505060406132ce8682870161303a565b9150509250925092565b60006132e483836132f0565b60208301905092915050565b6132f981613ae1565b82525050565b61330881613ae1565b82525050565b600061331982613987565b61332381856139aa565b935061332e83613977565b8060005b8381101561335f57815161334688826132d8565b97506133518361399d565b925050600181019050613332565b5085935050505092915050565b61337581613b05565b82525050565b61338481613b48565b82525050565b600061339582613992565b61339f81856139bb565b93506133af818560208601613b5a565b6133b881613c94565b840191505092915050565b60006133d06023836139bb565b91506133db82613ca5565b604082019050919050565b60006133f3602a836139bb565b91506133fe82613cf4565b604082019050919050565b60006134166022836139bb565b915061342182613d43565b604082019050919050565b6000613439601b836139bb565b915061344482613d92565b602082019050919050565b600061345c601d836139bb565b915061346782613dbb565b602082019050919050565b600061347f6021836139bb565b915061348a82613de4565b604082019050919050565b60006134a26020836139bb565b91506134ad82613e33565b602082019050919050565b60006134c56029836139bb565b91506134d082613e5c565b604082019050919050565b60006134e86013836139bb565b91506134f382613eab565b602082019050919050565b600061350b6025836139bb565b915061351682613ed4565b604082019050919050565b600061352e6024836139bb565b915061353982613f23565b604082019050919050565b60006135516017836139bb565b915061355c82613f72565b602082019050919050565b60006135746018836139bb565b915061357f82613f9b565b602082019050919050565b60006135976011836139bb565b91506135a282613fc4565b602082019050919050565b6135b681613b31565b82525050565b6135c581613b3b565b82525050565b60006020820190506135e060008301846132ff565b92915050565b60006040820190506135fb60008301856132ff565b61360860208301846132ff565b9392505050565b600060408201905061362460008301856132ff565b61363160208301846135ad565b9392505050565b600060c08201905061364d60008301896132ff565b61365a60208301886135ad565b613667604083018761337b565b613674606083018661337b565b61368160808301856132ff565b61368e60a08301846135ad565b979650505050505050565b60006020820190506136ae600083018461336c565b92915050565b600060208201905081810360008301526136ce818461338a565b905092915050565b600060208201905081810360008301526136ef816133c3565b9050919050565b6000602082019050818103600083015261370f816133e6565b9050919050565b6000602082019050818103600083015261372f81613409565b9050919050565b6000602082019050818103600083015261374f8161342c565b9050919050565b6000602082019050818103600083015261376f8161344f565b9050919050565b6000602082019050818103600083015261378f81613472565b9050919050565b600060208201905081810360008301526137af81613495565b9050919050565b600060208201905081810360008301526137cf816134b8565b9050919050565b600060208201905081810360008301526137ef816134db565b9050919050565b6000602082019050818103600083015261380f816134fe565b9050919050565b6000602082019050818103600083015261382f81613521565b9050919050565b6000602082019050818103600083015261384f81613544565b9050919050565b6000602082019050818103600083015261386f81613567565b9050919050565b6000602082019050818103600083015261388f8161358a565b9050919050565b60006020820190506138ab60008301846135ad565b92915050565b600060a0820190506138c660008301886135ad565b6138d3602083018761337b565b81810360408301526138e5818661330e565b90506138f460608301856132ff565b61390160808301846135ad565b9695505050505050565b600060208201905061392060008301846135bc565b92915050565b6000613930613941565b905061393c8282613b8d565b919050565b6000604051905090565b600067ffffffffffffffff82111561396657613965613c65565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006139d782613b31565b91506139e283613b31565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a1757613a16613c07565b5b828201905092915050565b6000613a2d82613b31565b9150613a3883613b31565b925082613a4857613a47613c36565b5b828204905092915050565b6000613a5e82613b31565b9150613a6983613b31565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613aa257613aa1613c07565b5b828202905092915050565b6000613ab882613b31565b9150613ac383613b31565b925082821015613ad657613ad5613c07565b5b828203905092915050565b6000613aec82613b11565b9050919050565b6000613afe82613b11565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613b5382613b31565b9050919050565b60005b83811015613b78578082015181840152602081019050613b5d565b83811115613b87576000848401525b50505050565b613b9682613c94565b810181811067ffffffffffffffff82111715613bb557613bb4613c65565b5b80604052505050565b6000613bc982613b31565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bfc57613bfb613c07565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4d617820746f74616c2066656520697320313500000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b613ff681613ae1565b811461400157600080fd5b50565b61400d81613af3565b811461401857600080fd5b50565b61402481613b05565b811461402f57600080fd5b50565b61403b81613b31565b811461404657600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b7d9a8fe56b19cbdca827f3806911d212e2ea1eab3c70970ef8da588bfcce69564736f6c63430008040033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000098d3548fde1d3d538215b975efd39c47e56c334600000000000000000000000098d3548fde1d3d538215b975efd39c47e56c3346

-----Decoded View---------------
Arg [0] : devFundAddr (address): 0x98d3548Fde1d3D538215b975EFd39C47E56C3346
Arg [1] : marketingFundAddr (address): 0x98d3548Fde1d3D538215b975EFd39C47E56C3346

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000098d3548fde1d3d538215b975efd39c47e56c3346
Arg [1] : 00000000000000000000000098d3548fde1d3d538215b975efd39c47e56c3346


Deployed Bytecode Sourcemap

3998:14054:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6013:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6938:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6290:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7139:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13798:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6199:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13626:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13431:187;;;;;;;;;;;;;:::i;:::-;;6393:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2950:148;;;;;;;;;;;;;:::i;:::-;;7593:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13897:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2736:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11375:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6104:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6539:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13235:188;;;;;;;;;;;;;:::i;:::-;;13103:119;;;;;;;;;;;;;:::i;:::-;;11250:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5360:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17455:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6746:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17720:329;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12151:944;;;;;;;;;;;;;:::i;:::-;;6013:83;6050:13;6083:5;;;;;;;;;;;;;;;;;6076:12;;6013:83;:::o;6938:193::-;7040:4;7062:39;7071:12;:10;:12::i;:::-;7085:7;7094:6;7062:8;:39::i;:::-;7119:4;7112:11;;6938:193;;;;:::o;6290:95::-;6343:7;4563:15;6363:14;;6290:95;:::o;7139:446::-;7271:4;7288:36;7298:6;7306:9;7317:6;7288:9;:36::i;:::-;7335:220;7358:6;7379:12;:10;:12::i;:::-;7406:138;7462:6;7406:138;;;;;;;;;;;;;;;;;:11;:19;7418:6;7406:19;;;;;;;;;;;;;;;:33;7426:12;:10;:12::i;:::-;7406:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7335:8;:220::i;:::-;7573:4;7566:11;;7139:446;;;;;:::o;13798:88::-;2873:12;:10;:12::i;:::-;2863:22;;:6;;;;;;;;;;:22;;;2855:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13873:5:::1;13858:4;:12;13863:6;13858:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13798:88:::0;:::o;6199:83::-;6240:5;4225:1;6258:16;;6199:83;:::o;13626:164::-;2873:12;:10;:12::i;:::-;2863:22;;:6;;;;;;;;;;:22;;;2855:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13697:9:::1;13692:91;13716:5;:12;13712:1;:16;13692:91;;;13767:4;13750;:14;13755:5;13761:1;13755:8;;;;;;;;;;;;;;;;;;;;;;13750:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13730:3;;;;;:::i;:::-;;;;13692:91;;;;13626:164:::0;:::o;13431:187::-;13497:8;;;;;;;;;;;13481:24;;:12;:10;:12::i;:::-;:24;;;13473:33;;;;;;13517:26;13546:21;13517:50;;13578:32;13591:18;13578:12;:32::i;:::-;13431:187;:::o;6393:138::-;6459:7;6486:37;6506:7;:16;6514:7;6506:16;;;;;;;;;;;;;;;;6486:19;:37::i;:::-;6479:44;;6393:138;;;:::o;2950:148::-;2873:12;:10;:12::i;:::-;2863:22;;:6;;;;;;;;;;:22;;;2855:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3057:1:::1;3020:40;;3041:6;::::0;::::1;;;;;;;;3020:40;;;;;;;;;;;;3088:1;3071:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2950:148::o:0;7593:132::-;7674:8;;;;;;;;;;;7658:24;;:12;:10;:12::i;:::-;:24;;;7650:33;;;;;;7712:5;7694:15;;:23;;;;;;;;;;;;;;;;;;7593:132;:::o;13897:149::-;13992:8;;;;;;;;;;;13976:24;;:12;:10;:12::i;:::-;:24;;;13968:33;;;;;;14030:8;14012:15;;:26;;;;;;;;;;;;;;;;;;13897:149;:::o;2736:79::-;2774:7;2801:6;;;;;;;;;;;2794:13;;2736:79;:::o;11375:99::-;11429:4;11453;:13;11458:7;11453:13;;;;;;;;;;;;;;;;;;;;;;;;;11446:20;;11375:99;;;:::o;6104:87::-;6143:13;6176:7;;;;;;;;;;;;;;;;;6169:14;;6104:87;:::o;6539:199::-;6644:4;6666:42;6676:12;:10;:12::i;:::-;6690:9;6701:6;6666:9;:42::i;:::-;6726:4;6719:11;;6539:199;;;;:::o;13235:188::-;13301:8;;;;;;;;;;;13285:24;;:12;:10;:12::i;:::-;:24;;;13277:33;;;;;;13321:23;13347:24;13365:4;13347:9;:24::i;:::-;13321:50;;13382:33;13399:15;13382:16;:33::i;:::-;13235:188;:::o;13103:119::-;2873:12;:10;:12::i;:::-;2863:22;;:6;;;;;;;;;;:22;;;2855:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13172:12:::1;13158:11;:26;;;;13209:4;13195:11;;:18;;;;;;;;;;;;;;;;;;13103:119::o:0;11250:117::-;11308:4;11332:18;:27;11351:7;11332:27;;;;;;;;;;;;;;;;;;;;;;;;;11325:34;;11250:117;;;:::o;5360:26::-;;;;:::o;17455:255::-;2873:12;:10;:12::i;:::-;2863:22;;:6;;;;;;;;;;:22;;;2855:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17557:1:::1;17542:12;:16;17534:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;17618:36;17648:5;17618:25;17630:12;4563:15;17618:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;17603:12;:51;;;;17670:32;17689:12;;17670:32;;;;;;:::i;:::-;;;;;;;;17455:255:::0;:::o;6746:184::-;6863:7;6895:11;:18;6907:5;6895:18;;;;;;;;;;;;;;;:27;6914:7;6895:27;;;;;;;;;;;;;;;;6888:34;;6746:184;;;;:::o;17720:329::-;17816:8;;;;;;;;;;;17800:24;;:12;:10;:12::i;:::-;:24;;;17792:33;;;;;;17854:1;17845:6;:10;17836:20;;;;;;17886:1;17876:7;:11;17867:21;;;;;;17929:2;17917:7;17908:6;:16;;;;:::i;:::-;17907:24;;17899:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18006:6;17996:7;:16;;;;18034:7;18023:8;:18;;;;17720:329;;:::o;12151:944::-;2873:12;:10;:12::i;:::-;2863:22;;:6;;;;;;;;;;:22;;;2855:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12216:11:::1;;;;;;;;;;;12215:12;12207:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12266:35;12336:42;12266:113;;12408:16;12390:15;;:34;;;;;;;;;;;;;;;;;;12435:58;12452:4;12467:15;;;;;;;;;;;4563;12435:8;:58::i;:::-;12538:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12520:70;;;12599:4;12606:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12520:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12504:13;;:126;;;;;;;;;;;;;;;;;;12641:15;;;;;;;;;;;:31;;;12680:21;12725:4;12745:24;12763:4;12745:9;:24::i;:::-;12784:1;12800::::0;12816:7:::1;:5;:7::i;:::-;12838:15;12641:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12889:4;12875:11;;:18;;;;;;;;;;;;;;;;;;12922:4;12904:15;;:22;;;;;;;;;;;;;;;;;;12952:13;12937:12;:28;;;;12983:13;;;;;;;;;;;12976:29;;;13028:15;;;;;;;;;;;13059:17;12976:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2933:1;12151:944::o:0;239:98::-;292:7;319:10;312:17;;239:98;:::o;8406:369::-;8550:1;8533:19;;:5;:19;;;;8525:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8631:1;8612:21;;:7;:21;;;;8604:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8713:6;8683:11;:18;8695:5;8683:18;;;;;;;;;;;;;;;:27;8702:7;8683:27;;;;;;;;;;;;;;;:36;;;;8751:7;8735:32;;8744:5;8735:32;;;8760:6;8735:32;;;;;;:::i;:::-;;;;;;;;8406:369;;;:::o;8783:2459::-;8921:1;8905:18;;:4;:18;;;;8897:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8998:1;8984:16;;:2;:16;;;;8976:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9068:1;9059:6;:10;9051:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9140:7;:5;:7::i;:::-;9132:15;;:4;:15;;;;:32;;;;;9157:7;:5;:7::i;:::-;9151:13;;:2;:13;;;;9132:32;9128:1913;;;9185:15;;;;;;;;;;;9181:597;;;9263:4;9247:21;;:4;:21;;;;:65;;;;;9307:4;9293:19;;:2;:19;;;;9247:65;:122;;;;;9353:15;;;;;;;;;;;9337:32;;:4;:32;;;;9247:122;:177;;;;;9408:15;;;;;;;;;;;9394:30;;:2;:30;;;;9247:177;9221:542;;;9475:11;;;;;;;;;;;9467:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;9596:15;;;;;;;;;;;9572:40;;:12;:10;:12::i;:::-;:40;;;:102;;;;9661:13;;;;;;;;;;;9645:29;;:12;:10;:12::i;:::-;:29;;;9572:102;9538:205;;;;;;;;;;;;:::i;:::-;;;;;;;;;9221:542;9181:597;9811:4;9795:21;;:4;:21;;;9792:91;;9854:12;;9844:6;:22;;9836:31;;;;;;9792:91;9906:4;:10;9911:4;9906:10;;;;;;;;;;;;;;;;;;;;;;;;;9905:11;:24;;;;;9921:4;:8;9926:2;9921:8;;;;;;;;;;;;;;;;;;;;;;;;;9920:9;9905:24;:45;;;;;9934:4;:16;9939:10;9934:16;;;;;;;;;;;;;;;;;;;;;;;;;9933:17;9905:45;9897:54;;;;;;9998:13;;;;;;;;;;;9990:21;;:4;:21;;;:72;;;;;10046:15;;;;;;;;;;;10032:30;;:2;:30;;;;9990:72;:116;;;;;10084:18;:22;10103:2;10084:22;;;;;;;;;;;;;;;;;;;;;;;;;10083:23;9990:116;:152;;;;;10127:15;;;;;;;;;;;9990:152;9968:328;;;10200:15;10185:8;:12;10194:2;10185:12;;;;;;;;;;;;;;;;:30;10177:39;;;;;;10269:10;10250:15;:30;;;;:::i;:::-;10235:8;:12;10244:2;10235:12;;;;;;;;;;;;;;;:45;;;;9968:328;10332:11;;10316:12;:27;10312:313;;;10376:13;;;;;;;;;;;10368:21;;:4;:21;;;;:57;;;;;10409:15;;;;;;;;;;;10393:32;;:4;:32;;;;10368:57;10364:246;;;10463:4;10450;:10;10455:4;10450:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;10364:246;;;10503:13;;;;;;;;;;;10497:19;;:2;:19;;;;:53;;;;;10534:15;;;;;;;;;;;10520:30;;:2;:30;;;;10497:53;10493:117;;;10586:4;10575;:8;10580:2;10575:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;10493:117;10364:246;10312:313;10641:28;10672:24;10690:4;10672:9;:24::i;:::-;10641:55;;10716:6;;;;;;;;;;;10715:7;:32;;;;;10734:13;;;;;;;;;;;10726:21;;:4;:21;;;;10715:32;:47;;;;;10751:11;;;;;;;;;;;10715:47;10711:319;;;10783:38;10800:20;10783:16;:38::i;:::-;10840:26;10869:21;10840:50;;10934:1;10913:18;:22;10909:106;;;10960:35;10973:21;10960:12;:35::i;:::-;10909:106;10711:319;;9128:1913;;11051:12;11066:4;11051:19;;11087:18;:24;11106:4;11087:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11115:18;:22;11134:2;11115:22;;;;;;;;;;;;;;;;;;;;;;;;;11087:50;11083:98;;;11164:5;11154:15;;11083:98;11193:41;11208:4;11214:2;11218:6;11226:7;11193:14;:41::i;:::-;8783:2459;;;;:::o;1501:224::-;1621:7;1654:1;1649;:6;;1657:12;1641:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1681:9;1697:1;1693;:5;;;;:::i;:::-;1681:17;;1716:1;1709:8;;;1501:224;;;;;:::o;11973:170::-;12030:8;;;;;;;;;;;:17;;:40;12048:21;12066:2;12048:13;12059:1;12048:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12030:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12081:15;;;;;;;;;;;:24;;:47;12106:21;12124:2;12106:13;12117:1;12106:6;:10;;:13;;;;:::i;:::-;:17;;:21;;;;:::i;:::-;12081:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11973:170;:::o;7733:323::-;7828:7;7886;;7875;:18;;7853:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7974:19;7996:10;:8;:10::i;:::-;7974:32;;8024:24;8036:11;8024:7;:11;;:24;;;;:::i;:::-;8017:31;;;7733:323;;;:::o;11482:483::-;5489:4;5480:6;;:13;;;;;;;;;;;;;;;;;;11560:21:::1;11598:1;11584:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11560:40;;11629:4;11611;11616:1;11611:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;11655:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11645:4;11650:1;11645:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;11688:62;11705:4;11720:15;;;;;;;;;;;11738:11;11688:8;:62::i;:::-;11761:15;;;;;;;;;;;:66;;;11842:11;11868:1;11884:4;11911;11931:15;11761:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5504:1;5525:5:::0;5516:6;;:14;;;;;;;;;;;;;;;;;;11482:483;:::o;1733:246::-;1791:7;1820:1;1815;:6;1811:47;;;1845:1;1838:8;;;;1811:47;1868:9;1884:1;1880;:5;;;;:::i;:::-;1868:17;;1913:1;1908;1904;:5;;;;:::i;:::-;:10;1896:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1970:1;1963:8;;;1733:246;;;;;:::o;1987:132::-;2045:7;2072:39;2076:1;2079;2072:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2065:46;;1987:132;;;;:::o;14060:282::-;14216:7;14211:28;;14225:14;:12;:14::i;:::-;14211:28;14250:44;14268:6;14276:9;14287:6;14250:17;:44::i;:::-;14310:7;14305:29;;14319:15;:13;:15::i;:::-;14305:29;14060:282;;;;:::o;17018:164::-;17060:7;17081:15;17098;17117:19;:17;:19::i;:::-;17080:56;;;;17154:20;17166:7;17154;:11;;:20;;;;:::i;:::-;17147:27;;;;17018:164;:::o;2127:223::-;2247:7;2279:1;2275;:5;2282:12;2267:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2306:9;2322:1;2318;:5;;;;:::i;:::-;2306:17;;2341:1;2334:8;;;2127:223;;;;;:::o;8064:211::-;8122:1;8111:7;;:12;:29;;;;;8139:1;8127:8;;:13;8111:29;8107:42;;;8142:7;;8107:42;8177:7;;8159:15;:25;;;;8214:8;;8195:16;:27;;;;8243:1;8233:7;:11;;;;8266:1;8255:8;:12;;;;8064:211;:::o;14350:610::-;14497:15;14527:23;14565:12;14592:23;14630:12;14657:13;14684:19;14695:7;14684:10;:19::i;:::-;14482:221;;;;;;;;;;;;14732:28;14752:7;14732;:15;14740:6;14732:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14714:7;:15;14722:6;14714:15;;;;;;;;;;;;;;;:46;;;;14792:39;14815:15;14792:7;:18;14800:9;14792:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14771:7;:18;14779:9;14771:18;;;;;;;;;;;;;;;:60;;;;14842:16;14852:5;14842:9;:16::i;:::-;14869:23;14881:4;14887;14869:11;:23::i;:::-;14925:9;14908:44;;14917:6;14908:44;;;14936:15;14908:44;;;;;;:::i;:::-;;;;;;;;14350:610;;;;;;;;;:::o;8283:115::-;8337:15;;8327:7;:25;;;;8374:16;;8363:8;:27;;;;8283:115::o;17190:257::-;17241:7;17250;17270:15;17288:7;;17270:25;;17306:15;4563;17306:25;;17356:20;4563:15;17356:7;;:11;;:20;;;;:::i;:::-;17346:7;:30;17342:61;;;17386:7;;4563:15;17378:25;;;;;;;;17342:61;17422:7;17431;17414:25;;;;;;17190:257;;;:::o;15379:614::-;15479:7;15501;15523;15545;15567;15589;15625:23;15650:12;15664:13;15694:39;15706:7;15715;;15724:8;;15694:11;:39::i;:::-;15624:109;;;;;;15744:19;15766:10;:8;:10::i;:::-;15744:32;;15788:15;15805:23;15830:12;15859:46;15871:7;15880:4;15886:5;15893:11;15859;:46::i;:::-;15787:118;;;;;;15924:7;15933:15;15950:4;15956:15;15973:4;15979:5;15916:69;;;;;;;;;;;;;;;;;;;15379:614;;;;;;;:::o;1357:136::-;1415:7;1442:43;1446:1;1449;1442:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1435:50;;1357:136;;;;:::o;1170:179::-;1228:7;1248:9;1264:1;1260;:5;;;;:::i;:::-;1248:17;;1289:1;1284;:6;;1276:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1340:1;1333:8;;;1170:179;;;;:::o;14968:211::-;15021:19;15043:10;:8;:10::i;:::-;15021:32;;15064:13;15080:22;15090:11;15080:5;:9;;:22;;;;:::i;:::-;15064:38;;15138:33;15165:5;15138:7;:22;15154:4;15138:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15113:7;:22;15129:4;15113:22;;;;;;;;;;;;;;;:58;;;;14968:211;;;:::o;15187:147::-;15265:17;15277:4;15265:7;;:11;;:17;;;;:::i;:::-;15255:7;:27;;;;15306:20;15321:4;15306:10;;:14;;:20;;;;:::i;:::-;15293:10;:33;;;;15187:147;;:::o;16001:467::-;16169:7;16191;16213;16248:12;16263:28;16287:3;16263:19;16275:6;16263:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16248:43;;16302:13;16318:29;16343:3;16318:20;16330:7;16318;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;16302:45;;16358:23;16384:28;16406:5;16384:17;16396:4;16384:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16358:54;;16431:15;16448:4;16454:5;16423:37;;;;;;;;;16001:467;;;;;;;:::o;16476:534::-;16670:7;16692;16714;16749:15;16767:24;16779:11;16767:7;:11;;:24;;;;:::i;:::-;16749:42;;16802:12;16817:21;16826:11;16817:4;:8;;:21;;;;:::i;:::-;16802:36;;16849:13;16865:22;16875:11;16865:5;:9;;:22;;;;:::i;:::-;16849:38;;16898:23;16924:28;16946:5;16924:17;16936:4;16924:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16898:54;;16971:7;16980:15;16997:4;16963:39;;;;;;;;;;16476:534;;;;;;;;:::o;24:655: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:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;979:155::-;1033:5;1071:6;1058:20;1049:29;;1087:41;1122:5;1087:41;:::i;:::-;1039:95;;;;:::o;1157:303::-;1228:5;1277:3;1270:4;1262:6;1258:17;1254:27;1244:2;;1295:1;1292;1285:12;1244:2;1335:6;1322:20;1360:94;1450:3;1442:6;1435:4;1427:6;1423:17;1360:94;:::i;:::-;1351:103;;1234:226;;;;;:::o;1466:133::-;1509:5;1547:6;1534:20;1525:29;;1563:30;1587:5;1563:30;:::i;:::-;1515:84;;;;:::o;1605:137::-;1659:5;1690:6;1684:13;1675:22;;1706:30;1730:5;1706:30;:::i;:::-;1665:77;;;;:::o;1748:139::-;1794:5;1832:6;1819:20;1810:29;;1848:33;1875:5;1848:33;:::i;:::-;1800:87;;;;:::o;1893:143::-;1950:5;1981:6;1975:13;1966:22;;1997:33;2024:5;1997:33;:::i;:::-;1956:80;;;;:::o;2042:262::-;2101:6;2150:2;2138:9;2129:7;2125:23;2121:32;2118:2;;;2166:1;2163;2156:12;2118:2;2209:1;2234:53;2279:7;2270:6;2259:9;2255:22;2234:53;:::i;:::-;2224:63;;2180:117;2108:196;;;;:::o;2310:284::-;2380:6;2429:2;2417:9;2408:7;2404:23;2400:32;2397:2;;;2445:1;2442;2435:12;2397:2;2488:1;2513:64;2569:7;2560:6;2549:9;2545:22;2513:64;:::i;:::-;2503:74;;2459:128;2387:207;;;;:::o;2600:278::-;2667:6;2716:2;2704:9;2695:7;2691:23;2687:32;2684:2;;;2732:1;2729;2722:12;2684:2;2775:1;2800:61;2853:7;2844:6;2833:9;2829:22;2800:61;:::i;:::-;2790:71;;2746:125;2674:204;;;;:::o;2884:407::-;2952:6;2960;3009:2;2997:9;2988:7;2984:23;2980:32;2977:2;;;3025:1;3022;3015:12;2977:2;3068:1;3093:53;3138:7;3129:6;3118:9;3114:22;3093:53;:::i;:::-;3083:63;;3039:117;3195:2;3221:53;3266:7;3257:6;3246:9;3242:22;3221:53;:::i;:::-;3211:63;;3166:118;2967:324;;;;;:::o;3297:552::-;3374:6;3382;3390;3439:2;3427:9;3418:7;3414:23;3410:32;3407:2;;;3455:1;3452;3445:12;3407:2;3498:1;3523:53;3568:7;3559:6;3548:9;3544:22;3523:53;:::i;:::-;3513:63;;3469:117;3625:2;3651:53;3696:7;3687:6;3676:9;3672:22;3651:53;:::i;:::-;3641:63;;3596:118;3753:2;3779:53;3824:7;3815:6;3804:9;3800:22;3779:53;:::i;:::-;3769:63;;3724:118;3397:452;;;;;:::o;3855:407::-;3923:6;3931;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;3996:1;3993;3986:12;3948:2;4039:1;4064:53;4109:7;4100:6;4089:9;4085:22;4064:53;:::i;:::-;4054:63;;4010:117;4166:2;4192:53;4237:7;4228:6;4217:9;4213:22;4192:53;:::i;:::-;4182:63;;4137:118;3938:324;;;;;:::o;4268:405::-;4352:6;4401:2;4389:9;4380:7;4376:23;4372:32;4369:2;;;4417:1;4414;4407:12;4369:2;4488:1;4477:9;4473:17;4460:31;4518:18;4510:6;4507:30;4504:2;;;4550:1;4547;4540:12;4504:2;4578:78;4648:7;4639:6;4628:9;4624:22;4578:78;:::i;:::-;4568:88;;4431:235;4359:314;;;;:::o;4679:256::-;4735:6;4784:2;4772:9;4763:7;4759:23;4755:32;4752:2;;;4800:1;4797;4790:12;4752:2;4843:1;4868:50;4910:7;4901:6;4890:9;4886:22;4868:50;:::i;:::-;4858:60;;4814:114;4742:193;;;;:::o;4941:278::-;5008:6;5057:2;5045:9;5036:7;5032:23;5028:32;5025:2;;;5073:1;5070;5063:12;5025:2;5116:1;5141:61;5194:7;5185:6;5174:9;5170:22;5141:61;:::i;:::-;5131:71;;5087:125;5015:204;;;;:::o;5225:262::-;5284:6;5333:2;5321:9;5312:7;5308:23;5304:32;5301:2;;;5349:1;5346;5339:12;5301:2;5392:1;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5363:117;5291:196;;;;:::o;5493:407::-;5561:6;5569;5618:2;5606:9;5597:7;5593:23;5589:32;5586:2;;;5634:1;5631;5624:12;5586:2;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5804:2;5830:53;5875:7;5866:6;5855:9;5851:22;5830:53;:::i;:::-;5820:63;;5775:118;5576:324;;;;;:::o;5906:596::-;5994:6;6002;6010;6059:2;6047:9;6038:7;6034:23;6030:32;6027:2;;;6075:1;6072;6065:12;6027:2;6118:1;6143:64;6199:7;6190:6;6179:9;6175:22;6143:64;:::i;:::-;6133:74;;6089:128;6256:2;6282:64;6338:7;6329:6;6318:9;6314:22;6282:64;:::i;:::-;6272:74;;6227:129;6395:2;6421:64;6477:7;6468:6;6457:9;6453:22;6421:64;:::i;:::-;6411:74;;6366:129;6017:485;;;;;:::o;6508:179::-;6577:10;6598:46;6640:3;6632:6;6598:46;:::i;:::-;6676:4;6671:3;6667:14;6653:28;;6588:99;;;;:::o;6693:108::-;6770:24;6788:5;6770:24;:::i;:::-;6765:3;6758:37;6748:53;;:::o;6807:118::-;6894:24;6912:5;6894:24;:::i;:::-;6889:3;6882:37;6872:53;;:::o;6961:732::-;7080:3;7109:54;7157:5;7109:54;:::i;:::-;7179:86;7258:6;7253:3;7179:86;:::i;:::-;7172:93;;7289:56;7339:5;7289:56;:::i;:::-;7368:7;7399:1;7384:284;7409:6;7406:1;7403:13;7384:284;;;7485:6;7479:13;7512:63;7571:3;7556:13;7512:63;:::i;:::-;7505:70;;7598:60;7651:6;7598:60;:::i;:::-;7588:70;;7444:224;7431:1;7428;7424:9;7419:14;;7384:284;;;7388:14;7684:3;7677:10;;7085:608;;;;;;;:::o;7699:109::-;7780:21;7795:5;7780:21;:::i;:::-;7775:3;7768:34;7758:50;;:::o;7814:147::-;7909:45;7948:5;7909:45;:::i;:::-;7904:3;7897:58;7887:74;;:::o;7967:364::-;8055:3;8083:39;8116:5;8083:39;:::i;:::-;8138:71;8202:6;8197:3;8138:71;:::i;:::-;8131:78;;8218:52;8263:6;8258:3;8251:4;8244:5;8240:16;8218:52;:::i;:::-;8295:29;8317:6;8295:29;:::i;:::-;8290:3;8286:39;8279:46;;8059:272;;;;;:::o;8337:366::-;8479:3;8500:67;8564:2;8559:3;8500:67;:::i;:::-;8493:74;;8576:93;8665:3;8576:93;:::i;:::-;8694:2;8689:3;8685:12;8678:19;;8483:220;;;:::o;8709:366::-;8851:3;8872:67;8936:2;8931:3;8872:67;:::i;:::-;8865:74;;8948:93;9037:3;8948:93;:::i;:::-;9066:2;9061:3;9057:12;9050:19;;8855:220;;;:::o;9081:366::-;9223:3;9244:67;9308:2;9303:3;9244:67;:::i;:::-;9237:74;;9320:93;9409:3;9320:93;:::i;:::-;9438:2;9433:3;9429:12;9422:19;;9227:220;;;:::o;9453:366::-;9595:3;9616:67;9680:2;9675:3;9616:67;:::i;:::-;9609:74;;9692:93;9781:3;9692:93;:::i;:::-;9810:2;9805:3;9801:12;9794:19;;9599:220;;;:::o;9825:366::-;9967:3;9988:67;10052:2;10047:3;9988:67;:::i;:::-;9981:74;;10064:93;10153:3;10064:93;:::i;:::-;10182:2;10177:3;10173:12;10166:19;;9971:220;;;:::o;10197:366::-;10339:3;10360:67;10424:2;10419:3;10360:67;:::i;:::-;10353:74;;10436:93;10525:3;10436:93;:::i;:::-;10554:2;10549:3;10545:12;10538:19;;10343:220;;;:::o;10569:366::-;10711:3;10732:67;10796:2;10791:3;10732:67;:::i;:::-;10725:74;;10808:93;10897:3;10808:93;:::i;:::-;10926:2;10921:3;10917:12;10910:19;;10715:220;;;:::o;10941:366::-;11083:3;11104:67;11168:2;11163:3;11104:67;:::i;:::-;11097:74;;11180:93;11269:3;11180:93;:::i;:::-;11298:2;11293:3;11289:12;11282:19;;11087:220;;;:::o;11313:366::-;11455:3;11476:67;11540:2;11535:3;11476:67;:::i;:::-;11469:74;;11552:93;11641:3;11552:93;:::i;:::-;11670:2;11665:3;11661:12;11654:19;;11459:220;;;:::o;11685:366::-;11827:3;11848:67;11912:2;11907:3;11848:67;:::i;:::-;11841:74;;11924:93;12013:3;11924:93;:::i;:::-;12042:2;12037:3;12033:12;12026:19;;11831:220;;;:::o;12057:366::-;12199:3;12220:67;12284:2;12279:3;12220:67;:::i;:::-;12213:74;;12296:93;12385:3;12296:93;:::i;:::-;12414:2;12409:3;12405:12;12398:19;;12203:220;;;:::o;12429:366::-;12571:3;12592:67;12656:2;12651:3;12592:67;:::i;:::-;12585:74;;12668:93;12757:3;12668:93;:::i;:::-;12786:2;12781:3;12777:12;12770:19;;12575:220;;;:::o;12801:366::-;12943:3;12964:67;13028:2;13023:3;12964:67;:::i;:::-;12957:74;;13040:93;13129:3;13040:93;:::i;:::-;13158:2;13153:3;13149:12;13142:19;;12947:220;;;:::o;13173:366::-;13315:3;13336:67;13400:2;13395:3;13336:67;:::i;:::-;13329:74;;13412:93;13501:3;13412:93;:::i;:::-;13530:2;13525:3;13521:12;13514:19;;13319:220;;;:::o;13545:118::-;13632:24;13650:5;13632:24;:::i;:::-;13627:3;13620:37;13610:53;;:::o;13669:112::-;13752:22;13768:5;13752:22;:::i;:::-;13747:3;13740:35;13730:51;;:::o;13787:222::-;13880:4;13918:2;13907:9;13903:18;13895:26;;13931:71;13999:1;13988:9;13984:17;13975:6;13931:71;:::i;:::-;13885:124;;;;:::o;14015:332::-;14136:4;14174:2;14163:9;14159:18;14151:26;;14187:71;14255:1;14244:9;14240:17;14231:6;14187:71;:::i;:::-;14268:72;14336:2;14325:9;14321:18;14312:6;14268:72;:::i;:::-;14141:206;;;;;:::o;14353:332::-;14474:4;14512:2;14501:9;14497:18;14489:26;;14525:71;14593:1;14582:9;14578:17;14569:6;14525:71;:::i;:::-;14606:72;14674:2;14663:9;14659:18;14650:6;14606:72;:::i;:::-;14479:206;;;;;:::o;14691:807::-;14940:4;14978:3;14967:9;14963:19;14955:27;;14992:71;15060:1;15049:9;15045:17;15036:6;14992:71;:::i;:::-;15073:72;15141:2;15130:9;15126:18;15117:6;15073:72;:::i;:::-;15155:80;15231:2;15220:9;15216:18;15207:6;15155:80;:::i;:::-;15245;15321:2;15310:9;15306:18;15297:6;15245:80;:::i;:::-;15335:73;15403:3;15392:9;15388:19;15379:6;15335:73;:::i;:::-;15418;15486:3;15475:9;15471:19;15462:6;15418:73;:::i;:::-;14945:553;;;;;;;;;:::o;15504:210::-;15591:4;15629:2;15618:9;15614:18;15606:26;;15642:65;15704:1;15693:9;15689:17;15680:6;15642:65;:::i;:::-;15596:118;;;;:::o;15720:313::-;15833:4;15871:2;15860:9;15856:18;15848:26;;15920:9;15914:4;15910:20;15906:1;15895:9;15891:17;15884:47;15948:78;16021:4;16012:6;15948:78;:::i;:::-;15940:86;;15838:195;;;;:::o;16039:419::-;16205:4;16243:2;16232:9;16228:18;16220:26;;16292:9;16286:4;16282:20;16278:1;16267:9;16263:17;16256:47;16320:131;16446:4;16320:131;:::i;:::-;16312:139;;16210:248;;;:::o;16464:419::-;16630:4;16668:2;16657:9;16653:18;16645:26;;16717:9;16711:4;16707:20;16703:1;16692:9;16688:17;16681:47;16745:131;16871:4;16745:131;:::i;:::-;16737:139;;16635:248;;;:::o;16889:419::-;17055:4;17093:2;17082:9;17078:18;17070:26;;17142:9;17136:4;17132:20;17128:1;17117:9;17113:17;17106:47;17170:131;17296:4;17170:131;:::i;:::-;17162:139;;17060:248;;;:::o;17314:419::-;17480:4;17518:2;17507:9;17503:18;17495:26;;17567:9;17561:4;17557:20;17553:1;17542:9;17538:17;17531:47;17595:131;17721:4;17595:131;:::i;:::-;17587:139;;17485:248;;;:::o;17739:419::-;17905:4;17943:2;17932:9;17928:18;17920:26;;17992:9;17986:4;17982:20;17978:1;17967:9;17963:17;17956:47;18020:131;18146:4;18020:131;:::i;:::-;18012:139;;17910:248;;;:::o;18164:419::-;18330:4;18368:2;18357:9;18353:18;18345:26;;18417:9;18411:4;18407:20;18403:1;18392:9;18388:17;18381:47;18445:131;18571:4;18445:131;:::i;:::-;18437:139;;18335:248;;;:::o;18589:419::-;18755:4;18793:2;18782:9;18778:18;18770:26;;18842:9;18836:4;18832:20;18828:1;18817:9;18813:17;18806:47;18870:131;18996:4;18870:131;:::i;:::-;18862:139;;18760:248;;;:::o;19014:419::-;19180:4;19218:2;19207:9;19203:18;19195:26;;19267:9;19261:4;19257:20;19253:1;19242:9;19238:17;19231:47;19295:131;19421:4;19295:131;:::i;:::-;19287:139;;19185:248;;;:::o;19439:419::-;19605:4;19643:2;19632:9;19628:18;19620:26;;19692:9;19686:4;19682:20;19678:1;19667:9;19663:17;19656:47;19720:131;19846:4;19720:131;:::i;:::-;19712:139;;19610:248;;;:::o;19864:419::-;20030:4;20068:2;20057:9;20053:18;20045:26;;20117:9;20111:4;20107:20;20103:1;20092:9;20088:17;20081:47;20145:131;20271:4;20145:131;:::i;:::-;20137:139;;20035:248;;;:::o;20289:419::-;20455:4;20493:2;20482:9;20478:18;20470:26;;20542:9;20536:4;20532:20;20528:1;20517:9;20513:17;20506:47;20570:131;20696:4;20570:131;:::i;:::-;20562:139;;20460:248;;;:::o;20714:419::-;20880:4;20918:2;20907:9;20903:18;20895:26;;20967:9;20961:4;20957:20;20953:1;20942:9;20938:17;20931:47;20995:131;21121:4;20995:131;:::i;:::-;20987:139;;20885:248;;;:::o;21139:419::-;21305:4;21343:2;21332:9;21328:18;21320:26;;21392:9;21386:4;21382:20;21378:1;21367:9;21363:17;21356:47;21420:131;21546:4;21420:131;:::i;:::-;21412:139;;21310:248;;;:::o;21564:419::-;21730:4;21768:2;21757:9;21753:18;21745:26;;21817:9;21811:4;21807:20;21803:1;21792:9;21788:17;21781:47;21845:131;21971:4;21845:131;:::i;:::-;21837:139;;21735:248;;;:::o;21989:222::-;22082:4;22120:2;22109:9;22105:18;22097:26;;22133:71;22201:1;22190:9;22186:17;22177:6;22133:71;:::i;:::-;22087:124;;;;:::o;22217:831::-;22480:4;22518:3;22507:9;22503:19;22495:27;;22532:71;22600:1;22589:9;22585:17;22576:6;22532:71;:::i;:::-;22613:80;22689:2;22678:9;22674:18;22665:6;22613:80;:::i;:::-;22740:9;22734:4;22730:20;22725:2;22714:9;22710:18;22703:48;22768:108;22871:4;22862:6;22768:108;:::i;:::-;22760:116;;22886:72;22954:2;22943:9;22939:18;22930:6;22886:72;:::i;:::-;22968:73;23036:3;23025:9;23021:19;23012:6;22968:73;:::i;:::-;22485:563;;;;;;;;:::o;23054:214::-;23143:4;23181:2;23170:9;23166:18;23158:26;;23194:67;23258:1;23247:9;23243:17;23234:6;23194:67;:::i;:::-;23148:120;;;;:::o;23274:129::-;23308:6;23335:20;;:::i;:::-;23325:30;;23364:33;23392:4;23384:6;23364:33;:::i;:::-;23315:88;;;:::o;23409:75::-;23442:6;23475:2;23469:9;23459:19;;23449:35;:::o;23490:311::-;23567:4;23657:18;23649:6;23646:30;23643:2;;;23679:18;;:::i;:::-;23643:2;23729:4;23721:6;23717:17;23709:25;;23789:4;23783;23779:15;23771:23;;23572:229;;;:::o;23807:132::-;23874:4;23897:3;23889:11;;23927:4;23922:3;23918:14;23910:22;;23879:60;;;:::o;23945:114::-;24012:6;24046:5;24040:12;24030:22;;24019:40;;;:::o;24065:99::-;24117:6;24151:5;24145:12;24135:22;;24124:40;;;:::o;24170:113::-;24240:4;24272;24267:3;24263:14;24255:22;;24245:38;;;:::o;24289:184::-;24388:11;24422:6;24417:3;24410:19;24462:4;24457:3;24453:14;24438:29;;24400:73;;;;:::o;24479:169::-;24563:11;24597:6;24592:3;24585:19;24637:4;24632:3;24628:14;24613:29;;24575:73;;;;:::o;24654:305::-;24694:3;24713:20;24731:1;24713:20;:::i;:::-;24708:25;;24747:20;24765:1;24747:20;:::i;:::-;24742:25;;24901:1;24833:66;24829:74;24826:1;24823:81;24820:2;;;24907:18;;:::i;:::-;24820:2;24951:1;24948;24944:9;24937:16;;24698:261;;;;:::o;24965:185::-;25005:1;25022:20;25040:1;25022:20;:::i;:::-;25017:25;;25056:20;25074:1;25056:20;:::i;:::-;25051:25;;25095:1;25085:2;;25100:18;;:::i;:::-;25085:2;25142:1;25139;25135:9;25130:14;;25007:143;;;;:::o;25156:348::-;25196:7;25219:20;25237:1;25219:20;:::i;:::-;25214:25;;25253:20;25271:1;25253:20;:::i;:::-;25248:25;;25441:1;25373:66;25369:74;25366:1;25363:81;25358:1;25351:9;25344:17;25340:105;25337:2;;;25448:18;;:::i;:::-;25337:2;25496:1;25493;25489:9;25478:20;;25204:300;;;;:::o;25510:191::-;25550:4;25570:20;25588:1;25570:20;:::i;:::-;25565:25;;25604:20;25622:1;25604:20;:::i;:::-;25599:25;;25643:1;25640;25637:8;25634:2;;;25648:18;;:::i;:::-;25634:2;25693:1;25690;25686:9;25678:17;;25555:146;;;;:::o;25707:96::-;25744:7;25773:24;25791:5;25773:24;:::i;:::-;25762:35;;25752:51;;;:::o;25809:104::-;25854:7;25883:24;25901:5;25883:24;:::i;:::-;25872:35;;25862:51;;;:::o;25919:90::-;25953:7;25996:5;25989:13;25982:21;25971:32;;25961:48;;;:::o;26015:126::-;26052:7;26092:42;26085:5;26081:54;26070:65;;26060:81;;;:::o;26147:77::-;26184:7;26213:5;26202:16;;26192:32;;;:::o;26230:86::-;26265:7;26305:4;26298:5;26294:16;26283:27;;26273:43;;;:::o;26322:121::-;26380:9;26413:24;26431:5;26413:24;:::i;:::-;26400:37;;26390:53;;;:::o;26449:307::-;26517:1;26527:113;26541:6;26538:1;26535:13;26527:113;;;26626:1;26621:3;26617:11;26611:18;26607:1;26602:3;26598:11;26591:39;26563:2;26560:1;26556:10;26551:15;;26527:113;;;26658:6;26655:1;26652:13;26649:2;;;26738:1;26729:6;26724:3;26720:16;26713:27;26649:2;26498:258;;;;:::o;26762:281::-;26845:27;26867:4;26845:27;:::i;:::-;26837:6;26833:40;26975:6;26963:10;26960:22;26939:18;26927:10;26924:34;26921:62;26918:2;;;26986:18;;:::i;:::-;26918:2;27026:10;27022:2;27015:22;26805:238;;;:::o;27049:233::-;27088:3;27111:24;27129:5;27111:24;:::i;:::-;27102:33;;27157:66;27150:5;27147:77;27144:2;;;27227:18;;:::i;:::-;27144:2;27274:1;27267:5;27263:13;27256:20;;27092:190;;;:::o;27288:180::-;27336:77;27333:1;27326:88;27433:4;27430:1;27423:15;27457:4;27454:1;27447:15;27474:180;27522:77;27519:1;27512:88;27619:4;27616:1;27609:15;27643:4;27640:1;27633:15;27660:180;27708:77;27705:1;27698:88;27805:4;27802:1;27795:15;27829:4;27826:1;27819:15;27846:102;27887:6;27938:2;27934:7;27929:2;27922:5;27918:14;27914:28;27904:38;;27894:54;;;:::o;27954:222::-;28094:34;28090:1;28082:6;28078:14;28071:58;28163:5;28158:2;28150:6;28146:15;28139:30;28060:116;:::o;28182:229::-;28322:34;28318:1;28310:6;28306:14;28299:58;28391:12;28386:2;28378:6;28374:15;28367:37;28288:123;:::o;28417:221::-;28557:34;28553:1;28545:6;28541:14;28534:58;28626:4;28621:2;28613:6;28609:15;28602:29;28523:115;:::o;28644:177::-;28784:29;28780:1;28772:6;28768:14;28761:53;28750:71;:::o;28827:179::-;28967:31;28963:1;28955:6;28951:14;28944:55;28933:73;:::o;29012:220::-;29152:34;29148:1;29140:6;29136:14;29129:58;29221:3;29216:2;29208:6;29204:15;29197:28;29118:114;:::o;29238:182::-;29378:34;29374:1;29366:6;29362:14;29355:58;29344:76;:::o;29426:228::-;29566:34;29562:1;29554:6;29550:14;29543:58;29635:11;29630:2;29622:6;29618:15;29611:36;29532:122;:::o;29660:169::-;29800:21;29796:1;29788:6;29784:14;29777:45;29766:63;:::o;29835:224::-;29975:34;29971:1;29963:6;29959:14;29952:58;30044:7;30039:2;30031:6;30027:15;30020:32;29941:118;:::o;30065:223::-;30205:34;30201:1;30193:6;30189:14;30182:58;30274:6;30269:2;30261:6;30257:15;30250:31;30171:117;:::o;30294:173::-;30434:25;30430:1;30422:6;30418:14;30411:49;30400:67;:::o;30473:174::-;30613:26;30609:1;30601:6;30597:14;30590:50;30579:68;:::o;30653:167::-;30793:19;30789:1;30781:6;30777:14;30770:43;30759:61;:::o;30826:122::-;30899:24;30917:5;30899:24;:::i;:::-;30892:5;30889:35;30879:2;;30938:1;30935;30928:12;30879:2;30869:79;:::o;30954:138::-;31035:32;31061:5;31035:32;:::i;:::-;31028:5;31025:43;31015:2;;31082:1;31079;31072:12;31015:2;31005:87;:::o;31098:116::-;31168:21;31183:5;31168:21;:::i;:::-;31161:5;31158:32;31148:2;;31204:1;31201;31194:12;31148:2;31138:76;:::o;31220:122::-;31293:24;31311:5;31293:24;:::i;:::-;31286:5;31283:35;31273:2;;31332:1;31329;31322:12;31273:2;31263:79;:::o

Swarm Source

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