ETH Price: $3,249.68 (+4.32%)
Gas: 2 Gwei

Token

FK Banana Gun (FKBANANA)
 

Overview

Max Total Supply

420,690,000,000,000 FKBANANA

Holders

71

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
713,788,465,634.02828917719841709 FKBANANA

Value
$0.00
0x974b237e677e51266588dbf087b96b044f4eeeaa
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:
FKBANANA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-11
*/

// SPDX-License-Identifier: MIT

 /*

https://www.fkbanana.com/
https://t.me/FKBANANAPortal
https://twitter.com/FKBananaETH

*/      
            
pragma solidity 0.8.19;
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;
    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 transferOwnership(address newOwner) public virtual onlyOwner() {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    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 FKBANANA is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable public MarketingWallet;
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal =  420690000000000 * 10**_decimals; 
    string private constant _name = "FK Banana Gun";
    string private constant _symbol = "FKBANANA";
    uint256 private SwapTokens = 1262070000000 * 10**_decimals; 
    uint256 private maxSwapTokens = 4206900000000 * 10**_decimals;
    uint256 public maxTxAmount = 8413800000000 * 10**_decimals; 
    uint256 private _launchBuyTax = 30;
    uint256 private _launchSellTax = 30;
    uint256 private buyTaxes = 1;
    uint256 private sellTaxes = 1;
    bool private _isFinalFeeDone = false;
    uint256 private _Buys_In = 0;
   
    IUniswapV2Router02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = false;
    event FeesRecieverUpdated(address indexed _newWallet);
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event SwapThreshouldUpdated(uint256 indexed minToken, uint256 indexed maxToken);
    event SwapBackSettingUpdated(bool indexed state);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
    if (block.chainid == 56){
     uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router
     }
    else if(block.chainid == 1 || block.chainid == 5){
          uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router
      }
    else if(block.chainid == 42161){
           uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router
      }
    else  if (block.chainid == 97){
     uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
     }
    else {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
         MarketingWallet = payable(0x4124DB434F8169D1178Ec15c5C08a02967a3cEEe);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;

       emit Transfer(address(0), _msgSender(), _tTotal);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 TaxSwap=0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               TaxSwap = amount * ((_isFinalFeeDone)? buyTaxes : _launchBuyTax) / (100);
        }
        
         if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            TaxSwap = 0;
        } 
         
          if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= maxTxAmount, "Exceeds the maxWalletSize.");
              _Buys_In++;
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          }
        
          if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                   TaxSwap = amount * ((_isFinalFeeDone)? sellTaxes : _launchSellTax) / (100);
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > SwapTokens && _Buys_In > 1) {
                swapTokensForEth(min(amount, min(contractTokenBalance, maxSwapTokens)));
               uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        _balances[from] = _balances[from] - amount; 
        _balances[to] = _balances[to] + (amount - (TaxSwap));
        emit Transfer(from, to, amount - (TaxSwap));
         if(TaxSwap > 0){
          _balances[address(this)] = _balances[address(this)] + (TaxSwap);
          emit Transfer(from, address(this),TaxSwap);
        }
    }
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    function sendETHToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        MarketingWallet.transfer(amount);
    }
   function removeMaxTxLimit() external onlyOwner {maxTxAmount = _tTotal;}
   function updateFinalFee() external onlyOwner {_isFinalFeeDone = true;}
   function updateSwapBackSetting(bool state) external onlyOwner {_SwapBackEnable = state;emit SwapBackSettingUpdated(state);}
   function setMarketingWallet(address payable _newWallet) external onlyOwner {
       require(_newWallet != address(this), "CA will not be the Fee Reciever");
       require(_newWallet != address(0), "0 addy will not be the fee Reciever");
       MarketingWallet = _newWallet;
      _isExcludedFromFee[_newWallet] = true;
    emit FeesRecieverUpdated(_newWallet);
    }
    
    function excludeFromFee(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   
    function includeFromFee(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   
    function updateThreshouldToken(uint256 minToken, uint256 maxToken) external onlyOwner {
        require(maxToken <= 4206900000000, "amount must be less than or equal to 1% of the supply");
        require(minToken <= 1262070000000, "amount must be less than or equal to 0.3% of the supply");
        SwapTokens = minToken * 10**_decimals;
       maxSwapTokens = maxToken * 10**_decimals;
    emit SwapThreshouldUpdated(minToken, maxToken);
    }
    
    function OpenTrading() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function recoverERC20FromContract(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens");
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(MarketingWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
   
    function recoverETHfromContract() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(MarketingWallet)).transfer(contractETHBalance);
      emit ETHBalanceRecovered();
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesRecieverUpdated","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":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"minToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"SwapThreshouldUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OpenTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETHfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateFinalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minToken","type":"uint256"},{"internalType":"uint256","name":"maxToken","type":"uint256"}],"name":"updateThreshouldToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a62000014919062000a20565b650125d93be98062000027919062000a71565b6005556012600a6200003a919062000a20565b6503d37ec7b5006200004d919062000a71565b6006556012600a62000060919062000a20565b6507a6fd8f6a0062000073919062000a71565b600755601e600855601e6009556001600a556001600b556000600c60006101000a81548160ff0219169083151502179055506000600d556000600f60146101000a81548160ff0219169083151502179055506000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200010857600080fd5b5060006200011b6200087e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350603846036200021d577310ed43c718714eb63d5aa57b78b54704e256024e600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000397565b60014614806200022d5750600546145b156200028e57737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000396565b61a4b14603620002f357731b02da8cb0d097eb8d57a175b88c7d8b47997506600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000395565b60614603620003575773d99d1c33f9fc3444f8101754abc46c52416550d1600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000394565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200038b9062000b1d565b60405180910390fd5b5b5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042b919062000ba9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004db919062000ba9565b6040518363ffffffff1660e01b8152600401620004fa92919062000bec565b6020604051808303816000875af11580156200051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000540919062000ba9565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734124db434f8169d1178ec15c5c08a02967a3ceee600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620005e5919062000a20565b66017e9d8602b400620005f9919062000a71565b600160006200060d6200087e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620006616200087e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007ee6200087e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200084d919062000a20565b66017e9d8602b40062000861919062000a71565b60405162000870919062000c2a565b60405180910390a362000c47565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200091457808604811115620008ec57620008eb62000886565b5b6001851615620008fc5780820291505b80810290506200090c85620008b5565b9450620008cc565b94509492505050565b6000826200092f576001905062000a02565b816200093f576000905062000a02565b8160018114620009585760028114620009635762000999565b600191505062000a02565b60ff84111562000978576200097762000886565b5b8360020a91508482111562000992576200099162000886565b5b5062000a02565b5060208310610133831016604e8410600b8410161715620009d35782820a905083811115620009cd57620009cc62000886565b5b62000a02565b620009e28484846001620008c2565b92509050818404811115620009fc57620009fb62000886565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a2d8262000a09565b915062000a3a8362000a13565b925062000a697fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200091d565b905092915050565b600062000a7e8262000a09565b915062000a8b8362000a09565b925082820262000a9b8162000a09565b9150828204841483151762000ab55762000ab462000886565b5b5092915050565b600082825260208201905092915050565b7f57726f6e6720436861696e204964000000000000000000000000000000000000600082015250565b600062000b05600e8362000abc565b915062000b128262000acd565b602082019050919050565b6000602082019050818103600083015262000b388162000af6565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b718262000b44565b9050919050565b62000b838162000b64565b811462000b8f57600080fd5b50565b60008151905062000ba38162000b78565b92915050565b60006020828403121562000bc25762000bc162000b3f565b5b600062000bd28482850162000b92565b91505092915050565b62000be68162000b64565b82525050565b600060408201905062000c03600083018562000bdb565b62000c12602083018462000bdb565b9392505050565b62000c248162000a09565b82525050565b600060208201905062000c41600083018462000c19565b92915050565b61419c8062000c576000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec578063a9059cbb1161008a578063f2fde38b11610064578063f2fde38b14610577578063f87dc2c6146105a0578063fe48b4c6146105cb578063ff511828146105f4576101a7565b8063a9059cbb146104e6578063ce831ed514610523578063dd62ed3e1461053a576101a7565b80638da5cb5b116100c65780638da5cb5b1461045057806395d89b411461047b578063a1d79776146104a6578063a333b4ab146104bd576101a7565b8063715018a6146103e357806385141a77146103fa5780638c0b5e2214610425576101a7565b8063313ce5671161015957806351cd7cc31161013357806351cd7cc31461033d5780635d098b38146103545780636dff2eeb1461037d57806370a08231146103a6576101a7565b8063313ce567146102d2578063437823ec146102fd5780634415fb6114610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632598cdb2146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161061d565b6040516101ce9190612c72565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612d2d565b61065a565b60405161020b9190612d88565b60405180910390f35b34801561022057600080fd5b50610229610678565b6040516102369190612e02565b60405180910390f35b34801561024b57600080fd5b5061025461069e565b6040516102619190612e2c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612e47565b6106c5565b60405161029e9190612d88565b60405180910390f35b3480156102b357600080fd5b506102bc6107c5565b6040516102c99190612ebb565b60405180910390f35b3480156102de57600080fd5b506102e76107eb565b6040516102f49190612ef2565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612f0d565b6107f4565b005b34801561033257600080fd5b5061033b6109ba565b005b34801561034957600080fd5b50610352610a77565b005b34801561036057600080fd5b5061037b60048036038101906103769190612f66565b610bc0565b005b34801561038957600080fd5b506103a4600480360381019061039f9190612d2d565b610e11565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190612f0d565b6110e5565b6040516103da9190612e2c565b60405180910390f35b3480156103ef57600080fd5b506103f861112e565b005b34801561040657600080fd5b5061040f611281565b60405161041c9190612fa2565b60405180910390f35b34801561043157600080fd5b5061043a611287565b6040516104479190612e2c565b60405180910390f35b34801561045c57600080fd5b5061046561128d565b6040516104729190612fa2565b60405180910390f35b34801561048757600080fd5b506104906112b6565b60405161049d9190612c72565b60405180910390f35b3480156104b257600080fd5b506104bb6112f3565b005b3480156104c957600080fd5b506104e460048036038101906104df9190612fe9565b6113a5565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612d2d565b611486565b60405161051a9190612d88565b60405180910390f35b34801561052f57600080fd5b506105386114a4565b005b34801561054657600080fd5b50610561600480360381019061055c9190613016565b6115c7565b60405161056e9190612e2c565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190612f0d565b61164e565b005b3480156105ac57600080fd5b506105b561175e565b6040516105c29190612d88565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190613056565b611771565b005b34801561060057600080fd5b5061061b60048036038101906106169190612f0d565b611908565b005b60606040518060400160405280600d81526020017f464b2042616e616e612047756e00000000000000000000000000000000000000815250905090565b600061066e610667611ace565b8484611ad6565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6106ae91906131f8565b66017e9d8602b4006106c09190613243565b905090565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610711611ace565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610788906132f7565b60405180910390fd5b61079c858585611c9f565b6107b9856107a8611ace565b85846107b49190613317565b611ad6565b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6107fc611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088090613397565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390613403565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b6109c2611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613397565b60405180910390fd5b6012600a610a5d91906131f8565b66017e9d8602b400610a6f9190613243565b600781905550565b610a7f611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390613397565b60405180910390fd5b600f60149054906101000a900460ff1615610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b539061346f565b60405180910390fd5b6001600f60156101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b610bc8611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90613397565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906134db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d299061356d565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f560405160405180910390a250565b610e19611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90613397565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906135ff565b60405180910390fd5b60008111610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90613691565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f909190612fa2565b602060405180830381865afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd191906136c6565b811115611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a9061373f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611070929190613780565b6020604051808303816000875af115801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b391906137be565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611136611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba90613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61dead81565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f464b42414e414e41000000000000000000000000000000000000000000000000815250905090565b6112fb611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613397565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b6113ad611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190613397565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b600061149a611493611ace565b8484611c9f565b6001905092915050565b6000479050600081116114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613691565b60405180910390fd5b4781111561152f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115269061373f565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611597573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611656611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117499061385d565b60405180910390fd5b61175b8161279a565b50565b600f60149054906101000a900460ff1681565b611779611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90613397565b60405180910390fd5b6503d37ec7b50081111561184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906138ef565b60405180910390fd5b650125d93be980821115611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90613981565b60405180910390fd5b6012600a6118a691906131f8565b826118b19190613243565b6005819055506012600a6118c591906131f8565b816118d09190613243565b60068190555080827fa9e7efa397abfe063ede969429ba0525e3083d62f05f959f8496552d2e812b5f60405160405180910390a35050565b611910611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490613397565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a27906139ed565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613a7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613b11565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c929190612e2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613ba3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613c35565b60405180910390fd5b60008111611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db790613cc7565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e665750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef457600f60149054906101000a900460ff16611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb190613d33565b60405180910390fd5b6064600c60009054906101000a900460ff16611ed857600854611edc565b600a545b83611ee79190613243565b611ef19190613d82565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f955750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f9f57600090505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561204a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561215b576007548211156120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e190613dff565b60405180910390fd5b600754826120f7856110e5565b6121019190613e1f565b1115612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613e9f565b60405180910390fd5b600d600081548092919061215590613ebf565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122035750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122595750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122a4576007548211156122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613dff565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561232d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156123835750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123d95750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612418576064600c60009054906101000a900460ff166123fc57600954612400565b600b545b8361240b9190613243565b6124159190613d82565b90505b6000612423306110e5565b9050600f60169054906101000a900460ff161580156124905750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124a85750600f60159054906101000a900460ff165b80156124b5575060055481115b80156124c357506001600d54115b156124ff576124e56124e0846124db8460065461285e565b61285e565b612877565b600047905060008111156124fd576124fc47612b33565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254a9190613317565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836125999190613317565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e39190613e1f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866126819190613317565b60405161268e9190612e2c565b60405180910390a360008211156127935781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ea9190613e1f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161278a9190612e2c565b60405180910390a35b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081831161286d578261286f565b815b905092915050565b6001600f60166101000a81548160ff021916908315150217905550600081116128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90613f53565b60405180910390fd5b6000600267ffffffffffffffff8111156128f2576128f1613f73565b5b6040519080825280602002602001820160405280156129205781602001602082028036833780820191505090505b509050308160008151811061293857612937613fa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a039190613fe6565b81600181518110612a1757612a16613fa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a7e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ad6565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae295949392919061410c565b600060405180830381600087803b158015612afc57600080fd5b505af1158015612b10573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b60008111612b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6d90613f53565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bde573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c1c578082015181840152602081019050612c01565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4482612be2565b612c4e8185612bed565b9350612c5e818560208601612bfe565b612c6781612c28565b840191505092915050565b60006020820190508181036000830152612c8c8184612c39565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cc482612c99565b9050919050565b612cd481612cb9565b8114612cdf57600080fd5b50565b600081359050612cf181612ccb565b92915050565b6000819050919050565b612d0a81612cf7565b8114612d1557600080fd5b50565b600081359050612d2781612d01565b92915050565b60008060408385031215612d4457612d43612c94565b5b6000612d5285828601612ce2565b9250506020612d6385828601612d18565b9150509250929050565b60008115159050919050565b612d8281612d6d565b82525050565b6000602082019050612d9d6000830184612d79565b92915050565b6000819050919050565b6000612dc8612dc3612dbe84612c99565b612da3565b612c99565b9050919050565b6000612dda82612dad565b9050919050565b6000612dec82612dcf565b9050919050565b612dfc81612de1565b82525050565b6000602082019050612e176000830184612df3565b92915050565b612e2681612cf7565b82525050565b6000602082019050612e416000830184612e1d565b92915050565b600080600060608486031215612e6057612e5f612c94565b5b6000612e6e86828701612ce2565b9350506020612e7f86828701612ce2565b9250506040612e9086828701612d18565b9150509250925092565b6000612ea582612c99565b9050919050565b612eb581612e9a565b82525050565b6000602082019050612ed06000830184612eac565b92915050565b600060ff82169050919050565b612eec81612ed6565b82525050565b6000602082019050612f076000830184612ee3565b92915050565b600060208284031215612f2357612f22612c94565b5b6000612f3184828501612ce2565b91505092915050565b612f4381612e9a565b8114612f4e57600080fd5b50565b600081359050612f6081612f3a565b92915050565b600060208284031215612f7c57612f7b612c94565b5b6000612f8a84828501612f51565b91505092915050565b612f9c81612cb9565b82525050565b6000602082019050612fb76000830184612f93565b92915050565b612fc681612d6d565b8114612fd157600080fd5b50565b600081359050612fe381612fbd565b92915050565b600060208284031215612fff57612ffe612c94565b5b600061300d84828501612fd4565b91505092915050565b6000806040838503121561302d5761302c612c94565b5b600061303b85828601612ce2565b925050602061304c85828601612ce2565b9150509250929050565b6000806040838503121561306d5761306c612c94565b5b600061307b85828601612d18565b925050602061308c85828601612d18565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561311c578086048111156130f8576130f7613096565b5b60018516156131075780820291505b8081029050613115856130c5565b94506130dc565b94509492505050565b60008261313557600190506131f1565b8161314357600090506131f1565b8160018114613159576002811461316357613192565b60019150506131f1565b60ff84111561317557613174613096565b5b8360020a91508482111561318c5761318b613096565b5b506131f1565b5060208310610133831016604e8410600b84101617156131c75782820a9050838111156131c2576131c1613096565b5b6131f1565b6131d484848460016130d2565b925090508184048111156131eb576131ea613096565b5b81810290505b9392505050565b600061320382612cf7565b915061320e83612ed6565b925061323b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613125565b905092915050565b600061324e82612cf7565b915061325983612cf7565b925082820261326781612cf7565b9150828204841483151761327e5761327d613096565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006132e1602883612bed565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b600061332282612cf7565b915061332d83612cf7565b925082820390508181111561334557613344613096565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613381602083612bed565b915061338c8261334b565b602082019050919050565b600060208201905081810360008301526133b081613374565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b60006133ed601b83612bed565b91506133f8826133b7565b602082019050919050565b6000602082019050818103600083015261341c816133e0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613459601783612bed565b915061346482613423565b602082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b7f43412077696c6c206e6f74206265207468652046656520526563696576657200600082015250565b60006134c5601f83612bed565b91506134d08261348f565b602082019050919050565b600060208201905081810360008301526134f4816134b8565b9050919050565b7f3020616464792077696c6c206e6f74206265207468652066656520526563696560008201527f7665720000000000000000000000000000000000000000000000000000000000602082015250565b6000613557602383612bed565b9150613562826134fb565b604082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006135e9603683612bed565b91506135f48261358d565b604082019050919050565b60006020820190508181036000830152613618816135dc565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b600061367b602283612bed565b91506136868261361f565b604082019050919050565b600060208201905081810360008301526136aa8161366e565b9050919050565b6000815190506136c081612d01565b92915050565b6000602082840312156136dc576136db612c94565b5b60006136ea848285016136b1565b91505092915050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b6000613729601383612bed565b9150613734826136f3565b602082019050919050565b600060208201905081810360008301526137588161371c565b9050919050565b600061376a82612dcf565b9050919050565b61377a8161375f565b82525050565b60006040820190506137956000830185613771565b6137a26020830184612e1d565b9392505050565b6000815190506137b881612fbd565b92915050565b6000602082840312156137d4576137d3612c94565b5b60006137e2848285016137a9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613847602683612bed565b9150613852826137eb565b604082019050919050565b600060208201905081810360008301526138768161383a565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f203125206f662074686520737570706c790000000000000000000000602082015250565b60006138d9603583612bed565b91506138e48261387d565b604082019050919050565b60006020820190508181036000830152613908816138cc565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f20302e3325206f662074686520737570706c79000000000000000000602082015250565b600061396b603783612bed565b91506139768261390f565b604082019050919050565b6000602082019050818103600083015261399a8161395e565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006139d7601b83612bed565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a69602483612bed565b9150613a7482613a0d565b604082019050919050565b60006020820190508181036000830152613a9881613a5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afb602283612bed565b9150613b0682613a9f565b604082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b8d602583612bed565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c1f602383612bed565b9150613c2a82613bc3565b604082019050919050565b60006020820190508181036000830152613c4e81613c12565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613cb1602983612bed565b9150613cbc82613c55565b604082019050919050565b60006020820190508181036000830152613ce081613ca4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613d1d601383612bed565b9150613d2882613ce7565b602082019050919050565b60006020820190508181036000830152613d4c81613d10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d8d82612cf7565b9150613d9883612cf7565b925082613da857613da7613d53565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613de9601983612bed565b9150613df482613db3565b602082019050919050565b60006020820190508181036000830152613e1881613ddc565b9050919050565b6000613e2a82612cf7565b9150613e3583612cf7565b9250828201905080821115613e4d57613e4c613096565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613e89601a83612bed565b9150613e9482613e53565b602082019050919050565b60006020820190508181036000830152613eb881613e7c565b9050919050565b6000613eca82612cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efc57613efb613096565b5b600182019050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b6000613f3d601d83612bed565b9150613f4882613f07565b602082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fe081612ccb565b92915050565b600060208284031215613ffc57613ffb612c94565b5b600061400a84828501613fd1565b91505092915050565b6000819050919050565b600061403861403361402e84614013565b612da3565b612cf7565b9050919050565b6140488161401d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408381612cb9565b82525050565b6000614095838361407a565b60208301905092915050565b6000602082019050919050565b60006140b98261404e565b6140c38185614059565b93506140ce8361406a565b8060005b838110156140ff5781516140e68882614089565b97506140f1836140a1565b9250506001810190506140d2565b5085935050505092915050565b600060a0820190506141216000830188612e1d565b61412e602083018761403f565b818103604083015261414081866140ae565b905061414f6060830185612f93565b61415c6080830184612e1d565b969550505050505056fea26469706673582212207d3306d801f6675a6c511eeb1d1e8372c6deff7d815bcab391a3a6e66562542a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063715018a6116100ec578063a9059cbb1161008a578063f2fde38b11610064578063f2fde38b14610577578063f87dc2c6146105a0578063fe48b4c6146105cb578063ff511828146105f4576101a7565b8063a9059cbb146104e6578063ce831ed514610523578063dd62ed3e1461053a576101a7565b80638da5cb5b116100c65780638da5cb5b1461045057806395d89b411461047b578063a1d79776146104a6578063a333b4ab146104bd576101a7565b8063715018a6146103e357806385141a77146103fa5780638c0b5e2214610425576101a7565b8063313ce5671161015957806351cd7cc31161013357806351cd7cc31461033d5780635d098b38146103545780636dff2eeb1461037d57806370a08231146103a6576101a7565b8063313ce567146102d2578063437823ec146102fd5780634415fb6114610326576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632598cdb2146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c161061d565b6040516101ce9190612c72565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612d2d565b61065a565b60405161020b9190612d88565b60405180910390f35b34801561022057600080fd5b50610229610678565b6040516102369190612e02565b60405180910390f35b34801561024b57600080fd5b5061025461069e565b6040516102619190612e2c565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c9190612e47565b6106c5565b60405161029e9190612d88565b60405180910390f35b3480156102b357600080fd5b506102bc6107c5565b6040516102c99190612ebb565b60405180910390f35b3480156102de57600080fd5b506102e76107eb565b6040516102f49190612ef2565b60405180910390f35b34801561030957600080fd5b50610324600480360381019061031f9190612f0d565b6107f4565b005b34801561033257600080fd5b5061033b6109ba565b005b34801561034957600080fd5b50610352610a77565b005b34801561036057600080fd5b5061037b60048036038101906103769190612f66565b610bc0565b005b34801561038957600080fd5b506103a4600480360381019061039f9190612d2d565b610e11565b005b3480156103b257600080fd5b506103cd60048036038101906103c89190612f0d565b6110e5565b6040516103da9190612e2c565b60405180910390f35b3480156103ef57600080fd5b506103f861112e565b005b34801561040657600080fd5b5061040f611281565b60405161041c9190612fa2565b60405180910390f35b34801561043157600080fd5b5061043a611287565b6040516104479190612e2c565b60405180910390f35b34801561045c57600080fd5b5061046561128d565b6040516104729190612fa2565b60405180910390f35b34801561048757600080fd5b506104906112b6565b60405161049d9190612c72565b60405180910390f35b3480156104b257600080fd5b506104bb6112f3565b005b3480156104c957600080fd5b506104e460048036038101906104df9190612fe9565b6113a5565b005b3480156104f257600080fd5b5061050d60048036038101906105089190612d2d565b611486565b60405161051a9190612d88565b60405180910390f35b34801561052f57600080fd5b506105386114a4565b005b34801561054657600080fd5b50610561600480360381019061055c9190613016565b6115c7565b60405161056e9190612e2c565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190612f0d565b61164e565b005b3480156105ac57600080fd5b506105b561175e565b6040516105c29190612d88565b60405180910390f35b3480156105d757600080fd5b506105f260048036038101906105ed9190613056565b611771565b005b34801561060057600080fd5b5061061b60048036038101906106169190612f0d565b611908565b005b60606040518060400160405280600d81526020017f464b2042616e616e612047756e00000000000000000000000000000000000000815250905090565b600061066e610667611ace565b8484611ad6565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012600a6106ae91906131f8565b66017e9d8602b4006106c09190613243565b905090565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610711611ace565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610791576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610788906132f7565b60405180910390fd5b61079c858585611c9f565b6107b9856107a8611ace565b85846107b49190613317565b611ad6565b60019150509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006012905090565b6107fc611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088090613397565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390613403565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b6109c2611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613397565b60405180910390fd5b6012600a610a5d91906131f8565b66017e9d8602b400610a6f9190613243565b600781905550565b610a7f611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0390613397565b60405180910390fd5b600f60149054906101000a900460ff1615610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b539061346f565b60405180910390fd5b6001600f60156101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b610bc8611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90613397565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906134db565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d299061356d565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6867e944970fe7ede3b1a987e85026d725a5faa1e05cc2f89ec2a7a27701c3f560405160405180910390a250565b610e19611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90613397565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906135ff565b60405180910390fd5b60008111610f57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4e90613691565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f909190612fa2565b602060405180830381865afa158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd191906136c6565b811115611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a9061373f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611070929190613780565b6020604051808303816000875af115801561108f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b391906137be565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611136611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ba90613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61dead81565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f464b42414e414e41000000000000000000000000000000000000000000000000815250905090565b6112fb611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137f90613397565b60405180910390fd5b6001600c60006101000a81548160ff021916908315150217905550565b6113ad611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143190613397565b60405180910390fd5b80600f60156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b600061149a611493611ace565b8484611c9f565b6001905092915050565b6000479050600081116114ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e390613691565b60405180910390fd5b4781111561152f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115269061373f565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611597573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611656611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613397565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611752576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117499061385d565b60405180910390fd5b61175b8161279a565b50565b600f60149054906101000a900460ff1681565b611779611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90613397565b60405180910390fd5b6503d37ec7b50081111561184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906138ef565b60405180910390fd5b650125d93be980821115611898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188f90613981565b60405180910390fd5b6012600a6118a691906131f8565b826118b19190613243565b6005819055506012600a6118c591906131f8565b816118d09190613243565b60068190555080827fa9e7efa397abfe063ede969429ba0525e3083d62f05f959f8496552d2e812b5f60405160405180910390a35050565b611910611ace565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199490613397565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a27906139ed565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3c90613a7f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bab90613b11565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c929190612e2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611d0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0590613ba3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490613c35565b60405180910390fd5b60008111611dc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db790613cc7565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611e665750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ef457600f60149054906101000a900460ff16611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb190613d33565b60405180910390fd5b6064600c60009054906101000a900460ff16611ed857600854611edc565b600a545b83611ee79190613243565b611ef19190613d82565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f955750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f9f57600090505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561204a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a05750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561215b576007548211156120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e190613dff565b60405180910390fd5b600754826120f7856110e5565b6121019190613e1f565b1115612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613e9f565b60405180910390fd5b600d600081548092919061215590613ebf565b91905055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156122035750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122595750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156122a4576007548211156122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90613dff565b60405180910390fd5b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561232d57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156123835750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123d95750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612418576064600c60009054906101000a900460ff166123fc57600954612400565b600b545b8361240b9190613243565b6124159190613d82565b90505b6000612423306110e5565b9050600f60169054906101000a900460ff161580156124905750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124a85750600f60159054906101000a900460ff165b80156124b5575060055481115b80156124c357506001600d54115b156124ff576124e56124e0846124db8460065461285e565b61285e565b612877565b600047905060008111156124fd576124fc47612b33565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461254a9190613317565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836125999190613317565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e39190613e1f565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866126819190613317565b60405161268e9190612e2c565b60405180910390a360008211156127935781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126ea9190613e1f565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161278a9190612e2c565b60405180910390a35b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081831161286d578261286f565b815b905092915050565b6001600f60166101000a81548160ff021916908315150217905550600081116128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cc90613f53565b60405180910390fd5b6000600267ffffffffffffffff8111156128f2576128f1613f73565b5b6040519080825280602002602001820160405280156129205781602001602082028036833780820191505090505b509050308160008151811061293857612937613fa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a039190613fe6565b81600181518110612a1757612a16613fa2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a7e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ad6565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ae295949392919061410c565b600060405180830381600087803b158015612afc57600080fd5b505af1158015612b10573d6000803e3d6000fd5b50505050506000600f60166101000a81548160ff02191690831515021790555050565b60008111612b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6d90613f53565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612bde573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c1c578082015181840152602081019050612c01565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c4482612be2565b612c4e8185612bed565b9350612c5e818560208601612bfe565b612c6781612c28565b840191505092915050565b60006020820190508181036000830152612c8c8184612c39565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cc482612c99565b9050919050565b612cd481612cb9565b8114612cdf57600080fd5b50565b600081359050612cf181612ccb565b92915050565b6000819050919050565b612d0a81612cf7565b8114612d1557600080fd5b50565b600081359050612d2781612d01565b92915050565b60008060408385031215612d4457612d43612c94565b5b6000612d5285828601612ce2565b9250506020612d6385828601612d18565b9150509250929050565b60008115159050919050565b612d8281612d6d565b82525050565b6000602082019050612d9d6000830184612d79565b92915050565b6000819050919050565b6000612dc8612dc3612dbe84612c99565b612da3565b612c99565b9050919050565b6000612dda82612dad565b9050919050565b6000612dec82612dcf565b9050919050565b612dfc81612de1565b82525050565b6000602082019050612e176000830184612df3565b92915050565b612e2681612cf7565b82525050565b6000602082019050612e416000830184612e1d565b92915050565b600080600060608486031215612e6057612e5f612c94565b5b6000612e6e86828701612ce2565b9350506020612e7f86828701612ce2565b9250506040612e9086828701612d18565b9150509250925092565b6000612ea582612c99565b9050919050565b612eb581612e9a565b82525050565b6000602082019050612ed06000830184612eac565b92915050565b600060ff82169050919050565b612eec81612ed6565b82525050565b6000602082019050612f076000830184612ee3565b92915050565b600060208284031215612f2357612f22612c94565b5b6000612f3184828501612ce2565b91505092915050565b612f4381612e9a565b8114612f4e57600080fd5b50565b600081359050612f6081612f3a565b92915050565b600060208284031215612f7c57612f7b612c94565b5b6000612f8a84828501612f51565b91505092915050565b612f9c81612cb9565b82525050565b6000602082019050612fb76000830184612f93565b92915050565b612fc681612d6d565b8114612fd157600080fd5b50565b600081359050612fe381612fbd565b92915050565b600060208284031215612fff57612ffe612c94565b5b600061300d84828501612fd4565b91505092915050565b6000806040838503121561302d5761302c612c94565b5b600061303b85828601612ce2565b925050602061304c85828601612ce2565b9150509250929050565b6000806040838503121561306d5761306c612c94565b5b600061307b85828601612d18565b925050602061308c85828601612d18565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561311c578086048111156130f8576130f7613096565b5b60018516156131075780820291505b8081029050613115856130c5565b94506130dc565b94509492505050565b60008261313557600190506131f1565b8161314357600090506131f1565b8160018114613159576002811461316357613192565b60019150506131f1565b60ff84111561317557613174613096565b5b8360020a91508482111561318c5761318b613096565b5b506131f1565b5060208310610133831016604e8410600b84101617156131c75782820a9050838111156131c2576131c1613096565b5b6131f1565b6131d484848460016130d2565b925090508184048111156131eb576131ea613096565b5b81810290505b9392505050565b600061320382612cf7565b915061320e83612ed6565b925061323b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613125565b905092915050565b600061324e82612cf7565b915061325983612cf7565b925082820261326781612cf7565b9150828204841483151761327e5761327d613096565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006132e1602883612bed565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b600061332282612cf7565b915061332d83612cf7565b925082820390508181111561334557613344613096565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613381602083612bed565b915061338c8261334b565b602082019050919050565b600060208201905081810360008301526133b081613374565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b60006133ed601b83612bed565b91506133f8826133b7565b602082019050919050565b6000602082019050818103600083015261341c816133e0565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613459601783612bed565b915061346482613423565b602082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b7f43412077696c6c206e6f74206265207468652046656520526563696576657200600082015250565b60006134c5601f83612bed565b91506134d08261348f565b602082019050919050565b600060208201905081810360008301526134f4816134b8565b9050919050565b7f3020616464792077696c6c206e6f74206265207468652066656520526563696560008201527f7665720000000000000000000000000000000000000000000000000000000000602082015250565b6000613557602383612bed565b9150613562826134fb565b604082019050919050565b600060208201905081810360008301526135868161354a565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b60006135e9603683612bed565b91506135f48261358d565b604082019050919050565b60006020820190508181036000830152613618816135dc565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b600061367b602283612bed565b91506136868261361f565b604082019050919050565b600060208201905081810360008301526136aa8161366e565b9050919050565b6000815190506136c081612d01565b92915050565b6000602082840312156136dc576136db612c94565b5b60006136ea848285016136b1565b91505092915050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b6000613729601383612bed565b9150613734826136f3565b602082019050919050565b600060208201905081810360008301526137588161371c565b9050919050565b600061376a82612dcf565b9050919050565b61377a8161375f565b82525050565b60006040820190506137956000830185613771565b6137a26020830184612e1d565b9392505050565b6000815190506137b881612fbd565b92915050565b6000602082840312156137d4576137d3612c94565b5b60006137e2848285016137a9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613847602683612bed565b9150613852826137eb565b604082019050919050565b600060208201905081810360008301526138768161383a565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f203125206f662074686520737570706c790000000000000000000000602082015250565b60006138d9603583612bed565b91506138e48261387d565b604082019050919050565b60006020820190508181036000830152613908816138cc565b9050919050565b7f616d6f756e74206d757374206265206c657373207468616e206f72206571756160008201527f6c20746f20302e3325206f662074686520737570706c79000000000000000000602082015250565b600061396b603783612bed565b91506139768261390f565b604082019050919050565b6000602082019050818103600083015261399a8161395e565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b60006139d7601b83612bed565b91506139e2826139a1565b602082019050919050565b60006020820190508181036000830152613a06816139ca565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a69602483612bed565b9150613a7482613a0d565b604082019050919050565b60006020820190508181036000830152613a9881613a5c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613afb602283612bed565b9150613b0682613a9f565b604082019050919050565b60006020820190508181036000830152613b2a81613aee565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b8d602583612bed565b9150613b9882613b31565b604082019050919050565b60006020820190508181036000830152613bbc81613b80565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613c1f602383612bed565b9150613c2a82613bc3565b604082019050919050565b60006020820190508181036000830152613c4e81613c12565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613cb1602983612bed565b9150613cbc82613c55565b604082019050919050565b60006020820190508181036000830152613ce081613ca4565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000613d1d601383612bed565b9150613d2882613ce7565b602082019050919050565b60006020820190508181036000830152613d4c81613d10565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d8d82612cf7565b9150613d9883612cf7565b925082613da857613da7613d53565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613de9601983612bed565b9150613df482613db3565b602082019050919050565b60006020820190508181036000830152613e1881613ddc565b9050919050565b6000613e2a82612cf7565b9150613e3583612cf7565b9250828201905080821115613e4d57613e4c613096565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613e89601a83612bed565b9150613e9482613e53565b602082019050919050565b60006020820190508181036000830152613eb881613e7c565b9050919050565b6000613eca82612cf7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613efc57613efb613096565b5b600182019050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b6000613f3d601d83612bed565b9150613f4882613f07565b602082019050919050565b60006020820190508181036000830152613f6c81613f30565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fe081612ccb565b92915050565b600060208284031215613ffc57613ffb612c94565b5b600061400a84828501613fd1565b91505092915050565b6000819050919050565b600061403861403361402e84614013565b612da3565b612cf7565b9050919050565b6140488161401d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408381612cb9565b82525050565b6000614095838361407a565b60208301905092915050565b6000602082019050919050565b60006140b98261404e565b6140c38185614059565b93506140ce8361406a565b8060005b838110156140ff5781516140e68882614089565b97506140f1836140a1565b9250506001810190506140d2565b5085935050505092915050565b600060a0820190506141216000830188612e1d565b61412e602083018761403f565b818103604083015261414081866140ae565b905061414f6060830185612f93565b61415c6080830184612e1d565b969550505050505056fea26469706673582212207d3306d801f6675a6c511eeb1d1e8372c6deff7d815bcab391a3a6e66562542a64736f6c63430008130033

Deployed Bytecode Sourcemap

2840:10699:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5884:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6816:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3873:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6155:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6983:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3167:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6066:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11436:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10772:71;;;;;;;;;;;;;:::i;:::-;;12402:208;;;;;;;;;;;;;:::i;:::-;;11051:373;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12662:477;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6256:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1925:148;;;;;;;;;;;;;:::i;:::-;;3081:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3570:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1309:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5973:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10848:70;;;;;;;;;;;;;:::i;:::-;;10923:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6494:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13150:386;;;;;;;;;;;;;:::i;:::-;;6667:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1519:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3957:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11939:451;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11683:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5884:83;5921:13;5954:5;;;;;;;;;;;;;;;;;5947:12;;5884:83;:::o;6816:161::-;6891:4;6908:39;6917:12;:10;:12::i;:::-;6931:7;6940:6;6908:8;:39::i;:::-;6965:4;6958:11;;6816:161;;;;:::o;3873:41::-;;;;;;;;;;;;;:::o;6155:95::-;6208:7;3247:2;3310;:13;;;;:::i;:::-;3292:15;:31;;;;:::i;:::-;6228:14;;6155:95;:::o;6983:410::-;7081:4;7098:24;7125:11;:19;7137:6;7125:19;;;;;;;;;;;;;;;:33;7145:12;:10;:12::i;:::-;7125:33;;;;;;;;;;;;;;;;7098:60;;7197:6;7177:16;:26;;7169:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7259:36;7269:6;7277:9;7288:6;7259:9;:36::i;:::-;7306:57;7315:6;7323:12;:10;:12::i;:::-;7356:6;7337:16;:25;;;;:::i;:::-;7306:8;:57::i;:::-;7381:4;7374:11;;;6983:410;;;;;:::o;3167:38::-;;;;;;;;;;;;;:::o;6066:83::-;6107:5;3247:2;6125:16;;6066:83;:::o;11436:236::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11544:4:::1;11513:35;;:18;:27;11532:7;11513:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;::::0;11505:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11619:4;11589:18;:27;11608:7;11589:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11657:7;11635:30;;;;;;;;;;;;11436:236:::0;:::o;10772:71::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3247:2:::1;3310;:13;;;;:::i;:::-;3292:15;:31;;;;:::i;:::-;10820:11;:21;;;;10772:71::o:0;12402:208::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12466:11:::1;;;;;;;;;;;12465:12;12457:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12533:4;12515:15;;:22;;;;;;;;;;;;;;;;;;12563:4;12549:11;;:18;;;;;;;;;;;;;;;;;;12582:20;;;;;;;;;;12402:208::o:0;11051:373::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11166:4:::1;11144:27;;:10;:27;;::::0;11136:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11247:1;11225:24;;:10;:24;;::::0;11217:72:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11317:10;11299:15;;:28;;;;;;;;;;;;;;;;;;11369:4;11336:18;:30;11355:10;11336:30;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;11405:10;11385:31;;;;;;;;;;;;11051:373:::0;:::o;12662:477::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12793:4:::1;12771:27;;:10;:27;;::::0;12763:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12886:1;12876:7;:11;12868:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12963:10;12956:28;;;12993:4;12956:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12945:7;:54;;12937:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;13041:10;13034:27;;;13062:15;;;;;;;;;;;13079:7;13034:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13122:7;13101:29;;;;;;;;;;12662:477:::0;;:::o;6256:119::-;6322:7;6349:9;:18;6359:7;6349:18;;;;;;;;;;;;;;;;6342:25;;6256:119;;;:::o;1925:148::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2032:1:::1;1995:40;;2016:6;::::0;::::1;;;;;;;;1995:40;;;;;;;;;;;;2063:1;2046:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1925:148::o:0;3081:79::-;3118:42;3081:79;:::o;3570:58::-;;;;:::o;1309:79::-;1347:7;1374:6;;;;;;;;;;;1367:13;;1309:79;:::o;5973:87::-;6012:13;6045:7;;;;;;;;;;;;;;;;;6038:14;;5973:87;:::o;10848:70::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10912:4:::1;10894:15;;:22;;;;;;;;;;;;;;;;;;10848:70::o:0;10923:123::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11004:5:::1;10986:15;;:23;;;;;;;;;;;;;;;;;;11038:5;11015:29;;;;;;;;;;;;10923:123:::0;:::o;6494:167::-;6572:4;6589:42;6599:12;:10;:12::i;:::-;6613:9;6624:6;6589:9;:42::i;:::-;6649:4;6642:11;;6494:167;;;;:::o;13150:386::-;13204:26;13233:21;13204:50;;13294:1;13273:18;:22;13265:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;13375:21;13353:18;:43;;13345:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13447:15;;;;;;;;;;;13431:42;;:62;13474:18;13431:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13507:21;;;;;;;;;;13193:343;13150:386::o;6667:143::-;6748:7;6775:11;:18;6787:5;6775:18;;;;;;;;;;;;;;;:27;6794:7;6775:27;;;;;;;;;;;;;;;;6768:34;;6667:143;;;;:::o;1519:203::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1630:1:::1;1610:22;;:8;:22;;::::0;1602:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1686:28;1705:8;1686:18;:28::i;:::-;1519:203:::0;:::o;3957:31::-;;;;;;;;;;;;;:::o;11939:451::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12056:13:::1;12044:8;:25;;12036:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;12158:13;12146:8;:25;;12138:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;3247:2;12266;:13;;;;:::i;:::-;12255:8;:24;;;;:::i;:::-;12242:10;:37;;;;3247:2;12316;:13;;;;:::i;:::-;12305:8;:24;;;;:::i;:::-;12289:13;:40;;;;12373:8;12363;12341:41;;;;;;;;;;11939:451:::0;;:::o;11683:245::-;1444:12;:10;:12::i;:::-;1434:22;;:6;;;;;;;;;;:22;;;1426:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11794:5:::1;11763:36;;:18;:27;11782:7;11763:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;11755:76:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11872:5;11842:18;:27;11861:7;11842:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11912:7;11890:30;;;;;;;;;;;;11683:245:::0;:::o;215:98::-;268:7;295:10;288:17;;215:98;:::o;7399:335::-;7509:1;7492:19;;:5;:19;;;7484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7590:1;7571:21;;:7;:21;;;7563:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7672:6;7642:11;:18;7654:5;7642:18;;;;;;;;;;;;;;;:27;7661:7;7642:27;;;;;;;;;;;;;;;:36;;;;7710:7;7694:32;;7703:5;7694:32;;;7719:6;7694:32;;;;;;:::i;:::-;;;;;;;;7399:335;;;:::o;7740:2305::-;7844:1;7828:18;;:4;:18;;;7820:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7921:1;7907:16;;:2;:16;;;7899:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7991:1;7982:6;:10;7974:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8049:15;8084:18;:24;8103:4;8084:24;;;;;;;;;;;;;;;;;;;;;;;;;8083:25;:52;;;;;8113:18;:22;8132:2;8113:22;;;;;;;;;;;;;;;;;;;;;;;;;8112:23;8083:52;8079:225;;;8160:11;;;;;;;;;;;8152:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8288:3;8241:15;;;;;;;;;;;8240:43;;8270:13;;8240:43;;;8259:8;;8240:43;8230:6;:54;;;;:::i;:::-;:62;;;;:::i;:::-;8220:72;;8079:225;8329:18;:24;8348:4;8329:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8357:18;:22;8376:2;8357:22;;;;;;;;;;;;;;;;;;;;;;;;;8329:50;8325:94;;;8406:1;8396:11;;8325:94;8455:13;;;;;;;;;;;8447:21;;:4;:21;;;:55;;;;;8486:15;;;;;;;;;;;8472:30;;:2;:30;;;;8447:55;:82;;;;;8507:18;:22;8526:2;8507:22;;;;;;;;;;;;;;;;;;;;;;;;;8506:23;8447:82;8443:296;;;8565:11;;8555:6;:21;;8547:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8656:11;;8646:6;8630:13;8640:2;8630:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;8622:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;8715:8;;:10;;;;;;;;;:::i;:::-;;;;;;8443:296;8774:13;;;;;;;;;;;8766:21;;:4;:21;;;;:50;;;;;8792:18;:24;8811:4;8792:24;;;;;;;;;;;;;;;;;;;;;;;;;8791:25;8766:50;:77;;;;;8821:18;:22;8840:2;8821:22;;;;;;;;;;;;;;;;;;;;;;;;;8820:23;8766:77;8762:172;;;8879:11;;8869:6;:21;;8861:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8762:172;8966:13;;;;;;;;;;;8960:19;;:2;:19;;;:44;;;;;8999:4;8983:21;;:4;:21;;;;8960:44;:73;;;;;9009:18;:24;9028:4;9009:24;;;;;;;;;;;;;;;;;;;;;;;;;9008:25;8960:73;:100;;;;;9038:18;:22;9057:2;9038:22;;;;;;;;;;;;;;;;;;;;;;;;;9037:23;8960:100;8956:240;;;9154:3;9105:15;;;;;;;;;;;9104:45;;9135:14;;9104:45;;;9123:9;;9104:45;9094:6;:56;;;;:::i;:::-;:64;;;;:::i;:::-;9084:74;;8956:240;9221:28;9252:24;9270:4;9252:9;:24::i;:::-;9221:55;;9296:6;;;;;;;;;;;9295:7;:32;;;;;9314:13;;;;;;;;;;;9306:21;;:4;:21;;;;9295:32;:51;;;;;9331:15;;;;;;;;;;;9295:51;:88;;;;;9373:10;;9350:20;:33;9295:88;:104;;;;;9398:1;9387:8;;:12;9295:104;9291:407;;;9420:71;9437:53;9441:6;9449:40;9453:20;9475:13;;9449:3;:40::i;:::-;9437:3;:53::i;:::-;9420:16;:71::i;:::-;9509:26;9538:21;9509:50;;9602:1;9581:18;:22;9578:105;;;9628:35;9641:21;9628:12;:35::i;:::-;9578:105;9401:297;9291:407;9744:6;9726:9;:15;9736:4;9726:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;9708:9;:15;9718:4;9708:15;;;;;;;;;;;;;;;:42;;;;9805:7;9795:6;:18;;;;:::i;:::-;9778:9;:13;9788:2;9778:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;9762:9;:13;9772:2;9762:13;;;;;;;;;;;;;;;:52;;;;9845:2;9830:38;;9839:4;9830:38;;;9859:7;9849:6;:18;;;;:::i;:::-;9830:38;;;;;;:::i;:::-;;;;;;;;9893:1;9883:7;:11;9880:158;;;9963:7;9935:9;:24;9953:4;9935:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;9908:9;:24;9926:4;9908:24;;;;;;;;;;;;;;;:63;;;;10012:4;9989:37;;9998:4;9989:37;;;10018:7;9989:37;;;;;;:::i;:::-;;;;;;;;9880:158;7809:2236;;7740:2305;;;:::o;1728:191::-;1802:16;1821:6;;;;;;;;;;;1802:25;;1847:8;1838:6;;:17;;;;;;;;;;;;;;;;;;1902:8;1871:40;;1892:8;1871:40;;;;;;;;;;;;1791:128;1728:191;:::o;6381:107::-;6438:7;6470:1;6466;:5;6465:15;;6479:1;6465:15;;;6475:1;6465:15;6458:22;;6381:107;;;;:::o;10051:551::-;4563:4;4554:6;;:13;;;;;;;;;;;;;;;;;;10151:1:::1;10137:11;:15;10129:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10197:21;10235:1;10221:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10197:40;;10266:4;10248;10253:1;10248:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10292:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10282:4;10287:1;10282:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10325:62;10342:4;10357:15;;;;;;;;;;;10375:11;10325:8;:62::i;:::-;10398:15;;;;;;;;;;;:66;;;10479:11;10505:1;10521:4;10548;10568:15;10398:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10118:484;4599:5:::0;4590:6;;:14;;;;;;;;;;;;;;;;;;10051:551;:::o;10608:159::-;10681:1;10672:6;:10;10664:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10727:15;;;;;;;;;;;:24;;:32;10752:6;10727:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10608:159;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:104::-;5441:7;5470:24;5488:5;5470:24;:::i;:::-;5459:35;;5396:104;;;:::o;5506:142::-;5609:32;5635:5;5609:32;:::i;:::-;5604:3;5597:45;5506:142;;:::o;5654:254::-;5763:4;5801:2;5790:9;5786:18;5778:26;;5814:87;5898:1;5887:9;5883:17;5874:6;5814:87;:::i;:::-;5654:254;;;;:::o;5914:86::-;5949:7;5989:4;5982:5;5978:16;5967:27;;5914:86;;;:::o;6006:112::-;6089:22;6105:5;6089:22;:::i;:::-;6084:3;6077:35;6006:112;;:::o;6124:214::-;6213:4;6251:2;6240:9;6236:18;6228:26;;6264:67;6328:1;6317:9;6313:17;6304:6;6264:67;:::i;:::-;6124:214;;;;:::o;6344:329::-;6403:6;6452:2;6440:9;6431:7;6427:23;6423:32;6420:119;;;6458:79;;:::i;:::-;6420:119;6578:1;6603:53;6648:7;6639:6;6628:9;6624:22;6603:53;:::i;:::-;6593:63;;6549:117;6344:329;;;;:::o;6679:138::-;6760:32;6786:5;6760:32;:::i;:::-;6753:5;6750:43;6740:71;;6807:1;6804;6797:12;6740:71;6679:138;:::o;6823:155::-;6877:5;6915:6;6902:20;6893:29;;6931:41;6966:5;6931:41;:::i;:::-;6823:155;;;;:::o;6984:345::-;7051:6;7100:2;7088:9;7079:7;7075:23;7071:32;7068:119;;;7106:79;;:::i;:::-;7068:119;7226:1;7251:61;7304:7;7295:6;7284:9;7280:22;7251:61;:::i;:::-;7241:71;;7197:125;6984:345;;;;:::o;7335:118::-;7422:24;7440:5;7422:24;:::i;:::-;7417:3;7410:37;7335:118;;:::o;7459:222::-;7552:4;7590:2;7579:9;7575:18;7567:26;;7603:71;7671:1;7660:9;7656:17;7647:6;7603:71;:::i;:::-;7459:222;;;;:::o;7687:116::-;7757:21;7772:5;7757:21;:::i;:::-;7750:5;7747:32;7737:60;;7793:1;7790;7783:12;7737:60;7687:116;:::o;7809:133::-;7852:5;7890:6;7877:20;7868:29;;7906:30;7930:5;7906:30;:::i;:::-;7809:133;;;;:::o;7948:323::-;8004:6;8053:2;8041:9;8032:7;8028:23;8024:32;8021:119;;;8059:79;;:::i;:::-;8021:119;8179:1;8204:50;8246:7;8237:6;8226:9;8222:22;8204:50;:::i;:::-;8194:60;;8150:114;7948:323;;;;:::o;8277:474::-;8345:6;8353;8402:2;8390:9;8381:7;8377:23;8373:32;8370:119;;;8408:79;;:::i;:::-;8370:119;8528:1;8553:53;8598:7;8589:6;8578:9;8574:22;8553:53;:::i;:::-;8543:63;;8499:117;8655:2;8681:53;8726:7;8717:6;8706:9;8702:22;8681:53;:::i;:::-;8671:63;;8626:118;8277:474;;;;;:::o;8757:::-;8825:6;8833;8882:2;8870:9;8861:7;8857:23;8853:32;8850:119;;;8888:79;;:::i;:::-;8850:119;9008:1;9033:53;9078:7;9069:6;9058:9;9054:22;9033:53;:::i;:::-;9023:63;;8979:117;9135:2;9161:53;9206:7;9197:6;9186:9;9182:22;9161:53;:::i;:::-;9151:63;;9106:118;8757:474;;;;;:::o;9237:180::-;9285:77;9282:1;9275:88;9382:4;9379:1;9372:15;9406:4;9403:1;9396:15;9423:102;9465:8;9512:5;9509:1;9505:13;9484:34;;9423:102;;;:::o;9531:848::-;9592:5;9599:4;9623:6;9614:15;;9647:5;9638:14;;9661:712;9682:1;9672:8;9669:15;9661:712;;;9777:4;9772:3;9768:14;9762:4;9759:24;9756:50;;;9786:18;;:::i;:::-;9756:50;9836:1;9826:8;9822:16;9819:451;;;10251:4;10244:5;10240:16;10231:25;;9819:451;10301:4;10295;10291:15;10283:23;;10331:32;10354:8;10331:32;:::i;:::-;10319:44;;9661:712;;;9531:848;;;;;;;:::o;10385:1073::-;10439:5;10630:8;10620:40;;10651:1;10642:10;;10653:5;;10620:40;10679:4;10669:36;;10696:1;10687:10;;10698:5;;10669:36;10765:4;10813:1;10808:27;;;;10849:1;10844:191;;;;10758:277;;10808:27;10826:1;10817:10;;10828:5;;;10844:191;10889:3;10879:8;10876:17;10873:43;;;10896:18;;:::i;:::-;10873:43;10945:8;10942:1;10938:16;10929:25;;10980:3;10973:5;10970:14;10967:40;;;10987:18;;:::i;:::-;10967:40;11020:5;;;10758:277;;11144:2;11134:8;11131:16;11125:3;11119:4;11116:13;11112:36;11094:2;11084:8;11081:16;11076:2;11070:4;11067:12;11063:35;11047:111;11044:246;;;11200:8;11194:4;11190:19;11181:28;;11235:3;11228:5;11225:14;11222:40;;;11242:18;;:::i;:::-;11222:40;11275:5;;11044:246;11315:42;11353:3;11343:8;11337:4;11334:1;11315:42;:::i;:::-;11300:57;;;;11389:4;11384:3;11380:14;11373:5;11370:25;11367:51;;;11398:18;;:::i;:::-;11367:51;11447:4;11440:5;11436:16;11427:25;;10385:1073;;;;;;:::o;11464:281::-;11522:5;11546:23;11564:4;11546:23;:::i;:::-;11538:31;;11590:25;11606:8;11590:25;:::i;:::-;11578:37;;11634:104;11671:66;11661:8;11655:4;11634:104;:::i;:::-;11625:113;;11464:281;;;;:::o;11751:410::-;11791:7;11814:20;11832:1;11814:20;:::i;:::-;11809:25;;11848:20;11866:1;11848:20;:::i;:::-;11843:25;;11903:1;11900;11896:9;11925:30;11943:11;11925:30;:::i;:::-;11914:41;;12104:1;12095:7;12091:15;12088:1;12085:22;12065:1;12058:9;12038:83;12015:139;;12134:18;;:::i;:::-;12015:139;11799:362;11751:410;;;;:::o;12167:227::-;12307:34;12303:1;12295:6;12291:14;12284:58;12376:10;12371:2;12363:6;12359:15;12352:35;12167:227;:::o;12400:366::-;12542:3;12563:67;12627:2;12622:3;12563:67;:::i;:::-;12556:74;;12639:93;12728:3;12639:93;:::i;:::-;12757:2;12752:3;12748:12;12741:19;;12400:366;;;:::o;12772:419::-;12938:4;12976:2;12965:9;12961:18;12953:26;;13025:9;13019:4;13015:20;13011:1;13000:9;12996:17;12989:47;13053:131;13179:4;13053:131;:::i;:::-;13045:139;;12772:419;;;:::o;13197:194::-;13237:4;13257:20;13275:1;13257:20;:::i;:::-;13252:25;;13291:20;13309:1;13291:20;:::i;:::-;13286:25;;13335:1;13332;13328:9;13320:17;;13359:1;13353:4;13350:11;13347:37;;;13364:18;;:::i;:::-;13347:37;13197:194;;;;:::o;13397:182::-;13537:34;13533:1;13525:6;13521:14;13514:58;13397:182;:::o;13585:366::-;13727:3;13748:67;13812:2;13807:3;13748:67;:::i;:::-;13741:74;;13824:93;13913:3;13824:93;:::i;:::-;13942:2;13937:3;13933:12;13926:19;;13585:366;;;:::o;13957:419::-;14123:4;14161:2;14150:9;14146:18;14138:26;;14210:9;14204:4;14200:20;14196:1;14185:9;14181:17;14174:47;14238:131;14364:4;14238:131;:::i;:::-;14230:139;;13957:419;;;:::o;14382:177::-;14522:29;14518:1;14510:6;14506:14;14499:53;14382:177;:::o;14565:366::-;14707:3;14728:67;14792:2;14787:3;14728:67;:::i;:::-;14721:74;;14804:93;14893:3;14804:93;:::i;:::-;14922:2;14917:3;14913:12;14906:19;;14565:366;;;:::o;14937:419::-;15103:4;15141:2;15130:9;15126:18;15118:26;;15190:9;15184:4;15180:20;15176:1;15165:9;15161:17;15154:47;15218:131;15344:4;15218:131;:::i;:::-;15210:139;;14937:419;;;:::o;15362:173::-;15502:25;15498:1;15490:6;15486:14;15479:49;15362:173;:::o;15541:366::-;15683:3;15704:67;15768:2;15763:3;15704:67;:::i;:::-;15697:74;;15780:93;15869:3;15780:93;:::i;:::-;15898:2;15893:3;15889:12;15882:19;;15541:366;;;:::o;15913:419::-;16079:4;16117:2;16106:9;16102:18;16094:26;;16166:9;16160:4;16156:20;16152:1;16141:9;16137:17;16130:47;16194:131;16320:4;16194:131;:::i;:::-;16186:139;;15913:419;;;:::o;16338:181::-;16478:33;16474:1;16466:6;16462:14;16455:57;16338:181;:::o;16525:366::-;16667:3;16688:67;16752:2;16747:3;16688:67;:::i;:::-;16681:74;;16764:93;16853:3;16764:93;:::i;:::-;16882:2;16877:3;16873:12;16866:19;;16525:366;;;:::o;16897:419::-;17063:4;17101:2;17090:9;17086:18;17078:26;;17150:9;17144:4;17140:20;17136:1;17125:9;17121:17;17114:47;17178:131;17304:4;17178:131;:::i;:::-;17170:139;;16897:419;;;:::o;17322:222::-;17462:34;17458:1;17450:6;17446:14;17439:58;17531:5;17526:2;17518:6;17514:15;17507:30;17322:222;:::o;17550:366::-;17692:3;17713:67;17777:2;17772:3;17713:67;:::i;:::-;17706:74;;17789:93;17878:3;17789:93;:::i;:::-;17907:2;17902:3;17898:12;17891:19;;17550:366;;;:::o;17922:419::-;18088:4;18126:2;18115:9;18111:18;18103:26;;18175:9;18169:4;18165:20;18161:1;18150:9;18146:17;18139:47;18203:131;18329:4;18203:131;:::i;:::-;18195:139;;17922:419;;;:::o;18347:241::-;18487:34;18483:1;18475:6;18471:14;18464:58;18556:24;18551:2;18543:6;18539:15;18532:49;18347:241;:::o;18594:366::-;18736:3;18757:67;18821:2;18816:3;18757:67;:::i;:::-;18750:74;;18833:93;18922:3;18833:93;:::i;:::-;18951:2;18946:3;18942:12;18935:19;;18594:366;;;:::o;18966:419::-;19132:4;19170:2;19159:9;19155:18;19147:26;;19219:9;19213:4;19209:20;19205:1;19194:9;19190:17;19183:47;19247:131;19373:4;19247:131;:::i;:::-;19239:139;;18966:419;;;:::o;19391:221::-;19531:34;19527:1;19519:6;19515:14;19508:58;19600:4;19595:2;19587:6;19583:15;19576:29;19391:221;:::o;19618:366::-;19760:3;19781:67;19845:2;19840:3;19781:67;:::i;:::-;19774:74;;19857:93;19946:3;19857:93;:::i;:::-;19975:2;19970:3;19966:12;19959:19;;19618:366;;;:::o;19990:419::-;20156:4;20194:2;20183:9;20179:18;20171:26;;20243:9;20237:4;20233:20;20229:1;20218:9;20214:17;20207:47;20271:131;20397:4;20271:131;:::i;:::-;20263:139;;19990:419;;;:::o;20415:143::-;20472:5;20503:6;20497:13;20488:22;;20519:33;20546:5;20519:33;:::i;:::-;20415:143;;;;:::o;20564:351::-;20634:6;20683:2;20671:9;20662:7;20658:23;20654:32;20651:119;;;20689:79;;:::i;:::-;20651:119;20809:1;20834:64;20890:7;20881:6;20870:9;20866:22;20834:64;:::i;:::-;20824:74;;20780:128;20564:351;;;;:::o;20921:169::-;21061:21;21057:1;21049:6;21045:14;21038:45;20921:169;:::o;21096:366::-;21238:3;21259:67;21323:2;21318:3;21259:67;:::i;:::-;21252:74;;21335:93;21424:3;21335:93;:::i;:::-;21453:2;21448:3;21444:12;21437:19;;21096:366;;;:::o;21468:419::-;21634:4;21672:2;21661:9;21657:18;21649:26;;21721:9;21715:4;21711:20;21707:1;21696:9;21692:17;21685:47;21749:131;21875:4;21749:131;:::i;:::-;21741:139;;21468:419;;;:::o;21893:134::-;21951:9;21984:37;22015:5;21984:37;:::i;:::-;21971:50;;21893:134;;;:::o;22033:147::-;22128:45;22167:5;22128:45;:::i;:::-;22123:3;22116:58;22033:147;;:::o;22186:348::-;22315:4;22353:2;22342:9;22338:18;22330:26;;22366:79;22442:1;22431:9;22427:17;22418:6;22366:79;:::i;:::-;22455:72;22523:2;22512:9;22508:18;22499:6;22455:72;:::i;:::-;22186:348;;;;;:::o;22540:137::-;22594:5;22625:6;22619:13;22610:22;;22641:30;22665:5;22641:30;:::i;:::-;22540:137;;;;:::o;22683:345::-;22750:6;22799:2;22787:9;22778:7;22774:23;22770:32;22767:119;;;22805:79;;:::i;:::-;22767:119;22925:1;22950:61;23003:7;22994:6;22983:9;22979:22;22950:61;:::i;:::-;22940:71;;22896:125;22683:345;;;;:::o;23034:225::-;23174:34;23170:1;23162:6;23158:14;23151:58;23243:8;23238:2;23230:6;23226:15;23219:33;23034:225;:::o;23265:366::-;23407:3;23428:67;23492:2;23487:3;23428:67;:::i;:::-;23421:74;;23504:93;23593:3;23504:93;:::i;:::-;23622:2;23617:3;23613:12;23606:19;;23265:366;;;:::o;23637:419::-;23803:4;23841:2;23830:9;23826:18;23818:26;;23890:9;23884:4;23880:20;23876:1;23865:9;23861:17;23854:47;23918:131;24044:4;23918:131;:::i;:::-;23910:139;;23637:419;;;:::o;24062:240::-;24202:34;24198:1;24190:6;24186:14;24179:58;24271:23;24266:2;24258:6;24254:15;24247:48;24062:240;:::o;24308:366::-;24450:3;24471:67;24535:2;24530:3;24471:67;:::i;:::-;24464:74;;24547:93;24636:3;24547:93;:::i;:::-;24665:2;24660:3;24656:12;24649:19;;24308:366;;;:::o;24680:419::-;24846:4;24884:2;24873:9;24869:18;24861:26;;24933:9;24927:4;24923:20;24919:1;24908:9;24904:17;24897:47;24961:131;25087:4;24961:131;:::i;:::-;24953:139;;24680:419;;;:::o;25105:242::-;25245:34;25241:1;25233:6;25229:14;25222:58;25314:25;25309:2;25301:6;25297:15;25290:50;25105:242;:::o;25353:366::-;25495:3;25516:67;25580:2;25575:3;25516:67;:::i;:::-;25509:74;;25592:93;25681:3;25592:93;:::i;:::-;25710:2;25705:3;25701:12;25694:19;;25353:366;;;:::o;25725:419::-;25891:4;25929:2;25918:9;25914:18;25906:26;;25978:9;25972:4;25968:20;25964:1;25953:9;25949:17;25942:47;26006:131;26132:4;26006:131;:::i;:::-;25998:139;;25725:419;;;:::o;26150:177::-;26290:29;26286:1;26278:6;26274:14;26267:53;26150:177;:::o;26333:366::-;26475:3;26496:67;26560:2;26555:3;26496:67;:::i;:::-;26489:74;;26572:93;26661:3;26572:93;:::i;:::-;26690:2;26685:3;26681:12;26674:19;;26333:366;;;:::o;26705:419::-;26871:4;26909:2;26898:9;26894:18;26886:26;;26958:9;26952:4;26948:20;26944:1;26933:9;26929:17;26922:47;26986:131;27112:4;26986:131;:::i;:::-;26978:139;;26705:419;;;:::o;27130:223::-;27270:34;27266:1;27258:6;27254:14;27247:58;27339:6;27334:2;27326:6;27322:15;27315:31;27130:223;:::o;27359:366::-;27501:3;27522:67;27586:2;27581:3;27522:67;:::i;:::-;27515:74;;27598:93;27687:3;27598:93;:::i;:::-;27716:2;27711:3;27707:12;27700:19;;27359:366;;;:::o;27731:419::-;27897:4;27935:2;27924:9;27920:18;27912:26;;27984:9;27978:4;27974:20;27970:1;27959:9;27955:17;27948:47;28012:131;28138:4;28012:131;:::i;:::-;28004:139;;27731:419;;;:::o;28156:221::-;28296:34;28292:1;28284:6;28280:14;28273:58;28365:4;28360:2;28352:6;28348:15;28341:29;28156:221;:::o;28383:366::-;28525:3;28546:67;28610:2;28605:3;28546:67;:::i;:::-;28539:74;;28622:93;28711:3;28622:93;:::i;:::-;28740:2;28735:3;28731:12;28724:19;;28383:366;;;:::o;28755:419::-;28921:4;28959:2;28948:9;28944:18;28936:26;;29008:9;29002:4;28998:20;28994:1;28983:9;28979:17;28972:47;29036:131;29162:4;29036:131;:::i;:::-;29028:139;;28755:419;;;:::o;29180:224::-;29320:34;29316:1;29308:6;29304:14;29297:58;29389:7;29384:2;29376:6;29372:15;29365:32;29180:224;:::o;29410:366::-;29552:3;29573:67;29637:2;29632:3;29573:67;:::i;:::-;29566:74;;29649:93;29738:3;29649:93;:::i;:::-;29767:2;29762:3;29758:12;29751:19;;29410:366;;;:::o;29782:419::-;29948:4;29986:2;29975:9;29971:18;29963:26;;30035:9;30029:4;30025:20;30021:1;30010:9;30006:17;29999:47;30063:131;30189:4;30063:131;:::i;:::-;30055:139;;29782:419;;;:::o;30207:222::-;30347:34;30343:1;30335:6;30331:14;30324:58;30416:5;30411:2;30403:6;30399:15;30392:30;30207:222;:::o;30435:366::-;30577:3;30598:67;30662:2;30657:3;30598:67;:::i;:::-;30591:74;;30674:93;30763:3;30674:93;:::i;:::-;30792:2;30787:3;30783:12;30776:19;;30435:366;;;:::o;30807:419::-;30973:4;31011:2;31000:9;30996:18;30988:26;;31060:9;31054:4;31050:20;31046:1;31035:9;31031:17;31024:47;31088:131;31214:4;31088:131;:::i;:::-;31080:139;;30807:419;;;:::o;31232:228::-;31372:34;31368:1;31360:6;31356:14;31349:58;31441:11;31436:2;31428:6;31424:15;31417:36;31232:228;:::o;31466:366::-;31608:3;31629:67;31693:2;31688:3;31629:67;:::i;:::-;31622:74;;31705:93;31794:3;31705:93;:::i;:::-;31823:2;31818:3;31814:12;31807:19;;31466:366;;;:::o;31838:419::-;32004:4;32042:2;32031:9;32027:18;32019:26;;32091:9;32085:4;32081:20;32077:1;32066:9;32062:17;32055:47;32119:131;32245:4;32119:131;:::i;:::-;32111:139;;31838:419;;;:::o;32263:169::-;32403:21;32399:1;32391:6;32387:14;32380:45;32263:169;:::o;32438:366::-;32580:3;32601:67;32665:2;32660:3;32601:67;:::i;:::-;32594:74;;32677:93;32766:3;32677:93;:::i;:::-;32795:2;32790:3;32786:12;32779:19;;32438:366;;;:::o;32810:419::-;32976:4;33014:2;33003:9;32999:18;32991:26;;33063:9;33057:4;33053:20;33049:1;33038:9;33034:17;33027:47;33091:131;33217:4;33091:131;:::i;:::-;33083:139;;32810:419;;;:::o;33235:180::-;33283:77;33280:1;33273:88;33380:4;33377:1;33370:15;33404:4;33401:1;33394:15;33421:185;33461:1;33478:20;33496:1;33478:20;:::i;:::-;33473:25;;33512:20;33530:1;33512:20;:::i;:::-;33507:25;;33551:1;33541:35;;33556:18;;:::i;:::-;33541:35;33598:1;33595;33591:9;33586:14;;33421:185;;;;:::o;33612:175::-;33752:27;33748:1;33740:6;33736:14;33729:51;33612:175;:::o;33793:366::-;33935:3;33956:67;34020:2;34015:3;33956:67;:::i;:::-;33949:74;;34032:93;34121:3;34032:93;:::i;:::-;34150:2;34145:3;34141:12;34134:19;;33793:366;;;:::o;34165:419::-;34331:4;34369:2;34358:9;34354:18;34346:26;;34418:9;34412:4;34408:20;34404:1;34393:9;34389:17;34382:47;34446:131;34572:4;34446:131;:::i;:::-;34438:139;;34165:419;;;:::o;34590:191::-;34630:3;34649:20;34667:1;34649:20;:::i;:::-;34644:25;;34683:20;34701:1;34683:20;:::i;:::-;34678:25;;34726:1;34723;34719:9;34712:16;;34747:3;34744:1;34741:10;34738:36;;;34754:18;;:::i;:::-;34738:36;34590:191;;;;:::o;34787:176::-;34927:28;34923:1;34915:6;34911:14;34904:52;34787:176;:::o;34969:366::-;35111:3;35132:67;35196:2;35191:3;35132:67;:::i;:::-;35125:74;;35208:93;35297:3;35208:93;:::i;:::-;35326:2;35321:3;35317:12;35310:19;;34969:366;;;:::o;35341:419::-;35507:4;35545:2;35534:9;35530:18;35522:26;;35594:9;35588:4;35584:20;35580:1;35569:9;35565:17;35558:47;35622:131;35748:4;35622:131;:::i;:::-;35614:139;;35341:419;;;:::o;35766:233::-;35805:3;35828:24;35846:5;35828:24;:::i;:::-;35819:33;;35874:66;35867:5;35864:77;35861:103;;35944:18;;:::i;:::-;35861:103;35991:1;35984:5;35980:13;35973:20;;35766:233;;;:::o;36005:179::-;36145:31;36141:1;36133:6;36129:14;36122:55;36005:179;:::o;36190:366::-;36332:3;36353:67;36417:2;36412:3;36353:67;:::i;:::-;36346:74;;36429:93;36518:3;36429:93;:::i;:::-;36547:2;36542:3;36538:12;36531:19;;36190:366;;;:::o;36562:419::-;36728:4;36766:2;36755:9;36751:18;36743:26;;36815:9;36809:4;36805:20;36801:1;36790:9;36786:17;36779:47;36843:131;36969:4;36843:131;:::i;:::-;36835:139;;36562:419;;;:::o;36987:180::-;37035:77;37032:1;37025:88;37132:4;37129:1;37122:15;37156:4;37153:1;37146:15;37173:180;37221:77;37218:1;37211:88;37318:4;37315:1;37308:15;37342:4;37339:1;37332:15;37359:143;37416:5;37447:6;37441:13;37432:22;;37463:33;37490:5;37463:33;:::i;:::-;37359:143;;;;:::o;37508:351::-;37578:6;37627:2;37615:9;37606:7;37602:23;37598:32;37595:119;;;37633:79;;:::i;:::-;37595:119;37753:1;37778:64;37834:7;37825:6;37814:9;37810:22;37778:64;:::i;:::-;37768:74;;37724:128;37508:351;;;;:::o;37865:85::-;37910:7;37939:5;37928:16;;37865:85;;;:::o;37956:158::-;38014:9;38047:61;38065:42;38074:32;38100:5;38074:32;:::i;:::-;38065:42;:::i;:::-;38047:61;:::i;:::-;38034:74;;37956:158;;;:::o;38120:147::-;38215:45;38254:5;38215:45;:::i;:::-;38210:3;38203:58;38120:147;;:::o;38273:114::-;38340:6;38374:5;38368:12;38358:22;;38273:114;;;:::o;38393:184::-;38492:11;38526:6;38521:3;38514:19;38566:4;38561:3;38557:14;38542:29;;38393:184;;;;:::o;38583:132::-;38650:4;38673:3;38665:11;;38703:4;38698:3;38694:14;38686:22;;38583:132;;;:::o;38721:108::-;38798:24;38816:5;38798:24;:::i;:::-;38793:3;38786:37;38721:108;;:::o;38835:179::-;38904:10;38925:46;38967:3;38959:6;38925:46;:::i;:::-;39003:4;38998:3;38994:14;38980:28;;38835:179;;;;:::o;39020:113::-;39090:4;39122;39117:3;39113:14;39105:22;;39020:113;;;:::o;39169:732::-;39288:3;39317:54;39365:5;39317:54;:::i;:::-;39387:86;39466:6;39461:3;39387:86;:::i;:::-;39380:93;;39497:56;39547:5;39497:56;:::i;:::-;39576:7;39607:1;39592:284;39617:6;39614:1;39611:13;39592:284;;;39693:6;39687:13;39720:63;39779:3;39764:13;39720:63;:::i;:::-;39713:70;;39806:60;39859:6;39806:60;:::i;:::-;39796:70;;39652:224;39639:1;39636;39632:9;39627:14;;39592:284;;;39596:14;39892:3;39885:10;;39293:608;;;39169:732;;;;:::o;39907:831::-;40170:4;40208:3;40197:9;40193:19;40185:27;;40222:71;40290:1;40279:9;40275:17;40266:6;40222:71;:::i;:::-;40303:80;40379:2;40368:9;40364:18;40355:6;40303:80;:::i;:::-;40430:9;40424:4;40420:20;40415:2;40404:9;40400:18;40393:48;40458:108;40561:4;40552:6;40458:108;:::i;:::-;40450:116;;40576:72;40644:2;40633:9;40629:18;40620:6;40576:72;:::i;:::-;40658:73;40726:3;40715:9;40711:19;40702:6;40658:73;:::i;:::-;39907:831;;;;;;;;:::o

Swarm Source

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