ETH Price: $3,433.63 (+2.45%)
Gas: 4 Gwei

Token

BABY WORLD CUP INU (BWCI)
 

Overview

Max Total Supply

100,000,000 BWCI

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,178,965.311171462 BWCI

Value
$0.00
0xc44012e8de261c9c75c365e7bdf7cb817695d792
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:
BWCI

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-19
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

contract Ownable is Context {
    address private _owner;
    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);
    }

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

}

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

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

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

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

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

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

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

    using SafeMath for uint256;

    string private constant _name = "BABY WORLD CUP INU";
    string private constant _symbol = "BWCI";
    uint8 private constant _decimals = 9;

    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 = 100000000  * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 3;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;


    address payable private _devAddress1 = payable(0x747CD9112aE4142487F8908dd3008B97D4e6AdD7);
    address payable private _devAddress2 = payable(0x747CD9112aE4142487F8908dd3008B97D4e6AdD7);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    uint256 public countx=0;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 2000000 * 10**9;
    uint256 public _maxWalletSize = 2000000 * 10**9;
    uint256 public _swapTokensAtAmount = 100000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_devAddress1] = true;
        _isExcludedFromFee[_devAddress2] = 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 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 (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!");

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

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

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                countx=countx+1;
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
                require(countx<=25);
            }

        }

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

    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 {
        _devAddress2.transfer(amount/2);
        _devAddress1.transfer(address(this).balance);
    }

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

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

    

    function manualsend() public onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    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, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

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

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

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

    

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }


    function removeLimits() public {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }



}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"countx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00006000196200001c91906200072f565b6000196200002b919062000796565b600655600060085560036009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f5573747cd9112ae4142487f8908dd3008b97d4e6add7601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073747cd9112ae4142487f8908dd3008b97d4e6add7601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006014556000601560006101000a81548160ff0219169083151502179055506000601560016101000a81548160ff0219169083151502179055506001601560026101000a81548160ff02191690831515021790555066071afd498d000060165566071afd498d0000601755655af3107a40006018553480156200018757600080fd5b5060006200019a620006c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024f620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000333573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035991906200083b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003e791906200083b565b6040518363ffffffff1660e01b8152600401620004069291906200087e565b6020604051808303816000875af115801562000426573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044c91906200083b565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004a2620006cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064f620006c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006b69190620008bc565b60405180910390a350620008d9565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073c82620006f6565b91506200074983620006f6565b9250826200075c576200075b62000700565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007a382620006f6565b9150620007b083620006f6565b925082821015620007c657620007c562000767565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080382620007d6565b9050919050565b6200081581620007f6565b81146200082157600080fd5b50565b60008151905062000835816200080a565b92915050565b600060208284031215620008545762000853620007d1565b5b6000620008648482850162000824565b91505092915050565b6200087881620007f6565b82525050565b60006040820190506200089560008301856200086d565b620008a460208301846200086d565b9392505050565b620008b681620006f6565b82525050565b6000602082019050620008d36000830184620008ab565b92915050565b6132bf80620008e96000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b657806398a5c3151161006f57806398a5c31514610457578063a9059cbb14610480578063c31cf388146104bd578063c3c8cd80146104e8578063dd62ed3e146104ff578063f2fde38b1461053c57610156565b8063751039fc1461036b5780637d1db4a5146103825780638da5cb5b146103ad5780638f70ccf7146103d85780638f9a55c01461040157806395d89b411461042c57610156565b8063313ce56711610108578063313ce5671461028157806349bd5a5e146102ac5780636d8aa8f8146102d75780636fc3eaec1461030057806370a0823114610317578063715018a61461035457610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632fd689e31461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610565565b60405161017d9190612487565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612542565b6105a2565b6040516101ba919061259d565b60405180910390f35b3480156101cf57600080fd5b506101d86105c0565b6040516101e59190612617565b60405180910390f35b3480156101fa57600080fd5b506102036105e6565b6040516102109190612641565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061265c565b6105f6565b60405161024d919061259d565b60405180910390f35b34801561026257600080fd5b5061026b6106cf565b6040516102789190612641565b60405180910390f35b34801561028d57600080fd5b506102966106d5565b6040516102a391906126cb565b60405180910390f35b3480156102b857600080fd5b506102c16106de565b6040516102ce91906126f5565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061273c565b610704565b005b34801561030c57600080fd5b506103156107b6565b005b34801561032357600080fd5b5061033e60048036038101906103399190612769565b61085c565b60405161034b9190612641565b60405180910390f35b34801561036057600080fd5b506103696108ad565b005b34801561037757600080fd5b50610380610a00565b005b34801561038e57600080fd5b50610397610a20565b6040516103a49190612641565b60405180910390f35b3480156103b957600080fd5b506103c2610a26565b6040516103cf91906126f5565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061273c565b610a4f565b005b34801561040d57600080fd5b50610416610b01565b6040516104239190612641565b60405180910390f35b34801561043857600080fd5b50610441610b07565b60405161044e9190612487565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190612796565b610b44565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612542565b610be3565b6040516104b4919061259d565b60405180910390f35b3480156104c957600080fd5b506104d2610c01565b6040516104df9190612641565b60405180910390f35b3480156104f457600080fd5b506104fd610c07565b005b34801561050b57600080fd5b50610526600480360381019061052191906127c3565b610cb5565b6040516105339190612641565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e9190612769565b610d3c565b005b60606040518060400160405280601281526020017f4241425920574f524c442043555020494e550000000000000000000000000000815250905090565b60006105b66105af610efe565b8484610f06565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006106038484846110d1565b6106c48461060f610efe565b6106bf8560405180606001604052806028815260200161326260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610675610efe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189b9092919063ffffffff16565b610f06565b600190509392505050565b60185481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61070c610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610799576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107909061284f565b60405180910390fd5b80601560026101000a81548160ff02191690831515021790555050565b6107be610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108429061284f565b60405180910390fd5b6000479050610859816118ff565b50565b60006108a6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e0565b9050919050565b6108b5610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109399061284f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b67016345785d8a000060168190555067016345785d8a0000601781905550565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a57610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb9061284f565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4257434900000000000000000000000000000000000000000000000000000000815250905090565b610b4c610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd09061284f565b60405180910390fd5b8060188190555050565b6000610bf7610bf0610efe565b84846110d1565b6001905092915050565b60145481565b610c0f610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c939061284f565b60405180910390fd5b6000610ca73061085c565b9050610cb281611a4e565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d44610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc89061284f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e38906128e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d90612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd90612a05565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110c49190612641565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890612a97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612b29565b60405180910390fd5b600081116111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90612bbb565b60405180910390fd5b6111fc610a26565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126a575061123a610a26565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561157557601560009054906101000a900460ff166112f95761128b610a26565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90612c4d565b60405180910390fd5b5b60165481111561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612cb9565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113ec57601754816113a08461085c565b6113aa9190612d08565b11156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612dd0565b60405180910390fd5b5b60006113f73061085c565b90506000601854821015905060165482106114125760165491505b80801561142c5750601560019054906101000a900460ff16155b80156114865750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561149e5750601560029054906101000a900460ff165b80156114f45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561154a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115725761155882611a4e565b600047905060008111156115705761156f476118ff565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116cf5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116ce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156116dd5760009050611889565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117885750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b557600160145461179c9190612d08565b601481905550600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118605750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561188857600a54600c81905550600b54600d819055506019601454111561188757600080fd5b5b5b61189584848484611cc7565b50505050565b60008383111582906118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9190612487565b60405180910390fd5b50600083856118f29190612df0565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836119489190612e53565b9081150290604051600060405180830381858888f19350505050158015611973573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156119dc573d6000803e3d6000fd5b5050565b6000600654821115611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e90612ef6565b60405180910390fd5b6000611a31611cf4565b9050611a468184611d1f90919063ffffffff16565b915050919050565b6001601560016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a8657611a85612f16565b5b604051908082528060200260200182016040528015611ab45781602001602082028036833780820191505090505b5090503081600081518110611acc57611acb612f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b979190612f89565b81600181518110611bab57611baa612f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f06565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c769594939291906130af565b600060405180830381600087803b158015611c9057600080fd5b505af1158015611ca4573d6000803e3d6000fd5b50505050506000601560016101000a81548160ff02191690831515021790555050565b80611cd557611cd4611d69565b5b611ce0848484611dac565b80611cee57611ced611f77565b5b50505050565b6000806000611d01611f8b565b91509150611d188183611d1f90919063ffffffff16565b9250505090565b6000611d6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fea565b905092915050565b6000600c54148015611d7d57506000600d54145b15611d8757611daa565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611dbe8761204d565b955095509550955095509550611e1c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eb185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ff90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611efd8161215d565b611f07848361221a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f649190612641565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050611fbf67016345785d8a0000600654611d1f90919063ffffffff16565b821015611fdd5760065467016345785d8a0000935093505050611fe6565b81819350935050505b9091565b60008083118290612031576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120289190612487565b60405180910390fd5b50600083856120409190612e53565b9050809150509392505050565b600080600080600080600080600061206a8a600c54600d54612254565b925092509250600061207a611cf4565b9050600080600061208d8e8787876122ea565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061189b565b905092915050565b600080828461210e9190612d08565b905083811015612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a90613155565b60405180910390fd5b8091505092915050565b6000612167611cf4565b9050600061217e828461237390919063ffffffff16565b90506121d281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ff90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61222f826006546120b590919063ffffffff16565b60068190555061224a816007546120ff90919063ffffffff16565b6007819055505050565b6000806000806122806064612272888a61237390919063ffffffff16565b611d1f90919063ffffffff16565b905060006122aa606461229c888b61237390919063ffffffff16565b611d1f90919063ffffffff16565b905060006122d3826122c5858c6120b590919063ffffffff16565b6120b590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612303858961237390919063ffffffff16565b9050600061231a868961237390919063ffffffff16565b90506000612331878961237390919063ffffffff16565b9050600061235a8261234c85876120b590919063ffffffff16565b6120b590919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561238657600090506123e8565b600082846123949190613175565b90508284826123a39190612e53565b146123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da90613241565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561242857808201518184015260208101905061240d565b83811115612437576000848401525b50505050565b6000601f19601f8301169050919050565b6000612459826123ee565b61246381856123f9565b935061247381856020860161240a565b61247c8161243d565b840191505092915050565b600060208201905081810360008301526124a1818461244e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124d9826124ae565b9050919050565b6124e9816124ce565b81146124f457600080fd5b50565b600081359050612506816124e0565b92915050565b6000819050919050565b61251f8161250c565b811461252a57600080fd5b50565b60008135905061253c81612516565b92915050565b60008060408385031215612559576125586124a9565b5b6000612567858286016124f7565b92505060206125788582860161252d565b9150509250929050565b60008115159050919050565b61259781612582565b82525050565b60006020820190506125b2600083018461258e565b92915050565b6000819050919050565b60006125dd6125d86125d3846124ae565b6125b8565b6124ae565b9050919050565b60006125ef826125c2565b9050919050565b6000612601826125e4565b9050919050565b612611816125f6565b82525050565b600060208201905061262c6000830184612608565b92915050565b61263b8161250c565b82525050565b60006020820190506126566000830184612632565b92915050565b600080600060608486031215612675576126746124a9565b5b6000612683868287016124f7565b9350506020612694868287016124f7565b92505060406126a58682870161252d565b9150509250925092565b600060ff82169050919050565b6126c5816126af565b82525050565b60006020820190506126e060008301846126bc565b92915050565b6126ef816124ce565b82525050565b600060208201905061270a60008301846126e6565b92915050565b61271981612582565b811461272457600080fd5b50565b60008135905061273681612710565b92915050565b600060208284031215612752576127516124a9565b5b600061276084828501612727565b91505092915050565b60006020828403121561277f5761277e6124a9565b5b600061278d848285016124f7565b91505092915050565b6000602082840312156127ac576127ab6124a9565b5b60006127ba8482850161252d565b91505092915050565b600080604083850312156127da576127d96124a9565b5b60006127e8858286016124f7565b92505060206127f9858286016124f7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128396020836123f9565b915061284482612803565b602082019050919050565b600060208201905081810360008301526128688161282c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128cb6026836123f9565b91506128d68261286f565b604082019050919050565b600060208201905081810360008301526128fa816128be565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061295d6024836123f9565b915061296882612901565b604082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129ef6022836123f9565b91506129fa82612993565b604082019050919050565b60006020820190508181036000830152612a1e816129e2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a816025836123f9565b9150612a8c82612a25565b604082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b136023836123f9565b9150612b1e82612ab7565b604082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ba56029836123f9565b9150612bb082612b49565b604082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612c37603f836123f9565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612ca3601c836123f9565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d138261250c565b9150612d1e8361250c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d5357612d52612cd9565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612dba6023836123f9565b9150612dc582612d5e565b604082019050919050565b60006020820190508181036000830152612de981612dad565b9050919050565b6000612dfb8261250c565b9150612e068361250c565b925082821015612e1957612e18612cd9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e5e8261250c565b9150612e698361250c565b925082612e7957612e78612e24565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612ee0602a836123f9565b9150612eeb82612e84565b604082019050919050565b60006020820190508181036000830152612f0f81612ed3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f83816124e0565b92915050565b600060208284031215612f9f57612f9e6124a9565b5b6000612fad84828501612f74565b91505092915050565b6000819050919050565b6000612fdb612fd6612fd184612fb6565b6125b8565b61250c565b9050919050565b612feb81612fc0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613026816124ce565b82525050565b6000613038838361301d565b60208301905092915050565b6000602082019050919050565b600061305c82612ff1565b6130668185612ffc565b93506130718361300d565b8060005b838110156130a2578151613089888261302c565b975061309483613044565b925050600181019050613075565b5085935050505092915050565b600060a0820190506130c46000830188612632565b6130d16020830187612fe2565b81810360408301526130e38186613051565b90506130f260608301856126e6565b6130ff6080830184612632565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313f601b836123f9565b915061314a82613109565b602082019050919050565b6000602082019050818103600083015261316e81613132565b9050919050565b60006131808261250c565b915061318b8361250c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c4576131c3612cd9565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061322b6021836123f9565b9150613236826131cf565b604082019050919050565b6000602082019050818103600083015261325a8161321e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c97c9a7da4d23eb356bde6d49c36eee980d4498411c6ecb76041316f9cd4e3fd64736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063751039fc116100b657806398a5c3151161006f57806398a5c31514610457578063a9059cbb14610480578063c31cf388146104bd578063c3c8cd80146104e8578063dd62ed3e146104ff578063f2fde38b1461053c57610156565b8063751039fc1461036b5780637d1db4a5146103825780638da5cb5b146103ad5780638f70ccf7146103d85780638f9a55c01461040157806395d89b411461042c57610156565b8063313ce56711610108578063313ce5671461028157806349bd5a5e146102ac5780636d8aa8f8146102d75780636fc3eaec1461030057806370a0823114610317578063715018a61461035457610156565b806306fdde031461015b578063095ea7b3146101865780631694505e146101c357806318160ddd146101ee57806323b872dd146102195780632fd689e31461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610565565b60405161017d9190612487565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612542565b6105a2565b6040516101ba919061259d565b60405180910390f35b3480156101cf57600080fd5b506101d86105c0565b6040516101e59190612617565b60405180910390f35b3480156101fa57600080fd5b506102036105e6565b6040516102109190612641565b60405180910390f35b34801561022557600080fd5b50610240600480360381019061023b919061265c565b6105f6565b60405161024d919061259d565b60405180910390f35b34801561026257600080fd5b5061026b6106cf565b6040516102789190612641565b60405180910390f35b34801561028d57600080fd5b506102966106d5565b6040516102a391906126cb565b60405180910390f35b3480156102b857600080fd5b506102c16106de565b6040516102ce91906126f5565b60405180910390f35b3480156102e357600080fd5b506102fe60048036038101906102f9919061273c565b610704565b005b34801561030c57600080fd5b506103156107b6565b005b34801561032357600080fd5b5061033e60048036038101906103399190612769565b61085c565b60405161034b9190612641565b60405180910390f35b34801561036057600080fd5b506103696108ad565b005b34801561037757600080fd5b50610380610a00565b005b34801561038e57600080fd5b50610397610a20565b6040516103a49190612641565b60405180910390f35b3480156103b957600080fd5b506103c2610a26565b6040516103cf91906126f5565b60405180910390f35b3480156103e457600080fd5b506103ff60048036038101906103fa919061273c565b610a4f565b005b34801561040d57600080fd5b50610416610b01565b6040516104239190612641565b60405180910390f35b34801561043857600080fd5b50610441610b07565b60405161044e9190612487565b60405180910390f35b34801561046357600080fd5b5061047e60048036038101906104799190612796565b610b44565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612542565b610be3565b6040516104b4919061259d565b60405180910390f35b3480156104c957600080fd5b506104d2610c01565b6040516104df9190612641565b60405180910390f35b3480156104f457600080fd5b506104fd610c07565b005b34801561050b57600080fd5b50610526600480360381019061052191906127c3565b610cb5565b6040516105339190612641565b60405180910390f35b34801561054857600080fd5b50610563600480360381019061055e9190612769565b610d3c565b005b60606040518060400160405280601281526020017f4241425920574f524c442043555020494e550000000000000000000000000000815250905090565b60006105b66105af610efe565b8484610f06565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600067016345785d8a0000905090565b60006106038484846110d1565b6106c48461060f610efe565b6106bf8560405180606001604052806028815260200161326260289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610675610efe565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461189b9092919063ffffffff16565b610f06565b600190509392505050565b60185481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61070c610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610799576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107909061284f565b60405180910390fd5b80601560026101000a81548160ff02191690831515021790555050565b6107be610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461084b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108429061284f565b60405180910390fd5b6000479050610859816118ff565b50565b60006108a6600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119e0565b9050919050565b6108b5610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610942576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109399061284f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b67016345785d8a000060168190555067016345785d8a0000601781905550565b60165481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a57610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adb9061284f565b60405180910390fd5b80601560006101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f4257434900000000000000000000000000000000000000000000000000000000815250905090565b610b4c610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd09061284f565b60405180910390fd5b8060188190555050565b6000610bf7610bf0610efe565b84846110d1565b6001905092915050565b60145481565b610c0f610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c939061284f565b60405180910390fd5b6000610ca73061085c565b9050610cb281611a4e565b50565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d44610efe565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc89061284f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e38906128e1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6d90612973565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd90612a05565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110c49190612641565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113890612a97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612b29565b60405180910390fd5b600081116111f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111eb90612bbb565b60405180910390fd5b6111fc610a26565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561126a575061123a610a26565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561157557601560009054906101000a900460ff166112f95761128b610a26565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90612c4d565b60405180910390fd5b5b60165481111561133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590612cb9565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146113ec57601754816113a08461085c565b6113aa9190612d08565b11156113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612dd0565b60405180910390fd5b5b60006113f73061085c565b90506000601854821015905060165482106114125760165491505b80801561142c5750601560019054906101000a900460ff16155b80156114865750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561149e5750601560029054906101000a900460ff165b80156114f45750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561154a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115725761155882611a4e565b600047905060008111156115705761156f476118ff565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061161c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116cf5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116ce5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156116dd5760009050611889565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117885750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b557600160145461179c9190612d08565b601481905550600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118605750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561188857600a54600c81905550600b54600d819055506019601454111561188757600080fd5b5b5b61189584848484611cc7565b50505050565b60008383111582906118e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118da9190612487565b60405180910390fd5b50600083856118f29190612df0565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836119489190612e53565b9081150290604051600060405180830381858888f19350505050158015611973573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156119dc573d6000803e3d6000fd5b5050565b6000600654821115611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e90612ef6565b60405180910390fd5b6000611a31611cf4565b9050611a468184611d1f90919063ffffffff16565b915050919050565b6001601560016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a8657611a85612f16565b5b604051908082528060200260200182016040528015611ab45781602001602082028036833780820191505090505b5090503081600081518110611acc57611acb612f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b979190612f89565b81600181518110611bab57611baa612f45565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f06565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c769594939291906130af565b600060405180830381600087803b158015611c9057600080fd5b505af1158015611ca4573d6000803e3d6000fd5b50505050506000601560016101000a81548160ff02191690831515021790555050565b80611cd557611cd4611d69565b5b611ce0848484611dac565b80611cee57611ced611f77565b5b50505050565b6000806000611d01611f8b565b91509150611d188183611d1f90919063ffffffff16565b9250505090565b6000611d6183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fea565b905092915050565b6000600c54148015611d7d57506000600d54145b15611d8757611daa565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080611dbe8761204d565b955095509550955095509550611e1c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eb185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ff90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611efd8161215d565b611f07848361221a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f649190612641565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600067016345785d8a00009050611fbf67016345785d8a0000600654611d1f90919063ffffffff16565b821015611fdd5760065467016345785d8a0000935093505050611fe6565b81819350935050505b9091565b60008083118290612031576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120289190612487565b60405180910390fd5b50600083856120409190612e53565b9050809150509392505050565b600080600080600080600080600061206a8a600c54600d54612254565b925092509250600061207a611cf4565b9050600080600061208d8e8787876122ea565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061189b565b905092915050565b600080828461210e9190612d08565b905083811015612153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214a90613155565b60405180910390fd5b8091505092915050565b6000612167611cf4565b9050600061217e828461237390919063ffffffff16565b90506121d281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120ff90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61222f826006546120b590919063ffffffff16565b60068190555061224a816007546120ff90919063ffffffff16565b6007819055505050565b6000806000806122806064612272888a61237390919063ffffffff16565b611d1f90919063ffffffff16565b905060006122aa606461229c888b61237390919063ffffffff16565b611d1f90919063ffffffff16565b905060006122d3826122c5858c6120b590919063ffffffff16565b6120b590919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612303858961237390919063ffffffff16565b9050600061231a868961237390919063ffffffff16565b90506000612331878961237390919063ffffffff16565b9050600061235a8261234c85876120b590919063ffffffff16565b6120b590919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561238657600090506123e8565b600082846123949190613175565b90508284826123a39190612e53565b146123e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123da90613241565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561242857808201518184015260208101905061240d565b83811115612437576000848401525b50505050565b6000601f19601f8301169050919050565b6000612459826123ee565b61246381856123f9565b935061247381856020860161240a565b61247c8161243d565b840191505092915050565b600060208201905081810360008301526124a1818461244e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124d9826124ae565b9050919050565b6124e9816124ce565b81146124f457600080fd5b50565b600081359050612506816124e0565b92915050565b6000819050919050565b61251f8161250c565b811461252a57600080fd5b50565b60008135905061253c81612516565b92915050565b60008060408385031215612559576125586124a9565b5b6000612567858286016124f7565b92505060206125788582860161252d565b9150509250929050565b60008115159050919050565b61259781612582565b82525050565b60006020820190506125b2600083018461258e565b92915050565b6000819050919050565b60006125dd6125d86125d3846124ae565b6125b8565b6124ae565b9050919050565b60006125ef826125c2565b9050919050565b6000612601826125e4565b9050919050565b612611816125f6565b82525050565b600060208201905061262c6000830184612608565b92915050565b61263b8161250c565b82525050565b60006020820190506126566000830184612632565b92915050565b600080600060608486031215612675576126746124a9565b5b6000612683868287016124f7565b9350506020612694868287016124f7565b92505060406126a58682870161252d565b9150509250925092565b600060ff82169050919050565b6126c5816126af565b82525050565b60006020820190506126e060008301846126bc565b92915050565b6126ef816124ce565b82525050565b600060208201905061270a60008301846126e6565b92915050565b61271981612582565b811461272457600080fd5b50565b60008135905061273681612710565b92915050565b600060208284031215612752576127516124a9565b5b600061276084828501612727565b91505092915050565b60006020828403121561277f5761277e6124a9565b5b600061278d848285016124f7565b91505092915050565b6000602082840312156127ac576127ab6124a9565b5b60006127ba8482850161252d565b91505092915050565b600080604083850312156127da576127d96124a9565b5b60006127e8858286016124f7565b92505060206127f9858286016124f7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128396020836123f9565b915061284482612803565b602082019050919050565b600060208201905081810360008301526128688161282c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006128cb6026836123f9565b91506128d68261286f565b604082019050919050565b600060208201905081810360008301526128fa816128be565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061295d6024836123f9565b915061296882612901565b604082019050919050565b6000602082019050818103600083015261298c81612950565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129ef6022836123f9565b91506129fa82612993565b604082019050919050565b60006020820190508181036000830152612a1e816129e2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612a816025836123f9565b9150612a8c82612a25565b604082019050919050565b60006020820190508181036000830152612ab081612a74565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b136023836123f9565b9150612b1e82612ab7565b604082019050919050565b60006020820190508181036000830152612b4281612b06565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ba56029836123f9565b9150612bb082612b49565b604082019050919050565b60006020820190508181036000830152612bd481612b98565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000612c37603f836123f9565b9150612c4282612bdb565b604082019050919050565b60006020820190508181036000830152612c6681612c2a565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000612ca3601c836123f9565b9150612cae82612c6d565b602082019050919050565b60006020820190508181036000830152612cd281612c96565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d138261250c565b9150612d1e8361250c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d5357612d52612cd9565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000612dba6023836123f9565b9150612dc582612d5e565b604082019050919050565b60006020820190508181036000830152612de981612dad565b9050919050565b6000612dfb8261250c565b9150612e068361250c565b925082821015612e1957612e18612cd9565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e5e8261250c565b9150612e698361250c565b925082612e7957612e78612e24565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612ee0602a836123f9565b9150612eeb82612e84565b604082019050919050565b60006020820190508181036000830152612f0f81612ed3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612f83816124e0565b92915050565b600060208284031215612f9f57612f9e6124a9565b5b6000612fad84828501612f74565b91505092915050565b6000819050919050565b6000612fdb612fd6612fd184612fb6565b6125b8565b61250c565b9050919050565b612feb81612fc0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613026816124ce565b82525050565b6000613038838361301d565b60208301905092915050565b6000602082019050919050565b600061305c82612ff1565b6130668185612ffc565b93506130718361300d565b8060005b838110156130a2578151613089888261302c565b975061309483613044565b925050600181019050613075565b5085935050505092915050565b600060a0820190506130c46000830188612632565b6130d16020830187612fe2565b81810360408301526130e38186613051565b90506130f260608301856126e6565b6130ff6080830184612632565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313f601b836123f9565b915061314a82613109565b602082019050919050565b6000602082019050818103600083015261316e81613132565b9050919050565b60006131808261250c565b915061318b8361250c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131c4576131c3612cd9565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061322b6021836123f9565b9150613236826131cf565b604082019050919050565b6000602082019050818103600083015261325a8161321e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c97c9a7da4d23eb356bde6d49c36eee980d4498411c6ecb76041316f9cd4e3fd64736f6c634300080a0033

