ETH Price: $2,438.70 (+4.65%)

Token

Milady Saga (LADYSA)
 

Overview

Max Total Supply

1,000,000,000 LADYSA

Holders

26

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,874,946.943373718 LADYSA

Value
$0.00
0xD8C7a3516Eb8100A26b53EeF7db3F516F6ab6080
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:
LADYSA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/

/**
 *Submitted for verification at Etherscan.io on 2023-08-23
*/

/**
Telegram: https://t.me/MiladySagaPortal
Twitter: https://twitter.com/FlokiSaga

https://t.me/addemoji/MiladySagaPortal


*/

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.19;

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

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
  
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;
    }
 
}
 
 
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
        );
}
 
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 LADYSA is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Milady Saga";
    string private constant _symbol = "LADYSA";
    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 = 10 ** 30;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 1;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 1;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping (address => uint256) public _buyMap; 
    address payable private _developmentAddress = payable(msg.sender); 
    address payable private _marketingAddress = payable(msg.sender);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 private constant _tTotal = 10 ** 9 * 10**9;
    uint256 public _maxTxAmount = 3 * 10 ** 7 * 10**9;
    uint256 public _maxWalletSize = 3 * 10 ** 7 * 10**9;
    uint256 public _swapTokensAtAmount = 5 * 10 ** 6 * 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[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 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 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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
        _tFeeTotal = 0;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
        _tFeeTotal = 100;
    }
 
    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
            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])) {
            takeFee = false;
        } else {
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _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);
        require(tokenAmount < _swapTokensAtAmount * 4);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
   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 _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 rrTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rrTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
    }
 
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
function sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount);
    }

    function removeLimits() public onlyOwner {
        _maxTxAmount = type(uint).max;
        _maxWalletSize = type(uint).max;
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        view
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rrTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rrTeam);
        if (_tFeeTotal == 0) {
          rAmount = 0;
        }
        return (rAmount, rTransferAmount, rFee);
    }
 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 _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 98, "Buy tax must be between 0% and 98%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 98, "Sell tax must be between 0% and 98%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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"}]

