ETH Price: $2,640.61 (-0.01%)

Token

FightTheBear (FIGHT)
 

Overview

Max Total Supply

1,000,000 FIGHT

Holders

16

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,170.37106638 FIGHT

Value
$0.00
0x455085F40683d82BA99Eef8ED552b1AC64367e1C
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:
FightTheBear

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-06-27
*/

/*

Fight The Bear

No Tax - Renounced


*/



// SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract FightTheBear is Context, IERC20, Ownable { ////
    mapping (address => uint) private _owned;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => User) private cooldown;
    mapping (address => bool) private _isBot;
    uint private constant _totalSupply = 1e6 * 10**9;

    string public constant name = unicode"FightTheBear"; ////
    string public constant symbol = unicode"FIGHT"; ////
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable private _MarketingWallet;
    address payable private _DevWallet;
    
    address public uniswapV2Pair;
    uint public _buyFee = 0;
    uint public _sellFee = 0;
    uint public _feeRate = 9;
    uint public _maxBuyAmount;
    uint public _maxHeldTokens;
    uint public _launchedAt;
    bool private _tradingOpen;
    bool private _inSwap;
    bool public _useImpactFeeSetter = true;

    struct User {
        uint buy;
        bool exists;
    }

    event FeeMultiplierUpdated(uint _multiplier);
    event ImpactFeeSetterUpdated(bool _usefeesetter);
    event FeeRateUpdated(uint _rate);
    event FeesUpdated(uint _buy, uint _sell);
    event MarketingWalletUpdated(address _MarketingWallet);
    event DevWalletUpdated(address _DevWallet);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable MarketingWallet, address payable DevWallet) {
        _MarketingWallet = MarketingWallet;
        _DevWallet = DevWallet;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[DevWallet] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    function balanceOf(address account) public view override returns (uint) {
        return _owned[account];
    }
    function transfer(address recipient, uint amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function totalSupply() public pure override returns (uint) {
        return _totalSupply;
    }

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

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

    function transferFrom(address sender, address recipient, uint amount) public override returns (bool) {
        if(_tradingOpen && !_isExcludedFromFee[recipient] && sender == uniswapV2Pair){
            require (recipient == tx.origin, "pls no bot");
        }
        _transfer(sender, recipient, amount);
        uint allowedAmount = _allowances[sender][_msgSender()] - amount;
        _approve(sender, _msgSender(), allowedAmount);
        return true;
    }

    function _approve(address owner, address spender, uint 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, uint 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");
        require(!_isBot[from], "ERC20: transfer from frozen wallet.");

        bool isBuy = false;
        if(from != owner() && to != owner()) {
            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(_tradingOpen, "Trading not yet enabled.");
                require(block.timestamp != _launchedAt, "pls no snip");
                if((_launchedAt + (1 hours)) > block.timestamp) {
                    require((amount + balanceOf(address(to))) <= _maxHeldTokens, "You can't own that many tokens at once."); // 5%
                }
                if(!cooldown[to].exists) {
                    cooldown[to] = User(0,true);
                }
                if((_launchedAt + (300 seconds)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "Exceeds maximum buy amount.");
                    require(cooldown[to].buy < block.timestamp + (15 seconds), "Your buy cooldown has not expired.");
                }
                cooldown[to].buy = block.timestamp;
                isBuy = true;
            }
            // sell
            if(!_inSwap && _tradingOpen && from != uniswapV2Pair) {
                require(cooldown[from].buy < block.timestamp + (15 seconds), "Your sell cooldown has not expired.");
                uint contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > 0) {
                    if(_useImpactFeeSetter) {
                        if(contractTokenBalance > (balanceOf(uniswapV2Pair) * _feeRate) / 100) {
                            contractTokenBalance = (balanceOf(uniswapV2Pair) * _feeRate) / 100;
                        }
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                isBuy = false;
            }
        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        _tokenTransfer(from,to,amount,takeFee,isBuy);
    }

    function swapTokensForEth(uint 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(uint amount) private {
        _MarketingWallet.transfer(amount / 2);
        _DevWallet.transfer(amount / 2);
    }
    
    function _tokenTransfer(address sender, address recipient, uint amount, bool takefee, bool buy) private {
        (uint fee) = _getFee(takefee, buy);
        _transferStandard(sender, recipient, amount, fee);
    }

    function _getFee(bool takefee, bool buy) private view returns (uint) {
        uint fee = 0;
        if(takefee) {
            if(buy) {
                fee = _buyFee;
            } else {
                fee = _sellFee;
                if(block.timestamp < _launchedAt + (15 minutes)) {
                    fee += 5;
                }
            }
        }
        return fee;
    }

    function _transferStandard(address sender, address recipient, uint amount, uint fee) private {
        (uint transferAmount, uint team) = _getValues(amount, fee);
        _owned[sender] = _owned[sender] - amount;
        _owned[recipient] = _owned[recipient] + transferAmount; 
        _takeTeam(team);
        emit Transfer(sender, recipient, transferAmount);
    }

    function _getValues(uint amount, uint teamFee) private pure returns (uint, uint) {
        uint team = (amount * teamFee) / 100;
        uint transferAmount = amount - team;
        return (transferAmount, team);
    }

    function _takeTeam(uint team) private {
        _owned[address(this)] = _owned[address(this)] + team;
    }

    receive() external payable {}
    
    // external functions
    function addLiquidity() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        _tradingOpen = true;
        _launchedAt = block.timestamp;
        _maxBuyAmount = 1000000 * 10**9; 
        _maxHeldTokens = 1000000 * 10**9; 
    }

    function manualswap() external {
        require(_msgSender() == _MarketingWallet);
        uint contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _MarketingWallet);
        uint contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setFeeRate(uint rate)  external onlyOwner() {
        require(_msgSender() == _MarketingWallet);
        require(rate > 0, "Rate can't be zero");
        // 100% is the common fee rate
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setFees(uint buy, uint sell)  external {
        require(_msgSender() == _MarketingWallet);
        require(buy <= 10);
        require(sell  <= 10);
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

    function Multicall(address[] memory bots_) external {
        require(_msgSender() == _MarketingWallet);
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _isBot[bots_[i]] = true;
            }
        }
    }

     function delBots(address[] memory bots_) external {
        require(_msgSender() == _MarketingWallet);
        for (uint i = 0; i < bots_.length; i++) {
            _isBot[bots_[i]] = false;
        }
    }
    
    function isBot(address ad) public view returns (bool) {
        return _isBot[ad];
    }


    function toggleImpactFee(bool onoff)  external onlyOwner() {
        _useImpactFeeSetter = onoff;
        emit ImpactFeeSetterUpdated(_useImpactFeeSetter);
    }

    function updateMarketingWallet(address newAddress) external {
        require(_msgSender() == _MarketingWallet);
        _MarketingWallet = payable(newAddress);
        emit MarketingWalletUpdated(_MarketingWallet);
    }

    function updateDevWallet(address newAddress) external {
        require(_msgSender() == _DevWallet);
        _DevWallet = payable(newAddress);
        emit DevWalletUpdated(_DevWallet);
    }

    // view functions
    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"MarketingWallet","type":"address"},{"internalType":"address payable","name":"DevWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_DevWallet","type":"address"}],"name":"DevWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_usefeesetter","type":"bool"}],"name":"ImpactFeeSetterUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_MarketingWallet","type":"address"}],"name":"MarketingWalletUpdated","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":"bots_","type":"address[]"}],"name":"Multicall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHeldTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useImpactFeeSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleImpactFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600b556000600c556009600d556001601160026101000a81548160ff0219169083151502179055503480156200003b57600080fd5b50604051620045a5380380620045a583398181016040528101906200006191906200045f565b600062000073620003c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c68000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001f4620003cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620003b49190620004c1565b60405180910390a35050620004de565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042782620003fa565b9050919050565b62000439816200041a565b81146200044557600080fd5b50565b60008151905062000459816200042e565b92915050565b60008060408385031215620004795762000478620003f5565b5b6000620004898582860162000448565b92505060206200049c8582860162000448565b9150509250929050565b6000819050919050565b620004bb81620004a6565b82525050565b6000602082019050620004d86000830184620004b0565b92915050565b6140b780620004ee6000396000f3fe6080604052600436106101f25760003560e01c8063590f897e1161010d578063a9059cbb116100a0578063c9567bf91161006f578063c9567bf9146106c4578063db92dbb6146106db578063dcb0e0ad14610706578063dd62ed3e1461072f578063e8078d941461076c576101f9565b8063a9059cbb1461061c578063aacebbe314610659578063b2131f7d14610682578063c3c8cd80146106ad576101f9565b80637a49cddb116100dc5780637a49cddb146105725780638da5cb5b1461059b57806394b8d8f2146105c657806395d89b41146105f1576101f9565b8063590f897e146104dc5780636fc3eaec1461050757806370a082311461051e578063715018a61461055b576101f9565b806327f3a72a116101855780633bbac579116101545780633bbac5791461042057806340b9a54b1461045d57806345596e2e1461048857806349bd5a5e146104b1576101f9565b806327f3a72a14610376578063313ce567146103a157806331c2d847146103cc57806332d873d8146103f5576101f9565b806318160ddd116101c157806318160ddd146102ba5780631816467f146102e55780631940d0201461030e57806323b872dd14610339576101f9565b80630492f055146101fe57806306fdde0314610229578063095ea7b3146102545780630b78f9c014610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610783565b6040516102209190612d8a565b60405180910390f35b34801561023557600080fd5b5061023e610789565b60405161024b9190612e3e565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612efe565b6107c2565b6040516102889190612f59565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190612f74565b6107e0565b005b3480156102c657600080fd5b506102cf6108ac565b6040516102dc9190612d8a565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612fb4565b6108bb565b005b34801561031a57600080fd5b506103236109b9565b6040516103309190612d8a565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612fe1565b6109bf565b60405161036d9190612f59565b60405180910390f35b34801561038257600080fd5b5061038b610bb0565b6040516103989190612d8a565b60405180910390f35b3480156103ad57600080fd5b506103b6610bc0565b6040516103c39190613050565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee91906131b3565b610bc5565b005b34801561040157600080fd5b5061040a610cbb565b6040516104179190612d8a565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612fb4565b610cc1565b6040516104549190612f59565b60405180910390f35b34801561046957600080fd5b50610472610d17565b60405161047f9190612d8a565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906131fc565b610d1d565b005b3480156104bd57600080fd5b506104c6610e99565b6040516104d39190613238565b60405180910390f35b3480156104e857600080fd5b506104f1610ebf565b6040516104fe9190612d8a565b60405180910390f35b34801561051357600080fd5b5061051c610ec5565b005b34801561052a57600080fd5b5061054560048036038101906105409190612fb4565b610f37565b6040516105529190612d8a565b60405180910390f35b34801561056757600080fd5b50610570610f80565b005b34801561057e57600080fd5b50610599600480360381019061059491906131b3565b6110d3565b005b3480156105a757600080fd5b506105b06112af565b6040516105bd9190613238565b60405180910390f35b3480156105d257600080fd5b506105db6112d8565b6040516105e89190612f59565b60405180910390f35b3480156105fd57600080fd5b506106066112eb565b6040516106139190612e3e565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e9190612efe565b611324565b6040516106509190612f59565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190612fb4565b611342565b005b34801561068e57600080fd5b50610697611440565b6040516106a49190612d8a565b60405180910390f35b3480156106b957600080fd5b506106c2611446565b005b3480156106d057600080fd5b506106d96114c0565b005b3480156106e757600080fd5b506106f06115e5565b6040516106fd9190612d8a565b60405180910390f35b34801561071257600080fd5b5061072d6004803603810190610728919061327f565b611617565b005b34801561073b57600080fd5b50610756600480360381019061075191906132ac565b61170f565b6040516107639190612d8a565b60405180910390f35b34801561077857600080fd5b50610781611796565b005b600e5481565b6040518060400160405280600c81526020017f466967687454686542656172000000000000000000000000000000000000000081525081565b60006107d66107cf611c45565b8484611c4d565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610821611c45565b73ffffffffffffffffffffffffffffffffffffffff161461084157600080fd5b600a82111561084f57600080fd5b600a81111561085d57600080fd5b81600b8190555080600c819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600b54600c546040516108a09291906132ec565b60405180910390a15050565b600066038d7ea4c68000905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c45565b73ffffffffffffffffffffffffffffffffffffffff161461091c57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f31bb1993faff4f8409d7baad771f861e093ef4ce2c92c6e0cb10b82d1c7324cb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516109ae9190613374565b60405180910390a150565b600f5481565b6000601160009054906101000a900460ff168015610a275750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a805750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610af4573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea906133db565b60405180910390fd5b5b610aff848484611e16565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b4b611c45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b90919061342a565b9050610ba485610b9e611c45565b83611c4d565b60019150509392505050565b6000610bbb30610f37565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c06611c45565b73ffffffffffffffffffffffffffffffffffffffff1614610c2657600080fd5b60005b8151811015610cb757600060066000848481518110610c4b57610c4a61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610caf9061348d565b915050610c29565b5050565b60105481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b610d25611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da990613521565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df3611c45565b73ffffffffffffffffffffffffffffffffffffffff1614610e1357600080fd5b60008111610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061358d565b60405180910390fd5b80600d819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600d54604051610e8e9190612d8a565b60405180910390a150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f06611c45565b73ffffffffffffffffffffffffffffffffffffffff1614610f2657600080fd5b6000479050610f3481612722565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f88611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613521565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611114611c45565b73ffffffffffffffffffffffffffffffffffffffff161461113457600080fd5b60005b81518110156112ab57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061118c5761118b61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112205750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106111ff576111fe61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156112985760016006600084848151811061123e5761123d61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806112a39061348d565b915050611137565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160029054906101000a900460ff1681565b6040518060400160405280600581526020017f464947485400000000000000000000000000000000000000000000000000000081525081565b6000611338611331611c45565b8484611e16565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611383611c45565b73ffffffffffffffffffffffffffffffffffffffff16146113a357600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e7600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516114359190613374565b60405180910390a150565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611487611c45565b73ffffffffffffffffffffffffffffffffffffffff16146114a757600080fd5b60006114b230610f37565b90506114bd8161280f565b50565b6114c8611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90613521565b60405180910390fd5b601160009054906101000a900460ff16156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906135f9565b60405180910390fd5b6001601160006101000a81548160ff0219169083151502179055504260108190555066038d7ea4c68000600e8190555066038d7ea4c68000600f81905550565b6000611612600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f37565b905090565b61161f611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390613521565b60405180910390fd5b80601160026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601160029054906101000a900460ff166040516117049190612f59565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61179e611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613521565b60405180910390fd5b601160009054906101000a900460ff161561187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906135f9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061190930600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c68000611c4d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611978919061362e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a03919061362e565b6040518363ffffffff1660e01b8152600401611a2092919061365b565b6020604051808303816000875af1158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a63919061362e565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611aec30610f37565b600080611af76112af565b426040518863ffffffff1660e01b8152600401611b19969594939291906136bf565b60606040518083038185885af1158015611b37573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b5c9190613735565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611bfe929190613788565b6020604051808303816000875af1158015611c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4191906137c6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb390613865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d22906138f7565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e099190612d8a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90613989565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613a1b565b60405180910390fd5b60008111611f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2e90613aad565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb90613b3f565b60405180910390fd5b6000611fce6112af565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561203c575061200c6112af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561265d57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120ec5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561245d57601160009054906101000a900460ff16612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218d90613bab565b60405180910390fd5b60105442036121da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d190613c17565b60405180910390fd5b42610e106010546121eb9190613c37565b111561224a57600f546121fd84610f37565b836122089190613c37565b1115612249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224090613cff565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166123245760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b4261012c6010546123359190613c37565b111561241157600e54821115612380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237790613d6b565b60405180910390fd5b600f4261238d9190613c37565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240790613dfd565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601160019054906101000a900460ff161580156124865750601160009054906101000a900460ff165b80156124e05750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561265c57600f426124f29190613c37565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256c90613e8f565b60405180910390fd5b600061258030610f37565b9050600081111561263d57601160029054906101000a900460ff1615612633576064600d546125d0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f37565b6125da9190613eaf565b6125e49190613f38565b811115612632576064600d5461261b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f37565b6126259190613eaf565b61262f9190613f38565b90505b5b61263c8161280f565b5b600047905060008111156126555761265447612722565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127045750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561270e57600090505b61271b8585858486612a88565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361276b9190613f38565b9081150290604051600060405180830381858888f19350505050158015612796573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836127e09190613f38565b9081150290604051600060405180830381858888f1935050505015801561280b573d6000803e3d6000fd5b5050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561284757612846613070565b5b6040519080825280602002602001820160405280156128755781602001602082028036833780820191505090505b509050308160008151811061288d5761288c61345e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612934573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612958919061362e565b8160018151811061296c5761296b61345e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129d330600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a37959493929190614027565b600060405180830381600087803b158015612a5157600080fd5b505af1158015612a65573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6000612a948383612aaa565b9050612aa286868684612aff565b505050505050565b600080600090508315612af5578215612ac757600b549050612af4565b600c549050610384601054612adc9190613c37565b421015612af357600581612af09190613c37565b90505b5b5b8091505092915050565b600080612b0c8484612ca2565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5b919061342a565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be99190613c37565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3581612ce0565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c929190612d8a565b60405180910390a3505050505050565b600080600060648486612cb59190613eaf565b612cbf9190613f38565b905060008186612ccf919061342a565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2b9190613c37565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612d8481612d71565b82525050565b6000602082019050612d9f6000830184612d7b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ddf578082015181840152602081019050612dc4565b83811115612dee576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e1082612da5565b612e1a8185612db0565b9350612e2a818560208601612dc1565b612e3381612df4565b840191505092915050565b60006020820190508181036000830152612e588184612e05565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9f82612e74565b9050919050565b612eaf81612e94565b8114612eba57600080fd5b50565b600081359050612ecc81612ea6565b92915050565b612edb81612d71565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b60008060408385031215612f1557612f14612e6a565b5b6000612f2385828601612ebd565b9250506020612f3485828601612ee9565b9150509250929050565b60008115159050919050565b612f5381612f3e565b82525050565b6000602082019050612f6e6000830184612f4a565b92915050565b60008060408385031215612f8b57612f8a612e6a565b5b6000612f9985828601612ee9565b9250506020612faa85828601612ee9565b9150509250929050565b600060208284031215612fca57612fc9612e6a565b5b6000612fd884828501612ebd565b91505092915050565b600080600060608486031215612ffa57612ff9612e6a565b5b600061300886828701612ebd565b935050602061301986828701612ebd565b925050604061302a86828701612ee9565b9150509250925092565b600060ff82169050919050565b61304a81613034565b82525050565b60006020820190506130656000830184613041565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130a882612df4565b810181811067ffffffffffffffff821117156130c7576130c6613070565b5b80604052505050565b60006130da612e60565b90506130e6828261309f565b919050565b600067ffffffffffffffff82111561310657613105613070565b5b602082029050602081019050919050565b600080fd5b600061312f61312a846130eb565b6130d0565b9050808382526020820190506020840283018581111561315257613151613117565b5b835b8181101561317b57806131678882612ebd565b845260208401935050602081019050613154565b5050509392505050565b600082601f83011261319a5761319961306b565b5b81356131aa84826020860161311c565b91505092915050565b6000602082840312156131c9576131c8612e6a565b5b600082013567ffffffffffffffff8111156131e7576131e6612e6f565b5b6131f384828501613185565b91505092915050565b60006020828403121561321257613211612e6a565b5b600061322084828501612ee9565b91505092915050565b61323281612e94565b82525050565b600060208201905061324d6000830184613229565b92915050565b61325c81612f3e565b811461326757600080fd5b50565b60008135905061327981613253565b92915050565b60006020828403121561329557613294612e6a565b5b60006132a38482850161326a565b91505092915050565b600080604083850312156132c3576132c2612e6a565b5b60006132d185828601612ebd565b92505060206132e285828601612ebd565b9150509250929050565b60006040820190506133016000830185612d7b565b61330e6020830184612d7b565b9392505050565b6000819050919050565b600061333a61333561333084612e74565b613315565b612e74565b9050919050565b600061334c8261331f565b9050919050565b600061335e82613341565b9050919050565b61336e81613353565b82525050565b60006020820190506133896000830184613365565b92915050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b60006133c5600a83612db0565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061343582612d71565b915061344083612d71565b925082821015613453576134526133fb565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061349882612d71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134ca576134c96133fb565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061350b602083612db0565b9150613516826134d5565b602082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000613577601283612db0565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006135e3601783612db0565b91506135ee826135ad565b602082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b60008151905061362881612ea6565b92915050565b60006020828403121561364457613643612e6a565b5b600061365284828501613619565b91505092915050565b60006040820190506136706000830185613229565b61367d6020830184613229565b9392505050565b6000819050919050565b60006136a96136a461369f84613684565b613315565b612d71565b9050919050565b6136b98161368e565b82525050565b600060c0820190506136d46000830189613229565b6136e16020830188612d7b565b6136ee60408301876136b0565b6136fb60608301866136b0565b6137086080830185613229565b61371560a0830184612d7b565b979650505050505050565b60008151905061372f81612ed2565b92915050565b60008060006060848603121561374e5761374d612e6a565b5b600061375c86828701613720565b935050602061376d86828701613720565b925050604061377e86828701613720565b9150509250925092565b600060408201905061379d6000830185613229565b6137aa6020830184612d7b565b9392505050565b6000815190506137c081613253565b92915050565b6000602082840312156137dc576137db612e6a565b5b60006137ea848285016137b1565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061384f602483612db0565b915061385a826137f3565b604082019050919050565b6000602082019050818103600083015261387e81613842565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138e1602283612db0565b91506138ec82613885565b604082019050919050565b60006020820190508181036000830152613910816138d4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613973602583612db0565b915061397e82613917565b604082019050919050565b600060208201905081810360008301526139a281613966565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a05602383612db0565b9150613a10826139a9565b604082019050919050565b60006020820190508181036000830152613a34816139f8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a97602983612db0565b9150613aa282613a3b565b604082019050919050565b60006020820190508181036000830152613ac681613a8a565b9050919050565b7f45524332303a207472616e736665722066726f6d2066726f7a656e2077616c6c60008201527f65742e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613b29602383612db0565b9150613b3482613acd565b604082019050919050565b60006020820190508181036000830152613b5881613b1c565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613b95601883612db0565b9150613ba082613b5f565b602082019050919050565b60006020820190508181036000830152613bc481613b88565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b6000613c01600b83612db0565b9150613c0c82613bcb565b602082019050919050565b60006020820190508181036000830152613c3081613bf4565b9050919050565b6000613c4282612d71565b9150613c4d83612d71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c8257613c816133fb565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b6000613ce9602783612db0565b9150613cf482613c8d565b604082019050919050565b60006020820190508181036000830152613d1881613cdc565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613d55601b83612db0565b9150613d6082613d1f565b602082019050919050565b60006020820190508181036000830152613d8481613d48565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613de7602283612db0565b9150613df282613d8b565b604082019050919050565b60006020820190508181036000830152613e1681613dda565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613e79602383612db0565b9150613e8482613e1d565b604082019050919050565b60006020820190508181036000830152613ea881613e6c565b9050919050565b6000613eba82612d71565b9150613ec583612d71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613efe57613efd6133fb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f4382612d71565b9150613f4e83612d71565b925082613f5e57613f5d613f09565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9e81612e94565b82525050565b6000613fb08383613f95565b60208301905092915050565b6000602082019050919050565b6000613fd482613f69565b613fde8185613f74565b9350613fe983613f85565b8060005b8381101561401a5781516140018882613fa4565b975061400c83613fbc565b925050600181019050613fed565b5085935050505092915050565b600060a08201905061403c6000830188612d7b565b61404960208301876136b0565b818103604083015261405b8186613fc9565b905061406a6060830185613229565b6140776080830184612d7b565b969550505050505056fea26469706673582212202aaffd93c9c7f83663d2e5998fb9943bd01cfb18de72f6b5de116355ab4ef0f764736f6c634300080d003300000000000000000000000088dd822e73c6ec6bef1bf48db365ef0464e40a2300000000000000000000000088dd822e73c6ec6bef1bf48db365ef0464e40a23

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063590f897e1161010d578063a9059cbb116100a0578063c9567bf91161006f578063c9567bf9146106c4578063db92dbb6146106db578063dcb0e0ad14610706578063dd62ed3e1461072f578063e8078d941461076c576101f9565b8063a9059cbb1461061c578063aacebbe314610659578063b2131f7d14610682578063c3c8cd80146106ad576101f9565b80637a49cddb116100dc5780637a49cddb146105725780638da5cb5b1461059b57806394b8d8f2146105c657806395d89b41146105f1576101f9565b8063590f897e146104dc5780636fc3eaec1461050757806370a082311461051e578063715018a61461055b576101f9565b806327f3a72a116101855780633bbac579116101545780633bbac5791461042057806340b9a54b1461045d57806345596e2e1461048857806349bd5a5e146104b1576101f9565b806327f3a72a14610376578063313ce567146103a157806331c2d847146103cc57806332d873d8146103f5576101f9565b806318160ddd116101c157806318160ddd146102ba5780631816467f146102e55780631940d0201461030e57806323b872dd14610339576101f9565b80630492f055146101fe57806306fdde0314610229578063095ea7b3146102545780630b78f9c014610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610783565b6040516102209190612d8a565b60405180910390f35b34801561023557600080fd5b5061023e610789565b60405161024b9190612e3e565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612efe565b6107c2565b6040516102889190612f59565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190612f74565b6107e0565b005b3480156102c657600080fd5b506102cf6108ac565b6040516102dc9190612d8a565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612fb4565b6108bb565b005b34801561031a57600080fd5b506103236109b9565b6040516103309190612d8a565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612fe1565b6109bf565b60405161036d9190612f59565b60405180910390f35b34801561038257600080fd5b5061038b610bb0565b6040516103989190612d8a565b60405180910390f35b3480156103ad57600080fd5b506103b6610bc0565b6040516103c39190613050565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee91906131b3565b610bc5565b005b34801561040157600080fd5b5061040a610cbb565b6040516104179190612d8a565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612fb4565b610cc1565b6040516104549190612f59565b60405180910390f35b34801561046957600080fd5b50610472610d17565b60405161047f9190612d8a565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906131fc565b610d1d565b005b3480156104bd57600080fd5b506104c6610e99565b6040516104d39190613238565b60405180910390f35b3480156104e857600080fd5b506104f1610ebf565b6040516104fe9190612d8a565b60405180910390f35b34801561051357600080fd5b5061051c610ec5565b005b34801561052a57600080fd5b5061054560048036038101906105409190612fb4565b610f37565b6040516105529190612d8a565b60405180910390f35b34801561056757600080fd5b50610570610f80565b005b34801561057e57600080fd5b50610599600480360381019061059491906131b3565b6110d3565b005b3480156105a757600080fd5b506105b06112af565b6040516105bd9190613238565b60405180910390f35b3480156105d257600080fd5b506105db6112d8565b6040516105e89190612f59565b60405180910390f35b3480156105fd57600080fd5b506106066112eb565b6040516106139190612e3e565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e9190612efe565b611324565b6040516106509190612f59565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190612fb4565b611342565b005b34801561068e57600080fd5b50610697611440565b6040516106a49190612d8a565b60405180910390f35b3480156106b957600080fd5b506106c2611446565b005b3480156106d057600080fd5b506106d96114c0565b005b3480156106e757600080fd5b506106f06115e5565b6040516106fd9190612d8a565b60405180910390f35b34801561071257600080fd5b5061072d6004803603810190610728919061327f565b611617565b005b34801561073b57600080fd5b50610756600480360381019061075191906132ac565b61170f565b6040516107639190612d8a565b60405180910390f35b34801561077857600080fd5b50610781611796565b005b600e5481565b6040518060400160405280600c81526020017f466967687454686542656172000000000000000000000000000000000000000081525081565b60006107d66107cf611c45565b8484611c4d565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610821611c45565b73ffffffffffffffffffffffffffffffffffffffff161461084157600080fd5b600a82111561084f57600080fd5b600a81111561085d57600080fd5b81600b8190555080600c819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600b54600c546040516108a09291906132ec565b60405180910390a15050565b600066038d7ea4c68000905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c45565b73ffffffffffffffffffffffffffffffffffffffff161461091c57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f31bb1993faff4f8409d7baad771f861e093ef4ce2c92c6e0cb10b82d1c7324cb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516109ae9190613374565b60405180910390a150565b600f5481565b6000601160009054906101000a900460ff168015610a275750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a805750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610af4573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea906133db565b60405180910390fd5b5b610aff848484611e16565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b4b611c45565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b90919061342a565b9050610ba485610b9e611c45565b83611c4d565b60019150509392505050565b6000610bbb30610f37565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c06611c45565b73ffffffffffffffffffffffffffffffffffffffff1614610c2657600080fd5b60005b8151811015610cb757600060066000848481518110610c4b57610c4a61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610caf9061348d565b915050610c29565b5050565b60105481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b610d25611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da990613521565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df3611c45565b73ffffffffffffffffffffffffffffffffffffffff1614610e1357600080fd5b60008111610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d9061358d565b60405180910390fd5b80600d819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600d54604051610e8e9190612d8a565b60405180910390a150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f06611c45565b73ffffffffffffffffffffffffffffffffffffffff1614610f2657600080fd5b6000479050610f3481612722565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f88611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613521565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611114611c45565b73ffffffffffffffffffffffffffffffffffffffff161461113457600080fd5b60005b81518110156112ab57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061118c5761118b61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112205750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106111ff576111fe61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156112985760016006600084848151811061123e5761123d61345e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806112a39061348d565b915050611137565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160029054906101000a900460ff1681565b6040518060400160405280600581526020017f464947485400000000000000000000000000000000000000000000000000000081525081565b6000611338611331611c45565b8484611e16565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611383611c45565b73ffffffffffffffffffffffffffffffffffffffff16146113a357600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e7600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516114359190613374565b60405180910390a150565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611487611c45565b73ffffffffffffffffffffffffffffffffffffffff16146114a757600080fd5b60006114b230610f37565b90506114bd8161280f565b50565b6114c8611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c90613521565b60405180910390fd5b601160009054906101000a900460ff16156115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c906135f9565b60405180910390fd5b6001601160006101000a81548160ff0219169083151502179055504260108190555066038d7ea4c68000600e8190555066038d7ea4c68000600f81905550565b6000611612600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f37565b905090565b61161f611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a390613521565b60405180910390fd5b80601160026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601160029054906101000a900460ff166040516117049190612f59565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61179e611c45565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182290613521565b60405180910390fd5b601160009054906101000a900460ff161561187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906135f9565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061190930600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1666038d7ea4c68000611c4d565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611954573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611978919061362e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a03919061362e565b6040518363ffffffff1660e01b8152600401611a2092919061365b565b6020604051808303816000875af1158015611a3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a63919061362e565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611aec30610f37565b600080611af76112af565b426040518863ffffffff1660e01b8152600401611b19969594939291906136bf565b60606040518083038185885af1158015611b37573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b5c9190613735565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611bfe929190613788565b6020604051808303816000875af1158015611c1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4191906137c6565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb390613865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d22906138f7565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e099190612d8a565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c90613989565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90613a1b565b60405180910390fd5b60008111611f37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2e90613aad565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbb90613b3f565b60405180910390fd5b6000611fce6112af565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561203c575061200c6112af565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561265d57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120ec5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561245d57601160009054906101000a900460ff16612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218d90613bab565b60405180910390fd5b60105442036121da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d190613c17565b60405180910390fd5b42610e106010546121eb9190613c37565b111561224a57600f546121fd84610f37565b836122089190613c37565b1115612249576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224090613cff565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166123245760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b4261012c6010546123359190613c37565b111561241157600e54821115612380576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237790613d6b565b60405180910390fd5b600f4261238d9190613c37565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240790613dfd565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601160019054906101000a900460ff161580156124865750601160009054906101000a900460ff165b80156124e05750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561265c57600f426124f29190613c37565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256c90613e8f565b60405180910390fd5b600061258030610f37565b9050600081111561263d57601160029054906101000a900460ff1615612633576064600d546125d0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f37565b6125da9190613eaf565b6125e49190613f38565b811115612632576064600d5461261b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f37565b6126259190613eaf565b61262f9190613f38565b90505b5b61263c8161280f565b5b600047905060008111156126555761265447612722565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127045750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561270e57600090505b61271b8585858486612a88565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361276b9190613f38565b9081150290604051600060405180830381858888f19350505050158015612796573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836127e09190613f38565b9081150290604051600060405180830381858888f1935050505015801561280b573d6000803e3d6000fd5b5050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561284757612846613070565b5b6040519080825280602002602001820160405280156128755781602001602082028036833780820191505090505b509050308160008151811061288d5761288c61345e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612934573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612958919061362e565b8160018151811061296c5761296b61345e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129d330600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4d565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a37959493929190614027565b600060405180830381600087803b158015612a5157600080fd5b505af1158015612a65573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6000612a948383612aaa565b9050612aa286868684612aff565b505050505050565b600080600090508315612af5578215612ac757600b549050612af4565b600c549050610384601054612adc9190613c37565b421015612af357600581612af09190613c37565b90505b5b5b8091505092915050565b600080612b0c8484612ca2565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5b919061342a565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612be99190613c37565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3581612ce0565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c929190612d8a565b60405180910390a3505050505050565b600080600060648486612cb59190613eaf565b612cbf9190613f38565b905060008186612ccf919061342a565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2b9190613c37565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612d8481612d71565b82525050565b6000602082019050612d9f6000830184612d7b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ddf578082015181840152602081019050612dc4565b83811115612dee576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e1082612da5565b612e1a8185612db0565b9350612e2a818560208601612dc1565b612e3381612df4565b840191505092915050565b60006020820190508181036000830152612e588184612e05565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e9f82612e74565b9050919050565b612eaf81612e94565b8114612eba57600080fd5b50565b600081359050612ecc81612ea6565b92915050565b612edb81612d71565b8114612ee657600080fd5b50565b600081359050612ef881612ed2565b92915050565b60008060408385031215612f1557612f14612e6a565b5b6000612f2385828601612ebd565b9250506020612f3485828601612ee9565b9150509250929050565b60008115159050919050565b612f5381612f3e565b82525050565b6000602082019050612f6e6000830184612f4a565b92915050565b60008060408385031215612f8b57612f8a612e6a565b5b6000612f9985828601612ee9565b9250506020612faa85828601612ee9565b9150509250929050565b600060208284031215612fca57612fc9612e6a565b5b6000612fd884828501612ebd565b91505092915050565b600080600060608486031215612ffa57612ff9612e6a565b5b600061300886828701612ebd565b935050602061301986828701612ebd565b925050604061302a86828701612ee9565b9150509250925092565b600060ff82169050919050565b61304a81613034565b82525050565b60006020820190506130656000830184613041565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130a882612df4565b810181811067ffffffffffffffff821117156130c7576130c6613070565b5b80604052505050565b60006130da612e60565b90506130e6828261309f565b919050565b600067ffffffffffffffff82111561310657613105613070565b5b602082029050602081019050919050565b600080fd5b600061312f61312a846130eb565b6130d0565b9050808382526020820190506020840283018581111561315257613151613117565b5b835b8181101561317b57806131678882612ebd565b845260208401935050602081019050613154565b5050509392505050565b600082601f83011261319a5761319961306b565b5b81356131aa84826020860161311c565b91505092915050565b6000602082840312156131c9576131c8612e6a565b5b600082013567ffffffffffffffff8111156131e7576131e6612e6f565b5b6131f384828501613185565b91505092915050565b60006020828403121561321257613211612e6a565b5b600061322084828501612ee9565b91505092915050565b61323281612e94565b82525050565b600060208201905061324d6000830184613229565b92915050565b61325c81612f3e565b811461326757600080fd5b50565b60008135905061327981613253565b92915050565b60006020828403121561329557613294612e6a565b5b60006132a38482850161326a565b91505092915050565b600080604083850312156132c3576132c2612e6a565b5b60006132d185828601612ebd565b92505060206132e285828601612ebd565b9150509250929050565b60006040820190506133016000830185612d7b565b61330e6020830184612d7b565b9392505050565b6000819050919050565b600061333a61333561333084612e74565b613315565b612e74565b9050919050565b600061334c8261331f565b9050919050565b600061335e82613341565b9050919050565b61336e81613353565b82525050565b60006020820190506133896000830184613365565b92915050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b60006133c5600a83612db0565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061343582612d71565b915061344083612d71565b925082821015613453576134526133fb565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061349882612d71565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134ca576134c96133fb565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061350b602083612db0565b9150613516826134d5565b602082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000613577601283612db0565b915061358282613541565b602082019050919050565b600060208201905081810360008301526135a68161356a565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006135e3601783612db0565b91506135ee826135ad565b602082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b60008151905061362881612ea6565b92915050565b60006020828403121561364457613643612e6a565b5b600061365284828501613619565b91505092915050565b60006040820190506136706000830185613229565b61367d6020830184613229565b9392505050565b6000819050919050565b60006136a96136a461369f84613684565b613315565b612d71565b9050919050565b6136b98161368e565b82525050565b600060c0820190506136d46000830189613229565b6136e16020830188612d7b565b6136ee60408301876136b0565b6136fb60608301866136b0565b6137086080830185613229565b61371560a0830184612d7b565b979650505050505050565b60008151905061372f81612ed2565b92915050565b60008060006060848603121561374e5761374d612e6a565b5b600061375c86828701613720565b935050602061376d86828701613720565b925050604061377e86828701613720565b9150509250925092565b600060408201905061379d6000830185613229565b6137aa6020830184612d7b565b9392505050565b6000815190506137c081613253565b92915050565b6000602082840312156137dc576137db612e6a565b5b60006137ea848285016137b1565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061384f602483612db0565b915061385a826137f3565b604082019050919050565b6000602082019050818103600083015261387e81613842565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138e1602283612db0565b91506138ec82613885565b604082019050919050565b60006020820190508181036000830152613910816138d4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613973602583612db0565b915061397e82613917565b604082019050919050565b600060208201905081810360008301526139a281613966565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a05602383612db0565b9150613a10826139a9565b604082019050919050565b60006020820190508181036000830152613a34816139f8565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a97602983612db0565b9150613aa282613a3b565b604082019050919050565b60006020820190508181036000830152613ac681613a8a565b9050919050565b7f45524332303a207472616e736665722066726f6d2066726f7a656e2077616c6c60008201527f65742e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613b29602383612db0565b9150613b3482613acd565b604082019050919050565b60006020820190508181036000830152613b5881613b1c565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613b95601883612db0565b9150613ba082613b5f565b602082019050919050565b60006020820190508181036000830152613bc481613b88565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b6000613c01600b83612db0565b9150613c0c82613bcb565b602082019050919050565b60006020820190508181036000830152613c3081613bf4565b9050919050565b6000613c4282612d71565b9150613c4d83612d71565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c8257613c816133fb565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b6000613ce9602783612db0565b9150613cf482613c8d565b604082019050919050565b60006020820190508181036000830152613d1881613cdc565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613d55601b83612db0565b9150613d6082613d1f565b602082019050919050565b60006020820190508181036000830152613d8481613d48565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613de7602283612db0565b9150613df282613d8b565b604082019050919050565b60006020820190508181036000830152613e1681613dda565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613e79602383612db0565b9150613e8482613e1d565b604082019050919050565b60006020820190508181036000830152613ea881613e6c565b9050919050565b6000613eba82612d71565b9150613ec583612d71565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613efe57613efd6133fb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f4382612d71565b9150613f4e83612d71565b925082613f5e57613f5d613f09565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613f9e81612e94565b82525050565b6000613fb08383613f95565b60208301905092915050565b6000602082019050919050565b6000613fd482613f69565b613fde8185613f74565b9350613fe983613f85565b8060005b8381101561401a5781516140018882613fa4565b975061400c83613fbc565b925050600181019050613fed565b5085935050505092915050565b600060a08201905061403c6000830188612d7b565b61404960208301876136b0565b818103604083015261405b8186613fc9565b905061406a6060830185613229565b6140776080830184612d7b565b969550505050505056fea26469706673582212202aaffd93c9c7f83663d2e5998fb9943bd01cfb18de72f6b5de116355ab4ef0f764736f6c634300080d0033

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

