ETH Price: $3,358.53 (-2.78%)
Gas: 2 Gwei

Token

DogeWifFork (DORK)
 

Overview

Max Total Supply

1,000,000,000 DORK

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,821,707.041851816 DORK

Value
$0.00
0xd32abd4134a9ffe37cb4ad0462ff03d89ba6e573
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:
DogeWifForkERC20

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-03
*/

/*  
    
    website : https://dogwiffork.xyz

    TG : https://t.me/dogwifforketh

    Twitter : https://twitter.com/dogwifforketh

*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
contract DogeWifForkERC20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "DogeWifFork";
    string private constant _symbol = "DORK";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private BuyFees = 30;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private SellFees = 30;
 
    //Original Fee
    uint256 private _redisFee = 0;
    uint256 private _taxFee = SellFees;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable public _developmentAddress;
    address payable public  _marketingAddress;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 20000000 * 10**9; 
    uint256 public _maxWalletSize = 20000000 * 10**9; 
    uint256 public _swapTokensAtAmount = 6000000 * 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());
        _developmentAddress = payable(_msgSender());
        _marketingAddress = payable(0x2BB30646e9EBC4590225d04f950119A6F7E10e72);
        _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 transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _swapTokensAtAmount)
            {
                contractTokenBalance = _swapTokensAtAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = BuyFees;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = SellFees;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
        
    }
    function enableTrading() public onlyOwner {
        tradingOpen = true;
    }
    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 blacklistbots(address[] memory addys) public onlyOwner {
        for (uint256 i = 0; i < addys.length; i++) {
            bots[addys[i]] = true;
        }
    }
    function unblacklistbot(address _addy) public onlyOwner {
        bots[_addy] = false;
    }
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function _updatefees(uint256 __buy, uint256 __sell) public onlyOwner {
        BuyFees = __buy;
        SellFees = __sell;
    }
    function _setSwapbackThreshold(uint256 _amount) public onlyOwner {
        _swapTokensAtAmount = _amount;
    }
    function _toggleSwapback(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    function _excludeFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
    function _removeLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
    function _setTeamWallets(address _marketing,address _development) public onlyOwner{
        _marketingAddress = payable(_marketing);
        _developmentAddress = payable(_development);
    }
    function _changeMaxTransaction(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;       
    }
    function _changeMaxWallet(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
    
    
}

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":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"_changeMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"_changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"_excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"_removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_setSwapbackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"_setTeamWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"_toggleSwapback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"__buy","type":"uint256"},{"internalType":"uint256","name":"__sell","type":"uint256"}],"name":"_updatefees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addys","type":"address[]"}],"name":"blacklistbots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","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":"renounceOwnership","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":[{"internalType":"address","name":"_addy","type":"address"}],"name":"unblacklistbot","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"}]

6080604052670de0b6b3a76400005f196200001b9190620006dc565b5f1962000029919062000740565b6006555f600855601e6009555f600a55601e600b555f600c55600b54600d55600c54600e55600d54600f555f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df820000601755661550f7dca70000601855348015620000b5575f80fd5b505f620000c76200067860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f620001796200067860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000258573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200027e9190620007df565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030a9190620007df565b6040518363ffffffff1660e01b81526004016200032992919062000820565b6020604051808303815f875af115801562000346573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200036c9190620007df565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003bb6200067860201b60201c565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550732bb30646e9ebc4590225d04f950119a6f7e10e7260135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004636200067f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620006036200067860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200066991906200085c565b60405180910390a35062000877565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620006e882620006a6565b9150620006f583620006a6565b925082620007085762000707620006af565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200074c82620006a6565b91506200075983620006a6565b925082820390508181111562000774576200077362000713565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620007a9826200077e565b9050919050565b620007bb816200079d565b8114620007c6575f80fd5b50565b5f81519050620007d981620007b0565b92915050565b5f60208284031215620007f757620007f66200077a565b5b5f6200080684828501620007c9565b91505092915050565b6200081a816200079d565b82525050565b5f604082019050620008355f8301856200080f565b6200084460208301846200080f565b9392505050565b6200085681620006a6565b82525050565b5f602082019050620008715f8301846200084b565b92915050565b613e8c80620008855f395ff3fe6080604052600436106101fc575f3560e01c8063715018a61161010c578063ad4f21a21161009f578063c3c8cd801161006e578063c3c8cd80146106d5578063caac7934146106eb578063dd62ed3e14610715578063e206c27014610751578063f2fde38b1461077957610203565b8063ad4f21a214610621578063ad633ba114610649578063bfd7928414610671578063c365d73c146106ad57610203565b80638da5cb5b116100db5780638da5cb5b146105675780638f9a55c01461059157806395d89b41146105bb578063a9059cbb146105e557610203565b8063715018a6146104d55780637d1db4a5146104eb5780637f2feddc146105155780638a8c523c1461055157610203565b80632fd689e31161018f5780634a30b3861161015e5780634a30b3861461041d5780635c67d12d146104335780636fc3eaec1461045b57806370084c6b1461047157806370a082311461049957610203565b80632fd689e314610375578063313ce5671461039f5780633d6a9afe146103c957806349bd5a5e146103f357610203565b806318160ddd116101cb57806318160ddd146102bf57806322e0ee33146102e957806323b872dd146103115780632ae282c21461034d57610203565b806303c1d6511461020757806306fdde031461022f578063095ea7b3146102595780631694505e1461029557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061022d60048036038101906102289190612d9d565b6107a1565b005b34801561023a575f80fd5b5061024361083f565b6040516102509190612e52565b60405180910390f35b348015610264575f80fd5b5061027f600480360381019061027a9190612ecc565b61087c565b60405161028c9190612f24565b60405180910390f35b3480156102a0575f80fd5b506102a9610899565b6040516102b69190612f98565b60405180910390f35b3480156102ca575f80fd5b506102d36108be565b6040516102e09190612fc0565b60405180910390f35b3480156102f4575f80fd5b5061030f600480360381019061030a9190612d9d565b6108cd565b005b34801561031c575f80fd5b5061033760048036038101906103329190612fd9565b61096b565b6040516103449190612f24565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190613029565b610a3f565b005b348015610380575f80fd5b50610389610b2a565b6040516103969190612fc0565b60405180910390f35b3480156103aa575f80fd5b506103b3610b30565b6040516103c0919061306f565b60405180910390f35b3480156103d4575f80fd5b506103dd610b38565b6040516103ea91906130a8565b60405180910390f35b3480156103fe575f80fd5b50610407610b5d565b60405161041491906130d0565b60405180910390f35b348015610428575f80fd5b50610431610b82565b005b34801561043e575f80fd5b5061045960048036038101906104549190613113565b610c36565b005b348015610466575f80fd5b5061046f610ce7565b005b34801561047c575f80fd5b506104976004803603810190610492919061327e565b610db4565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba9190613029565b610ed3565b6040516104cc9190612fc0565b60405180910390f35b3480156104e0575f80fd5b506104e9610f21565b005b3480156104f6575f80fd5b506104ff61106f565b60405161050c9190612fc0565b60405180910390f35b348015610520575f80fd5b5061053b60048036038101906105369190613029565b611075565b6040516105489190612fc0565b60405180910390f35b34801561055c575f80fd5b5061056561108a565b005b348015610572575f80fd5b5061057b61113b565b60405161058891906130d0565b60405180910390f35b34801561059c575f80fd5b506105a5611162565b6040516105b29190612fc0565b60405180910390f35b3480156105c6575f80fd5b506105cf611168565b6040516105dc9190612e52565b60405180910390f35b3480156105f0575f80fd5b5061060b60048036038101906106069190612ecc565b6111a5565b6040516106189190612f24565b60405180910390f35b34801561062c575f80fd5b506106476004803603810190610642919061331e565b6111c2565b005b348015610654575f80fd5b5061066f600480360381019061066a919061337b565b6112f1565b005b34801561067c575f80fd5b5061069760048036038101906106929190613029565b611409565b6040516106a49190612f24565b60405180910390f35b3480156106b8575f80fd5b506106d360048036038101906106ce9190612d9d565b611426565b005b3480156106e0575f80fd5b506106e96114c4565b005b3480156106f6575f80fd5b506106ff611599565b60405161070c91906130a8565b60405180910390f35b348015610720575f80fd5b5061073b6004803603810190610736919061337b565b6115be565b6040516107489190612fc0565b60405180910390f35b34801561075c575f80fd5b50610777600480360381019061077291906133b9565b611640565b005b348015610784575f80fd5b5061079f600480360381019061079a9190613029565b6116e6565b005b6107a96118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90613441565b60405180910390fd5b8060168190555050565b60606040518060400160405280600b81526020017f446f6765576966466f726b000000000000000000000000000000000000000000815250905090565b5f61088f6108886118a3565b84846118aa565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b6108d56118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095890613441565b60405180910390fd5b8060188190555050565b5f610977848484611a6d565b610a34846109836118a3565b610a2f85604051806060016040528060288152602001613e2f6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109e66118a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122cd9092919063ffffffff16565b6118aa565b600190509392505050565b610a476118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90613441565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60185481565b5f6009905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b8a6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90613441565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b610c3e6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613441565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d276118a3565b73ffffffffffffffffffffffffffffffffffffffff161480610d9c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d846118a3565b73ffffffffffffffffffffffffffffffffffffffff16145b610da4575f80fd5b5f479050610db18161232f565b50565b610dbc6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90613441565b60405180910390fd5b5f5b8151811015610ecf57600160105f848481518110610e6b57610e6a61345f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610e4a565b5050565b5f610f1a60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612397565b9050919050565b610f296118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613441565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b6110926118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590613441565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600481526020017f444f524b00000000000000000000000000000000000000000000000000000000815250905090565b5f6111b86111b16118a3565b8484611a6d565b6001905092915050565b6111ca6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613441565b60405180910390fd5b5f5b838390508110156112eb578160055f86868581811061127a5761127961345f565b5b905060200201602081019061128f9190613029565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611258565b50505050565b6112f96118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90613441565b60405180910390fd5b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6010602052805f5260405f205f915054906101000a900460ff1681565b61142e6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190613441565b60405180910390fd5b8060178190555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115046118a3565b73ffffffffffffffffffffffffffffffffffffffff161480611579575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115616118a3565b73ffffffffffffffffffffffffffffffffffffffff16145b611581575f80fd5b5f61158b30610ed3565b905061159681612403565b50565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116486118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613441565b60405180910390fd5b8160098190555080600b819055505050565b6116ee6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613441565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906134fc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f9061358a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613618565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a609190612fc0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad2906136a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613734565b60405180910390fd5b5f8111611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b82906137c2565b60405180910390fd5b611b9361113b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c015750611bd161113b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fda57601560149054906101000a900460ff16611c9057611c2261113b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8690613850565b60405180910390fd5b5b601654811115611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc906138b8565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d73575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613946565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e5e5760175481611e1384610ed3565b611e1d9190613991565b10611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613a34565b60405180910390fd5b5b5f611e6830610ed3565b90505f60185482101590506018548210611e825760185491505b808015611e9a575060158054906101000a900460ff16155b8015611ef3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f0b5750601560169054906101000a900460ff165b8015611f5e575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fb1575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fd757611fbf82612403565b5f4790505f811115611fd557611fd44761232f565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061207a575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061212b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561212a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612138575f90506122bb565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121e1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121f957600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122a2575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122ba57600a54600c81905550600b54600d819055505b5b6122c78484848461266c565b50505050565b5f838311158290612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b9190612e52565b60405180910390fd5b505f83856123229190613a52565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612393573d5f803e3d5ffd5b5050565b5f6006548211156123dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d490613af5565b60405180910390fd5b5f6123e6612699565b90506123fb81846126c290919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561243957612438613142565b5b6040519080825280602002602001820160405280156124675781602001602082028036833780820191505090505b50905030815f8151811061247e5761247d61345f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612522573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125469190613b27565b8160018151811061255a5761255961345f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125c03060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118aa565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612622959493929190613c42565b5f604051808303815f87803b158015612639575f80fd5b505af115801561264b573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061267a5761267961270b565b5b612685848484612744565b8061269357612692612904565b5b50505050565b5f805f6126a4612918565b915091506126bb81836126c290919063ffffffff16565b9250505090565b5f61270383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612974565b905092915050565b5f600c5414801561271d57505f600d54145b61274257600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612753876129d5565b9550955095509550955095506127af8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a3590919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128408560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a7e90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061288a81612adb565b6128948483612b92565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128f19190612fc0565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f670de0b6b3a76400009050612949670de0b6b3a76400006006546126c290919063ffffffff16565b82101561296757600654670de0b6b3a7640000935093505050612970565b81819350935050505b9091565b5f80831182906129ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b19190612e52565b60405180910390fd5b505f83856129c89190613cc7565b9050809150509392505050565b5f805f805f805f805f6129ed8a600c54600d54612bcc565b9250925092505f6129fc612699565b90505f805f612a0d8e878787612c5e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122cd565b905092915050565b5f808284612a8c9190613991565b905083811015612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890613d41565b60405180910390fd5b8091505092915050565b5f612ae4612699565b90505f612afa8284612ce290919063ffffffff16565b9050612b4c8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a7e90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ba782600654612a3590919063ffffffff16565b600681905550612bc281600754612a7e90919063ffffffff16565b6007819055505050565b5f805f80612bf66064612be8888a612ce290919063ffffffff16565b6126c290919063ffffffff16565b90505f612c1f6064612c11888b612ce290919063ffffffff16565b6126c290919063ffffffff16565b90505f612c4782612c39858c612a3590919063ffffffff16565b612a3590919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612c758589612ce290919063ffffffff16565b90505f612c8b8689612ce290919063ffffffff16565b90505f612ca18789612ce290919063ffffffff16565b90505f612cc982612cbb8587612a3590919063ffffffff16565b612a3590919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612cf2575f9050612d53565b5f8284612cff9190613d5f565b9050828482612d0e9190613cc7565b14612d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4590613e10565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612d7c81612d6a565b8114612d86575f80fd5b50565b5f81359050612d9781612d73565b92915050565b5f60208284031215612db257612db1612d62565b5b5f612dbf84828501612d89565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612dff578082015181840152602081019050612de4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e2482612dc8565b612e2e8185612dd2565b9350612e3e818560208601612de2565b612e4781612e0a565b840191505092915050565b5f6020820190508181035f830152612e6a8184612e1a565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e9b82612e72565b9050919050565b612eab81612e91565b8114612eb5575f80fd5b50565b5f81359050612ec681612ea2565b92915050565b5f8060408385031215612ee257612ee1612d62565b5b5f612eef85828601612eb8565b9250506020612f0085828601612d89565b9150509250929050565b5f8115159050919050565b612f1e81612f0a565b82525050565b5f602082019050612f375f830184612f15565b92915050565b5f819050919050565b5f612f60612f5b612f5684612e72565b612f3d565b612e72565b9050919050565b5f612f7182612f46565b9050919050565b5f612f8282612f67565b9050919050565b612f9281612f78565b82525050565b5f602082019050612fab5f830184612f89565b92915050565b612fba81612d6a565b82525050565b5f602082019050612fd35f830184612fb1565b92915050565b5f805f60608486031215612ff057612fef612d62565b5b5f612ffd86828701612eb8565b935050602061300e86828701612eb8565b925050604061301f86828701612d89565b9150509250925092565b5f6020828403121561303e5761303d612d62565b5b5f61304b84828501612eb8565b91505092915050565b5f60ff82169050919050565b61306981613054565b82525050565b5f6020820190506130825f830184613060565b92915050565b5f61309282612e72565b9050919050565b6130a281613088565b82525050565b5f6020820190506130bb5f830184613099565b92915050565b6130ca81612e91565b82525050565b5f6020820190506130e35f8301846130c1565b92915050565b6130f281612f0a565b81146130fc575f80fd5b50565b5f8135905061310d816130e9565b92915050565b5f6020828403121561312857613127612d62565b5b5f613135848285016130ff565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61317882612e0a565b810181811067ffffffffffffffff8211171561319757613196613142565b5b80604052505050565b5f6131a9612d59565b90506131b5828261316f565b919050565b5f67ffffffffffffffff8211156131d4576131d3613142565b5b602082029050602081019050919050565b5f80fd5b5f6131fb6131f6846131ba565b6131a0565b9050808382526020820190506020840283018581111561321e5761321d6131e5565b5b835b8181101561324757806132338882612eb8565b845260208401935050602081019050613220565b5050509392505050565b5f82601f8301126132655761326461313e565b5b81356132758482602086016131e9565b91505092915050565b5f6020828403121561329357613292612d62565b5b5f82013567ffffffffffffffff8111156132b0576132af612d66565b5b6132bc84828501613251565b91505092915050565b5f80fd5b5f8083601f8401126132de576132dd61313e565b5b8235905067ffffffffffffffff8111156132fb576132fa6132c5565b5b602083019150836020820283011115613317576133166131e5565b5b9250929050565b5f805f6040848603121561333557613334612d62565b5b5f84013567ffffffffffffffff81111561335257613351612d66565b5b61335e868287016132c9565b93509350506020613371868287016130ff565b9150509250925092565b5f806040838503121561339157613390612d62565b5b5f61339e85828601612eb8565b92505060206133af85828601612eb8565b9150509250929050565b5f80604083850312156133cf576133ce612d62565b5b5f6133dc85828601612d89565b92505060206133ed85828601612d89565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61342b602083612dd2565b9150613436826133f7565b602082019050919050565b5f6020820190508181035f8301526134588161341f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134e6602683612dd2565b91506134f18261348c565b604082019050919050565b5f6020820190508181035f830152613513816134da565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613574602483612dd2565b915061357f8261351a565b604082019050919050565b5f6020820190508181035f8301526135a181613568565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613602602283612dd2565b915061360d826135a8565b604082019050919050565b5f6020820190508181035f83015261362f816135f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613690602583612dd2565b915061369b82613636565b604082019050919050565b5f6020820190508181035f8301526136bd81613684565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61371e602383612dd2565b9150613729826136c4565b604082019050919050565b5f6020820190508181035f83015261374b81613712565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137ac602983612dd2565b91506137b782613752565b604082019050919050565b5f6020820190508181035f8301526137d9816137a0565b9050919050565b7f544f4b454e3a2063616e6e6f742073656e6420746f6b656e7320756e74696c205f8201527f74726164696e6720697320656e61626c65640000000000000000000000000000602082015250565b5f61383a603283612dd2565b9150613845826137e0565b604082019050919050565b5f6020820190508181035f8301526138678161382e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6138a2601c83612dd2565b91506138ad8261386e565b602082019050919050565b5f6020820190508181035f8301526138cf81613896565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613930602383612dd2565b915061393b826138d6565b604082019050919050565b5f6020820190508181035f83015261395d81613924565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61399b82612d6a565b91506139a683612d6a565b92508282019050808211156139be576139bd613964565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613a1e602383612dd2565b9150613a29826139c4565b604082019050919050565b5f6020820190508181035f830152613a4b81613a12565b9050919050565b5f613a5c82612d6a565b9150613a6783612d6a565b9250828203905081811115613a7f57613a7e613964565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613adf602a83612dd2565b9150613aea82613a85565b604082019050919050565b5f6020820190508181035f830152613b0c81613ad3565b9050919050565b5f81519050613b2181612ea2565b92915050565b5f60208284031215613b3c57613b3b612d62565b5b5f613b4984828501613b13565b91505092915050565b5f819050919050565b5f613b75613b70613b6b84613b52565b612f3d565b612d6a565b9050919050565b613b8581613b5b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bbd81612e91565b82525050565b5f613bce8383613bb4565b60208301905092915050565b5f602082019050919050565b5f613bf082613b8b565b613bfa8185613b95565b9350613c0583613ba5565b805f5b83811015613c35578151613c1c8882613bc3565b9750613c2783613bda565b925050600181019050613c08565b5085935050505092915050565b5f60a082019050613c555f830188612fb1565b613c626020830187613b7c565b8181036040830152613c748186613be6565b9050613c8360608301856130c1565b613c906080830184612fb1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cd182612d6a565b9150613cdc83612d6a565b925082613cec57613ceb613c9a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d2b601b83612dd2565b9150613d3682613cf7565b602082019050919050565b5f6020820190508181035f830152613d5881613d1f565b9050919050565b5f613d6982612d6a565b9150613d7483612d6a565b9250828202613d8281612d6a565b91508282048414831517613d9957613d98613964565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613dfa602183612dd2565b9150613e0582613da0565b604082019050919050565b5f6020820190508181035f830152613e2781613dee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202e1f2951e362d12370ee28abf1d12bdbbb98ad89ab237d6df11fd00433e7d78e64736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101fc575f3560e01c8063715018a61161010c578063ad4f21a21161009f578063c3c8cd801161006e578063c3c8cd80146106d5578063caac7934146106eb578063dd62ed3e14610715578063e206c27014610751578063f2fde38b1461077957610203565b8063ad4f21a214610621578063ad633ba114610649578063bfd7928414610671578063c365d73c146106ad57610203565b80638da5cb5b116100db5780638da5cb5b146105675780638f9a55c01461059157806395d89b41146105bb578063a9059cbb146105e557610203565b8063715018a6146104d55780637d1db4a5146104eb5780637f2feddc146105155780638a8c523c1461055157610203565b80632fd689e31161018f5780634a30b3861161015e5780634a30b3861461041d5780635c67d12d146104335780636fc3eaec1461045b57806370084c6b1461047157806370a082311461049957610203565b80632fd689e314610375578063313ce5671461039f5780633d6a9afe146103c957806349bd5a5e146103f357610203565b806318160ddd116101cb57806318160ddd146102bf57806322e0ee33146102e957806323b872dd146103115780632ae282c21461034d57610203565b806303c1d6511461020757806306fdde031461022f578063095ea7b3146102595780631694505e1461029557610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061022d60048036038101906102289190612d9d565b6107a1565b005b34801561023a575f80fd5b5061024361083f565b6040516102509190612e52565b60405180910390f35b348015610264575f80fd5b5061027f600480360381019061027a9190612ecc565b61087c565b60405161028c9190612f24565b60405180910390f35b3480156102a0575f80fd5b506102a9610899565b6040516102b69190612f98565b60405180910390f35b3480156102ca575f80fd5b506102d36108be565b6040516102e09190612fc0565b60405180910390f35b3480156102f4575f80fd5b5061030f600480360381019061030a9190612d9d565b6108cd565b005b34801561031c575f80fd5b5061033760048036038101906103329190612fd9565b61096b565b6040516103449190612f24565b60405180910390f35b348015610358575f80fd5b50610373600480360381019061036e9190613029565b610a3f565b005b348015610380575f80fd5b50610389610b2a565b6040516103969190612fc0565b60405180910390f35b3480156103aa575f80fd5b506103b3610b30565b6040516103c0919061306f565b60405180910390f35b3480156103d4575f80fd5b506103dd610b38565b6040516103ea91906130a8565b60405180910390f35b3480156103fe575f80fd5b50610407610b5d565b60405161041491906130d0565b60405180910390f35b348015610428575f80fd5b50610431610b82565b005b34801561043e575f80fd5b5061045960048036038101906104549190613113565b610c36565b005b348015610466575f80fd5b5061046f610ce7565b005b34801561047c575f80fd5b506104976004803603810190610492919061327e565b610db4565b005b3480156104a4575f80fd5b506104bf60048036038101906104ba9190613029565b610ed3565b6040516104cc9190612fc0565b60405180910390f35b3480156104e0575f80fd5b506104e9610f21565b005b3480156104f6575f80fd5b506104ff61106f565b60405161050c9190612fc0565b60405180910390f35b348015610520575f80fd5b5061053b60048036038101906105369190613029565b611075565b6040516105489190612fc0565b60405180910390f35b34801561055c575f80fd5b5061056561108a565b005b348015610572575f80fd5b5061057b61113b565b60405161058891906130d0565b60405180910390f35b34801561059c575f80fd5b506105a5611162565b6040516105b29190612fc0565b60405180910390f35b3480156105c6575f80fd5b506105cf611168565b6040516105dc9190612e52565b60405180910390f35b3480156105f0575f80fd5b5061060b60048036038101906106069190612ecc565b6111a5565b6040516106189190612f24565b60405180910390f35b34801561062c575f80fd5b506106476004803603810190610642919061331e565b6111c2565b005b348015610654575f80fd5b5061066f600480360381019061066a919061337b565b6112f1565b005b34801561067c575f80fd5b5061069760048036038101906106929190613029565b611409565b6040516106a49190612f24565b60405180910390f35b3480156106b8575f80fd5b506106d360048036038101906106ce9190612d9d565b611426565b005b3480156106e0575f80fd5b506106e96114c4565b005b3480156106f6575f80fd5b506106ff611599565b60405161070c91906130a8565b60405180910390f35b348015610720575f80fd5b5061073b6004803603810190610736919061337b565b6115be565b6040516107489190612fc0565b60405180910390f35b34801561075c575f80fd5b50610777600480360381019061077291906133b9565b611640565b005b348015610784575f80fd5b5061079f600480360381019061079a9190613029565b6116e6565b005b6107a96118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90613441565b60405180910390fd5b8060168190555050565b60606040518060400160405280600b81526020017f446f6765576966466f726b000000000000000000000000000000000000000000815250905090565b5f61088f6108886118a3565b84846118aa565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b6108d56118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610961576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095890613441565b60405180910390fd5b8060188190555050565b5f610977848484611a6d565b610a34846109836118a3565b610a2f85604051806060016040528060288152602001613e2f6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109e66118a3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122cd9092919063ffffffff16565b6118aa565b600190509392505050565b610a476118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90613441565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60185481565b5f6009905090565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b8a6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0d90613441565b60405180910390fd5b670de0b6b3a7640000601681905550670de0b6b3a7640000601781905550565b610c3e6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc190613441565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d276118a3565b73ffffffffffffffffffffffffffffffffffffffff161480610d9c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d846118a3565b73ffffffffffffffffffffffffffffffffffffffff16145b610da4575f80fd5b5f479050610db18161232f565b50565b610dbc6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90613441565b60405180910390fd5b5f5b8151811015610ecf57600160105f848481518110610e6b57610e6a61345f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610e4a565b5050565b5f610f1a60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612397565b9050919050565b610f296118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613441565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b6011602052805f5260405f205f915090505481565b6110926118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590613441565b60405180910390fd5b6001601560146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600481526020017f444f524b00000000000000000000000000000000000000000000000000000000815250905090565b5f6111b86111b16118a3565b8484611a6d565b6001905092915050565b6111ca6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611256576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124d90613441565b60405180910390fd5b5f5b838390508110156112eb578160055f86868581811061127a5761127961345f565b5b905060200201602081019061128f9190613029565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611258565b50505050565b6112f96118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137c90613441565b60405180910390fd5b8160135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6010602052805f5260405f205f915054906101000a900460ff1681565b61142e6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190613441565b60405180910390fd5b8060178190555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115046118a3565b73ffffffffffffffffffffffffffffffffffffffff161480611579575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115616118a3565b73ffffffffffffffffffffffffffffffffffffffff16145b611581575f80fd5b5f61158b30610ed3565b905061159681612403565b50565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6116486118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cb90613441565b60405180910390fd5b8160098190555080600b819055505050565b6116ee6118a3565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613441565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117df906134fc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f9061358a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197d90613618565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a609190612fc0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad2906136a6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4090613734565b60405180910390fd5b5f8111611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b82906137c2565b60405180910390fd5b611b9361113b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c015750611bd161113b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fda57601560149054906101000a900460ff16611c9057611c2261113b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8690613850565b60405180910390fd5b5b601654811115611cd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ccc906138b8565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d73575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613946565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e5e5760175481611e1384610ed3565b611e1d9190613991565b10611e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5490613a34565b60405180910390fd5b5b5f611e6830610ed3565b90505f60185482101590506018548210611e825760185491505b808015611e9a575060158054906101000a900460ff16155b8015611ef3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f0b5750601560169054906101000a900460ff165b8015611f5e575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611fb1575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fd757611fbf82612403565b5f4790505f811115611fd557611fd44761232f565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061207a575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061212b575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561212a575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612138575f90506122bb565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121e1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121f957600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122a2575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156122ba57600a54600c81905550600b54600d819055505b5b6122c78484848461266c565b50505050565b5f838311158290612314576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230b9190612e52565b60405180910390fd5b505f83856123229190613a52565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612393573d5f803e3d5ffd5b5050565b5f6006548211156123dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d490613af5565b60405180910390fd5b5f6123e6612699565b90506123fb81846126c290919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561243957612438613142565b5b6040519080825280602002602001820160405280156124675781602001602082028036833780820191505090505b50905030815f8151811061247e5761247d61345f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612522573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125469190613b27565b8160018151811061255a5761255961345f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125c03060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118aa565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612622959493929190613c42565b5f604051808303815f87803b158015612639575f80fd5b505af115801561264b573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b8061267a5761267961270b565b5b612685848484612744565b8061269357612692612904565b5b50505050565b5f805f6126a4612918565b915091506126bb81836126c290919063ffffffff16565b9250505090565b5f61270383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612974565b905092915050565b5f600c5414801561271d57505f600d54145b61274257600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f80612753876129d5565b9550955095509550955095506127af8660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a3590919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128408560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a7e90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061288a81612adb565b6128948483612b92565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128f19190612fc0565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f670de0b6b3a76400009050612949670de0b6b3a76400006006546126c290919063ffffffff16565b82101561296757600654670de0b6b3a7640000935093505050612970565b81819350935050505b9091565b5f80831182906129ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b19190612e52565b60405180910390fd5b505f83856129c89190613cc7565b9050809150509392505050565b5f805f805f805f805f6129ed8a600c54600d54612bcc565b9250925092505f6129fc612699565b90505f805f612a0d8e878787612c5e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122cd565b905092915050565b5f808284612a8c9190613991565b905083811015612ad1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac890613d41565b60405180910390fd5b8091505092915050565b5f612ae4612699565b90505f612afa8284612ce290919063ffffffff16565b9050612b4c8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a7e90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612ba782600654612a3590919063ffffffff16565b600681905550612bc281600754612a7e90919063ffffffff16565b6007819055505050565b5f805f80612bf66064612be8888a612ce290919063ffffffff16565b6126c290919063ffffffff16565b90505f612c1f6064612c11888b612ce290919063ffffffff16565b6126c290919063ffffffff16565b90505f612c4782612c39858c612a3590919063ffffffff16565b612a3590919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612c758589612ce290919063ffffffff16565b90505f612c8b8689612ce290919063ffffffff16565b90505f612ca18789612ce290919063ffffffff16565b90505f612cc982612cbb8587612a3590919063ffffffff16565b612a3590919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612cf2575f9050612d53565b5f8284612cff9190613d5f565b9050828482612d0e9190613cc7565b14612d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4590613e10565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b612d7c81612d6a565b8114612d86575f80fd5b50565b5f81359050612d9781612d73565b92915050565b5f60208284031215612db257612db1612d62565b5b5f612dbf84828501612d89565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612dff578082015181840152602081019050612de4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612e2482612dc8565b612e2e8185612dd2565b9350612e3e818560208601612de2565b612e4781612e0a565b840191505092915050565b5f6020820190508181035f830152612e6a8184612e1a565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e9b82612e72565b9050919050565b612eab81612e91565b8114612eb5575f80fd5b50565b5f81359050612ec681612ea2565b92915050565b5f8060408385031215612ee257612ee1612d62565b5b5f612eef85828601612eb8565b9250506020612f0085828601612d89565b9150509250929050565b5f8115159050919050565b612f1e81612f0a565b82525050565b5f602082019050612f375f830184612f15565b92915050565b5f819050919050565b5f612f60612f5b612f5684612e72565b612f3d565b612e72565b9050919050565b5f612f7182612f46565b9050919050565b5f612f8282612f67565b9050919050565b612f9281612f78565b82525050565b5f602082019050612fab5f830184612f89565b92915050565b612fba81612d6a565b82525050565b5f602082019050612fd35f830184612fb1565b92915050565b5f805f60608486031215612ff057612fef612d62565b5b5f612ffd86828701612eb8565b935050602061300e86828701612eb8565b925050604061301f86828701612d89565b9150509250925092565b5f6020828403121561303e5761303d612d62565b5b5f61304b84828501612eb8565b91505092915050565b5f60ff82169050919050565b61306981613054565b82525050565b5f6020820190506130825f830184613060565b92915050565b5f61309282612e72565b9050919050565b6130a281613088565b82525050565b5f6020820190506130bb5f830184613099565b92915050565b6130ca81612e91565b82525050565b5f6020820190506130e35f8301846130c1565b92915050565b6130f281612f0a565b81146130fc575f80fd5b50565b5f8135905061310d816130e9565b92915050565b5f6020828403121561312857613127612d62565b5b5f613135848285016130ff565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61317882612e0a565b810181811067ffffffffffffffff8211171561319757613196613142565b5b80604052505050565b5f6131a9612d59565b90506131b5828261316f565b919050565b5f67ffffffffffffffff8211156131d4576131d3613142565b5b602082029050602081019050919050565b5f80fd5b5f6131fb6131f6846131ba565b6131a0565b9050808382526020820190506020840283018581111561321e5761321d6131e5565b5b835b8181101561324757806132338882612eb8565b845260208401935050602081019050613220565b5050509392505050565b5f82601f8301126132655761326461313e565b5b81356132758482602086016131e9565b91505092915050565b5f6020828403121561329357613292612d62565b5b5f82013567ffffffffffffffff8111156132b0576132af612d66565b5b6132bc84828501613251565b91505092915050565b5f80fd5b5f8083601f8401126132de576132dd61313e565b5b8235905067ffffffffffffffff8111156132fb576132fa6132c5565b5b602083019150836020820283011115613317576133166131e5565b5b9250929050565b5f805f6040848603121561333557613334612d62565b5b5f84013567ffffffffffffffff81111561335257613351612d66565b5b61335e868287016132c9565b93509350506020613371868287016130ff565b9150509250925092565b5f806040838503121561339157613390612d62565b5b5f61339e85828601612eb8565b92505060206133af85828601612eb8565b9150509250929050565b5f80604083850312156133cf576133ce612d62565b5b5f6133dc85828601612d89565b92505060206133ed85828601612d89565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61342b602083612dd2565b9150613436826133f7565b602082019050919050565b5f6020820190508181035f8301526134588161341f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6134e6602683612dd2565b91506134f18261348c565b604082019050919050565b5f6020820190508181035f830152613513816134da565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613574602483612dd2565b915061357f8261351a565b604082019050919050565b5f6020820190508181035f8301526135a181613568565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613602602283612dd2565b915061360d826135a8565b604082019050919050565b5f6020820190508181035f83015261362f816135f6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613690602583612dd2565b915061369b82613636565b604082019050919050565b5f6020820190508181035f8301526136bd81613684565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61371e602383612dd2565b9150613729826136c4565b604082019050919050565b5f6020820190508181035f83015261374b81613712565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137ac602983612dd2565b91506137b782613752565b604082019050919050565b5f6020820190508181035f8301526137d9816137a0565b9050919050565b7f544f4b454e3a2063616e6e6f742073656e6420746f6b656e7320756e74696c205f8201527f74726164696e6720697320656e61626c65640000000000000000000000000000602082015250565b5f61383a603283612dd2565b9150613845826137e0565b604082019050919050565b5f6020820190508181035f8301526138678161382e565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6138a2601c83612dd2565b91506138ad8261386e565b602082019050919050565b5f6020820190508181035f8301526138cf81613896565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613930602383612dd2565b915061393b826138d6565b604082019050919050565b5f6020820190508181035f83015261395d81613924565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61399b82612d6a565b91506139a683612d6a565b92508282019050808211156139be576139bd613964565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613a1e602383612dd2565b9150613a29826139c4565b604082019050919050565b5f6020820190508181035f830152613a4b81613a12565b9050919050565b5f613a5c82612d6a565b9150613a6783612d6a565b9250828203905081811115613a7f57613a7e613964565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613adf602a83612dd2565b9150613aea82613a85565b604082019050919050565b5f6020820190508181035f830152613b0c81613ad3565b9050919050565b5f81519050613b2181612ea2565b92915050565b5f60208284031215613b3c57613b3b612d62565b5b5f613b4984828501613b13565b91505092915050565b5f819050919050565b5f613b75613b70613b6b84613b52565b612f3d565b612d6a565b9050919050565b613b8581613b5b565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bbd81612e91565b82525050565b5f613bce8383613bb4565b60208301905092915050565b5f602082019050919050565b5f613bf082613b8b565b613bfa8185613b95565b9350613c0583613ba5565b805f5b83811015613c35578151613c1c8882613bc3565b9750613c2783613bda565b925050600181019050613c08565b5085935050505092915050565b5f60a082019050613c555f830188612fb1565b613c626020830187613b7c565b8181036040830152613c748186613be6565b9050613c8360608301856130c1565b613c906080830184612fb1565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cd182612d6a565b9150613cdc83612d6a565b925082613cec57613ceb613c9a565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d2b601b83612dd2565b9150613d3682613cf7565b602082019050919050565b5f6020820190508181035f830152613d5881613d1f565b9050919050565b5f613d6982612d6a565b9150613d7483612d6a565b9250828202613d8281612d6a565b91508282048414831517613d9957613d98613964565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613dfa602183612dd2565b9150613e0582613da0565b604082019050919050565b5f6020820190508181035f830152613e2781613dee565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202e1f2951e362d12370ee28abf1d12bdbbb98ad89ab237d6df11fd00433e7d78e64736f6c63430008180033

Deployed Bytecode Sourcemap

4164:13543:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17447:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6664:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7596:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5385:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6944:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16667:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7798:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13022:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5687:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6852:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5285:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5433:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17123:118;;;;;;;;;;;;;:::i;:::-;;16786:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12599:235;;;;;;;;;;;;;:::i;:::-;;12843:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7048:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1676:148;;;;;;;;;;;;;:::i;:::-;;5577:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5234:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12269:79;;;;;;;;;;;;;:::i;:::-;;1466;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5631:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6756:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7195:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16898:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17247:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5196:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17577:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12354:236;;;;;;;;;;;;;:::i;:::-;;5334:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7403:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16530:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1833:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17447:124;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17545:11:::1;17530:12;:26;;;;17447:124:::0;:::o;6664:83::-;6701:13;6734:5;;;;;;;;;;;;;;;;;6727:12;;6664:83;:::o;7596:193::-;7698:4;7720:39;7729:12;:10;:12::i;:::-;7743:7;7752:6;7720:8;:39::i;:::-;7777:4;7770:11;;7596:193;;;;:::o;5385:41::-;;;;;;;;;;;;;:::o;6944:95::-;6997:7;4716:18;7017:14;;6944:95;:::o;16667:113::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16765:7:::1;16743:19;:29;;;;16667:113:::0;:::o;7798:446::-;7930:4;7947:36;7957:6;7965:9;7976:6;7947:9;:36::i;:::-;7994:220;8017:6;8038:12;:10;:12::i;:::-;8065:138;8121:6;8065:138;;;;;;;;;;;;;;;;;:11;:19;8077:6;8065:19;;;;;;;;;;;;;;;:33;8085:12;:10;:12::i;:::-;8065:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7994:8;:220::i;:::-;8232:4;8225:11;;7798:446;;;;;:::o;13022:94::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13103:5:::1;13089:4;:11;13094:5;13089:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;13022:94:::0;:::o;5687:52::-;;;;:::o;6852:83::-;6893:5;4392:1;6911:16;;6852:83;:::o;5285:42::-;;;;;;;;;;;;;:::o;5433:28::-;;;;;;;;;;;;;:::o;17123:118::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4716:18:::1;17176:12;:22;;;;4716:18;17209:14;:24;;;;17123:118::o:0;16786:106::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16872:12:::1;16858:11;;:26;;;;;;;;;;;;;;;;;;16786:106:::0;:::o;12599:235::-;12665:19;;;;;;;;;;;12649:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12704:17;;;;;;;;;;;12688:33;;:12;:10;:12::i;:::-;:33;;;12649:72;12641:81;;;;;;12733:26;12762:21;12733:50;;12794:32;12807:18;12794:12;:32::i;:::-;12630:204;12599:235::o;12843:173::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12923:9:::1;12918:91;12942:5;:12;12938:1;:16;12918:91;;;12993:4;12976;:14;12981:5;12987:1;12981:8;;;;;;;;:::i;:::-;;;;;;;;12976:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12956:3;;;;;;;12918:91;;;;12843:173:::0;:::o;7048:138::-;7114:7;7141:37;7161:7;:16;7169:7;7161:16;;;;;;;;;;;;;;;;7141:19;:37::i;:::-;7134:44;;7048:138;;;:::o;1676:148::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1783:1:::1;1746:40;;1767:6;::::0;::::1;;;;;;;;1746:40;;;;;;;;;;;;1814:1;1797:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1676:148::o:0;5577:46::-;;;;:::o;5234:43::-;;;;;;;;;;;;;;;;;:::o;12269:79::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:4:::1;12322:11;;:18;;;;;;;;;;;;;;;;;;12269:79::o:0;1466:::-;1504:7;1531:6;;;;;;;;;;;1524:13;;1466:79;:::o;5631:48::-;;;;:::o;6756:87::-;6795:13;6828:7;;;;;;;;;;;;;;;;;6821:14;;6756:87;:::o;7195:199::-;7300:4;7322:42;7332:12;:10;:12::i;:::-;7346:9;7357:6;7322:9;:42::i;:::-;7382:4;7375:11;;7195:199;;;;:::o;16898:219::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17000:9:::1;16996:114;17019:8;;:15;;17015:1;:19;16996:114;;;17090:8;17056:18;:31;17075:8;;17084:1;17075:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17056:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17036:3;;;;;;;16996:114;;;;16898:219:::0;;;:::o;17247:194::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17368:10:::1;17340:17;;:39;;;;;;;;;;;;;;;;;;17420:12;17390:19;;:43;;;;;;;;;;;;;;;;;;17247:194:::0;;:::o;5196:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;17577:115::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17671:13:::1;17654:14;:30;;;;17577:115:::0;:::o;12354:236::-;12420:19;;;;;;;;;;;12404:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12459:17;;;;;;;;;;;12443:33;;:12;:10;:12::i;:::-;:33;;;12404:72;12396:81;;;;;;12488:23;12514:24;12532:4;12514:9;:24::i;:::-;12488:50;;12549:33;12566:15;12549:16;:33::i;:::-;12385:205;12354:236::o;5334:41::-;;;;;;;;;;;;;:::o;7403:184::-;7520:7;7552:11;:18;7564:5;7552:18;;;;;;;;;;;;;;;:27;7571:7;7552:27;;;;;;;;;;;;;;;;7545:34;;7403:184;;;;:::o;16530:131::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16620:5:::1;16610:7;:15;;;;16647:6;16636:8;:17;;;;16530:131:::0;;:::o;1833:244::-;1601:12;:10;:12::i;:::-;1591:22;;:6;;;;;;;;;;:22;;;1583:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1942:1:::1;1922:22;;:8;:22;;::::0;1914:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2032:8;2003:38;;2024:6;::::0;::::1;;;;;;;;2003:38;;;;;;;;;;;;2061:8;2052:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1833:244:::0;:::o;245:98::-;298:7;325:10;318:17;;245:98;:::o;8941:369::-;9085:1;9068:19;;:5;:19;;;9060:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9166:1;9147:21;;:7;:21;;;9139:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9248:6;9218:11;:18;9230:5;9218:18;;;;;;;;;;;;;;;:27;9237:7;9218:27;;;;;;;;;;;;;;;:36;;;;9286:7;9270:32;;9279:5;9270:32;;;9295:6;9270:32;;;;;;:::i;:::-;;;;;;;;8941:369;;;:::o;9319:2334::-;9457:1;9441:18;;:4;:18;;;9433:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9534:1;9520:16;;:2;:16;;;9512:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9604:1;9595:6;:10;9587:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9677:7;:5;:7::i;:::-;9669:15;;:4;:15;;;;:32;;;;;9694:7;:5;:7::i;:::-;9688:13;;:2;:13;;;;9669:32;9665:1266;;;9759:11;;;;;;;;;;;9754:131;;9807:7;:5;:7::i;:::-;9799:15;;:4;:15;;;9791:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9754:131;9920:12;;9910:6;:22;;9902:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9989:4;:10;9994:4;9989:10;;;;;;;;;;;;;;;;;;;;;;;;;9988:11;:24;;;;;10004:4;:8;10009:2;10004:8;;;;;;;;;;;;;;;;;;;;;;;;;10003:9;9988:24;9980:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10079:13;;;;;;;;;;;10073:19;;:2;:19;;;10070:146;;10146:14;;10137:6;10121:13;10131:2;10121:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10113:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10070:146;10233:28;10264:24;10282:4;10264:9;:24::i;:::-;10233:55;;10303:12;10342:19;;10318:20;:43;;10303:58;;10406:19;;10382:20;:43;10379:138;;10482:19;;10459:42;;10379:138;10538:7;:18;;;;;10550:6;;;;;;;;;;10549:7;10538:18;:43;;;;;10568:13;;;;;;;;;;;10560:21;;:4;:21;;;;10538:43;:58;;;;;10585:11;;;;;;;;;;;10538:58;:87;;;;;10601:18;:24;10620:4;10601:24;;;;;;;;;;;;;;;;;;;;;;;;;10600:25;10538:87;:114;;;;;10630:18;:22;10649:2;10630:22;;;;;;;;;;;;;;;;;;;;;;;;;10629:23;10538:114;10534:386;;;10673:38;10690:20;10673:16;:38::i;:::-;10730:26;10759:21;10730:50;;10824:1;10803:18;:22;10799:106;;;10850:35;10863:21;10850:12;:35::i;:::-;10799:106;10654:266;10534:386;9703:1228;;9665:1266;10944:12;10959:4;10944:19;;11009:18;:24;11028:4;11009:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11037:18;:22;11056:2;11037:22;;;;;;;;;;;;;;;;;;;;;;;;;11009:50;11008:102;;;;11073:13;;;;;;;;;;;11065:21;;:4;:21;;;;:44;;;;;11096:13;;;;;;;;;;;11090:19;;:2;:19;;;;11065:44;11008:102;11004:587;;;11137:5;11127:15;;11004:587;;;11221:13;;;;;;;;;;;11213:21;;:4;:21;;;:55;;;;;11252:15;;;;;;;;;;;11238:30;;:2;:30;;;;11213:55;11210:157;;;11301:14;;11289:9;:26;;;;11344:7;;11334;:17;;;;11210:157;11427:13;;;;;;;;;;;11421:19;;:2;:19;;;:55;;;;;11460:15;;;;;;;;;;;11444:32;;:4;:32;;;;11421:55;11417:160;;;11509:15;;11497:9;:27;;;;11553:8;;11543:7;:18;;;;11417:160;11004:587;11604:41;11619:4;11625:2;11629:6;11637:7;11604:14;:41::i;:::-;9422:2231;9319:2334;;;:::o;2433:224::-;2553:7;2586:1;2581;:6;;2589:12;2573:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2613:9;2629:1;2625;:5;;;;:::i;:::-;2613:17;;2648:1;2641:8;;;2433:224;;;;;:::o;12154:109::-;12211:17;;;;;;;;;;;:26;;:34;12238:6;12211:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12154:109;:::o;8253:323::-;8348:7;8406;;8395;:18;;8373:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8494:19;8516:10;:8;:10::i;:::-;8494:32;;8544:24;8556:11;8544:7;:11;;:24;;;;:::i;:::-;8537:31;;;8253:323;;;:::o;11662:483::-;5843:4;5834:6;;:13;;;;;;;;;;;;;;;;;;11740:21:::1;11778:1;11764:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11740:40;;11809:4;11791;11796:1;11791:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11835:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11825:4;11830:1;11825:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11868:62;11885:4;11900:15;;;;;;;;;;;11918:11;11868:8;:62::i;:::-;11941:15;;;;;;;;;;;:66;;;12022:11;12048:1;12064:4;12091;12111:15;11941:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11729:416;5879:5:::0;5870:6;;:14;;;;;;;;;;;;;;;;;;11662:483;:::o;13122:282::-;13278:7;13273:28;;13287:14;:12;:14::i;:::-;13273:28;13312:44;13330:6;13338:9;13349:6;13312:17;:44::i;:::-;13372:7;13367:29;;13381:15;:13;:15::i;:::-;13367:29;13122:282;;;;:::o;16091:164::-;16133:7;16154:15;16171;16190:19;:17;:19::i;:::-;16153:56;;;;16227:20;16239:7;16227;:11;;:20;;;;:::i;:::-;16220:27;;;;16091:164;:::o;2915:132::-;2973:7;3000:39;3004:1;3007;3000:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2993:46;;2915:132;;;;:::o;8585:221::-;8645:1;8632:9;;:14;:30;;;;;8661:1;8650:7;;:12;8632:30;8664:7;8628:43;8704:9;;8684:17;:29;;;;8742:7;;8724:15;:25;;;;8775:1;8763:9;:13;;;;8797:1;8787:7;:11;;;;8585:221;:::o;13413:610::-;13560:15;13590:23;13628:12;13655:23;13693:12;13720:13;13747:19;13758:7;13747:10;:19::i;:::-;13545:221;;;;;;;;;;;;13795:28;13815:7;13795;:15;13803:6;13795:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13777:7;:15;13785:6;13777:15;;;;;;;;;;;;;;;:46;;;;13855:39;13878:15;13855:7;:18;13863:9;13855:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13834:7;:18;13842:9;13834:18;;;;;;;;;;;;;;;:60;;;;13905:16;13915:5;13905:9;:16::i;:::-;13932:23;13944:4;13950;13932:11;:23::i;:::-;13988:9;13971:44;;13980:6;13971:44;;;13999:15;13971:44;;;;;;:::i;:::-;;;;;;;;13534:489;;;;;;13413:610;;;:::o;8815:117::-;8871:17;;8859:9;:29;;;;8909:15;;8899:7;:25;;;;8815:117::o;16264:257::-;16315:7;16324;16344:15;16362:7;;16344:25;;16380:15;4716:18;16380:25;;16430:20;4716:18;16430:7;;:11;;:20;;;;:::i;:::-;16420:7;:30;16416:61;;;16460:7;;4716:18;16452:25;;;;;;;;16416:61;16496:7;16505;16488:25;;;;;;16264:257;;;:::o;3053:223::-;3173:7;3205:1;3201;:5;3208:12;3193:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3232:9;3248:1;3244;:5;;;;:::i;:::-;3232:17;;3267:1;3260:8;;;3053:223;;;;;:::o;14446:615::-;14546:7;14568;14590;14612;14634;14656;14692:23;14717:12;14731:13;14761:40;14773:7;14782:9;;14793:7;;14761:11;:40::i;:::-;14691:110;;;;;;14812:19;14834:10;:8;:10::i;:::-;14812:32;;14856:15;14873:23;14898:12;14927:46;14939:7;14948:4;14954:5;14961:11;14927;:46::i;:::-;14855:118;;;;;;14992:7;15001:15;15018:4;15024:15;15041:4;15047:5;14984:69;;;;;;;;;;;;;;;;;;;14446:615;;;;;;;:::o;2291:136::-;2349:7;2376:43;2380:1;2383;2376:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2369:50;;2291:136;;;;:::o;2106:179::-;2164:7;2184:9;2200:1;2196;:5;;;;:::i;:::-;2184:17;;2225:1;2220;:6;;2212:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2276:1;2269:8;;;2106:179;;;;:::o;14032:211::-;14085:19;14107:10;:8;:10::i;:::-;14085:32;;14128:13;14144:22;14154:11;14144:5;:9;;:22;;;;:::i;:::-;14128:38;;14202:33;14229:5;14202:7;:22;14218:4;14202:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14177:7;:22;14193:4;14177:22;;;;;;;;;;;;;;;:58;;;;14074:169;;14032:211;:::o;14252:147::-;14330:17;14342:4;14330:7;;:11;;:17;;;;:::i;:::-;14320:7;:27;;;;14371:20;14386:4;14371:10;;:14;;:20;;;;:::i;:::-;14358:10;:33;;;;14252:147;;:::o;15070:469::-;15239:7;15261;15283;15318:12;15333:30;15359:3;15333:21;15345:8;15333:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15318:45;;15374:13;15390:28;15414:3;15390:19;15402:6;15390:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15374:44;;15429:23;15455:28;15477:5;15455:17;15467:4;15455:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15429:54;;15502:15;15519:4;15525:5;15494:37;;;;;;;;;15070:469;;;;;;;:::o;15548:534::-;15742:7;15764;15786;15821:15;15839:24;15851:11;15839:7;:11;;:24;;;;:::i;:::-;15821:42;;15874:12;15889:21;15898:11;15889:4;:8;;:21;;;;:::i;:::-;15874:36;;15921:13;15937:22;15947:11;15937:5;:9;;:22;;;;:::i;:::-;15921:38;;15970:23;15996:28;16018:5;15996:17;16008:4;15996:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15970:54;;16043:7;16052:15;16069:4;16035:39;;;;;;;;;;15548:534;;;;;;;;:::o;2663:246::-;2721:7;2750:1;2745;:6;2741:47;;2775:1;2768:8;;;;2741:47;2798:9;2814:1;2810;:5;;;;:::i;:::-;2798:17;;2843:1;2838;2834;:5;;;;:::i;:::-;:10;2826:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2900:1;2893:8;;;2663:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:329::-;5790:6;5839:2;5827:9;5818:7;5814:23;5810:32;5807:119;;;5845:79;;:::i;:::-;5807:119;5965:1;5990:53;6035:7;6026:6;6015:9;6011:22;5990:53;:::i;:::-;5980:63;;5936:117;5731:329;;;;:::o;6066:86::-;6101:7;6141:4;6134:5;6130:16;6119:27;;6066:86;;;:::o;6158:112::-;6241:22;6257:5;6241:22;:::i;:::-;6236:3;6229:35;6158:112;;:::o;6276:214::-;6365:4;6403:2;6392:9;6388:18;6380:26;;6416:67;6480:1;6469:9;6465:17;6456:6;6416:67;:::i;:::-;6276:214;;;;:::o;6496:104::-;6541:7;6570:24;6588:5;6570:24;:::i;:::-;6559:35;;6496:104;;;:::o;6606:142::-;6709:32;6735:5;6709:32;:::i;:::-;6704:3;6697:45;6606:142;;:::o;6754:254::-;6863:4;6901:2;6890:9;6886:18;6878:26;;6914:87;6998:1;6987:9;6983:17;6974:6;6914:87;:::i;:::-;6754:254;;;;:::o;7014:118::-;7101:24;7119:5;7101:24;:::i;:::-;7096:3;7089:37;7014:118;;:::o;7138:222::-;7231:4;7269:2;7258:9;7254:18;7246:26;;7282:71;7350:1;7339:9;7335:17;7326:6;7282:71;:::i;:::-;7138:222;;;;:::o;7366:116::-;7436:21;7451:5;7436:21;:::i;:::-;7429:5;7426:32;7416:60;;7472:1;7469;7462:12;7416:60;7366:116;:::o;7488:133::-;7531:5;7569:6;7556:20;7547:29;;7585:30;7609:5;7585:30;:::i;:::-;7488:133;;;;:::o;7627:323::-;7683:6;7732:2;7720:9;7711:7;7707:23;7703:32;7700:119;;;7738:79;;:::i;:::-;7700:119;7858:1;7883:50;7925:7;7916:6;7905:9;7901:22;7883:50;:::i;:::-;7873:60;;7829:114;7627:323;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:117::-;10907:1;10904;10897:12;10938:568;11011:8;11021:6;11071:3;11064:4;11056:6;11052:17;11048:27;11038:122;;11079:79;;:::i;:::-;11038:122;11192:6;11179:20;11169:30;;11222:18;11214:6;11211:30;11208:117;;;11244:79;;:::i;:::-;11208:117;11358:4;11350:6;11346:17;11334:29;;11412:3;11404:4;11396:6;11392:17;11382:8;11378:32;11375:41;11372:128;;;11419:79;;:::i;:::-;11372:128;10938:568;;;;;:::o;11512:698::-;11604:6;11612;11620;11669:2;11657:9;11648:7;11644:23;11640:32;11637:119;;;11675:79;;:::i;:::-;11637:119;11823:1;11812:9;11808:17;11795:31;11853:18;11845:6;11842:30;11839:117;;;11875:79;;:::i;:::-;11839:117;11988:80;12060:7;12051:6;12040:9;12036:22;11988:80;:::i;:::-;11970:98;;;;11766:312;12117:2;12143:50;12185:7;12176:6;12165:9;12161:22;12143:50;:::i;:::-;12133:60;;12088:115;11512:698;;;;;:::o;12216:474::-;12284:6;12292;12341:2;12329:9;12320:7;12316:23;12312:32;12309:119;;;12347:79;;:::i;:::-;12309:119;12467:1;12492:53;12537:7;12528:6;12517:9;12513:22;12492:53;:::i;:::-;12482:63;;12438:117;12594:2;12620:53;12665:7;12656:6;12645:9;12641:22;12620:53;:::i;:::-;12610:63;;12565:118;12216:474;;;;;:::o;12696:::-;12764:6;12772;12821:2;12809:9;12800:7;12796:23;12792:32;12789:119;;;12827:79;;:::i;:::-;12789:119;12947:1;12972:53;13017:7;13008:6;12997:9;12993:22;12972:53;:::i;:::-;12962:63;;12918:117;13074:2;13100:53;13145:7;13136:6;13125:9;13121:22;13100:53;:::i;:::-;13090:63;;13045:118;12696:474;;;;;:::o;13176:182::-;13316:34;13312:1;13304:6;13300:14;13293:58;13176:182;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:180::-;14209:77;14206:1;14199:88;14306:4;14303:1;14296:15;14330:4;14327:1;14320:15;14347:225;14487:34;14483:1;14475:6;14471:14;14464:58;14556:8;14551:2;14543:6;14539:15;14532:33;14347:225;:::o;14578:366::-;14720:3;14741:67;14805:2;14800:3;14741:67;:::i;:::-;14734:74;;14817:93;14906:3;14817:93;:::i;:::-;14935:2;14930:3;14926:12;14919:19;;14578:366;;;:::o;14950:419::-;15116:4;15154:2;15143:9;15139:18;15131:26;;15203:9;15197:4;15193:20;15189:1;15178:9;15174:17;15167:47;15231:131;15357:4;15231:131;:::i;:::-;15223:139;;14950:419;;;:::o;15375:223::-;15515:34;15511:1;15503:6;15499:14;15492:58;15584:6;15579:2;15571:6;15567:15;15560:31;15375:223;:::o;15604:366::-;15746:3;15767:67;15831:2;15826:3;15767:67;:::i;:::-;15760:74;;15843:93;15932:3;15843:93;:::i;:::-;15961:2;15956:3;15952:12;15945:19;;15604:366;;;:::o;15976:419::-;16142:4;16180:2;16169:9;16165:18;16157:26;;16229:9;16223:4;16219:20;16215:1;16204:9;16200:17;16193:47;16257:131;16383:4;16257:131;:::i;:::-;16249:139;;15976:419;;;:::o;16401:221::-;16541:34;16537:1;16529:6;16525:14;16518:58;16610:4;16605:2;16597:6;16593:15;16586:29;16401:221;:::o;16628:366::-;16770:3;16791:67;16855:2;16850:3;16791:67;:::i;:::-;16784:74;;16867:93;16956:3;16867:93;:::i;:::-;16985:2;16980:3;16976:12;16969:19;;16628:366;;;:::o;17000:419::-;17166:4;17204:2;17193:9;17189:18;17181:26;;17253:9;17247:4;17243:20;17239:1;17228:9;17224:17;17217:47;17281:131;17407:4;17281:131;:::i;:::-;17273:139;;17000:419;;;:::o;17425:224::-;17565:34;17561:1;17553:6;17549:14;17542:58;17634:7;17629:2;17621:6;17617:15;17610:32;17425:224;:::o;17655:366::-;17797:3;17818:67;17882:2;17877:3;17818:67;:::i;:::-;17811:74;;17894:93;17983:3;17894:93;:::i;:::-;18012:2;18007:3;18003:12;17996:19;;17655:366;;;:::o;18027:419::-;18193:4;18231:2;18220:9;18216:18;18208:26;;18280:9;18274:4;18270:20;18266:1;18255:9;18251:17;18244:47;18308:131;18434:4;18308:131;:::i;:::-;18300:139;;18027:419;;;:::o;18452:222::-;18592:34;18588:1;18580:6;18576:14;18569:58;18661:5;18656:2;18648:6;18644:15;18637:30;18452:222;:::o;18680:366::-;18822:3;18843:67;18907:2;18902:3;18843:67;:::i;:::-;18836:74;;18919:93;19008:3;18919:93;:::i;:::-;19037:2;19032:3;19028:12;19021:19;;18680:366;;;:::o;19052:419::-;19218:4;19256:2;19245:9;19241:18;19233:26;;19305:9;19299:4;19295:20;19291:1;19280:9;19276:17;19269:47;19333:131;19459:4;19333:131;:::i;:::-;19325:139;;19052:419;;;:::o;19477:228::-;19617:34;19613:1;19605:6;19601:14;19594:58;19686:11;19681:2;19673:6;19669:15;19662:36;19477:228;:::o;19711:366::-;19853:3;19874:67;19938:2;19933:3;19874:67;:::i;:::-;19867:74;;19950:93;20039:3;19950:93;:::i;:::-;20068:2;20063:3;20059:12;20052:19;;19711:366;;;:::o;20083:419::-;20249:4;20287:2;20276:9;20272:18;20264:26;;20336:9;20330:4;20326:20;20322:1;20311:9;20307:17;20300:47;20364:131;20490:4;20364:131;:::i;:::-;20356:139;;20083:419;;;:::o;20508:237::-;20648:34;20644:1;20636:6;20632:14;20625:58;20717:20;20712:2;20704:6;20700:15;20693:45;20508:237;:::o;20751:366::-;20893:3;20914:67;20978:2;20973:3;20914:67;:::i;:::-;20907:74;;20990:93;21079:3;20990:93;:::i;:::-;21108:2;21103:3;21099:12;21092:19;;20751:366;;;:::o;21123:419::-;21289:4;21327:2;21316:9;21312:18;21304:26;;21376:9;21370:4;21366:20;21362:1;21351:9;21347:17;21340:47;21404:131;21530:4;21404:131;:::i;:::-;21396:139;;21123:419;;;:::o;21548:178::-;21688:30;21684:1;21676:6;21672:14;21665:54;21548:178;:::o;21732:366::-;21874:3;21895:67;21959:2;21954:3;21895:67;:::i;:::-;21888:74;;21971:93;22060:3;21971:93;:::i;:::-;22089:2;22084:3;22080:12;22073:19;;21732:366;;;:::o;22104:419::-;22270:4;22308:2;22297:9;22293:18;22285:26;;22357:9;22351:4;22347:20;22343:1;22332:9;22328:17;22321:47;22385:131;22511:4;22385:131;:::i;:::-;22377:139;;22104:419;;;:::o;22529:222::-;22669:34;22665:1;22657:6;22653:14;22646:58;22738:5;22733:2;22725:6;22721:15;22714:30;22529:222;:::o;22757:366::-;22899:3;22920:67;22984:2;22979:3;22920:67;:::i;:::-;22913:74;;22996:93;23085:3;22996:93;:::i;:::-;23114:2;23109:3;23105:12;23098:19;;22757:366;;;:::o;23129:419::-;23295:4;23333:2;23322:9;23318:18;23310:26;;23382:9;23376:4;23372:20;23368:1;23357:9;23353:17;23346:47;23410:131;23536:4;23410:131;:::i;:::-;23402:139;;23129:419;;;:::o;23554:180::-;23602:77;23599:1;23592:88;23699:4;23696:1;23689:15;23723:4;23720:1;23713:15;23740:191;23780:3;23799:20;23817:1;23799:20;:::i;:::-;23794:25;;23833:20;23851:1;23833:20;:::i;:::-;23828:25;;23876:1;23873;23869:9;23862:16;;23897:3;23894:1;23891:10;23888:36;;;23904:18;;:::i;:::-;23888:36;23740:191;;;;:::o;23937:222::-;24077:34;24073:1;24065:6;24061:14;24054:58;24146:5;24141:2;24133:6;24129:15;24122:30;23937:222;:::o;24165:366::-;24307:3;24328:67;24392:2;24387:3;24328:67;:::i;:::-;24321:74;;24404:93;24493:3;24404:93;:::i;:::-;24522:2;24517:3;24513:12;24506:19;;24165:366;;;:::o;24537:419::-;24703:4;24741:2;24730:9;24726:18;24718:26;;24790:9;24784:4;24780:20;24776:1;24765:9;24761:17;24754:47;24818:131;24944:4;24818:131;:::i;:::-;24810:139;;24537:419;;;:::o;24962:194::-;25002:4;25022:20;25040:1;25022:20;:::i;:::-;25017:25;;25056:20;25074:1;25056:20;:::i;:::-;25051:25;;25100:1;25097;25093:9;25085:17;;25124:1;25118:4;25115:11;25112:37;;;25129:18;;:::i;:::-;25112:37;24962:194;;;;:::o;25162:229::-;25302:34;25298:1;25290:6;25286:14;25279:58;25371:12;25366:2;25358:6;25354:15;25347:37;25162:229;:::o;25397:366::-;25539:3;25560:67;25624:2;25619:3;25560:67;:::i;:::-;25553:74;;25636:93;25725:3;25636:93;:::i;:::-;25754:2;25749:3;25745:12;25738:19;;25397:366;;;:::o;25769:419::-;25935:4;25973:2;25962:9;25958:18;25950:26;;26022:9;26016:4;26012:20;26008:1;25997:9;25993:17;25986:47;26050:131;26176:4;26050:131;:::i;:::-;26042:139;;25769:419;;;:::o;26194:143::-;26251:5;26282:6;26276:13;26267:22;;26298:33;26325:5;26298:33;:::i;:::-;26194:143;;;;:::o;26343:351::-;26413:6;26462:2;26450:9;26441:7;26437:23;26433:32;26430:119;;;26468:79;;:::i;:::-;26430:119;26588:1;26613:64;26669:7;26660:6;26649:9;26645:22;26613:64;:::i;:::-;26603:74;;26559:128;26343:351;;;;:::o;26700:85::-;26745:7;26774:5;26763:16;;26700:85;;;:::o;26791:158::-;26849:9;26882:61;26900:42;26909:32;26935:5;26909:32;:::i;:::-;26900:42;:::i;:::-;26882:61;:::i;:::-;26869:74;;26791:158;;;:::o;26955:147::-;27050:45;27089:5;27050:45;:::i;:::-;27045:3;27038:58;26955:147;;:::o;27108:114::-;27175:6;27209:5;27203:12;27193:22;;27108:114;;;:::o;27228:184::-;27327:11;27361:6;27356:3;27349:19;27401:4;27396:3;27392:14;27377:29;;27228:184;;;;:::o;27418:132::-;27485:4;27508:3;27500:11;;27538:4;27533:3;27529:14;27521:22;;27418:132;;;:::o;27556:108::-;27633:24;27651:5;27633:24;:::i;:::-;27628:3;27621:37;27556:108;;:::o;27670:179::-;27739:10;27760:46;27802:3;27794:6;27760:46;:::i;:::-;27838:4;27833:3;27829:14;27815:28;;27670:179;;;;:::o;27855:113::-;27925:4;27957;27952:3;27948:14;27940:22;;27855:113;;;:::o;28004:732::-;28123:3;28152:54;28200:5;28152:54;:::i;:::-;28222:86;28301:6;28296:3;28222:86;:::i;:::-;28215:93;;28332:56;28382:5;28332:56;:::i;:::-;28411:7;28442:1;28427:284;28452:6;28449:1;28446:13;28427:284;;;28528:6;28522:13;28555:63;28614:3;28599:13;28555:63;:::i;:::-;28548:70;;28641:60;28694:6;28641:60;:::i;:::-;28631:70;;28487:224;28474:1;28471;28467:9;28462:14;;28427:284;;;28431:14;28727:3;28720:10;;28128:608;;;28004:732;;;;:::o;28742:831::-;29005:4;29043:3;29032:9;29028:19;29020:27;;29057:71;29125:1;29114:9;29110:17;29101:6;29057:71;:::i;:::-;29138:80;29214:2;29203:9;29199:18;29190:6;29138:80;:::i;:::-;29265:9;29259:4;29255:20;29250:2;29239:9;29235:18;29228:48;29293:108;29396:4;29387:6;29293:108;:::i;:::-;29285:116;;29411:72;29479:2;29468:9;29464:18;29455:6;29411:72;:::i;:::-;29493:73;29561:3;29550:9;29546:19;29537:6;29493:73;:::i;:::-;28742:831;;;;;;;;:::o;29579:180::-;29627:77;29624:1;29617:88;29724:4;29721:1;29714:15;29748:4;29745:1;29738:15;29765:185;29805:1;29822:20;29840:1;29822:20;:::i;:::-;29817:25;;29856:20;29874:1;29856:20;:::i;:::-;29851:25;;29895:1;29885:35;;29900:18;;:::i;:::-;29885:35;29942:1;29939;29935:9;29930:14;;29765:185;;;;:::o;29956:177::-;30096:29;30092:1;30084:6;30080:14;30073:53;29956:177;:::o;30139:366::-;30281:3;30302:67;30366:2;30361:3;30302:67;:::i;:::-;30295:74;;30378:93;30467:3;30378:93;:::i;:::-;30496:2;30491:3;30487:12;30480:19;;30139:366;;;:::o;30511:419::-;30677:4;30715:2;30704:9;30700:18;30692:26;;30764:9;30758:4;30754:20;30750:1;30739:9;30735:17;30728:47;30792:131;30918:4;30792:131;:::i;:::-;30784:139;;30511:419;;;:::o;30936:410::-;30976:7;30999:20;31017:1;30999:20;:::i;:::-;30994:25;;31033:20;31051:1;31033:20;:::i;:::-;31028:25;;31088:1;31085;31081:9;31110:30;31128:11;31110:30;:::i;:::-;31099:41;;31289:1;31280:7;31276:15;31273:1;31270:22;31250:1;31243:9;31223:83;31200:139;;31319:18;;:::i;:::-;31200:139;30984:362;30936:410;;;;:::o;31352:220::-;31492:34;31488:1;31480:6;31476:14;31469:58;31561:3;31556:2;31548:6;31544:15;31537:28;31352:220;:::o;31578:366::-;31720:3;31741:67;31805:2;31800:3;31741:67;:::i;:::-;31734:74;;31817:93;31906:3;31817:93;:::i;:::-;31935:2;31930:3;31926:12;31919:19;;31578:366;;;:::o;31950:419::-;32116:4;32154:2;32143:9;32139:18;32131:26;;32203:9;32197:4;32193:20;32189:1;32178:9;32174:17;32167:47;32231:131;32357:4;32231:131;:::i;:::-;32223:139;;31950:419;;;:::o

Swarm Source

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