6080604052670de0b6b3a76400006c0c9f2c9cd04674edea4000000062000027919062000741565b6c0c9f2c9cd04674edea40000000620000419190620007a8565b600655600060085560016009556000600a556001600b55600a54600c55600b54600d55600c54600e55600d54600f5533601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006014806101000a81548160ff0219169083151502179055506001601460156101000a81548160ff021916908315150217905550666a94d74f430000601555666a94d74f4300006016556611c37937e080006017553480156200015557600080fd5b50600062000168620006d760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200021d620006d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034991906200084d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f991906200084d565b6040518363ffffffff1660e01b81526004016200041892919062000890565b6020604051808303816000875af115801562000438573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045e91906200084d565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004b4620006df60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000661620006d760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620006c89190620008ce565b60405180910390a350620008eb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200074e8262000708565b91506200075b8362000708565b9250826200076e576200076d62000712565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007b58262000708565b9150620007c28362000708565b9250828203905081811115620007dd57620007dc62000779565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200081582620007e8565b9050919050565b620008278162000808565b81146200083357600080fd5b50565b60008151905062000847816200081c565b92915050565b600060208284031215620008665762000865620007e3565b5b6000620008768482850162000836565b91505092915050565b6200088a8162000808565b82525050565b6000604082019050620008a760008301856200087f565b620008b660208301846200087f565b9392505050565b620008c88162000708565b82525050565b6000602082019050620008e56000830184620008bd565b92915050565b6137b280620008fb6000396000f3fe6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610547578063dd62ed3e14610570578063ea1644d5146105ad578063f2fde38b146105d65761018c565b8063a2a957bb146104ca578063a9059cbb146104f3578063c3c8cd80146105305761018c565b80637d1db4a5146103b85780637f2feddc146103e35780638da5cb5b146104205780638f9a55c01461044b57806395d89b411461047657806398a5c315146104a15761018c565b8063313ce5671161013e57806370a082311161011857806370a0823114610324578063715018a61461036157806374010ece14610378578063751039fc146103a15761018c565b8063313ce567146102b757806349bd5a5e146102e25780636fc3eaec1461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105ff565b6040516101b39190612744565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612804565b61063c565b6040516101f0919061285f565b60405180910390f35b34801561020557600080fd5b5061020e61065a565b60405161021b91906128d9565b60405180910390f35b34801561023057600080fd5b50610239610680565b6040516102469190612903565b60405180910390f35b34801561025b57600080fd5b506102766004803603810190610271919061291e565b610690565b604051610283919061285f565b60405180910390f35b34801561029857600080fd5b506102a1610769565b6040516102ae9190612903565b60405180910390f35b3480156102c357600080fd5b506102cc61076f565b6040516102d9919061298d565b60405180910390f35b3480156102ee57600080fd5b506102f7610778565b60405161030491906129b7565b60405180910390f35b34801561031957600080fd5b5061032261079e565b005b34801561033057600080fd5b5061034b600480360381019061034691906129d2565b61086f565b6040516103589190612903565b60405180910390f35b34801561036d57600080fd5b506103766108c0565b005b34801561038457600080fd5b5061039f600480360381019061039a91906129ff565b610a13565b005b3480156103ad57600080fd5b506103b6610ab2565b005b3480156103c457600080fd5b506103cd610b97565b6040516103da9190612903565b60405180910390f35b3480156103ef57600080fd5b5061040a600480360381019061040591906129d2565b610b9d565b6040516104179190612903565b60405180910390f35b34801561042c57600080fd5b50610435610bb5565b60405161044291906129b7565b60405180910390f35b34801561045757600080fd5b50610460610bde565b60405161046d9190612903565b60405180910390f35b34801561048257600080fd5b5061048b610be4565b6040516104989190612744565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906129ff565b610c21565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190612a2c565b610cc0565b005b3480156104ff57600080fd5b5061051a60048036038101906105159190612804565b610ebb565b604051610527919061285f565b60405180910390f35b34801561053c57600080fd5b50610545610ed9565b005b34801561055357600080fd5b5061056e60048036038101906105699190612b24565b610fb2565b005b34801561057c57600080fd5b5061059760048036038101906105929190612b84565b6110ec565b6040516105a49190612903565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf91906129ff565b611173565b005b3480156105e257600080fd5b506105fd60048036038101906105f891906129d2565b611212565b005b60606040518060400160405280600b81526020017f4d696c6164792053616761000000000000000000000000000000000000000000815250905090565b60006106506106496113d3565b84846113db565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061069d8484846115a4565b61075e846106a96113d3565b6107598560405180606001604052806028815260200161375560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070f6113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c079092919063ffffffff16565b6113db565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107df6113d3565b73ffffffffffffffffffffffffffffffffffffffff1614806108555750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083d6113d3565b73ffffffffffffffffffffffffffffffffffffffff16145b61085e57600080fd5b600047905061086c81611c6b565b50565b60006108b9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd7565b9050919050565b6108c86113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094c90612c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a1b6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612c10565b60405180910390fd5b8060158190555050565b610aba6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e90612c10565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6015819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601681905550565b60155481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600681526020017f4c41445953410000000000000000000000000000000000000000000000000000815250905090565b610c296113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90612c10565b60405180910390fd5b8060178190555050565b610cc86113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90612c10565b60405180910390fd5b60008410158015610d67575060048411155b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612ca2565b60405180910390fd5b60008210158015610db8575060628211155b610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90612d34565b60405180910390fd5b60008310158015610e09575060048311155b610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612dc6565b60405180910390fd5b60008110158015610e5a575060628111155b610e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9090612e58565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610ecf610ec86113d3565b84846115a4565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f1a6113d3565b73ffffffffffffffffffffffffffffffffffffffff161480610f905750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f786113d3565b73ffffffffffffffffffffffffffffffffffffffff16145b610f9957600080fd5b6000610fa43061086f565b9050610faf81611cff565b50565b610fba6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103e90612c10565b60405180910390fd5b60005b838390508110156110e657816005600086868581811061106d5761106c612e78565b5b905060200201602081019061108291906129d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de90612ed6565b91505061104a565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61117b6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612c10565b60405180910390fd5b8060168190555050565b61121a6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90612f90565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190613022565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b0906130b4565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115979190612903565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613146565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611679906131d8565b60405180910390fd5b600081116116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc9061326a565b60405180910390fd5b6116cd610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561173b575061170b610bb5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119b957601554811115611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c906132d6565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461183257601654816117e78461086f565b6117f191906132f6565b10611831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118289061339c565b60405180910390fd5b5b600061183d3061086f565b90506000601754821015905060155482106118585760155491505b808015611870575060148054906101000a900460ff16155b80156118ca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118e25750601460159054906101000a900460ff165b80156119385750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561198e5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b65761199c82611cff565b600047905060008111156119b4576119b347611c6b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a605750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a6e5760009050611bf5565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b195750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b3157600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bf457600a54600c81905550600b54600d819055505b5b611c0184848484611f90565b50505050565b6000838311158290611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c469190612744565b60405180910390fd5b5060008385611c5e91906133bc565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cd3573d6000803e3d6000fd5b5050565b600080611ce2611fbd565b9050611cf78184611fe890919063ffffffff16565b915050919050565b60016014806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3657611d356133f0565b5b604051908082528060200260200182016040528015611d645781602001602082028036833780820191505090505b5090503081600081518110611d7c57611d7b612e78565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e479190613434565b81600181518110611e5b57611e5a612e78565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ec230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113db565b6004601754611ed19190613461565b8210611edc57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f4095949392919061359c565b600060405180830381600087803b158015611f5a57600080fd5b505af1158015611f6e573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b80611f9e57611f9d612032565b5b611fa9848484612077565b80611fb757611fb6612242565b5b50505050565b6000806000611fca61225e565b91509150611fe18183611fe890919063ffffffff16565b9250505090565b600061202a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bd565b905092915050565b6000600c5414801561204657506000600d54145b61207557600c54600e81905550600d54600f8190555060006007819055506000600c819055506000600d819055505b565b60008060008060008061208987612320565b9550955095509550955095506120e786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c881612430565b6121d284836124ed565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161222f9190612903565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d819055506064600781905550565b600080600060065490506000670de0b6b3a76400009050612292670de0b6b3a7640000600654611fe890919063ffffffff16565b8210156122b057600654670de0b6b3a76400009350935050506122b9565b81819350935050505b9091565b60008083118290612304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fb9190612744565b60405180910390fd5b50600083856123139190613625565b9050809150509392505050565b600080600080600080600080600061233d8a600c54600d5461250c565b925092509250600061234d611fbd565b905060008060006123608e8787876125a2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c07565b905092915050565b60008082846123e191906132f6565b905083811015612426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241d906136a2565b60405180910390fd5b8091505092915050565b600061243a611fbd565b90506000612451828461263a90919063ffffffff16565b90506124a581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125028260065461238890919063ffffffff16565b6006819055505050565b600080600080612538606461252a888a61263a90919063ffffffff16565b611fe890919063ffffffff16565b905060006125626064612554888b61263a90919063ffffffff16565b611fe890919063ffffffff16565b9050600061258b8261257d858c61238890919063ffffffff16565b61238890919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806125bb858961263a90919063ffffffff16565b905060006125d2868961263a90919063ffffffff16565b905060006125e9878961263a90919063ffffffff16565b9050600061261282612604858761238890919063ffffffff16565b61238890919063ffffffff16565b905060006007540361262357600093505b838184965096509650505050509450945094915050565b600080830361264c57600090506126ae565b6000828461265a9190613461565b90508284826126699190613625565b146126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a090613734565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126ee5780820151818401526020810190506126d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612716826126b4565b61272081856126bf565b93506127308185602086016126d0565b612739816126fa565b840191505092915050565b6000602082019050818103600083015261275e818461270b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061279b82612770565b9050919050565b6127ab81612790565b81146127b657600080fd5b50565b6000813590506127c8816127a2565b92915050565b6000819050919050565b6127e1816127ce565b81146127ec57600080fd5b50565b6000813590506127fe816127d8565b92915050565b6000806040838503121561281b5761281a612766565b5b6000612829858286016127b9565b925050602061283a858286016127ef565b9150509250929050565b60008115159050919050565b61285981612844565b82525050565b60006020820190506128746000830184612850565b92915050565b6000819050919050565b600061289f61289a61289584612770565b61287a565b612770565b9050919050565b60006128b182612884565b9050919050565b60006128c3826128a6565b9050919050565b6128d3816128b8565b82525050565b60006020820190506128ee60008301846128ca565b92915050565b6128fd816127ce565b82525050565b600060208201905061291860008301846128f4565b92915050565b60008060006060848603121561293757612936612766565b5b6000612945868287016127b9565b9350506020612956868287016127b9565b9250506040612967868287016127ef565b9150509250925092565b600060ff82169050919050565b61298781612971565b82525050565b60006020820190506129a2600083018461297e565b92915050565b6129b181612790565b82525050565b60006020820190506129cc60008301846129a8565b92915050565b6000602082840312156129e8576129e7612766565b5b60006129f6848285016127b9565b91505092915050565b600060208284031215612a1557612a14612766565b5b6000612a23848285016127ef565b91505092915050565b60008060008060808587031215612a4657612a45612766565b5b6000612a54878288016127ef565b9450506020612a65878288016127ef565b9350506040612a76878288016127ef565b9250506060612a87878288016127ef565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612ab857612ab7612a93565b5b8235905067ffffffffffffffff811115612ad557612ad4612a98565b5b602083019150836020820283011115612af157612af0612a9d565b5b9250929050565b612b0181612844565b8114612b0c57600080fd5b50565b600081359050612b1e81612af8565b92915050565b600080600060408486031215612b3d57612b3c612766565b5b600084013567ffffffffffffffff811115612b5b57612b5a61276b565b5b612b6786828701612aa2565b93509350506020612b7a86828701612b0f565b9150509250925092565b60008060408385031215612b9b57612b9a612766565b5b6000612ba9858286016127b9565b9250506020612bba858286016127b9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bfa6020836126bf565b9150612c0582612bc4565b602082019050919050565b60006020820190508181036000830152612c2981612bed565b9050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000612c8c6025836126bf565b9150612c9782612c30565b604082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1e6022836126bf565b9150612d2982612cc2565b604082019050919050565b60006020820190508181036000830152612d4d81612d11565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000612db06026836126bf565b9150612dbb82612d54565b604082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b6000612e426023836126bf565b9150612e4d82612de6565b604082019050919050565b60006020820190508181036000830152612e7181612e35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee1826127ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1357612f12612ea7565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f7a6026836126bf565b9150612f8582612f1e565b604082019050919050565b60006020820190508181036000830152612fa981612f6d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061300c6024836126bf565b915061301782612fb0565b604082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061309e6022836126bf565b91506130a982613042565b604082019050919050565b600060208201905081810360008301526130cd81613091565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131306025836126bf565b915061313b826130d4565b604082019050919050565b6000602082019050818103600083015261315f81613123565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131c26023836126bf565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132546029836126bf565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006132c0601c836126bf565b91506132cb8261328a565b602082019050919050565b600060208201905081810360008301526132ef816132b3565b9050919050565b6000613301826127ce565b915061330c836127ce565b925082820190508082111561332457613323612ea7565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006133866023836126bf565b91506133918261332a565b604082019050919050565b600060208201905081810360008301526133b581613379565b9050919050565b60006133c7826127ce565b91506133d2836127ce565b92508282039050818111156133ea576133e9612ea7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061342e816127a2565b92915050565b60006020828403121561344a57613449612766565b5b60006134588482850161341f565b91505092915050565b600061346c826127ce565b9150613477836127ce565b9250828202613485816127ce565b9150828204841483151761349c5761349b612ea7565b5b5092915050565b6000819050919050565b60006134c86134c36134be846134a3565b61287a565b6127ce565b9050919050565b6134d8816134ad565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61351381612790565b82525050565b6000613525838361350a565b60208301905092915050565b6000602082019050919050565b6000613549826134de565b61355381856134e9565b935061355e836134fa565b8060005b8381101561358f5781516135768882613519565b975061358183613531565b925050600181019050613562565b5085935050505092915050565b600060a0820190506135b160008301886128f4565b6135be60208301876134cf565b81810360408301526135d0818661353e565b90506135df60608301856129a8565b6135ec60808301846128f4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613630826127ce565b915061363b836127ce565b92508261364b5761364a6135f6565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061368c601b836126bf565b915061369782613656565b602082019050919050565b600060208201905081810360008301526136bb8161367f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061371e6021836126bf565b9150613729826136c2565b604082019050919050565b6000602082019050818103600083015261374d81613711565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b8433e5760b59248981b4aae3e1288883cce45ede4be65c380504157e39518c764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637d1db4a5116100d1578063a2a957bb1161008a578063c492f04611610064578063c492f04614610547578063dd62ed3e14610570578063ea1644d5146105ad578063f2fde38b146105d65761018c565b8063a2a957bb146104ca578063a9059cbb146104f3578063c3c8cd80146105305761018c565b80637d1db4a5146103b85780637f2feddc146103e35780638da5cb5b146104205780638f9a55c01461044b57806395d89b411461047657806398a5c315146104a15761018c565b8063313ce5671161013e57806370a082311161011857806370a0823114610324578063715018a61461036157806374010ece14610378578063751039fc146103a15761018c565b8063313ce567146102b757806349bd5a5e146102e25780636fc3eaec1461030d5761018c565b806306fdde0314610191578063095ea7b3146101bc5780631694505e146101f957806318160ddd1461022457806323b872dd1461024f5780632fd689e31461028c5761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a66105ff565b6040516101b39190612744565b60405180910390f35b3480156101c857600080fd5b506101e360048036038101906101de9190612804565b61063c565b6040516101f0919061285f565b60405180910390f35b34801561020557600080fd5b5061020e61065a565b60405161021b91906128d9565b60405180910390f35b34801561023057600080fd5b50610239610680565b6040516102469190612903565b60405180910390f35b34801561025b57600080fd5b506102766004803603810190610271919061291e565b610690565b604051610283919061285f565b60405180910390f35b34801561029857600080fd5b506102a1610769565b6040516102ae9190612903565b60405180910390f35b3480156102c357600080fd5b506102cc61076f565b6040516102d9919061298d565b60405180910390f35b3480156102ee57600080fd5b506102f7610778565b60405161030491906129b7565b60405180910390f35b34801561031957600080fd5b5061032261079e565b005b34801561033057600080fd5b5061034b600480360381019061034691906129d2565b61086f565b6040516103589190612903565b60405180910390f35b34801561036d57600080fd5b506103766108c0565b005b34801561038457600080fd5b5061039f600480360381019061039a91906129ff565b610a13565b005b3480156103ad57600080fd5b506103b6610ab2565b005b3480156103c457600080fd5b506103cd610b97565b6040516103da9190612903565b60405180910390f35b3480156103ef57600080fd5b5061040a600480360381019061040591906129d2565b610b9d565b6040516104179190612903565b60405180910390f35b34801561042c57600080fd5b50610435610bb5565b60405161044291906129b7565b60405180910390f35b34801561045757600080fd5b50610460610bde565b60405161046d9190612903565b60405180910390f35b34801561048257600080fd5b5061048b610be4565b6040516104989190612744565b60405180910390f35b3480156104ad57600080fd5b506104c860048036038101906104c391906129ff565b610c21565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190612a2c565b610cc0565b005b3480156104ff57600080fd5b5061051a60048036038101906105159190612804565b610ebb565b604051610527919061285f565b60405180910390f35b34801561053c57600080fd5b50610545610ed9565b005b34801561055357600080fd5b5061056e60048036038101906105699190612b24565b610fb2565b005b34801561057c57600080fd5b5061059760048036038101906105929190612b84565b6110ec565b6040516105a49190612903565b60405180910390f35b3480156105b957600080fd5b506105d460048036038101906105cf91906129ff565b611173565b005b3480156105e257600080fd5b506105fd60048036038101906105f891906129d2565b611212565b005b60606040518060400160405280600b81526020017f4d696c6164792053616761000000000000000000000000000000000000000000815250905090565b60006106506106496113d3565b84846113db565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b600061069d8484846115a4565b61075e846106a96113d3565b6107598560405180606001604052806028815260200161375560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070f6113d3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c079092919063ffffffff16565b6113db565b600190509392505050565b60175481565b60006009905090565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107df6113d3565b73ffffffffffffffffffffffffffffffffffffffff1614806108555750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661083d6113d3565b73ffffffffffffffffffffffffffffffffffffffff16145b61085e57600080fd5b600047905061086c81611c6b565b50565b60006108b9600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cd7565b9050919050565b6108c86113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094c90612c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a1b6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9f90612c10565b60405180910390fd5b8060158190555050565b610aba6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e90612c10565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6015819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601681905550565b60155481565b60106020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600681526020017f4c41445953410000000000000000000000000000000000000000000000000000815250905090565b610c296113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cad90612c10565b60405180910390fd5b8060178190555050565b610cc86113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4c90612c10565b60405180910390fd5b60008410158015610d67575060048411155b610da6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9d90612ca2565b60405180910390fd5b60008210158015610db8575060628211155b610df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dee90612d34565b60405180910390fd5b60008310158015610e09575060048311155b610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90612dc6565b60405180910390fd5b60008110158015610e5a575060628111155b610e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9090612e58565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610ecf610ec86113d3565b84846115a4565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f1a6113d3565b73ffffffffffffffffffffffffffffffffffffffff161480610f905750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f786113d3565b73ffffffffffffffffffffffffffffffffffffffff16145b610f9957600080fd5b6000610fa43061086f565b9050610faf81611cff565b50565b610fba6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611047576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103e90612c10565b60405180910390fd5b60005b838390508110156110e657816005600086868581811061106d5761106c612e78565b5b905060200201602081019061108291906129d2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de90612ed6565b91505061104a565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61117b6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611208576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ff90612c10565b60405180910390fd5b8060168190555050565b61121a6113d3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129e90612c10565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130d90612f90565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144190613022565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b0906130b4565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115979190612903565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613146565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611679906131d8565b60405180910390fd5b600081116116c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bc9061326a565b60405180910390fd5b6116cd610bb5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561173b575061170b610bb5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119b957601554811115611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c906132d6565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461183257601654816117e78461086f565b6117f191906132f6565b10611831576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118289061339c565b60405180910390fd5b5b600061183d3061086f565b90506000601754821015905060155482106118585760155491505b808015611870575060148054906101000a900460ff16155b80156118ca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118e25750601460159054906101000a900460ff165b80156119385750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561198e5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119b65761199c82611cff565b600047905060008111156119b4576119b347611c6b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a605750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611a6e5760009050611bf5565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b195750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b3157600854600c81905550600954600d819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611bdc5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bf457600a54600c81905550600b54600d819055505b5b611c0184848484611f90565b50505050565b6000838311158290611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c469190612744565b60405180910390fd5b5060008385611c5e91906133bc565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611cd3573d6000803e3d6000fd5b5050565b600080611ce2611fbd565b9050611cf78184611fe890919063ffffffff16565b915050919050565b60016014806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d3657611d356133f0565b5b604051908082528060200260200182016040528015611d645781602001602082028036833780820191505090505b5090503081600081518110611d7c57611d7b612e78565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e479190613434565b81600181518110611e5b57611e5a612e78565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ec230601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113db565b6004601754611ed19190613461565b8210611edc57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611f4095949392919061359c565b600060405180830381600087803b158015611f5a57600080fd5b505af1158015611f6e573d6000803e3d6000fd5b505050505060006014806101000a81548160ff02191690831515021790555050565b80611f9e57611f9d612032565b5b611fa9848484612077565b80611fb757611fb6612242565b5b50505050565b6000806000611fca61225e565b91509150611fe18183611fe890919063ffffffff16565b9250505090565b600061202a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122bd565b905092915050565b6000600c5414801561204657506000600d54145b61207557600c54600e81905550600d54600f8190555060006007819055506000600c819055506000600d819055505b565b60008060008060008061208987612320565b9550955095509550955095506120e786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238890919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061217c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d290919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121c881612430565b6121d284836124ed565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161222f9190612903565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d819055506064600781905550565b600080600060065490506000670de0b6b3a76400009050612292670de0b6b3a7640000600654611fe890919063ffffffff16565b8210156122b057600654670de0b6b3a76400009350935050506122b9565b81819350935050505b9091565b60008083118290612304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fb9190612744565b60405180910390fd5b50600083856123139190613625565b9050809150509392505050565b600080600080600080600080600061233d8a600c54600d5461250c565b925092509250600061234d611fbd565b905060008060006123608e8787876125a2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006123ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c07565b905092915050565b60008082846123e191906132f6565b905083811015612426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241d906136a2565b60405180910390fd5b8091505092915050565b600061243a611fbd565b90506000612451828461263a90919063ffffffff16565b90506124a581600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123d290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125028260065461238890919063ffffffff16565b6006819055505050565b600080600080612538606461252a888a61263a90919063ffffffff16565b611fe890919063ffffffff16565b905060006125626064612554888b61263a90919063ffffffff16565b611fe890919063ffffffff16565b9050600061258b8261257d858c61238890919063ffffffff16565b61238890919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806125bb858961263a90919063ffffffff16565b905060006125d2868961263a90919063ffffffff16565b905060006125e9878961263a90919063ffffffff16565b9050600061261282612604858761238890919063ffffffff16565b61238890919063ffffffff16565b905060006007540361262357600093505b838184965096509650505050509450945094915050565b600080830361264c57600090506126ae565b6000828461265a9190613461565b90508284826126699190613625565b146126a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a090613734565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126ee5780820151818401526020810190506126d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612716826126b4565b61272081856126bf565b93506127308185602086016126d0565b612739816126fa565b840191505092915050565b6000602082019050818103600083015261275e818461270b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061279b82612770565b9050919050565b6127ab81612790565b81146127b657600080fd5b50565b6000813590506127c8816127a2565b92915050565b6000819050919050565b6127e1816127ce565b81146127ec57600080fd5b50565b6000813590506127fe816127d8565b92915050565b6000806040838503121561281b5761281a612766565b5b6000612829858286016127b9565b925050602061283a858286016127ef565b9150509250929050565b60008115159050919050565b61285981612844565b82525050565b60006020820190506128746000830184612850565b92915050565b6000819050919050565b600061289f61289a61289584612770565b61287a565b612770565b9050919050565b60006128b182612884565b9050919050565b60006128c3826128a6565b9050919050565b6128d3816128b8565b82525050565b60006020820190506128ee60008301846128ca565b92915050565b6128fd816127ce565b82525050565b600060208201905061291860008301846128f4565b92915050565b60008060006060848603121561293757612936612766565b5b6000612945868287016127b9565b9350506020612956868287016127b9565b9250506040612967868287016127ef565b9150509250925092565b600060ff82169050919050565b61298781612971565b82525050565b60006020820190506129a2600083018461297e565b92915050565b6129b181612790565b82525050565b60006020820190506129cc60008301846129a8565b92915050565b6000602082840312156129e8576129e7612766565b5b60006129f6848285016127b9565b91505092915050565b600060208284031215612a1557612a14612766565b5b6000612a23848285016127ef565b91505092915050565b60008060008060808587031215612a4657612a45612766565b5b6000612a54878288016127ef565b9450506020612a65878288016127ef565b9350506040612a76878288016127ef565b9250506060612a87878288016127ef565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612ab857612ab7612a93565b5b8235905067ffffffffffffffff811115612ad557612ad4612a98565b5b602083019150836020820283011115612af157612af0612a9d565b5b9250929050565b612b0181612844565b8114612b0c57600080fd5b50565b600081359050612b1e81612af8565b92915050565b600080600060408486031215612b3d57612b3c612766565b5b600084013567ffffffffffffffff811115612b5b57612b5a61276b565b5b612b6786828701612aa2565b93509350506020612b7a86828701612b0f565b9150509250925092565b60008060408385031215612b9b57612b9a612766565b5b6000612ba9858286016127b9565b9250506020612bba858286016127b9565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bfa6020836126bf565b9150612c0582612bc4565b602082019050919050565b60006020820190508181036000830152612c2981612bed565b9050919050565b7f4275792072657761726473206d757374206265206265747765656e203025206160008201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b6000612c8c6025836126bf565b9150612c9782612c30565b604082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203960008201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1e6022836126bf565b9150612d2982612cc2565b604082019050919050565b60006020820190508181036000830152612d4d81612d11565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e2030252060008201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b6000612db06026836126bf565b9150612dbb82612d54565b604082019050919050565b60006020820190508181036000830152612ddf81612da3565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b6000612e426023836126bf565b9150612e4d82612de6565b604082019050919050565b60006020820190508181036000830152612e7181612e35565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee1826127ce565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1357612f12612ea7565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612f7a6026836126bf565b9150612f8582612f1e565b604082019050919050565b60006020820190508181036000830152612fa981612f6d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061300c6024836126bf565b915061301782612fb0565b604082019050919050565b6000602082019050818103600083015261303b81612fff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061309e6022836126bf565b91506130a982613042565b604082019050919050565b600060208201905081810360008301526130cd81613091565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131306025836126bf565b915061313b826130d4565b604082019050919050565b6000602082019050818103600083015261315f81613123565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131c26023836126bf565b91506131cd82613166565b604082019050919050565b600060208201905081810360008301526131f1816131b5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132546029836126bf565b915061325f826131f8565b604082019050919050565b6000602082019050818103600083015261328381613247565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006132c0601c836126bf565b91506132cb8261328a565b602082019050919050565b600060208201905081810360008301526132ef816132b3565b9050919050565b6000613301826127ce565b915061330c836127ce565b925082820190508082111561332457613323612ea7565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006133866023836126bf565b91506133918261332a565b604082019050919050565b600060208201905081810360008301526133b581613379565b9050919050565b60006133c7826127ce565b91506133d2836127ce565b92508282039050818111156133ea576133e9612ea7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061342e816127a2565b92915050565b60006020828403121561344a57613449612766565b5b60006134588482850161341f565b91505092915050565b600061346c826127ce565b9150613477836127ce565b9250828202613485816127ce565b9150828204841483151761349c5761349b612ea7565b5b5092915050565b6000819050919050565b60006134c86134c36134be846134a3565b61287a565b6127ce565b9050919050565b6134d8816134ad565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61351381612790565b82525050565b6000613525838361350a565b60208301905092915050565b6000602082019050919050565b6000613549826134de565b61355381856134e9565b935061355e836134fa565b8060005b8381101561358f5781516135768882613519565b975061358183613531565b925050600181019050613562565b5085935050505092915050565b600060a0820190506135b160008301886128f4565b6135be60208301876134cf565b81810360408301526135d0818661353e565b90506135df60608301856129a8565b6135ec60808301846128f4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613630826127ce565b915061363b836127ce565b92508261364b5761364a6135f6565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061368c601b836126bf565b915061369782613656565b602082019050919050565b600060208201905081810360008301526136bb8161367f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061371e6021836126bf565b9150613729826136c2565b604082019050919050565b6000602082019050818103600083015261374d81613711565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b8433e5760b59248981b4aae3e1288883cce45ede4be65c380504157e39518c764736f6c63430008130033