Deployed Bytecode Sourcemap

4069:12356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6491:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7416:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5318:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6768:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7617:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5650:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6677:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5366:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16198:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12396:151;;;;;;;;;;;;;:::i;:::-;;6871:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1556:148;;;;;;;;;;;;;:::i;:::-;;16309:107;;;;;;;;;;;;;:::i;:::-;;5544:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1342:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12119:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5596:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6582:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16007:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7017:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5401:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12228:152;;;;;;;;;;;;;:::i;:::-;;7224:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1712:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6491:83;6528:13;6561:5;;;;;;;;;;;;;;;;;6554:12;;6491:83;:::o;7416:193::-;7518:4;7540:39;7549:12;:10;:12::i;:::-;7563:7;7572:6;7540:8;:39::i;:::-;7597:4;7590:11;;7416:193;;;;:::o;5318:41::-;;;;;;;;;;;;;:::o;6768:95::-;6821:7;4622:18;6841:14;;6768:95;:::o;7617:446::-;7749:4;7766:36;7776:6;7784:9;7795:6;7766:9;:36::i;:::-;7813:220;7836:6;7857:12;:10;:12::i;:::-;7884:138;7940:6;7884:138;;;;;;;;;;;;;;;;;:11;:19;7896:6;7884:19;;;;;;;;;;;;;;;:33;7904:12;:10;:12::i;:::-;7884:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7813:8;:220::i;:::-;8051:4;8044:11;;7617:446;;;;;:::o;5650:51::-;;;;:::o;6677:83::-;6718:5;4296:1;6736:16;;6677:83;:::o;5366:28::-;;;;;;;;;;;;;:::o;16198:101::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16279:12:::1;16265:11;;:26;;;;;;;;;;;;;;;;;;16198:101:::0;:::o;12396:151::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12446:26:::1;12475:21;12446:50;;12507:32;12520:18;12507:12;:32::i;:::-;12435:112;12396:151::o:0;6871:138::-;6937:7;6964:37;6984:7;:16;6992:7;6984:16;;;;;;;;;;;;;;;;6964:19;:37::i;:::-;6957:44;;6871:138;;;:::o;1556:148::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1663:1:::1;1626:40;;1647:6;::::0;::::1;;;;;;;;1626:40;;;;;;;;;;;;1694:1;1677:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1556:148::o:0;16309:107::-;4622:18;16351:12;:22;;;;4622:18;16384:14;:24;;;;16309:107::o;5544:45::-;;;;:::o;1342:79::-;1380:7;1407:6;;;;;;;;;;;1400:13;;1342:79;:::o;12119:101::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12200:12:::1;12186:11;;:26;;;;;;;;;;;;;;;;;;12119:101:::0;:::o;5596:47::-;;;;:::o;6582:87::-;6621:13;6654:7;;;;;;;;;;;;;;;;;6647:14;;6582:87;:::o;16007:139::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16120:18:::1;16098:19;:40;;;;16007:139:::0;:::o;7017:199::-;7122:4;7144:42;7154:12;:10;:12::i;:::-;7168:9;7179:6;7144:9;:42::i;:::-;7204:4;7197:11;;7017:199;;;;:::o;5401:23::-;;;;:::o;12228:152::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12278:23:::1;12304:24;12322:4;12304:9;:24::i;:::-;12278:50;;12339:33;12356:15;12339:16;:33::i;:::-;12267:113;12228:152::o:0;7224:184::-;7341:7;7373:11;:18;7385:5;7373:18;;;;;;;;;;;;;;;:27;7392:7;7373:27;;;;;;;;;;;;;;;;7366:34;;7224:184;;;;:::o;1712:244::-;1479:12;:10;:12::i;:::-;1469:22;;:6;;;;;;;;;;:22;;;1461:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1821:1:::1;1801:22;;:8;:22;;;;1793:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1911:8;1882:38;;1903:6;::::0;::::1;;;;;;;;1882:38;;;;;;;;;;;;1940:8;1931:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1712:244:::0;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;8754:369::-;8898:1;8881:19;;:5;:19;;;;8873:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8979:1;8960:21;;:7;:21;;;;8952:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9061:6;9031:11;:18;9043:5;9031:18;;;;;;;;;;;;;;;:27;9050:7;9031:27;;;;;;;;;;;;;;;:36;;;;9099:7;9083:32;;9092:5;9083:32;;;9108:6;9083:32;;;;;;:::i;:::-;;;;;;;;8754:369;;;:::o;9131:2330::-;9269:1;9253:18;;:4;:18;;;;9245:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9346:1;9332:16;;:2;:16;;;;9324:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9416:1;9407:6;:10;9399:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9488:7;:5;:7::i;:::-;9480:15;;:4;:15;;;;:32;;;;;9505:7;:5;:7::i;:::-;9499:13;;:2;:13;;;;9480:32;9476:1187;;;9569:11;;;;;;;;;;;9564:144;;9617:7;:5;:7::i;:::-;9609:15;;:4;:15;;;9601:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9564:144;9742:12;;9732:6;:22;;9724:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9813:13;;;;;;;;;;;9807:19;;:2;:19;;;9804:149;;9881:14;;9871:6;9855:13;9865:2;9855:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9847:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;9804:149;9981:28;10012:24;10030:4;10012:9;:24::i;:::-;9981:55;;10051:12;10090:19;;10066:20;:43;;10051:58;;10153:12;;10129:20;:36;10126:124;;10222:12;;10199:35;;10126:124;10270:7;:18;;;;;10282:6;;;;;;;;;;;10281:7;10270:18;:43;;;;;10300:13;;;;;;;;;;;10292:21;;:4;:21;;;;10270:43;:58;;;;;10317:11;;;;;;;;;;;10270:58;:87;;;;;10333:18;:24;10352:4;10333:24;;;;;;;;;;;;;;;;;;;;;;;;;10332:25;10270:87;:114;;;;;10362:18;:22;10381:2;10362:22;;;;;;;;;;;;;;;;;;;;;;;;;10361:23;10270:114;10266:386;;;10405:38;10422:20;10405:16;:38::i;:::-;10462:26;10491:21;10462:50;;10556:1;10535:18;:22;10531:106;;;10582:35;10595:21;10582:12;:35::i;:::-;10531:106;10386:266;10266:386;9514:1149;;9476:1187;10675:12;10690:4;10675:19;;10739:18;:24;10758:4;10739:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10767:18;:22;10786:2;10767:22;;;;;;;;;;;;;;;;;;;;;;;;;10739:50;10738:102;;;;10803:13;;;;;;;;;;;10795:21;;:4;:21;;;;:44;;;;;10826:13;;;;;;;;;;;10820:19;;:2;:19;;;;10795:44;10738:102;10734:666;;;10867:5;10857:15;;10734:666;;;10950:13;;;;;;;;;;;10942:21;;:4;:21;;;:55;;;;;10981:15;;;;;;;;;;;10967:30;;:2;:30;;;;10942:55;10939:196;;;11032:1;11025:6;;:8;;;;:::i;:::-;11018:6;:15;;;;11064:14;;11052:9;:26;;;;11107:12;;11097:7;:22;;;;10939:196;11194:13;;;;;;;;;;;11188:19;;:2;:19;;;:55;;;;;11227:15;;;;;;;;;;;11211:32;;:4;:32;;;;11188:55;11184:203;;;11276:15;;11264:9;:27;;;;11320:13;;11310:7;:23;;;;11368:2;11360:6;;:10;;11352:19;;;;;;11184:203;10734:666;11412:41;11427:4;11433:2;11437:6;11445:7;11412:14;:41::i;:::-;9234:2227;9131:2330;;;:::o;2320:224::-;2440:7;2473:1;2468;:6;;2476:12;2460:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2500:9;2516:1;2512;:5;;;;:::i;:::-;2500:17;;2535:1;2528:8;;;2320:224;;;;;:::o;11960:151::-;12017:12;;;;;;;;;;;:21;;:31;12046:1;12039:6;:8;;;;:::i;:::-;12017:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12059:12;;;;;;;;;;;:21;;:44;12081:21;12059:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11960:151;:::o;8071:323::-;8166:7;8224;;8213;:18;;8191:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8312:19;8334:10;:8;:10::i;:::-;8312:32;;8362:24;8374:11;8362:7;:11;;:24;;;;:::i;:::-;8355:31;;;8071:323;;;:::o;11469:483::-;5804:4;5795:6;;:13;;;;;;;;;;;;;;;;;;11547:21:::1;11585:1;11571:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11547:40;;11616:4;11598;11603:1;11598:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11642:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11632:4;11637:1;11632:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11675:62;11692:4;11707:15;;;;;;;;;;;11725:11;11675:8;:62::i;:::-;11748:15;;;;;;;;;;;:66;;;11829:11;11855:1;11871:4;11898;11918:15;11748:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11536:416;5840:5:::0;5831:6;;:14;;;;;;;;;;;;;;;;;;11469:483;:::o;12557:282::-;12713:7;12708:28;;12722:14;:12;:14::i;:::-;12708:28;12747:44;12765:6;12773:9;12784:6;12747:17;:44::i;:::-;12807:7;12802:29;;12816:15;:13;:15::i;:::-;12802:29;12557:282;;;;:::o;15518:164::-;15560:7;15581:15;15598;15617:19;:17;:19::i;:::-;15580:56;;;;15654:20;15666:7;15654;:11;;:20;;;;:::i;:::-;15647:27;;;;15518:164;:::o;2806:132::-;2864:7;2891:39;2895:1;2898;2891:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2884:46;;2806:132;;;;:::o;8402:219::-;8462:1;8449:9;;:14;:30;;;;;8478:1;8467:7;;:12;8449:30;8445:43;;;8481:7;;8445:43;8520:9;;8500:17;:29;;;;8558:7;;8540:15;:25;;;;8590:1;8578:9;:13;;;;8612:1;8602:7;:11;;;;8402:219;:::o;12847:610::-;12994:15;13024:23;13062:12;13089:23;13127:12;13154:13;13181:19;13192:7;13181:10;:19::i;:::-;12979:221;;;;;;;;;;;;13229:28;13249:7;13229;:15;13237:6;13229:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13211:7;:15;13219:6;13211:15;;;;;;;;;;;;;;;:46;;;;13289:39;13312:15;13289:7;:18;13297:9;13289:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13268:7;:18;13276:9;13268:18;;;;;;;;;;;;;;;:60;;;;13339:16;13349:5;13339:9;:16::i;:::-;13366:23;13378:4;13384;13366:11;:23::i;:::-;13422:9;13405:44;;13414:6;13405:44;;;13433:15;13405:44;;;;;;:::i;:::-;;;;;;;;12968:489;;;;;;12847:610;;;:::o;8629:117::-;8685:17;;8673:9;:29;;;;8723:15;;8713:7;:25;;;;8629:117::o;15690:257::-;15741:7;15750;15770:15;15788:7;;15770:25;;15806:15;4622:18;15806:25;;15856:20;4622:18;15856:7;;:11;;:20;;;;:::i;:::-;15846:7;:30;15842:61;;;15886:7;;4622:18;15878:25;;;;;;;;15842:61;15922:7;15931;15914:25;;;;;;15690:257;;;:::o;2946:223::-;3066:7;3098:1;3094;:5;3101:12;3086:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3125:9;3141:1;3137;:5;;;;:::i;:::-;3125:17;;3160:1;3153:8;;;2946:223;;;;;:::o;13876:615::-;13976:7;13998;14020;14042;14064;14086;14122:23;14147:12;14161:13;14191:40;14203:7;14212:9;;14223:7;;14191:11;:40::i;:::-;14121:110;;;;;;14242:19;14264:10;:8;:10::i;:::-;14242:32;;14286:15;14303:23;14328:12;14357:46;14369:7;14378:4;14384:5;14391:11;14357;:46::i;:::-;14285:118;;;;;;14422:7;14431:15;14448:4;14454:15;14471:4;14477:5;14414:69;;;;;;;;;;;;;;;;;;;13876:615;;;;;;;:::o;2176:136::-;2234:7;2261:43;2265:1;2268;2261:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2254:50;;2176:136;;;;:::o;1989:179::-;2047:7;2067:9;2083:1;2079;:5;;;;:::i;:::-;2067:17;;2108:1;2103;:6;;2095:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2159:1;2152:8;;;1989:179;;;;:::o;13465:211::-;13518:19;13540:10;:8;:10::i;:::-;13518:32;;13561:13;13577:22;13587:11;13577:5;:9;;:22;;;;:::i;:::-;13561:38;;13635:33;13662:5;13635:7;:22;13651:4;13635:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13610:7;:22;13626:4;13610:22;;;;;;;;;;;;;;;:58;;;;13507:169;;13465:211;:::o;13684:147::-;13762:17;13774:4;13762:7;;:11;;:17;;;;:::i;:::-;13752:7;:27;;;;13803:20;13818:4;13803:10;;:14;;:20;;;;:::i;:::-;13790:10;:33;;;;13684:147;;:::o;14499:469::-;14668:7;14690;14712;14747:12;14762:30;14788:3;14762:21;14774:8;14762:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14747:45;;14803:13;14819:28;14843:3;14819:19;14831:6;14819:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14803:44;;14858:23;14884:28;14906:5;14884:17;14896:4;14884:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14858:54;;14931:15;14948:4;14954:5;14923:37;;;;;;;;;14499:469;;;;;;;:::o;14976:534::-;15170:7;15192;15214;15249:15;15267:24;15279:11;15267:7;:11;;:24;;;;:::i;:::-;15249:42;;15302:12;15317:21;15326:11;15317:4;:8;;:21;;;;:::i;:::-;15302:36;;15349:13;15365:22;15375:11;15365:5;:9;;:22;;;;:::i;:::-;15349:38;;15398:23;15424:28;15446:5;15424:17;15436:4;15424:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15398:54;;15471:7;15480:15;15497:4;15463:39;;;;;;;;;;14976:534;;;;;;;;:::o;2552:246::-;2610:7;2639:1;2634;:6;2630:47;;;2664:1;2657:8;;;;2630:47;2687:9;2703:1;2699;:5;;;;:::i;:::-;2687:17;;2732:1;2727;2723;:5;;;;:::i;:::-;:10;2715:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2789:1;2782:8;;;2552:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:116::-;6296:21;6311:5;6296:21;:::i;:::-;6289:5;6286:32;6276:60;;6332:1;6329;6322:12;6276:60;6226:116;:::o;6348:133::-;6391:5;6429:6;6416:20;6407:29;;6445:30;6469:5;6445:30;:::i;:::-;6348:133;;;;:::o;6487:323::-;6543:6;6592:2;6580:9;6571:7;6567:23;6563:32;6560:119;;;6598:79;;:::i;:::-;6560:119;6718:1;6743:50;6785:7;6776:6;6765:9;6761:22;6743:50;:::i;:::-;6733:60;;6689:114;6487:323;;;;:::o;6816:329::-;6875:6;6924:2;6912:9;6903:7;6899:23;6895:32;6892:119;;;6930:79;;:::i;:::-;6892:119;7050:1;7075:53;7120:7;7111:6;7100:9;7096:22;7075:53;:::i;:::-;7065:63;;7021:117;6816:329;;;;:::o;7151:::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:474::-;7554:6;7562;7611:2;7599:9;7590:7;7586:23;7582:32;7579:119;;;7617:79;;:::i;:::-;7579:119;7737:1;7762:53;7807:7;7798:6;7787:9;7783:22;7762:53;:::i;:::-;7752:63;;7708:117;7864:2;7890:53;7935:7;7926:6;7915:9;7911:22;7890:53;:::i;:::-;7880:63;;7835:118;7486:474;;;;;:::o;7966:182::-;8106:34;8102:1;8094:6;8090:14;8083:58;7966:182;:::o;8154:366::-;8296:3;8317:67;8381:2;8376:3;8317:67;:::i;:::-;8310:74;;8393:93;8482:3;8393:93;:::i;:::-;8511:2;8506:3;8502:12;8495:19;;8154:366;;;:::o;8526:419::-;8692:4;8730:2;8719:9;8715:18;8707:26;;8779:9;8773:4;8769:20;8765:1;8754:9;8750:17;8743:47;8807:131;8933:4;8807:131;:::i;:::-;8799:139;;8526:419;;;:::o;8951:225::-;9091:34;9087:1;9079:6;9075:14;9068:58;9160:8;9155:2;9147:6;9143:15;9136:33;8951:225;:::o;9182:366::-;9324:3;9345:67;9409:2;9404:3;9345:67;:::i;:::-;9338:74;;9421:93;9510:3;9421:93;:::i;:::-;9539:2;9534:3;9530:12;9523:19;;9182:366;;;:::o;9554:419::-;9720:4;9758:2;9747:9;9743:18;9735:26;;9807:9;9801:4;9797:20;9793:1;9782:9;9778:17;9771:47;9835:131;9961:4;9835:131;:::i;:::-;9827:139;;9554:419;;;:::o;9979:223::-;10119:34;10115:1;10107:6;10103:14;10096:58;10188:6;10183:2;10175:6;10171:15;10164:31;9979:223;:::o;10208:366::-;10350:3;10371:67;10435:2;10430:3;10371:67;:::i;:::-;10364:74;;10447:93;10536:3;10447:93;:::i;:::-;10565:2;10560:3;10556:12;10549:19;;10208:366;;;:::o;10580:419::-;10746:4;10784:2;10773:9;10769:18;10761:26;;10833:9;10827:4;10823:20;10819:1;10808:9;10804:17;10797:47;10861:131;10987:4;10861:131;:::i;:::-;10853:139;;10580:419;;;:::o;11005:221::-;11145:34;11141:1;11133:6;11129:14;11122:58;11214:4;11209:2;11201:6;11197:15;11190:29;11005:221;:::o;11232:366::-;11374:3;11395:67;11459:2;11454:3;11395:67;:::i;:::-;11388:74;;11471:93;11560:3;11471:93;:::i;:::-;11589:2;11584:3;11580:12;11573:19;;11232:366;;;:::o;11604:419::-;11770:4;11808:2;11797:9;11793:18;11785:26;;11857:9;11851:4;11847:20;11843:1;11832:9;11828:17;11821:47;11885:131;12011:4;11885:131;:::i;:::-;11877:139;;11604:419;;;:::o;12029:224::-;12169:34;12165:1;12157:6;12153:14;12146:58;12238:7;12233:2;12225:6;12221:15;12214:32;12029:224;:::o;12259:366::-;12401:3;12422:67;12486:2;12481:3;12422:67;:::i;:::-;12415:74;;12498:93;12587:3;12498:93;:::i;:::-;12616:2;12611:3;12607:12;12600:19;;12259:366;;;:::o;12631:419::-;12797:4;12835:2;12824:9;12820:18;12812:26;;12884:9;12878:4;12874:20;12870:1;12859:9;12855:17;12848:47;12912:131;13038:4;12912:131;:::i;:::-;12904:139;;12631:419;;;:::o;13056:222::-;13196:34;13192:1;13184:6;13180:14;13173:58;13265:5;13260:2;13252:6;13248:15;13241:30;13056:222;:::o;13284:366::-;13426:3;13447:67;13511:2;13506:3;13447:67;:::i;:::-;13440:74;;13523:93;13612:3;13523:93;:::i;:::-;13641:2;13636:3;13632:12;13625:19;;13284:366;;;:::o;13656:419::-;13822:4;13860:2;13849:9;13845:18;13837:26;;13909:9;13903:4;13899:20;13895:1;13884:9;13880:17;13873:47;13937:131;14063:4;13937:131;:::i;:::-;13929:139;;13656:419;;;:::o;14081:228::-;14221:34;14217:1;14209:6;14205:14;14198:58;14290:11;14285:2;14277:6;14273:15;14266:36;14081:228;:::o;14315:366::-;14457:3;14478:67;14542:2;14537:3;14478:67;:::i;:::-;14471:74;;14554:93;14643:3;14554:93;:::i;:::-;14672:2;14667:3;14663:12;14656:19;;14315:366;;;:::o;14687:419::-;14853:4;14891:2;14880:9;14876:18;14868:26;;14940:9;14934:4;14930:20;14926:1;14915:9;14911:17;14904:47;14968:131;15094:4;14968:131;:::i;:::-;14960:139;;14687:419;;;:::o;15112:250::-;15252:34;15248:1;15240:6;15236:14;15229:58;15321:33;15316:2;15308:6;15304:15;15297:58;15112:250;:::o;15368:366::-;15510:3;15531:67;15595:2;15590:3;15531:67;:::i;:::-;15524:74;;15607:93;15696:3;15607:93;:::i;:::-;15725:2;15720:3;15716:12;15709:19;;15368:366;;;:::o;15740:419::-;15906:4;15944:2;15933:9;15929:18;15921:26;;15993:9;15987:4;15983:20;15979:1;15968:9;15964:17;15957:47;16021:131;16147:4;16021:131;:::i;:::-;16013:139;;15740:419;;;:::o;16165:178::-;16305:30;16301:1;16293:6;16289:14;16282:54;16165:178;:::o;16349:366::-;16491:3;16512:67;16576:2;16571:3;16512:67;:::i;:::-;16505:74;;16588:93;16677:3;16588:93;:::i;:::-;16706:2;16701:3;16697:12;16690:19;;16349:366;;;:::o;16721:419::-;16887:4;16925:2;16914:9;16910:18;16902:26;;16974:9;16968:4;16964:20;16960:1;16949:9;16945:17;16938:47;17002:131;17128:4;17002:131;:::i;:::-;16994:139;;16721:419;;;:::o;17146:180::-;17194:77;17191:1;17184:88;17291:4;17288:1;17281:15;17315:4;17312:1;17305:15;17332:305;17372:3;17391:20;17409:1;17391:20;:::i;:::-;17386:25;;17425:20;17443:1;17425:20;:::i;:::-;17420:25;;17579:1;17511:66;17507:74;17504:1;17501:81;17498:107;;;17585:18;;:::i;:::-;17498:107;17629:1;17626;17622:9;17615:16;;17332:305;;;;:::o;17643:222::-;17783:34;17779:1;17771:6;17767:14;17760:58;17852:5;17847:2;17839:6;17835:15;17828:30;17643:222;:::o;17871:366::-;18013:3;18034:67;18098:2;18093:3;18034:67;:::i;:::-;18027:74;;18110:93;18199:3;18110:93;:::i;:::-;18228:2;18223:3;18219:12;18212:19;;17871:366;;;:::o;18243:419::-;18409:4;18447:2;18436:9;18432:18;18424:26;;18496:9;18490:4;18486:20;18482:1;18471:9;18467:17;18460:47;18524:131;18650:4;18524:131;:::i;:::-;18516:139;;18243:419;;;:::o;18668:191::-;18708:4;18728:20;18746:1;18728:20;:::i;:::-;18723:25;;18762:20;18780:1;18762:20;:::i;:::-;18757:25;;18801:1;18798;18795:8;18792:34;;;18806:18;;:::i;:::-;18792:34;18851:1;18848;18844:9;18836:17;;18668:191;;;;:::o;18865:180::-;18913:77;18910:1;18903:88;19010:4;19007:1;19000:15;19034:4;19031:1;19024:15;19051:185;19091:1;19108:20;19126:1;19108:20;:::i;:::-;19103:25;;19142:20;19160:1;19142:20;:::i;:::-;19137:25;;19181:1;19171:35;;19186:18;;:::i;:::-;19171:35;19228:1;19225;19221:9;19216:14;;19051:185;;;;:::o;19242:229::-;19382:34;19378:1;19370:6;19366:14;19359:58;19451:12;19446:2;19438:6;19434:15;19427:37;19242:229;:::o;19477:366::-;19619:3;19640:67;19704:2;19699:3;19640:67;:::i;:::-;19633:74;;19716:93;19805:3;19716:93;:::i;:::-;19834:2;19829:3;19825:12;19818:19;;19477:366;;;:::o;19849:419::-;20015:4;20053:2;20042:9;20038:18;20030:26;;20102:9;20096:4;20092:20;20088:1;20077:9;20073:17;20066:47;20130:131;20256:4;20130:131;:::i;:::-;20122:139;;19849:419;;;:::o;20274:180::-;20322:77;20319:1;20312:88;20419:4;20416:1;20409:15;20443:4;20440:1;20433:15;20460:180;20508:77;20505:1;20498:88;20605:4;20602:1;20595:15;20629:4;20626:1;20619:15;20646:143;20703:5;20734:6;20728:13;20719:22;;20750:33;20777:5;20750:33;:::i;:::-;20646:143;;;;:::o;20795:351::-;20865:6;20914:2;20902:9;20893:7;20889:23;20885:32;20882:119;;;20920:79;;:::i;:::-;20882:119;21040:1;21065:64;21121:7;21112:6;21101:9;21097:22;21065:64;:::i;:::-;21055:74;;21011:128;20795:351;;;;:::o;21152:85::-;21197:7;21226:5;21215:16;;21152:85;;;:::o;21243:158::-;21301:9;21334:61;21352:42;21361:32;21387:5;21361:32;:::i;:::-;21352:42;:::i;:::-;21334:61;:::i;:::-;21321:74;;21243:158;;;:::o;21407:147::-;21502:45;21541:5;21502:45;:::i;:::-;21497:3;21490:58;21407:147;;:::o;21560:114::-;21627:6;21661:5;21655:12;21645:22;;21560:114;;;:::o;21680:184::-;21779:11;21813:6;21808:3;21801:19;21853:4;21848:3;21844:14;21829:29;;21680:184;;;;:::o;21870:132::-;21937:4;21960:3;21952:11;;21990:4;21985:3;21981:14;21973:22;;21870:132;;;:::o;22008:108::-;22085:24;22103:5;22085:24;:::i;:::-;22080:3;22073:37;22008:108;;:::o;22122:179::-;22191:10;22212:46;22254:3;22246:6;22212:46;:::i;:::-;22290:4;22285:3;22281:14;22267:28;;22122:179;;;;:::o;22307:113::-;22377:4;22409;22404:3;22400:14;22392:22;;22307:113;;;:::o;22456:732::-;22575:3;22604:54;22652:5;22604:54;:::i;:::-;22674:86;22753:6;22748:3;22674:86;:::i;:::-;22667:93;;22784:56;22834:5;22784:56;:::i;:::-;22863:7;22894:1;22879:284;22904:6;22901:1;22898:13;22879:284;;;22980:6;22974:13;23007:63;23066:3;23051:13;23007:63;:::i;:::-;23000:70;;23093:60;23146:6;23093:60;:::i;:::-;23083:70;;22939:224;22926:1;22923;22919:9;22914:14;;22879:284;;;22883:14;23179:3;23172:10;;22580:608;;;22456:732;;;;:::o;23194:831::-;23457:4;23495:3;23484:9;23480:19;23472:27;;23509:71;23577:1;23566:9;23562:17;23553:6;23509:71;:::i;:::-;23590:80;23666:2;23655:9;23651:18;23642:6;23590:80;:::i;:::-;23717:9;23711:4;23707:20;23702:2;23691:9;23687:18;23680:48;23745:108;23848:4;23839:6;23745:108;:::i;:::-;23737:116;;23863:72;23931:2;23920:9;23916:18;23907:6;23863:72;:::i;:::-;23945:73;24013:3;24002:9;23998:19;23989:6;23945:73;:::i;:::-;23194:831;;;;;;;;:::o;24031:177::-;24171:29;24167:1;24159:6;24155:14;24148:53;24031:177;:::o;24214:366::-;24356:3;24377:67;24441:2;24436:3;24377:67;:::i;:::-;24370:74;;24453:93;24542:3;24453:93;:::i;:::-;24571:2;24566:3;24562:12;24555:19;;24214:366;;;:::o;24586:419::-;24752:4;24790:2;24779:9;24775:18;24767:26;;24839:9;24833:4;24829:20;24825:1;24814:9;24810:17;24803:47;24867:131;24993:4;24867:131;:::i;:::-;24859:139;;24586:419;;;:::o;25011:348::-;25051:7;25074:20;25092:1;25074:20;:::i;:::-;25069:25;;25108:20;25126:1;25108:20;:::i;:::-;25103:25;;25296:1;25228:66;25224:74;25221:1;25218:81;25213:1;25206:9;25199:17;25195:105;25192:131;;;25303:18;;:::i;:::-;25192:131;25351:1;25348;25344:9;25333:20;;25011:348;;;;:::o;25365:220::-;25505:34;25501:1;25493:6;25489:14;25482:58;25574:3;25569:2;25561:6;25557:15;25550:28;25365:220;:::o;25591:366::-;25733:3;25754:67;25818:2;25813:3;25754:67;:::i;:::-;25747:74;;25830:93;25919:3;25830:93;:::i;:::-;25948:2;25943:3;25939:12;25932:19;;25591:366;;;:::o;25963:419::-;26129:4;26167:2;26156:9;26152:18;26144:26;;26216:9;26210:4;26206:20;26202:1;26191:9;26187:17;26180:47;26244:131;26370:4;26244:131;:::i;:::-;26236:139;;25963:419;;;:::o

Swarm Source

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