00000000000000000000000088dd822e73c6ec6bef1bf48db365ef0464e40a2300000000000000000000000088dd822e73c6ec6bef1bf48db365ef0464e40a23

-----Decoded View---------------
Arg [0] : MarketingWallet (address): 0x88DD822E73C6Ec6bEF1BF48DB365EF0464E40A23
Arg [1] : DevWallet (address): 0x88DD822E73C6Ec6bEF1BF48DB365EF0464E40A23

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000088dd822e73c6ec6bef1bf48db365ef0464e40a23
Arg [1] : 00000000000000000000000088dd822e73c6ec6bef1bf48db365ef0464e40a23


Deployed Bytecode Sourcemap

2424:11592:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3254:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2818:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4953:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12252:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4700:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13578:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3286:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5119:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13804:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2939:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12850:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3319:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13073:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3162:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11975:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3127:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3192:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11775:192;;;;;;;;;;;;;:::i;:::-;;4405:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1505:148;;;;;;;;;;;;;:::i;:::-;;12524:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1291:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3408:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2881:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4524:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13345:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3223:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11570:193;;;;;;;;;;;;;:::i;:::-;;11293:269;;;;;;;;;;;;;:::i;:::-;;13912:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13173:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4805:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10597:688;;;;;;;;;;;;;:::i;:::-;;3254:25;;;;:::o;2818:51::-;;;;;;;;;;;;;;;;;;;:::o;4953:158::-;5025:4;5042:39;5051:12;:10;:12::i;:::-;5065:7;5074:6;5042:8;:39::i;:::-;5099:4;5092:11;;4953:158;;;;:::o;12252:264::-;12335:16;;;;;;;;;;;12319:32;;:12;:10;:12::i;:::-;:32;;;12311:41;;;;;;12378:2;12371:3;:9;;12363:18;;;;;;12409:2;12400:4;:11;;12392:20;;;;;;12433:3;12423:7;:13;;;;12458:4;12447:8;:15;;;;12478:30;12490:7;;12499:8;;12478:30;;;;;;;:::i;:::-;;;;;;;;12252:264;;:::o;4700:97::-;4753:4;2798:11;4770:19;;4700:97;:::o;13578:195::-;13667:10;;;;;;;;;;;13651:26;;:12;:10;:12::i;:::-;:26;;;13643:35;;;;;;13710:10;13689;;:32;;;;;;;;;;;;;;;;;;13737:28;13754:10;;;;;;;;;;;13737:28;;;;;;:::i;:::-;;;;;;;;13578:195;:::o;3286:26::-;;;;:::o;5119:468::-;5214:4;5234:12;;;;;;;;;;;:46;;;;;5251:18;:29;5270:9;5251:29;;;;;;;;;;;;;;;;;;;;;;;;;5250:30;5234:46;:73;;;;;5294:13;;;;;;;;;;;5284:23;;:6;:23;;;5234:73;5231:150;;;5345:9;5332:22;;:9;:22;;;5323:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5231:150;5391:36;5401:6;5409:9;5420:6;5391:9;:36::i;:::-;5438:18;5495:6;5459:11;:19;5471:6;5459:19;;;;;;;;;;;;;;;:33;5479:12;:10;:12::i;:::-;5459:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5438:63;;5512:45;5521:6;5529:12;:10;:12::i;:::-;5543:13;5512:8;:45::i;:::-;5575:4;5568:11;;;5119:468;;;;;:::o;13804:100::-;13848:4;13872:24;13890:4;13872:9;:24::i;:::-;13865:31;;13804:100;:::o;2939:34::-;2972:1;2939:34;:::o;12850:211::-;12935:16;;;;;;;;;;;12919:32;;:12;:10;:12::i;:::-;:32;;;12911:41;;;;;;12968:6;12963:91;12984:5;:12;12980:1;:16;12963:91;;;13037:5;13018:6;:16;13025:5;13031:1;13025:8;;;;;;;;:::i;:::-;;;;;;;;13018:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;12998:3;;;;;:::i;:::-;;;;12963:91;;;;12850:211;:::o;3319:23::-;;;;:::o;13073:90::-;13121:4;13145:6;:10;13152:2;13145:10;;;;;;;;;;;;;;;;;;;;;;;;;13138:17;;13073:90;;;:::o;3162:23::-;;;;:::o;11975:269::-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12063:16:::1;;;;;;;;;;;12047:32;;:12;:10;:12::i;:::-;:32;;;12039:41;;;::::0;::::1;;12106:1;12099:4;:8;12091:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12192:4;12181:8;:15;;;;12212:24;12227:8;;12212:24;;;;;;:::i;:::-;;;;;;;;11975:269:::0;:::o;3127:28::-;;;;;;;;;;;;;:::o;3192:24::-;;;;:::o;11775:192::-;11841:16;;;;;;;;;;;11825:32;;:12;:10;:12::i;:::-;:32;;;11817:41;;;;;;11869:23;11895:21;11869:47;;11927:32;11940:18;11927:12;:32::i;:::-;11806:161;11775:192::o;4405:113::-;4471:4;4495:6;:15;4502:7;4495:15;;;;;;;;;;;;;;;;4488:22;;4405:113;;;:::o;1505:148::-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1612:1:::1;1575:40;;1596:6;::::0;::::1;;;;;;;;1575:40;;;;;;;;;;;;1643:1;1626:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1505:148::o:0;12524:317::-;12611:16;;;;;;;;;;;12595:32;;:12;:10;:12::i;:::-;:32;;;12587:41;;;;;;12644:6;12639:195;12660:5;:12;12656:1;:16;12639:195;;;12710:13;;;;;;;;;;;12698:25;;:5;12704:1;12698:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;12747:15;;;;;;;;;;;12727:36;;:5;12733:1;12727:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;12698:65;12694:129;;;12803:4;12784:6;:16;12791:5;12797:1;12791:8;;;;;;;;:::i;:::-;;;;;;;;12784:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12694:129;12674:3;;;;;:::i;:::-;;;;12639:195;;;;12524:317;:::o;1291:79::-;1329:7;1356:6;;;;;;;;;;;1349:13;;1291:79;:::o;3408:38::-;;;;;;;;;;;;;:::o;2881:46::-;;;;;;;;;;;;;;;;;;;:::o;4524:164::-;4599:4;4616:42;4626:12;:10;:12::i;:::-;4640:9;4651:6;4616:9;:42::i;:::-;4676:4;4669:11;;4524:164;;;;:::o;13345:225::-;13440:16;;;;;;;;;;;13424:32;;:12;:10;:12::i;:::-;:32;;;13416:41;;;;;;13495:10;13468:16;;:38;;;;;;;;;;;;;;;;;;13522:40;13545:16;;;;;;;;;;;13522:40;;;;;;:::i;:::-;;;;;;;;13345:225;:::o;3223:24::-;;;;:::o;11570:193::-;11636:16;;;;;;;;;;;11620:32;;:12;:10;:12::i;:::-;:32;;;11612:41;;;;;;11664:20;11687:24;11705:4;11687:9;:24::i;:::-;11664:47;;11722:33;11739:15;11722:16;:33::i;:::-;11601:162;11570:193::o;11293:269::-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11357:12:::1;;;;;;;;;;;11356:13;11348:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11423:4;11408:12;;:19;;;;;;;;;;;;;;;;;;11452:15;11438:11;:29;;;;11494:15;11478:13;:31;;;;11538:15;11521:14;:32;;;;11293:269::o:0;13912:101::-;13957:4;13981:24;13991:13;;;;;;;;;;;13981:9;:24::i;:::-;13974:31;;13912:101;:::o;13173:164::-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13265:5:::1;13243:19;;:27;;;;;;;;;;;;;;;;;;13286:43;13309:19;;;;;;;;;;;13286:43;;;;;;:::i;:::-;;;;;;;;13173:164:::0;:::o;4805:140::-;4886:4;4910:11;:18;4922:5;4910:18;;;;;;;;;;;;;;;:27;4929:7;4910:27;;;;;;;;;;;;;;;;4903:34;;4805:140;;;;:::o;10597:688::-;1428:12;:10;:12::i;:::-;1418:22;;:6;;;;;;;;;;:22;;;1410:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10662:12:::1;;;;;;;;;;;10661:13;10653:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10713:35;10770:42;10713:100;;10842:16;10824:15;;:34;;;;;;;;;;;;;;;;;;10869:63;10886:4;10901:15;;;;;;;;;;;2798:11;10869:8;:63::i;:::-;10977:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10959:56;;;11024:4;11031:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10959:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10943:13;;:112;;;;;;;;;;;;;;;;;;11066:15;;;;;;;;;;;:31;;;11105:21;11136:4;11142:24;11160:4;11142:9;:24::i;:::-;11167:1;11169::::0;11171:7:::1;:5;:7::i;:::-;11179:15;11066:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11213:13;;;;;;;;;;;11206:29;;;11244:15;;;;;;;;;;;11262:14;11206:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10642:643;10597:688::o:0;154:98::-;207:7;234:10;227:17;;154:98;:::o;5595:332::-;5702:1;5685:19;;:5;:19;;;5677:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5783:1;5764:21;;:7;:21;;;5756:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5865:6;5835:11;:18;5847:5;5835:18;;;;;;;;;;;;;;;:27;5854:7;5835:27;;;;;;;;;;;;;;;:36;;;;5903:7;5887:32;;5896:5;5887:32;;;5912:6;5887:32;;;;;;:::i;:::-;;;;;;;;5595:332;;;:::o;5935:2579::-;6036:1;6020:18;;:4;:18;;;6012:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6113:1;6099:16;;:2;:16;;;6091:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6183:1;6174:6;:10;6166:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6250:6;:12;6257:4;6250:12;;;;;;;;;;;;;;;;;;;;;;;;;6249:13;6241:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6315:10;6355:7;:5;:7::i;:::-;6347:15;;:4;:15;;;;:32;;;;;6372:7;:5;:7::i;:::-;6366:13;;:2;:13;;;;6347:32;6344:1972;;;6427:13;;;;;;;;;;;6419:21;;:4;:21;;;:55;;;;;6458:15;;;;;;;;;;;6444:30;;:2;:30;;;;6419:55;:82;;;;;6479:18;:22;6498:2;6479:22;;;;;;;;;;;;;;;;;;;;;;;;;6478:23;6419:82;6416:954;;;6530:12;;;;;;;;;;;6522:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6617:11;;6598:15;:30;6590:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6694:15;6682:7;6667:11;;:23;;;;:::i;:::-;6666:43;6663:200;;;6779:14;;6752:22;6770:2;6752:9;:22::i;:::-;6743:6;:31;;;;:::i;:::-;6742:51;;6734:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;6663:200;6885:8;:12;6894:2;6885:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;6881:95;;6944:12;;;;;;;;6949:1;6944:12;;;;6951:4;6944:12;;;;;6929:8;:12;6938:2;6929:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6881:95;7029:15;7013:11;6998;;:27;;;;:::i;:::-;6997:47;6994:277;;;7087:13;;7077:6;:23;;7069:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7201:10;7182:15;:30;;;;:::i;:::-;7163:8;:12;7172:2;7163:12;;;;;;;;;;;;;;;:16;;;:49;7155:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;6994:277;7308:15;7289:8;:12;7298:2;7289:12;;;;;;;;;;;;;;;:16;;:34;;;;7350:4;7342:12;;6416:954;7409:7;;;;;;;;;;;7408:8;:24;;;;;7420:12;;;;;;;;;;;7408:24;:49;;;;;7444:13;;;;;;;;;;;7436:21;;:4;:21;;;;7408:49;7405:900;;;7526:10;7507:15;:30;;;;:::i;:::-;7486:8;:14;7495:4;7486:14;;;;;;;;;;;;;;;:18;;;:51;7478:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7596:25;7624:24;7642:4;7624:9;:24::i;:::-;7596:52;;7693:1;7670:20;:24;7667:402;;;7722:19;;;;;;;;;;;7719:270;;;7836:3;7824:8;;7797:24;7807:13;;;;;;;;;;;7797:9;:24::i;:::-;:35;;;;:::i;:::-;7796:43;;;;:::i;:::-;7773:20;:66;7770:196;;;7935:3;7923:8;;7896:24;7906:13;;;;;;;;;;;7896:9;:24::i;:::-;:35;;;;:::i;:::-;7895:43;;;;:::i;:::-;7872:66;;7770:196;7719:270;8011:38;8028:20;8011:16;:38::i;:::-;7667:402;8087:23;8113:21;8087:47;;8177:1;8156:18;:22;8153:105;;;8203:35;8216:21;8203:12;:35::i;:::-;8153:105;8284:5;8276:13;;7459:846;;7405:900;6344:1972;8326:12;8341:4;8326:19;;8359:18;:24;8378:4;8359:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8387:18;:22;8406:2;8387:22;;;;;;;;;;;;;;;;;;;;;;;;;8359:50;8356:96;;;8435:5;8425:15;;8356:96;8462:44;8477:4;8482:2;8485:6;8492:7;8500:5;8462:14;:44::i;:::-;6001:2513;;5935:2579;;;:::o;9018:141::-;9072:16;;;;;;;;;;;:25;;:37;9107:1;9098:6;:10;;;;:::i;:::-;9072:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9120:10;;;;;;;;;;;:19;;:31;9149:1;9140:6;:10;;;;:::i;:::-;9120:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9018:141;:::o;8522:480::-;3874:4;3864:7;;:14;;;;;;;;;;;;;;;;;;8597:21:::1;8635:1;8621:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8597:40;;8666:4;8648;8653:1;8648:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8692:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8682:4;8687:1;8682:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8725:62;8742:4;8757:15;;;;;;;;;;;8775:11;8725:8;:62::i;:::-;8798:15;;;;;;;;;;;:66;;;8879:11;8905:1;8921:4;8948;8968:15;8798:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8586:416;3911:5:::0;3901:7;;:15;;;;;;;;;;;;;;;;;;8522:480;:::o;9171:217::-;9287:8;9299:21;9307:7;9316:3;9299:7;:21::i;:::-;9286:34;;9331:49;9349:6;9357:9;9368:6;9376:3;9331:17;:49::i;:::-;9275:113;9171:217;;;;;:::o;9396:398::-;9459:4;9476:8;9487:1;9476:12;;9502:7;9499:267;;;9529:3;9526:229;;;9559:7;;9553:13;;9526:229;;;9613:8;;9607:14;;9676:10;9661:11;;:26;;;;:::i;:::-;9643:15;:44;9640:100;;;9719:1;9712:8;;;;;:::i;:::-;;;9640:100;9526:229;9499:267;9783:3;9776:10;;;9396:398;;;;:::o;9802:372::-;9907:19;9928:9;9941:23;9952:6;9960:3;9941:10;:23::i;:::-;9906:58;;;;10009:6;9992;:14;9999:6;9992:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;9975:6;:14;9982:6;9975:14;;;;;;;;;;;;;;;:40;;;;10066:14;10046:6;:17;10053:9;10046:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10026:6;:17;10033:9;10026:17;;;;;;;;;;;;;;;:54;;;;10092:15;10102:4;10092:9;:15::i;:::-;10140:9;10123:43;;10132:6;10123:43;;;10151:14;10123:43;;;;;;:::i;:::-;;;;;;;;9895:279;;9802:372;;;;:::o;10182:222::-;10251:4;10257;10274:9;10307:3;10296:7;10287:6;:16;;;;:::i;:::-;10286:24;;;;:::i;:::-;10274:36;;10321:19;10352:4;10343:6;:13;;;;:::i;:::-;10321:35;;10375:14;10391:4;10367:29;;;;;;10182:222;;;;;:::o;10412:109::-;10509:4;10485:6;:21;10500:4;10485:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;10461:6;:21;10476:4;10461:21;;;;;;;;;;;;;;;:52;;;;10412:109;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:329::-;4385:6;4434:2;4422:9;4413:7;4409:23;4405:32;4402:119;;;4440:79;;:::i;:::-;4402:119;4560:1;4585:53;4630:7;4621:6;4610:9;4606:22;4585:53;:::i;:::-;4575:63;;4531:117;4326:329;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:117::-;5825:1;5822;5815:12;5839:180;5887:77;5884:1;5877:88;5984:4;5981:1;5974:15;6008:4;6005:1;5998:15;6025:281;6108:27;6130:4;6108:27;:::i;:::-;6100:6;6096:40;6238:6;6226:10;6223:22;6202:18;6190:10;6187:34;6184:62;6181:88;;;6249:18;;:::i;:::-;6181:88;6289:10;6285:2;6278:22;6068:238;6025:281;;:::o;6312:129::-;6346:6;6373:20;;:::i;:::-;6363:30;;6402:33;6430:4;6422:6;6402:33;:::i;:::-;6312:129;;;:::o;6447:311::-;6524:4;6614:18;6606:6;6603:30;6600:56;;;6636:18;;:::i;:::-;6600:56;6686:4;6678:6;6674:17;6666:25;;6746:4;6740;6736:15;6728:23;;6447:311;;;:::o;6764:117::-;6873:1;6870;6863:12;6904:710;7000:5;7025:81;7041:64;7098:6;7041:64;:::i;:::-;7025:81;:::i;:::-;7016:90;;7126:5;7155:6;7148:5;7141:21;7189:4;7182:5;7178:16;7171:23;;7242:4;7234:6;7230:17;7222:6;7218:30;7271:3;7263:6;7260:15;7257:122;;;7290:79;;:::i;:::-;7257:122;7405:6;7388:220;7422:6;7417:3;7414:15;7388:220;;;7497:3;7526:37;7559:3;7547:10;7526:37;:::i;:::-;7521:3;7514:50;7593:4;7588:3;7584:14;7577:21;;7464:144;7448:4;7443:3;7439:14;7432:21;;7388:220;;;7392:21;7006:608;;6904:710;;;;;:::o;7637:370::-;7708:5;7757:3;7750:4;7742:6;7738:17;7734:27;7724:122;;7765:79;;:::i;:::-;7724:122;7882:6;7869:20;7907:94;7997:3;7989:6;7982:4;7974:6;7970:17;7907:94;:::i;:::-;7898:103;;7714:293;7637:370;;;;:::o;8013:539::-;8097:6;8146:2;8134:9;8125:7;8121:23;8117:32;8114:119;;;8152:79;;:::i;:::-;8114:119;8300:1;8289:9;8285:17;8272:31;8330:18;8322:6;8319:30;8316:117;;;8352:79;;:::i;:::-;8316:117;8457:78;8527:7;8518:6;8507:9;8503:22;8457:78;:::i;:::-;8447:88;;8243:302;8013:539;;;;:::o;8558:329::-;8617:6;8666:2;8654:9;8645:7;8641:23;8637:32;8634:119;;;8672:79;;:::i;:::-;8634:119;8792:1;8817:53;8862:7;8853:6;8842:9;8838:22;8817:53;:::i;:::-;8807:63;;8763:117;8558:329;;;;:::o;8893:118::-;8980:24;8998:5;8980:24;:::i;:::-;8975:3;8968:37;8893:118;;:::o;9017:222::-;9110:4;9148:2;9137:9;9133:18;9125:26;;9161:71;9229:1;9218:9;9214:17;9205:6;9161:71;:::i;:::-;9017:222;;;;:::o;9245:116::-;9315:21;9330:5;9315:21;:::i;:::-;9308:5;9305:32;9295:60;;9351:1;9348;9341:12;9295:60;9245:116;:::o;9367:133::-;9410:5;9448:6;9435:20;9426:29;;9464:30;9488:5;9464:30;:::i;:::-;9367:133;;;;:::o;9506:323::-;9562:6;9611:2;9599:9;9590:7;9586:23;9582:32;9579:119;;;9617:79;;:::i;:::-;9579:119;9737:1;9762:50;9804:7;9795:6;9784:9;9780:22;9762:50;:::i;:::-;9752:60;;9708:114;9506:323;;;;:::o;9835:474::-;9903:6;9911;9960:2;9948:9;9939:7;9935:23;9931:32;9928:119;;;9966:79;;:::i;:::-;9928:119;10086:1;10111:53;10156:7;10147:6;10136:9;10132:22;10111:53;:::i;:::-;10101:63;;10057:117;10213:2;10239:53;10284:7;10275:6;10264:9;10260:22;10239:53;:::i;:::-;10229:63;;10184:118;9835:474;;;;;:::o;10315:332::-;10436:4;10474:2;10463:9;10459:18;10451:26;;10487:71;10555:1;10544:9;10540:17;10531:6;10487:71;:::i;:::-;10568:72;10636:2;10625:9;10621:18;10612:6;10568:72;:::i;:::-;10315:332;;;;;:::o;10653:60::-;10681:3;10702:5;10695:12;;10653:60;;;:::o;10719:142::-;10769:9;10802:53;10820:34;10829:24;10847:5;10829:24;:::i;:::-;10820:34;:::i;:::-;10802:53;:::i;:::-;10789:66;;10719:142;;;:::o;10867:126::-;10917:9;10950:37;10981:5;10950:37;:::i;:::-;10937:50;;10867:126;;;:::o;10999:134::-;11057:9;11090:37;11121:5;11090:37;:::i;:::-;11077:50;;10999:134;;;:::o;11139:147::-;11234:45;11273:5;11234:45;:::i;:::-;11229:3;11222:58;11139:147;;:::o;11292:238::-;11393:4;11431:2;11420:9;11416:18;11408:26;;11444:79;11520:1;11509:9;11505:17;11496:6;11444:79;:::i;:::-;11292:238;;;;:::o;11536:160::-;11676:12;11672:1;11664:6;11660:14;11653:36;11536:160;:::o;11702:366::-;11844:3;11865:67;11929:2;11924:3;11865:67;:::i;:::-;11858:74;;11941:93;12030:3;11941:93;:::i;:::-;12059:2;12054:3;12050:12;12043:19;;11702:366;;;:::o;12074:419::-;12240:4;12278:2;12267:9;12263:18;12255:26;;12327:9;12321:4;12317:20;12313:1;12302:9;12298:17;12291:47;12355:131;12481:4;12355:131;:::i;:::-;12347:139;;12074:419;;;:::o;12499:180::-;12547:77;12544:1;12537:88;12644:4;12641:1;12634:15;12668:4;12665:1;12658:15;12685:191;12725:4;12745:20;12763:1;12745:20;:::i;:::-;12740:25;;12779:20;12797:1;12779:20;:::i;:::-;12774:25;;12818:1;12815;12812:8;12809:34;;;12823:18;;:::i;:::-;12809:34;12868:1;12865;12861:9;12853:17;;12685:191;;;;:::o;12882:180::-;12930:77;12927:1;12920:88;13027:4;13024:1;13017:15;13051:4;13048:1;13041:15;13068:233;13107:3;13130:24;13148:5;13130:24;:::i;:::-;13121:33;;13176:66;13169:5;13166:77;13163:103;;13246:18;;:::i;:::-;13163:103;13293:1;13286:5;13282:13;13275:20;;13068:233;;;:::o;13307:182::-;13447:34;13443:1;13435:6;13431:14;13424:58;13307:182;:::o;13495:366::-;13637:3;13658:67;13722:2;13717:3;13658:67;:::i;:::-;13651:74;;13734:93;13823:3;13734:93;:::i;:::-;13852:2;13847:3;13843:12;13836:19;;13495:366;;;:::o;13867:419::-;14033:4;14071:2;14060:9;14056:18;14048:26;;14120:9;14114:4;14110:20;14106:1;14095:9;14091:17;14084:47;14148:131;14274:4;14148:131;:::i;:::-;14140:139;;13867:419;;;:::o;14292:168::-;14432:20;14428:1;14420:6;14416:14;14409:44;14292:168;:::o;14466:366::-;14608:3;14629:67;14693:2;14688:3;14629:67;:::i;:::-;14622:74;;14705:93;14794:3;14705:93;:::i;:::-;14823:2;14818:3;14814:12;14807:19;;14466:366;;;:::o;14838:419::-;15004:4;15042:2;15031:9;15027:18;15019:26;;15091:9;15085:4;15081:20;15077:1;15066:9;15062:17;15055:47;15119:131;15245:4;15119:131;:::i;:::-;15111:139;;14838:419;;;:::o;15263:173::-;15403:25;15399:1;15391:6;15387:14;15380:49;15263:173;:::o;15442:366::-;15584:3;15605:67;15669:2;15664:3;15605:67;:::i;:::-;15598:74;;15681:93;15770:3;15681:93;:::i;:::-;15799:2;15794:3;15790:12;15783:19;;15442:366;;;:::o;15814:419::-;15980:4;16018:2;16007:9;16003:18;15995:26;;16067:9;16061:4;16057:20;16053:1;16042:9;16038:17;16031:47;16095:131;16221:4;16095:131;:::i;:::-;16087:139;;15814:419;;;:::o;16239:143::-;16296:5;16327:6;16321:13;16312:22;;16343:33;16370:5;16343:33;:::i;:::-;16239:143;;;;:::o;16388:351::-;16458:6;16507:2;16495:9;16486:7;16482:23;16478:32;16475:119;;;16513:79;;:::i;:::-;16475:119;16633:1;16658:64;16714:7;16705:6;16694:9;16690:22;16658:64;:::i;:::-;16648:74;;16604:128;16388:351;;;;:::o;16745:332::-;16866:4;16904:2;16893:9;16889:18;16881:26;;16917:71;16985:1;16974:9;16970:17;16961:6;16917:71;:::i;:::-;16998:72;17066:2;17055:9;17051:18;17042:6;16998:72;:::i;:::-;16745:332;;;;;:::o;17083:85::-;17128:7;17157:5;17146:16;;17083:85;;;:::o;17174:158::-;17232:9;17265:61;17283:42;17292:32;17318:5;17292:32;:::i;:::-;17283:42;:::i;:::-;17265:61;:::i;:::-;17252:74;;17174:158;;;:::o;17338:147::-;17433:45;17472:5;17433:45;:::i;:::-;17428:3;17421:58;17338:147;;:::o;17491:807::-;17740:4;17778:3;17767:9;17763:19;17755:27;;17792:71;17860:1;17849:9;17845:17;17836:6;17792:71;:::i;:::-;17873:72;17941:2;17930:9;17926:18;17917:6;17873:72;:::i;:::-;17955:80;18031:2;18020:9;18016:18;18007:6;17955:80;:::i;:::-;18045;18121:2;18110:9;18106:18;18097:6;18045:80;:::i;:::-;18135:73;18203:3;18192:9;18188:19;18179:6;18135:73;:::i;:::-;18218;18286:3;18275:9;18271:19;18262:6;18218:73;:::i;:::-;17491:807;;;;;;;;;:::o;18304:143::-;18361:5;18392:6;18386:13;18377:22;;18408:33;18435:5;18408:33;:::i;:::-;18304:143;;;;:::o;18453:663::-;18541:6;18549;18557;18606:2;18594:9;18585:7;18581:23;18577:32;18574:119;;;18612:79;;:::i;:::-;18574:119;18732:1;18757:64;18813:7;18804:6;18793:9;18789:22;18757:64;:::i;:::-;18747:74;;18703:128;18870:2;18896:64;18952:7;18943:6;18932:9;18928:22;18896:64;:::i;:::-;18886:74;;18841:129;19009:2;19035:64;19091:7;19082:6;19071:9;19067:22;19035:64;:::i;:::-;19025:74;;18980:129;18453:663;;;;;:::o;19122:332::-;19243:4;19281:2;19270:9;19266:18;19258:26;;19294:71;19362:1;19351:9;19347:17;19338:6;19294:71;:::i;:::-;19375:72;19443:2;19432:9;19428:18;19419:6;19375:72;:::i;:::-;19122:332;;;;;:::o;19460:137::-;19514:5;19545:6;19539:13;19530:22;;19561:30;19585:5;19561:30;:::i;:::-;19460:137;;;;:::o;19603:345::-;19670:6;19719:2;19707:9;19698:7;19694:23;19690:32;19687:119;;;19725:79;;:::i;:::-;19687:119;19845:1;19870:61;19923:7;19914:6;19903:9;19899:22;19870:61;:::i;:::-;19860:71;;19816:125;19603:345;;;;:::o;19954:223::-;20094:34;20090:1;20082:6;20078:14;20071:58;20163:6;20158:2;20150:6;20146:15;20139:31;19954:223;:::o;20183:366::-;20325:3;20346:67;20410:2;20405:3;20346:67;:::i;:::-;20339:74;;20422:93;20511:3;20422:93;:::i;:::-;20540:2;20535:3;20531:12;20524:19;;20183:366;;;:::o;20555:419::-;20721:4;20759:2;20748:9;20744:18;20736:26;;20808:9;20802:4;20798:20;20794:1;20783:9;20779:17;20772:47;20836:131;20962:4;20836:131;:::i;:::-;20828:139;;20555:419;;;:::o;20980:221::-;21120:34;21116:1;21108:6;21104:14;21097:58;21189:4;21184:2;21176:6;21172:15;21165:29;20980:221;:::o;21207:366::-;21349:3;21370:67;21434:2;21429:3;21370:67;:::i;:::-;21363:74;;21446:93;21535:3;21446:93;:::i;:::-;21564:2;21559:3;21555:12;21548:19;;21207:366;;;:::o;21579:419::-;21745:4;21783:2;21772:9;21768:18;21760:26;;21832:9;21826:4;21822:20;21818:1;21807:9;21803:17;21796:47;21860:131;21986:4;21860:131;:::i;:::-;21852:139;;21579:419;;;:::o;22004:224::-;22144:34;22140:1;22132:6;22128:14;22121:58;22213:7;22208:2;22200:6;22196:15;22189:32;22004:224;:::o;22234:366::-;22376:3;22397:67;22461:2;22456:3;22397:67;:::i;:::-;22390:74;;22473:93;22562:3;22473:93;:::i;:::-;22591:2;22586:3;22582:12;22575:19;;22234:366;;;:::o;22606:419::-;22772:4;22810:2;22799:9;22795:18;22787:26;;22859:9;22853:4;22849:20;22845:1;22834:9;22830:17;22823:47;22887:131;23013:4;22887:131;:::i;:::-;22879:139;;22606:419;;;:::o;23031:222::-;23171:34;23167:1;23159:6;23155:14;23148:58;23240:5;23235:2;23227:6;23223:15;23216:30;23031:222;:::o;23259:366::-;23401:3;23422:67;23486:2;23481:3;23422:67;:::i;:::-;23415:74;;23498:93;23587:3;23498:93;:::i;:::-;23616:2;23611:3;23607:12;23600:19;;23259:366;;;:::o;23631:419::-;23797:4;23835:2;23824:9;23820:18;23812:26;;23884:9;23878:4;23874:20;23870:1;23859:9;23855:17;23848:47;23912:131;24038:4;23912:131;:::i;:::-;23904:139;;23631:419;;;:::o;24056:228::-;24196:34;24192:1;24184:6;24180:14;24173:58;24265:11;24260:2;24252:6;24248:15;24241:36;24056:228;:::o;24290:366::-;24432:3;24453:67;24517:2;24512:3;24453:67;:::i;:::-;24446:74;;24529:93;24618:3;24529:93;:::i;:::-;24647:2;24642:3;24638:12;24631:19;;24290:366;;;:::o;24662:419::-;24828:4;24866:2;24855:9;24851:18;24843:26;;24915:9;24909:4;24905:20;24901:1;24890:9;24886:17;24879:47;24943:131;25069:4;24943:131;:::i;:::-;24935:139;;24662:419;;;:::o;25087:222::-;25227:34;25223:1;25215:6;25211:14;25204:58;25296:5;25291:2;25283:6;25279:15;25272:30;25087:222;:::o;25315:366::-;25457:3;25478:67;25542:2;25537:3;25478:67;:::i;:::-;25471:74;;25554:93;25643:3;25554:93;:::i;:::-;25672:2;25667:3;25663:12;25656:19;;25315:366;;;:::o;25687:419::-;25853:4;25891:2;25880:9;25876:18;25868:26;;25940:9;25934:4;25930:20;25926:1;25915:9;25911:17;25904:47;25968:131;26094:4;25968:131;:::i;:::-;25960:139;;25687:419;;;:::o;26112:174::-;26252:26;26248:1;26240:6;26236:14;26229:50;26112:174;:::o;26292:366::-;26434:3;26455:67;26519:2;26514:3;26455:67;:::i;:::-;26448:74;;26531:93;26620:3;26531:93;:::i;:::-;26649:2;26644:3;26640:12;26633:19;;26292:366;;;:::o;26664:419::-;26830:4;26868:2;26857:9;26853:18;26845:26;;26917:9;26911:4;26907:20;26903:1;26892:9;26888:17;26881:47;26945:131;27071:4;26945:131;:::i;:::-;26937:139;;26664:419;;;:::o;27089:161::-;27229:13;27225:1;27217:6;27213:14;27206:37;27089:161;:::o;27256:366::-;27398:3;27419:67;27483:2;27478:3;27419:67;:::i;:::-;27412:74;;27495:93;27584:3;27495:93;:::i;:::-;27613:2;27608:3;27604:12;27597:19;;27256:366;;;:::o;27628:419::-;27794:4;27832:2;27821:9;27817:18;27809:26;;27881:9;27875:4;27871:20;27867:1;27856:9;27852:17;27845:47;27909:131;28035:4;27909:131;:::i;:::-;27901:139;;27628:419;;;:::o;28053:305::-;28093:3;28112:20;28130:1;28112:20;:::i;:::-;28107:25;;28146:20;28164:1;28146:20;:::i;:::-;28141:25;;28300:1;28232:66;28228:74;28225:1;28222:81;28219:107;;;28306:18;;:::i;:::-;28219:107;28350:1;28347;28343:9;28336:16;;28053:305;;;;:::o;28364:226::-;28504:34;28500:1;28492:6;28488:14;28481:58;28573:9;28568:2;28560:6;28556:15;28549:34;28364:226;:::o;28596:366::-;28738:3;28759:67;28823:2;28818:3;28759:67;:::i;:::-;28752:74;;28835:93;28924:3;28835:93;:::i;:::-;28953:2;28948:3;28944:12;28937:19;;28596:366;;;:::o;28968:419::-;29134:4;29172:2;29161:9;29157:18;29149:26;;29221:9;29215:4;29211:20;29207:1;29196:9;29192:17;29185:47;29249:131;29375:4;29249:131;:::i;:::-;29241:139;;28968:419;;;:::o;29393:177::-;29533:29;29529:1;29521:6;29517:14;29510:53;29393:177;:::o;29576:366::-;29718:3;29739:67;29803:2;29798:3;29739:67;:::i;:::-;29732:74;;29815:93;29904:3;29815:93;:::i;:::-;29933:2;29928:3;29924:12;29917:19;;29576:366;;;:::o;29948:419::-;30114:4;30152:2;30141:9;30137:18;30129:26;;30201:9;30195:4;30191:20;30187:1;30176:9;30172:17;30165:47;30229:131;30355:4;30229:131;:::i;:::-;30221:139;;29948:419;;;:::o;30373:221::-;30513:34;30509:1;30501:6;30497:14;30490:58;30582:4;30577:2;30569:6;30565:15;30558:29;30373:221;:::o;30600:366::-;30742:3;30763:67;30827:2;30822:3;30763:67;:::i;:::-;30756:74;;30839:93;30928:3;30839:93;:::i;:::-;30957:2;30952:3;30948:12;30941:19;;30600:366;;;:::o;30972:419::-;31138:4;31176:2;31165:9;31161:18;31153:26;;31225:9;31219:4;31215:20;31211:1;31200:9;31196:17;31189:47;31253:131;31379:4;31253:131;:::i;:::-;31245:139;;30972:419;;;:::o;31397:222::-;31537:34;31533:1;31525:6;31521:14;31514:58;31606:5;31601:2;31593:6;31589:15;31582:30;31397:222;:::o;31625:366::-;31767:3;31788:67;31852:2;31847:3;31788:67;:::i;:::-;31781:74;;31864:93;31953:3;31864:93;:::i;:::-;31982:2;31977:3;31973:12;31966:19;;31625:366;;;:::o;31997:419::-;32163:4;32201:2;32190:9;32186:18;32178:26;;32250:9;32244:4;32240:20;32236:1;32225:9;32221:17;32214:47;32278:131;32404:4;32278:131;:::i;:::-;32270:139;;31997:419;;;:::o;32422:348::-;32462:7;32485:20;32503:1;32485:20;:::i;:::-;32480:25;;32519:20;32537:1;32519:20;:::i;:::-;32514:25;;32707:1;32639:66;32635:74;32632:1;32629:81;32624:1;32617:9;32610:17;32606:105;32603:131;;;32714:18;;:::i;:::-;32603:131;32762:1;32759;32755:9;32744:20;;32422:348;;;;:::o;32776:180::-;32824:77;32821:1;32814:88;32921:4;32918:1;32911:15;32945:4;32942:1;32935:15;32962:185;33002:1;33019:20;33037:1;33019:20;:::i;:::-;33014:25;;33053:20;33071:1;33053:20;:::i;:::-;33048:25;;33092:1;33082:35;;33097:18;;:::i;:::-;33082:35;33139:1;33136;33132:9;33127:14;;32962:185;;;;:::o;33153:114::-;33220:6;33254:5;33248:12;33238:22;;33153:114;;;:::o;33273:184::-;33372:11;33406:6;33401:3;33394:19;33446:4;33441:3;33437:14;33422:29;;33273:184;;;;:::o;33463:132::-;33530:4;33553:3;33545:11;;33583:4;33578:3;33574:14;33566:22;;33463:132;;;:::o;33601:108::-;33678:24;33696:5;33678:24;:::i;:::-;33673:3;33666:37;33601:108;;:::o;33715:179::-;33784:10;33805:46;33847:3;33839:6;33805:46;:::i;:::-;33883:4;33878:3;33874:14;33860:28;;33715:179;;;;:::o;33900:113::-;33970:4;34002;33997:3;33993:14;33985:22;;33900:113;;;:::o;34049:732::-;34168:3;34197:54;34245:5;34197:54;:::i;:::-;34267:86;34346:6;34341:3;34267:86;:::i;:::-;34260:93;;34377:56;34427:5;34377:56;:::i;:::-;34456:7;34487:1;34472:284;34497:6;34494:1;34491:13;34472:284;;;34573:6;34567:13;34600:63;34659:3;34644:13;34600:63;:::i;:::-;34593:70;;34686:60;34739:6;34686:60;:::i;:::-;34676:70;;34532:224;34519:1;34516;34512:9;34507:14;;34472:284;;;34476:14;34772:3;34765:10;;34173:608;;;34049:732;;;;:::o;34787:831::-;35050:4;35088:3;35077:9;35073:19;35065:27;;35102:71;35170:1;35159:9;35155:17;35146:6;35102:71;:::i;:::-;35183:80;35259:2;35248:9;35244:18;35235:6;35183:80;:::i;:::-;35310:9;35304:4;35300:20;35295:2;35284:9;35280:18;35273:48;35338:108;35441:4;35432:6;35338:108;:::i;:::-;35330:116;;35456:72;35524:2;35513:9;35509:18;35500:6;35456:72;:::i;:::-;35538:73;35606:3;35595:9;35591:19;35582:6;35538:73;:::i;:::-;34787:831;;;;;;;;:::o

Swarm Source

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