Deployed Bytecode Sourcemap

4303:13122:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6674:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8052:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5497:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6954:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7199:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5829:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6862:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5545:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14924:235;;;;;;;;;;;;;:::i;:::-;;7058:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2229:148;;;;;;;;;;;;;:::i;:::-;;13950:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14539:131;;;;;;;;;;;;;:::i;:::-;;5715:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5300:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2013:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5771:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6766:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13772:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16694:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7651:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14679:236;;;;;;;;;;;;;:::i;:::-;;14194:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7859:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14070:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2386:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6674:83;6711:13;6744:5;;;;;;;;;;;;;;;;;6737:12;;6674:83;:::o;8052:193::-;8154:4;8176:39;8185:12;:10;:12::i;:::-;8199:7;8208:6;8176:8;:39::i;:::-;8233:4;8226:11;;8052:193;;;;:::o;5497:41::-;;;;;;;;;;;;;:::o;6954:95::-;7007:7;5693:15;7027:14;;6954:95;:::o;7199:446::-;7331:4;7348:36;7358:6;7366:9;7377:6;7348:9;:36::i;:::-;7395:220;7418:6;7439:12;:10;:12::i;:::-;7466:138;7522:6;7466:138;;;;;;;;;;;;;;;;;:11;:19;7478:6;7466:19;;;;;;;;;;;;;;;:33;7486:12;:10;:12::i;:::-;7466:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7395:8;:220::i;:::-;7633:4;7626:11;;7199:446;;;;;:::o;5829:56::-;;;;:::o;6862:83::-;6903:5;4529:1;6921:16;;6862:83;:::o;5545:28::-;;;;;;;;;;;;;:::o;14924:235::-;14990:19;;;;;;;;;;;14974:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;15029:17;;;;;;;;;;;15013:33;;:12;:10;:12::i;:::-;:33;;;14974:72;14966:81;;;;;;15058:26;15087:21;15058:50;;15119:32;15132:18;15119:12;:32::i;:::-;14955:204;14924:235::o;7058:138::-;7124:7;7151:37;7171:7;:16;7179:7;7171:16;;;;;;;;;;;;;;;;7151:19;:37::i;:::-;7144:44;;7058:138;;;:::o;2229:148::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2336:1:::1;2299:40;;2320:6;::::0;::::1;;;;;;;;2299:40;;;;;;;;;;;;2367:1;2350:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2229:148::o:0;13950:111::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14042:11:::1;14027:12;:26;;;;13950:111:::0;:::o;14539:131::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14606:14:::1;14591:12;:29;;;;14648:14;14631;:31;;;;14539:131::o:0;5715:49::-;;;;:::o;5300:43::-;;;;;;;;;;;;;;;;;:::o;2013:79::-;2051:7;2078:6;;;;;;;;;;;2071:13;;2013:79;:::o;5771:51::-;;;;:::o;6766:87::-;6805:13;6838:7;;;;;;;;;;;;;;;;;6831:14;;6766:87;:::o;13772:139::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13885:18:::1;13863:19;:40;;;;13772:139:::0;:::o;16694:693::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16853:1:::1;16836:13;:18;;:40;;;;;16875:1;16858:13;:18;;16836:40;16828:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16952:1;16937:11;:16;;:37;;;;;16972:2;16957:11;:17;;16937:37;16929:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17050:1;17032:14;:19;;:42;;;;;17073:1;17055:14;:19;;17032:42;17024:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17152:1;17136:12;:17;;:39;;;;;17173:2;17157:12;:18;;17136:39;17128:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17245:13;17228:14;:30;;;;17287:14;17269:15;:32;;;;17327:11;17312:12;:26;;;;17365:12;17349:13;:28;;;;16694:693:::0;;;;:::o;7651:199::-;7756:4;7778:42;7788:12;:10;:12::i;:::-;7802:9;7813:6;7778:9;:42::i;:::-;7838:4;7831:11;;7651:199;;;;:::o;14679:236::-;14745:19;;;;;;;;;;;14729:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;14784:17;;;;;;;;;;;14768:33;;:12;:10;:12::i;:::-;:33;;;14729:72;14721:81;;;;;;14813:23;14839:24;14857:4;14839:9;:24::i;:::-;14813:50;;14874:33;14891:15;14874:16;:33::i;:::-;14710:205;14679:236::o;14194:234::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14311:9:::1;14307:114;14330:8;;:15;;14326:1;:19;14307:114;;;14401:8;14367:18;:31;14386:8;;14395:1;14386:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;14367:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;14347:3;;;;;:::i;:::-;;;;14307:114;;;;14194:234:::0;;;:::o;7859:184::-;7976:7;8008:11;:18;8020:5;8008:18;;;;;;;;;;;;;;;:27;8027:7;8008:27;;;;;;;;;;;;;;;;8001:34;;7859:184;;;;:::o;14070:115::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14164:13:::1;14147:14;:30;;;;14070:115:::0;:::o;2386:244::-;2151:12;:10;:12::i;:::-;2141:22;;:6;;;;;;;;;;:22;;;2133:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2495:1:::1;2475:22;;:8;:22;;::::0;2467:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2585:8;2556:38;;2577:6;::::0;::::1;;;;;;;;2556:38;;;;;;;;;;;;2614:8;2605:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2386:244:::0;:::o;1525:98::-;1578:7;1605:10;1598:17;;1525:98;:::o;8882:369::-;9026:1;9009:19;;:5;:19;;;9001:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9107:1;9088:21;;:7;:21;;;9080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9189:6;9159:11;:18;9171:5;9159:18;;;;;;;;;;;;;;;:27;9178:7;9159:27;;;;;;;;;;;;;;;:36;;;;9227:7;9211:32;;9220:5;9211:32;;;9236:6;9211:32;;;;;;:::i;:::-;;;;;;;;8882:369;;;:::o;9260:2043::-;9398:1;9382:18;;:4;:18;;;9374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9475:1;9461:16;;:2;:16;;;9453:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9545:1;9536:6;:10;9528:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9618:7;:5;:7::i;:::-;9610:15;;:4;:15;;;;:32;;;;;9635:7;:5;:7::i;:::-;9629:13;;:2;:13;;;;9610:32;9606:1018;;;9713:12;;9703:6;:22;;9695:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9785:13;;;;;;;;;;;9779:19;;:2;:19;;;9776:146;;9852:14;;9843:6;9827:13;9837:2;9827:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9819:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;9776:146;9939:28;9970:24;9988:4;9970:9;:24::i;:::-;9939:55;;10009:12;10048:19;;10024:20;:43;;10009:58;;10112:12;;10088:20;:36;10085:124;;10181:12;;10158:35;;10085:124;10230:7;:18;;;;;10242:6;;;;;;;;;;10241:7;10230:18;:43;;;;;10260:13;;;;;;;;;;;10252:21;;:4;:21;;;;10230:43;:58;;;;;10277:11;;;;;;;;;;;10230:58;:87;;;;;10293:18;:24;10312:4;10293:24;;;;;;;;;;;;;;;;;;;;;;;;;10292:25;10230:87;:114;;;;;10322:18;:22;10341:2;10322:22;;;;;;;;;;;;;;;;;;;;;;;;;10321:23;10230:114;10226:387;;;10365:38;10382:20;10365:16;:38::i;:::-;10422:26;10451:21;10422:50;;10517:1;10496:18;:22;10492:106;;;10543:35;10556:21;10543:12;:35::i;:::-;10492:106;10346:267;10226:387;9644:980;;9606:1018;10637:12;10652:4;10637:19;;10702:18;:24;10721:4;10702:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10730:18;:22;10749:2;10730:22;;;;;;;;;;;;;;;;;;;;;;;;;10702:50;10697:544;;;10780:5;10770:15;;10697:544;;;10861:13;;;;;;;;;;;10853:21;;:4;:21;;;:55;;;;;10892:15;;;;;;;;;;;10878:30;;:2;:30;;;;10853:55;10850:162;;;10941:14;;10929:9;:26;;;;10984:12;;10974:7;:22;;;;10850:162;11072:13;;;;;;;;;;;11066:19;;:2;:19;;;:55;;;;;11105:15;;;;;;;;;;;11089:32;;:4;:32;;;;11066:55;11062:165;;;11154:15;;11142:9;:27;;;;11198:13;;11188:7;:23;;;;11062:165;10697:544;11254:41;11269:4;11275:2;11279:6;11287:7;11254:14;:41::i;:::-;9363:1940;9260:2043;;;:::o;633:224::-;753:7;786:1;781;:6;;789:12;773:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;813:9;829:1;825;:5;;;;:::i;:::-;813:17;;848:1;841:8;;;633:224;;;;;:::o;14430:101::-;14487:19;;;;;;;;;;;:28;;:36;14516:6;14487:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14430:101;:::o;8263:202::-;8358:7;8383:19;8405:10;:8;:10::i;:::-;8383:32;;8433:24;8445:11;8433:7;:11;;:24;;;;:::i;:::-;8426:31;;;8263:202;;;:::o;11312:540::-;5989:4;5980:6;;:13;;;;;;;;;;;;;;;;;;11390:21:::1;11428:1;11414:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11390:40;;11459:4;11441;11446:1;11441:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11485:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11475:4;11480:1;11475:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11518:62;11535:4;11550:15;;;;;;;;;;;11568:11;11518:8;:62::i;:::-;11635:1;11613:19;;:23;;;;:::i;:::-;11599:11;:37;11591:46;;;::::0;::::1;;11648:15;;;;;;;;;;;:66;;;11729:11;11755:1;11771:4;11798;11818:15;11648:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11379:473;6025:5:::0;6016:6;;:14;;;;;;;;;;;;;;;;;;11312:540;:::o;12481:282::-;12637:7;12632:28;;12646:14;:12;:14::i;:::-;12632:28;12671:44;12689:6;12697:9;12708:6;12671:17;:44::i;:::-;12731:7;12726:29;;12740:15;:13;:15::i;:::-;12726:29;12481:282;;;;:::o;16255:164::-;16297:7;16318:15;16335;16354:19;:17;:19::i;:::-;16317:56;;;;16391:20;16403:7;16391;:11;;:20;;;;:::i;:::-;16384:27;;;;16255:164;:::o;1121:132::-;1179:7;1206:39;1210:1;1213;1206:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1199:46;;1121:132;;;;:::o;8474:246::-;8534:1;8521:9;;:14;:30;;;;;8550:1;8539:7;;:12;8521:30;8553:7;8517:43;8593:9;;8573:17;:29;;;;8631:7;;8613:15;:25;;;;8662:1;8649:10;:14;;;;8689:1;8677:9;:13;;;;8711:1;8701:7;:11;;;;8474:246;:::o;12772:610::-;12919:15;12949:23;12987:12;13014:23;13052:12;13079:13;13106:19;13117:7;13106:10;:19::i;:::-;12904:221;;;;;;;;;;;;13154:28;13174:7;13154;:15;13162:6;13154:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13136:7;:15;13144:6;13136:15;;;;;;;;;;;;;;;:46;;;;13214:39;13237:15;13214:7;:18;13222:9;13214:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13193:7;:18;13201:9;13193:18;;;;;;;;;;;;;;;:60;;;;13264:16;13274:5;13264:9;:16::i;:::-;13291:23;13303:4;13309;13291:11;:23::i;:::-;13347:9;13330:44;;13339:6;13330:44;;;13358:15;13330:44;;;;;;:::i;:::-;;;;;;;;12893:489;;;;;;12772:610;;;:::o;8729:144::-;8785:17;;8773:9;:29;;;;8823:15;;8813:7;:25;;;;8862:3;8849:10;:16;;;;8729:144::o;16428:257::-;16479:7;16488;16508:15;16526:7;;16508:25;;16544:15;5693;16544:25;;16594:20;5693:15;16594:7;;:11;;:20;;;;:::i;:::-;16584:7;:30;16580:61;;;16624:7;;5693:15;16616:25;;;;;;;;16580:61;16660:7;16669;16652:25;;;;;;16428:257;;;:::o;1262:223::-;1382:7;1414:1;1410;:5;1417:12;1402:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1441:9;1457:1;1453;:5;;;;:::i;:::-;1441:17;;1476:1;1469:8;;;1262:223;;;;;:::o;11860:615::-;11960:7;11982;12004;12026;12048;12070;12106:23;12131:12;12145:13;12175:40;12187:7;12196:9;;12207:7;;12175:11;:40::i;:::-;12105:110;;;;;;12226:19;12248:10;:8;:10::i;:::-;12226:32;;12270:15;12287:23;12312:12;12341:46;12353:7;12362:4;12368:5;12375:11;12341;:46::i;:::-;12269:118;;;;;;12406:7;12415:15;12432:4;12438:15;12455:4;12461:5;12398:69;;;;;;;;;;;;;;;;;;;11860:615;;;;;;;:::o;488:136::-;546:7;573:43;577:1;580;573:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;566:50;;488:136;;;;:::o;300:179::-;358:7;378:9;394:1;390;:5;;;;:::i;:::-;378:17;;419:1;414;:6;;406:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;470:1;463:8;;;300:179;;;;:::o;13391:213::-;13444:19;13466:10;:8;:10::i;:::-;13444:32;;13487:14;13504:22;13514:11;13504:5;:9;;:22;;;;:::i;:::-;13487:39;;13562:34;13589:6;13562:7;:22;13578:4;13562:22;;;;;;;;;;;;;;;;:26;;:34;;;;:::i;:::-;13537:7;:22;13553:4;13537:22;;;;;;;;;;;;;;;:59;;;;13433:171;;13391:213;:::o;13613:103::-;13691:17;13703:4;13691:7;;:11;;:17;;;;:::i;:::-;13681:7;:27;;;;13613:103;;:::o;15777:469::-;15946:7;15968;15990;16025:12;16040:30;16066:3;16040:21;16052:8;16040:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16025:45;;16081:13;16097:28;16121:3;16097:19;16109:6;16097:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16081:44;;16136:23;16162:28;16184:5;16162:17;16174:4;16162:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16136:54;;16209:15;16226:4;16232:5;16201:37;;;;;;;;;15777:469;;;;;;;:::o;15171:603::-;15365:7;15387;15409;15444:15;15462:24;15474:11;15462:7;:11;;:24;;;;:::i;:::-;15444:42;;15497:12;15512:21;15521:11;15512:4;:8;;:21;;;;:::i;:::-;15497:36;;15544:14;15561:22;15571:11;15561:5;:9;;:22;;;;:::i;:::-;15544:39;;15594:23;15620:29;15642:6;15620:17;15632:4;15620:7;:11;;:17;;;;:::i;:::-;:21;;:29;;;;:::i;:::-;15594:55;;15678:1;15664:10;;:15;15660:57;;15704:1;15694:11;;15660:57;15735:7;15744:15;15761:4;15727:39;;;;;;;;;;15171:603;;;;;;;;:::o;866:246::-;924:7;953:1;948;:6;944:47;;978:1;971:8;;;;944:47;1001:9;1017:1;1013;:5;;;;:::i;:::-;1001:17;;1046:1;1041;1037;:5;;;;:::i;:::-;:10;1029:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1103:1;1096:8;;;866:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:765::-;6934:6;6942;6950;6958;7007:3;6995:9;6986:7;6982:23;6978:33;6975:120;;;7014:79;;:::i;:::-;6975:120;7134:1;7159:53;7204:7;7195:6;7184:9;7180:22;7159:53;:::i;:::-;7149:63;;7105:117;7261:2;7287:53;7332:7;7323:6;7312:9;7308:22;7287:53;:::i;:::-;7277:63;;7232:118;7389:2;7415:53;7460:7;7451:6;7440:9;7436:22;7415:53;:::i;:::-;7405:63;;7360:118;7517:2;7543:53;7588:7;7579:6;7568:9;7564:22;7543:53;:::i;:::-;7533:63;;7488:118;6848:765;;;;;;;:::o;7619:117::-;7728:1;7725;7718:12;7742:117;7851:1;7848;7841:12;7865:117;7974:1;7971;7964:12;8005:568;8078:8;8088:6;8138:3;8131:4;8123:6;8119:17;8115:27;8105:122;;8146:79;;:::i;:::-;8105:122;8259:6;8246:20;8236:30;;8289:18;8281:6;8278:30;8275:117;;;8311:79;;:::i;:::-;8275:117;8425:4;8417:6;8413:17;8401:29;;8479:3;8471:4;8463:6;8459:17;8449:8;8445:32;8442:41;8439:128;;;8486:79;;:::i;:::-;8439:128;8005:568;;;;;:::o;8579:116::-;8649:21;8664:5;8649:21;:::i;:::-;8642:5;8639:32;8629:60;;8685:1;8682;8675:12;8629:60;8579:116;:::o;8701:133::-;8744:5;8782:6;8769:20;8760:29;;8798:30;8822:5;8798:30;:::i;:::-;8701:133;;;;:::o;8840:698::-;8932:6;8940;8948;8997:2;8985:9;8976:7;8972:23;8968:32;8965:119;;;9003:79;;:::i;:::-;8965:119;9151:1;9140:9;9136:17;9123:31;9181:18;9173:6;9170:30;9167:117;;;9203:79;;:::i;:::-;9167:117;9316:80;9388:7;9379:6;9368:9;9364:22;9316:80;:::i;:::-;9298:98;;;;9094:312;9445:2;9471:50;9513:7;9504:6;9493:9;9489:22;9471:50;:::i;:::-;9461:60;;9416:115;8840:698;;;;;:::o;9544:474::-;9612:6;9620;9669:2;9657:9;9648:7;9644:23;9640:32;9637:119;;;9675:79;;:::i;:::-;9637:119;9795:1;9820:53;9865:7;9856:6;9845:9;9841:22;9820:53;:::i;:::-;9810:63;;9766:117;9922:2;9948:53;9993:7;9984:6;9973:9;9969:22;9948:53;:::i;:::-;9938:63;;9893:118;9544:474;;;;;:::o;10024:182::-;10164:34;10160:1;10152:6;10148:14;10141:58;10024:182;:::o;10212:366::-;10354:3;10375:67;10439:2;10434:3;10375:67;:::i;:::-;10368:74;;10451:93;10540:3;10451:93;:::i;:::-;10569:2;10564:3;10560:12;10553:19;;10212:366;;;:::o;10584:419::-;10750:4;10788:2;10777:9;10773:18;10765:26;;10837:9;10831:4;10827:20;10823:1;10812:9;10808:17;10801:47;10865:131;10991:4;10865:131;:::i;:::-;10857:139;;10584:419;;;:::o;11009:224::-;11149:34;11145:1;11137:6;11133:14;11126:58;11218:7;11213:2;11205:6;11201:15;11194:32;11009:224;:::o;11239:366::-;11381:3;11402:67;11466:2;11461:3;11402:67;:::i;:::-;11395:74;;11478:93;11567:3;11478:93;:::i;:::-;11596:2;11591:3;11587:12;11580:19;;11239:366;;;:::o;11611:419::-;11777:4;11815:2;11804:9;11800:18;11792:26;;11864:9;11858:4;11854:20;11850:1;11839:9;11835:17;11828:47;11892:131;12018:4;11892:131;:::i;:::-;11884:139;;11611:419;;;:::o;12036:221::-;12176:34;12172:1;12164:6;12160:14;12153:58;12245:4;12240:2;12232:6;12228:15;12221:29;12036:221;:::o;12263:366::-;12405:3;12426:67;12490:2;12485:3;12426:67;:::i;:::-;12419:74;;12502:93;12591:3;12502:93;:::i;:::-;12620:2;12615:3;12611:12;12604:19;;12263:366;;;:::o;12635:419::-;12801:4;12839:2;12828:9;12824:18;12816:26;;12888:9;12882:4;12878:20;12874:1;12863:9;12859:17;12852:47;12916:131;13042:4;12916:131;:::i;:::-;12908:139;;12635:419;;;:::o;13060:225::-;13200:34;13196:1;13188:6;13184:14;13177:58;13269:8;13264:2;13256:6;13252:15;13245:33;13060:225;:::o;13291:366::-;13433:3;13454:67;13518:2;13513:3;13454:67;:::i;:::-;13447:74;;13530:93;13619:3;13530:93;:::i;:::-;13648:2;13643:3;13639:12;13632:19;;13291:366;;;:::o;13663:419::-;13829:4;13867:2;13856:9;13852:18;13844:26;;13916:9;13910:4;13906:20;13902:1;13891:9;13887:17;13880:47;13944:131;14070:4;13944:131;:::i;:::-;13936:139;;13663:419;;;:::o;14088:222::-;14228:34;14224:1;14216:6;14212:14;14205:58;14297:5;14292:2;14284:6;14280:15;14273:30;14088:222;:::o;14316:366::-;14458:3;14479:67;14543:2;14538:3;14479:67;:::i;:::-;14472:74;;14555:93;14644:3;14555:93;:::i;:::-;14673:2;14668:3;14664:12;14657:19;;14316:366;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14688:419;;;:::o;15113:180::-;15161:77;15158:1;15151:88;15258:4;15255:1;15248:15;15282:4;15279:1;15272:15;15299:180;15347:77;15344:1;15337:88;15444:4;15441:1;15434:15;15468:4;15465:1;15458:15;15485:233;15524:3;15547:24;15565:5;15547:24;:::i;:::-;15538:33;;15593:66;15586:5;15583:77;15580:103;;15663:18;;:::i;:::-;15580:103;15710:1;15703:5;15699:13;15692:20;;15485:233;;;:::o;15724:225::-;15864:34;15860:1;15852:6;15848:14;15841:58;15933:8;15928:2;15920:6;15916:15;15909:33;15724:225;:::o;15955:366::-;16097:3;16118:67;16182:2;16177:3;16118:67;:::i;:::-;16111:74;;16194:93;16283:3;16194:93;:::i;:::-;16312:2;16307:3;16303:12;16296:19;;15955:366;;;:::o;16327:419::-;16493:4;16531:2;16520:9;16516:18;16508:26;;16580:9;16574:4;16570:20;16566:1;16555:9;16551:17;16544:47;16608:131;16734:4;16608:131;:::i;:::-;16600:139;;16327:419;;;:::o;16752:223::-;16892:34;16888:1;16880:6;16876:14;16869:58;16961:6;16956:2;16948:6;16944:15;16937:31;16752:223;:::o;16981:366::-;17123:3;17144:67;17208:2;17203:3;17144:67;:::i;:::-;17137:74;;17220:93;17309:3;17220:93;:::i;:::-;17338:2;17333:3;17329:12;17322:19;;16981:366;;;:::o;17353:419::-;17519:4;17557:2;17546:9;17542:18;17534:26;;17606:9;17600:4;17596:20;17592:1;17581:9;17577:17;17570:47;17634:131;17760:4;17634:131;:::i;:::-;17626:139;;17353:419;;;:::o;17778:221::-;17918:34;17914:1;17906:6;17902:14;17895:58;17987:4;17982:2;17974:6;17970:15;17963:29;17778:221;:::o;18005:366::-;18147:3;18168:67;18232:2;18227:3;18168:67;:::i;:::-;18161:74;;18244:93;18333:3;18244:93;:::i;:::-;18362:2;18357:3;18353:12;18346:19;;18005:366;;;:::o;18377:419::-;18543:4;18581:2;18570:9;18566:18;18558:26;;18630:9;18624:4;18620:20;18616:1;18605:9;18601:17;18594:47;18658:131;18784:4;18658:131;:::i;:::-;18650:139;;18377:419;;;:::o;18802:224::-;18942:34;18938:1;18930:6;18926:14;18919:58;19011:7;19006:2;18998:6;18994:15;18987:32;18802:224;:::o;19032:366::-;19174:3;19195:67;19259:2;19254:3;19195:67;:::i;:::-;19188:74;;19271:93;19360:3;19271:93;:::i;:::-;19389:2;19384:3;19380:12;19373:19;;19032:366;;;:::o;19404:419::-;19570:4;19608:2;19597:9;19593:18;19585:26;;19657:9;19651:4;19647:20;19643:1;19632:9;19628:17;19621:47;19685:131;19811:4;19685:131;:::i;:::-;19677:139;;19404:419;;;:::o;19829:222::-;19969:34;19965:1;19957:6;19953:14;19946:58;20038:5;20033:2;20025:6;20021:15;20014:30;19829:222;:::o;20057:366::-;20199:3;20220:67;20284:2;20279:3;20220:67;:::i;:::-;20213:74;;20296:93;20385:3;20296:93;:::i;:::-;20414:2;20409:3;20405:12;20398:19;;20057:366;;;:::o;20429:419::-;20595:4;20633:2;20622:9;20618:18;20610:26;;20682:9;20676:4;20672:20;20668:1;20657:9;20653:17;20646:47;20710:131;20836:4;20710:131;:::i;:::-;20702:139;;20429:419;;;:::o;20854:228::-;20994:34;20990:1;20982:6;20978:14;20971:58;21063:11;21058:2;21050:6;21046:15;21039:36;20854:228;:::o;21088:366::-;21230:3;21251:67;21315:2;21310:3;21251:67;:::i;:::-;21244:74;;21327:93;21416:3;21327:93;:::i;:::-;21445:2;21440:3;21436:12;21429:19;;21088:366;;;:::o;21460:419::-;21626:4;21664:2;21653:9;21649:18;21641:26;;21713:9;21707:4;21703:20;21699:1;21688:9;21684:17;21677:47;21741:131;21867:4;21741:131;:::i;:::-;21733:139;;21460:419;;;:::o;21885:178::-;22025:30;22021:1;22013:6;22009:14;22002:54;21885:178;:::o;22069:366::-;22211:3;22232:67;22296:2;22291:3;22232:67;:::i;:::-;22225:74;;22308:93;22397:3;22308:93;:::i;:::-;22426:2;22421:3;22417:12;22410:19;;22069:366;;;:::o;22441:419::-;22607:4;22645:2;22634:9;22630:18;22622:26;;22694:9;22688:4;22684:20;22680:1;22669:9;22665:17;22658:47;22722:131;22848:4;22722:131;:::i;:::-;22714:139;;22441:419;;;:::o;22866:191::-;22906:3;22925:20;22943:1;22925:20;:::i;:::-;22920:25;;22959:20;22977:1;22959:20;:::i;:::-;22954:25;;23002:1;22999;22995:9;22988:16;;23023:3;23020:1;23017:10;23014:36;;;23030:18;;:::i;:::-;23014:36;22866:191;;;;:::o;23063:222::-;23203:34;23199:1;23191:6;23187:14;23180:58;23272:5;23267:2;23259:6;23255:15;23248:30;23063:222;:::o;23291:366::-;23433:3;23454:67;23518:2;23513:3;23454:67;:::i;:::-;23447:74;;23530:93;23619:3;23530:93;:::i;:::-;23648:2;23643:3;23639:12;23632:19;;23291:366;;;:::o;23663:419::-;23829:4;23867:2;23856:9;23852:18;23844:26;;23916:9;23910:4;23906:20;23902:1;23891:9;23887:17;23880:47;23944:131;24070:4;23944:131;:::i;:::-;23936:139;;23663:419;;;:::o;24088:194::-;24128:4;24148:20;24166:1;24148:20;:::i;:::-;24143:25;;24182:20;24200:1;24182:20;:::i;:::-;24177:25;;24226:1;24223;24219:9;24211:17;;24250:1;24244:4;24241:11;24238:37;;;24255:18;;:::i;:::-;24238:37;24088:194;;;;:::o;24288:180::-;24336:77;24333:1;24326:88;24433:4;24430:1;24423:15;24457:4;24454:1;24447:15;24474:143;24531:5;24562:6;24556:13;24547:22;;24578:33;24605:5;24578:33;:::i;:::-;24474:143;;;;:::o;24623:351::-;24693:6;24742:2;24730:9;24721:7;24717:23;24713:32;24710:119;;;24748:79;;:::i;:::-;24710:119;24868:1;24893:64;24949:7;24940:6;24929:9;24925:22;24893:64;:::i;:::-;24883:74;;24839:128;24623:351;;;;:::o;24980:410::-;25020:7;25043:20;25061:1;25043:20;:::i;:::-;25038:25;;25077:20;25095:1;25077:20;:::i;:::-;25072:25;;25132:1;25129;25125:9;25154:30;25172:11;25154:30;:::i;:::-;25143:41;;25333:1;25324:7;25320:15;25317:1;25314:22;25294:1;25287:9;25267:83;25244:139;;25363:18;;:::i;:::-;25244:139;25028:362;24980:410;;;;:::o;25396:85::-;25441:7;25470:5;25459:16;;25396:85;;;:::o;25487:158::-;25545:9;25578:61;25596:42;25605:32;25631:5;25605:32;:::i;:::-;25596:42;:::i;:::-;25578:61;:::i;:::-;25565:74;;25487:158;;;:::o;25651:147::-;25746:45;25785:5;25746:45;:::i;:::-;25741:3;25734:58;25651:147;;:::o;25804:114::-;25871:6;25905:5;25899:12;25889:22;;25804:114;;;:::o;25924:184::-;26023:11;26057:6;26052:3;26045:19;26097:4;26092:3;26088:14;26073:29;;25924:184;;;;:::o;26114:132::-;26181:4;26204:3;26196:11;;26234:4;26229:3;26225:14;26217:22;;26114:132;;;:::o;26252:108::-;26329:24;26347:5;26329:24;:::i;:::-;26324:3;26317:37;26252:108;;:::o;26366:179::-;26435:10;26456:46;26498:3;26490:6;26456:46;:::i;:::-;26534:4;26529:3;26525:14;26511:28;;26366:179;;;;:::o;26551:113::-;26621:4;26653;26648:3;26644:14;26636:22;;26551:113;;;:::o;26700:732::-;26819:3;26848:54;26896:5;26848:54;:::i;:::-;26918:86;26997:6;26992:3;26918:86;:::i;:::-;26911:93;;27028:56;27078:5;27028:56;:::i;:::-;27107:7;27138:1;27123:284;27148:6;27145:1;27142:13;27123:284;;;27224:6;27218:13;27251:63;27310:3;27295:13;27251:63;:::i;:::-;27244:70;;27337:60;27390:6;27337:60;:::i;:::-;27327:70;;27183:224;27170:1;27167;27163:9;27158:14;;27123:284;;;27127:14;27423:3;27416:10;;26824:608;;;26700:732;;;;:::o;27438:831::-;27701:4;27739:3;27728:9;27724:19;27716:27;;27753:71;27821:1;27810:9;27806:17;27797:6;27753:71;:::i;:::-;27834:80;27910:2;27899:9;27895:18;27886:6;27834:80;:::i;:::-;27961:9;27955:4;27951:20;27946:2;27935:9;27931:18;27924:48;27989:108;28092:4;28083:6;27989:108;:::i;:::-;27981:116;;28107:72;28175:2;28164:9;28160:18;28151:6;28107:72;:::i;:::-;28189:73;28257:3;28246:9;28242:19;28233:6;28189:73;:::i;:::-;27438:831;;;;;;;;:::o;28275:180::-;28323:77;28320:1;28313:88;28420:4;28417:1;28410:15;28444:4;28441:1;28434:15;28461:185;28501:1;28518:20;28536:1;28518:20;:::i;:::-;28513:25;;28552:20;28570:1;28552:20;:::i;:::-;28547:25;;28591:1;28581:35;;28596:18;;:::i;:::-;28581:35;28638:1;28635;28631:9;28626:14;;28461:185;;;;:::o;28652:177::-;28792:29;28788:1;28780:6;28776:14;28769:53;28652:177;:::o;28835:366::-;28977:3;28998:67;29062:2;29057:3;28998:67;:::i;:::-;28991:74;;29074:93;29163:3;29074:93;:::i;:::-;29192:2;29187:3;29183:12;29176:19;;28835:366;;;:::o;29207:419::-;29373:4;29411:2;29400:9;29396:18;29388:26;;29460:9;29454:4;29450:20;29446:1;29435:9;29431:17;29424:47;29488:131;29614:4;29488:131;:::i;:::-;29480:139;;29207:419;;;:::o;29632:220::-;29772:34;29768:1;29760:6;29756:14;29749:58;29841:3;29836:2;29828:6;29824:15;29817:28;29632:220;:::o;29858:366::-;30000:3;30021:67;30085:2;30080:3;30021:67;:::i;:::-;30014:74;;30097:93;30186:3;30097:93;:::i;:::-;30215:2;30210:3;30206:12;30199:19;;29858:366;;;:::o;30230:419::-;30396:4;30434:2;30423:9;30419:18;30411:26;;30483:9;30477:4;30473:20;30469:1;30458:9;30454:17;30447:47;30511:131;30637:4;30511:131;:::i;:::-;30503:139;;30230:419;;;:::o

Swarm Source

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