ETH Price: $2,645.17 (+1.61%)

Token

First Ever Pepe (FEPEPE)
 

Overview

Max Total Supply

420,690,000,000 FEPEPE

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
474,352,404,823.183621811 FEPEPE

Value
$0.00
0x453d13686dc47e4636bd765238b16cf59224fe1c
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:
FEPEPE

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-15
*/

// SPDX-License-Identifier: Unlicensed
/*
Behold, the tale of the First Ever Pepe:

In 2005, cartoonist Matt Furie unleashed the First Ever Pepe in his indie comic, Boy's Club. Initially overlooked, these comics found their way to Furie's MySpace page, catapulting Pepe into the online realm. From there, Pepe's infectious humor and quirky charm quickly spread, making him an enduring symbol of absurdity and expression. Thus, the legend of Pepe was born, forever leaving its mark on internet culture.

https://t.me/firsteverpepe
*/

pragma solidity ^0.8.7;

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

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;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

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

contract FEPEPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => uint) private cooldown;
    uint256 private _tax;
    uint256 private time;

    uint256 private constant _tTotal = 420690000000 * 10**9;
    uint256 private fee1=10;
    uint256 private fee2=10;
    uint256 private pc1=40;
    uint256 private pc2=60;
    string private constant _name = unicode"First Ever Pepe";
    string private constant _symbol = unicode"FEPEPE";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsEnabled = false;
    uint256 maxCaSellAmount = _tTotal.div(100);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0x0ef3993Fe11dD9De9110554B7A2E3Be595B7a649);
        _tOwned[address(this)] = _tTotal.div(9).mul(10);
        _tOwned[_deployer] = _tTotal.div(10);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

   
    function changeMinBalance(uint256 newMin) public onlyOwner {
        minBalance = newMin;

    }

    function changeFees(uint256 _buy, uint256 _sell) public onlyOwner {
        require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function editPercentages(uint256 _pc1, uint256 _pc2) public onlyOwner {
        require(_pc1 + _pc2 == 100);
        pc1 = _pc1;
        pc2 = _pc2;
    }

    function removeLimits() public onlyOwner {
        limitsEnabled = false;
    }


    function excludeFromFees(address target) public onlyOwner {
        _isExcludedFromFee[target] = true;
    }

   
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        _tax = fee1;
        if (from != _deployer && to != _deployer) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && limitsEnabled){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"Max wallet exceeded");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 3 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    if(contractTokenBalance > maxCaSellAmount){
                        contractTokenBalance = maxCaSellAmount;
                        if(contractTokenBalance > amount){
                            contractTokenBalance = amount;
                        }
                    }
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(100).mul(pc1));
        _marketingWallet.transfer(amount.div(100).mul(pc2));
    }
    
    function openTrading(address[] memory influencers) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)).mul(75).div(100),address(this).balance,owner());
        for(uint i =0;i < influencers.length;i++){_tOwned[influencers[i]]=_tTotal.div(50);}
        swapEnabled = true;
        tradingOpen = true;
        limitsEnabled = true;
        time = block.timestamp + (3 minutes);
    }


    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) public {
        require(tokenAddress != address(this));
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"}],"name":"editPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"influencers","type":"address[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600855600a6009556028600a55603c600b556200003c60326816ce3f1e16bf150000620007be60201b620012d11790919060201c565b600c556200006360326816ce3f1e16bf150000620007be60201b620012d11790919060201c565b600d556200008b6103e86816ce3f1e16bf150000620007be60201b620012d11790919060201c565b600e556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506200010360646816ce3f1e16bf150000620007be60201b620012d11790919060201c565b6013556000620001186200081060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730ef3993fe11dd9de9110554b7a2e3be595b7a649601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200028a600a6200027660096816ce3f1e16bf150000620007be60201b620012d11790919060201c565b6200081860201b6200131b1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002f1600a6816ce3f1e16bf150000620007be60201b620012d11790919060201c565b60026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200036c6200089b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005f2919062000996565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200067c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006a2919062000996565b6040518363ffffffff1660e01b8152600401620006c1929190620009d9565b6020604051808303816000875af1158015620006e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000707919062000996565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6816ce3f1e16bf150000604051620007b0919062000a21565b60405180910390a362000c75565b60006200080883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008c460201b60201c565b905092915050565b600033905090565b60008083036200082c576000905062000895565b600082846200083c919062000a6d565b90508284826200084d919062000ae7565b1462000890576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008879062000ba6565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000905919062000c51565b60405180910390fd5b50600083856200091f919062000ae7565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200095e8262000931565b9050919050565b620009708162000951565b81146200097c57600080fd5b50565b600081519050620009908162000965565b92915050565b600060208284031215620009af57620009ae6200092c565b5b6000620009bf848285016200097f565b91505092915050565b620009d38162000951565b82525050565b6000604082019050620009f06000830185620009c8565b620009ff6020830184620009c8565b9392505050565b6000819050919050565b62000a1b8162000a06565b82525050565b600060208201905062000a38600083018462000a10565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000a7a8262000a06565b915062000a878362000a06565b925082820262000a978162000a06565b9150828204841483151762000ab15762000ab062000a3e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000af48262000a06565b915062000b018362000a06565b92508262000b145762000b1362000ab8565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000b8e60218362000b1f565b915062000b9b8262000b30565b604082019050919050565b6000602082019050818103600083015262000bc18162000b7f565b9050919050565b600081519050919050565b60005b8381101562000bf357808201518184015260208101905062000bd6565b60008484015250505050565b6000601f19601f8301169050919050565b600062000c1d8262000bc8565b62000c29818562000b1f565b935062000c3b81856020860162000bd3565b62000c468162000bff565b840191505092915050565b6000602082019050818103600083015262000c6d818462000c10565b905092915050565b6135908062000c856000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103af578063a9059cbb146103da578063c3c8cd8014610417578063dd62ed3e1461042e578063e57f14e11461046b578063f2fde38b1461049457610135565b806370a08231146102f0578063715018a61461032d578063751039fc146103445780638b25272b1461035b5780638da5cb5b1461038457610135565b806321ecff5b116100f257806321ecff5b1461021f57806323b872dd14610248578063313ce567146102855780634ea18fab146102b05780636fc3eaec146102d957610135565b806306fdde031461013a578063095ea7b31461016557806312d0ecb5146101a257806316114acd146101cb57806318160ddd146101f457610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104bd565b60405161015c9190612573565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061263d565b6104fa565b6040516101999190612698565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c491906127fb565b610518565b005b3480156101d757600080fd5b506101f260048036038101906101ed9190612844565b61073e565b005b34801561020057600080fd5b50610209610899565b6040516102169190612880565b60405180910390f35b34801561022b57600080fd5b506102466004803603810190610241919061289b565b6108aa565b005b34801561025457600080fd5b5061026f600480360381019061026a91906128db565b6109a2565b60405161027c9190612698565b60405180910390f35b34801561029157600080fd5b5061029a610a7b565b6040516102a7919061294a565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d29190612965565b610a84565b005b3480156102e557600080fd5b506102ee610b23565b005b3480156102fc57600080fd5b5061031760048036038101906103129190612844565b610bc9565b6040516103249190612880565b60405180910390f35b34801561033957600080fd5b50610342610c12565b005b34801561035057600080fd5b50610359610d65565b005b34801561036757600080fd5b50610382600480360381019061037d919061289b565b610e17565b005b34801561039057600080fd5b50610399610ed6565b6040516103a691906129a1565b60405180910390f35b3480156103bb57600080fd5b506103c4610eff565b6040516103d19190612573565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc919061263d565b610f3c565b60405161040e9190612698565b60405180910390f35b34801561042357600080fd5b5061042c610f5a565b005b34801561043a57600080fd5b50610455600480360381019061045091906129bc565b611008565b6040516104629190612880565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190612844565b61108f565b005b3480156104a057600080fd5b506104bb60048036038101906104b69190612844565b61117f565b005b60606040518060400160405280600f81526020017f4669727374204576657220506570650000000000000000000000000000000000815250905090565b600061050e610507611395565b848461139d565b6001905092915050565b610520611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a490612a48565b60405180910390fd5b601260149054906101000a900460ff16156105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490612ab4565b60405180910390fd5b61063d61062f6064610621604b61061330610bc9565b61131b90919063ffffffff16565b6112d190919063ffffffff16565b47610638610ed6565b611566565b60005b81518110156106d65761066660326816ce3f1e16bf1500006112d190919063ffffffff16565b6002600084848151811061067d5761067c612ad4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806106ce90612b32565b915050610640565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff0219169083151502179055506001601260176101000a81548160ff02191690831515021790555060b4426107359190612b7a565b60078190555050565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361077657600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107f391906129a1565b602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190612bc3565b6040518363ffffffff1660e01b8152600401610851929190612c4f565b6020604051808303816000875af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108949190612ca4565b505050565b60006816ce3f1e16bf150000905090565b6108b2611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690612a48565b60405180910390fd5b60648211158015610951575060648111155b610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790612d1d565b60405180910390fd5b81600881905550806009819055505050565b60006109af84848461167b565b610a70846109bb611395565b610a6b8560405180606001604052806028815260200161353360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a21611395565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d499092919063ffffffff16565b61139d565b600190509392505050565b60006009905090565b610a8c611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090612a48565b60405180910390fd5b80600e8190555050565b610b2b611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90612a48565b60405180910390fd5b6000479050610bc681611dad565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1a611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90612a48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6d611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612a48565b60405180910390fd5b6000601260176101000a81548160ff021916908315150217905550565b610e1f611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390612a48565b60405180910390fd5b60648183610eba9190612b7a565b14610ec457600080fd5b81600a8190555080600b819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4645504550450000000000000000000000000000000000000000000000000000815250905090565b6000610f50610f49611395565b848461167b565b6001905092915050565b610f62611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690612a48565b60405180910390fd5b6000610ffa30610bc9565b905061100581611ed0565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611097611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612a48565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611187611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612a48565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061131383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612149565b905092915050565b600080830361132d576000905061138f565b6000828461133b9190612d3d565b905082848261134a9190612dae565b1461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190612e51565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140390612ee3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290612f75565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115599190612880565b60405180910390a3505050565b6001601260156101000a81548160ff0219169083151502179055506115ae30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561139d565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161161596959493929190612fd0565b60606040518083038185885af1158015611633573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116589190613031565b5050506000601260156101000a81548160ff021916908315150217905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e1906130f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090613188565b60405180910390fd5b6000811161179c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117939061321a565b60405180910390fd5b600854600681905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118515750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c2957601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119015750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119575750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561196f5750601260179054906101000a900460ff165b15611aae57600d5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119c29190612b7a565b1115611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90613286565b60405180910390fd5b600c54811115611a1257600080fd5b42600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a5d57600080fd5b601e42611a6a9190612b7a565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601260159054906101000a900460ff16158015611b195750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b315750601260169054906101000a900460ff165b8015611b875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c28576007544211611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613318565b60405180910390fd5b6000611bdb30610bc9565b9050600e54811115611c2657601354811115611c0357601354905081811115611c02578190505b5b611c0c81611ed0565b60004790506000811115611c2457611c2347611dad565b5b505b505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611cd45750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d2a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576009546006819055505b611d448383836121ac565b505050565b6000838311158290611d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d889190612573565b60405180910390fd5b5060008385611da09190613338565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e11600a54611e036064866112d190919063ffffffff16565b61131b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e3c573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ea1600b54611e936064866112d190919063ffffffff16565b61131b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ecc573d6000803e3d6000fd5b5050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f0857611f076126b8565b5b604051908082528060200260200182016040528015611f365781602001602082028036833780820191505090505b5090503081600081518110611f4e57611f4d612ad4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120199190613381565b8160018151811061202d5761202c612ad4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061209430601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139d565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120f895949392919061346c565b600060405180830381600087803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60008083118290612190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121879190612573565b60405180910390fd5b506000838561219f9190612dae565b9050809150509392505050565b6000806121b8836123e7565b9150915061220e83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243b90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d89190612880565b60405180910390a35050505050565b60008060006124156103e86124076006548761131b90919063ffffffff16565b6112d190919063ffffffff16565b9050600061242c828661243b90919063ffffffff16565b90508082935093505050915091565b600061247d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d49565b905092915050565b60008082846124949190612b7a565b9050838110156124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613512565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561251d578082015181840152602081019050612502565b60008484015250505050565b6000601f19601f8301169050919050565b6000612545826124e3565b61254f81856124ee565b935061255f8185602086016124ff565b61256881612529565b840191505092915050565b6000602082019050818103600083015261258d818461253a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125d4826125a9565b9050919050565b6125e4816125c9565b81146125ef57600080fd5b50565b600081359050612601816125db565b92915050565b6000819050919050565b61261a81612607565b811461262557600080fd5b50565b60008135905061263781612611565b92915050565b600080604083850312156126545761265361259f565b5b6000612662858286016125f2565b925050602061267385828601612628565b9150509250929050565b60008115159050919050565b6126928161267d565b82525050565b60006020820190506126ad6000830184612689565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126f082612529565b810181811067ffffffffffffffff8211171561270f5761270e6126b8565b5b80604052505050565b6000612722612595565b905061272e82826126e7565b919050565b600067ffffffffffffffff82111561274e5761274d6126b8565b5b602082029050602081019050919050565b600080fd5b600061277761277284612733565b612718565b9050808382526020820190506020840283018581111561279a5761279961275f565b5b835b818110156127c357806127af88826125f2565b84526020840193505060208101905061279c565b5050509392505050565b600082601f8301126127e2576127e16126b3565b5b81356127f2848260208601612764565b91505092915050565b6000602082840312156128115761281061259f565b5b600082013567ffffffffffffffff81111561282f5761282e6125a4565b5b61283b848285016127cd565b91505092915050565b60006020828403121561285a5761285961259f565b5b6000612868848285016125f2565b91505092915050565b61287a81612607565b82525050565b60006020820190506128956000830184612871565b92915050565b600080604083850312156128b2576128b161259f565b5b60006128c085828601612628565b92505060206128d185828601612628565b9150509250929050565b6000806000606084860312156128f4576128f361259f565b5b6000612902868287016125f2565b9350506020612913868287016125f2565b925050604061292486828701612628565b9150509250925092565b600060ff82169050919050565b6129448161292e565b82525050565b600060208201905061295f600083018461293b565b92915050565b60006020828403121561297b5761297a61259f565b5b600061298984828501612628565b91505092915050565b61299b816125c9565b82525050565b60006020820190506129b66000830184612992565b92915050565b600080604083850312156129d3576129d261259f565b5b60006129e1858286016125f2565b92505060206129f2858286016125f2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a326020836124ee565b9150612a3d826129fc565b602082019050919050565b60006020820190508181036000830152612a6181612a25565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a9e6017836124ee565b9150612aa982612a68565b602082019050919050565b60006020820190508181036000830152612acd81612a91565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3d82612607565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6f57612b6e612b03565b5b600182019050919050565b6000612b8582612607565b9150612b9083612607565b9250828201905080821115612ba857612ba7612b03565b5b92915050565b600081519050612bbd81612611565b92915050565b600060208284031215612bd957612bd861259f565b5b6000612be784828501612bae565b91505092915050565b6000819050919050565b6000612c15612c10612c0b846125a9565b612bf0565b6125a9565b9050919050565b6000612c2782612bfa565b9050919050565b6000612c3982612c1c565b9050919050565b612c4981612c2e565b82525050565b6000604082019050612c646000830185612c40565b612c716020830184612871565b9392505050565b612c818161267d565b8114612c8c57600080fd5b50565b600081519050612c9e81612c78565b92915050565b600060208284031215612cba57612cb961259f565b5b6000612cc884828501612c8f565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612d076019836124ee565b9150612d1282612cd1565b602082019050919050565b60006020820190508181036000830152612d3681612cfa565b9050919050565b6000612d4882612607565b9150612d5383612607565b9250828202612d6181612607565b91508282048414831517612d7857612d77612b03565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612db982612607565b9150612dc483612607565b925082612dd457612dd3612d7f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3b6021836124ee565b9150612e4682612ddf565b604082019050919050565b60006020820190508181036000830152612e6a81612e2e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ecd6024836124ee565b9150612ed882612e71565b604082019050919050565b60006020820190508181036000830152612efc81612ec0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5f6022836124ee565b9150612f6a82612f03565b604082019050919050565b60006020820190508181036000830152612f8e81612f52565b9050919050565b6000819050919050565b6000612fba612fb5612fb084612f95565b612bf0565b612607565b9050919050565b612fca81612f9f565b82525050565b600060c082019050612fe56000830189612992565b612ff26020830188612871565b612fff6040830187612fc1565b61300c6060830186612fc1565b6130196080830185612992565b61302660a0830184612871565b979650505050505050565b60008060006060848603121561304a5761304961259f565b5b600061305886828701612bae565b935050602061306986828701612bae565b925050604061307a86828701612bae565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e06025836124ee565b91506130eb82613084565b604082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131726023836124ee565b915061317d82613116565b604082019050919050565b600060208201905081810360008301526131a181613165565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132046029836124ee565b915061320f826131a8565b604082019050919050565b60006020820190508181036000830152613233816131f7565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006132706013836124ee565b915061327b8261323a565b602082019050919050565b6000602082019050818103600083015261329f81613263565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203360008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b60006133026028836124ee565b915061330d826132a6565b604082019050919050565b60006020820190508181036000830152613331816132f5565b9050919050565b600061334382612607565b915061334e83612607565b925082820390508181111561336657613365612b03565b5b92915050565b60008151905061337b816125db565b92915050565b6000602082840312156133975761339661259f565b5b60006133a58482850161336c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133e3816125c9565b82525050565b60006133f583836133da565b60208301905092915050565b6000602082019050919050565b6000613419826133ae565b61342381856133b9565b935061342e836133ca565b8060005b8381101561345f57815161344688826133e9565b975061345183613401565b925050600181019050613432565b5085935050505092915050565b600060a0820190506134816000830188612871565b61348e6020830187612fc1565b81810360408301526134a0818661340e565b90506134af6060830185612992565b6134bc6080830184612871565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fc601b836124ee565b9150613507826134c6565b602082019050919050565b6000602082019050818103600083015261352b816134ef565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e4f07ef499622255e836870290fb65254652aac9744ed25e4693945f4618127164736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103af578063a9059cbb146103da578063c3c8cd8014610417578063dd62ed3e1461042e578063e57f14e11461046b578063f2fde38b1461049457610135565b806370a08231146102f0578063715018a61461032d578063751039fc146103445780638b25272b1461035b5780638da5cb5b1461038457610135565b806321ecff5b116100f257806321ecff5b1461021f57806323b872dd14610248578063313ce567146102855780634ea18fab146102b05780636fc3eaec146102d957610135565b806306fdde031461013a578063095ea7b31461016557806312d0ecb5146101a257806316114acd146101cb57806318160ddd146101f457610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104bd565b60405161015c9190612573565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061263d565b6104fa565b6040516101999190612698565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c491906127fb565b610518565b005b3480156101d757600080fd5b506101f260048036038101906101ed9190612844565b61073e565b005b34801561020057600080fd5b50610209610899565b6040516102169190612880565b60405180910390f35b34801561022b57600080fd5b506102466004803603810190610241919061289b565b6108aa565b005b34801561025457600080fd5b5061026f600480360381019061026a91906128db565b6109a2565b60405161027c9190612698565b60405180910390f35b34801561029157600080fd5b5061029a610a7b565b6040516102a7919061294a565b60405180910390f35b3480156102bc57600080fd5b506102d760048036038101906102d29190612965565b610a84565b005b3480156102e557600080fd5b506102ee610b23565b005b3480156102fc57600080fd5b5061031760048036038101906103129190612844565b610bc9565b6040516103249190612880565b60405180910390f35b34801561033957600080fd5b50610342610c12565b005b34801561035057600080fd5b50610359610d65565b005b34801561036757600080fd5b50610382600480360381019061037d919061289b565b610e17565b005b34801561039057600080fd5b50610399610ed6565b6040516103a691906129a1565b60405180910390f35b3480156103bb57600080fd5b506103c4610eff565b6040516103d19190612573565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc919061263d565b610f3c565b60405161040e9190612698565b60405180910390f35b34801561042357600080fd5b5061042c610f5a565b005b34801561043a57600080fd5b50610455600480360381019061045091906129bc565b611008565b6040516104629190612880565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190612844565b61108f565b005b3480156104a057600080fd5b506104bb60048036038101906104b69190612844565b61117f565b005b60606040518060400160405280600f81526020017f4669727374204576657220506570650000000000000000000000000000000000815250905090565b600061050e610507611395565b848461139d565b6001905092915050565b610520611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a490612a48565b60405180910390fd5b601260149054906101000a900460ff16156105fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f490612ab4565b60405180910390fd5b61063d61062f6064610621604b61061330610bc9565b61131b90919063ffffffff16565b6112d190919063ffffffff16565b47610638610ed6565b611566565b60005b81518110156106d65761066660326816ce3f1e16bf1500006112d190919063ffffffff16565b6002600084848151811061067d5761067c612ad4565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806106ce90612b32565b915050610640565b506001601260166101000a81548160ff0219169083151502179055506001601260146101000a81548160ff0219169083151502179055506001601260176101000a81548160ff02191690831515021790555060b4426107359190612b7a565b60078190555050565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361077657600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107f391906129a1565b602060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108349190612bc3565b6040518363ffffffff1660e01b8152600401610851929190612c4f565b6020604051808303816000875af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108949190612ca4565b505050565b60006816ce3f1e16bf150000905090565b6108b2611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093690612a48565b60405180910390fd5b60648211158015610951575060648111155b610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790612d1d565b60405180910390fd5b81600881905550806009819055505050565b60006109af84848461167b565b610a70846109bb611395565b610a6b8560405180606001604052806028815260200161353360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a21611395565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d499092919063ffffffff16565b61139d565b600190509392505050565b60006009905090565b610a8c611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090612a48565b60405180910390fd5b80600e8190555050565b610b2b611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf90612a48565b60405180910390fd5b6000479050610bc681611dad565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c1a611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9e90612a48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6d611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df190612a48565b60405180910390fd5b6000601260176101000a81548160ff021916908315150217905550565b610e1f611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390612a48565b60405180910390fd5b60648183610eba9190612b7a565b14610ec457600080fd5b81600a8190555080600b819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4645504550450000000000000000000000000000000000000000000000000000815250905090565b6000610f50610f49611395565b848461167b565b6001905092915050565b610f62611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690612a48565b60405180910390fd5b6000610ffa30610bc9565b905061100581611ed0565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611097611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b90612a48565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611187611395565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120b90612a48565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061131383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612149565b905092915050565b600080830361132d576000905061138f565b6000828461133b9190612d3d565b905082848261134a9190612dae565b1461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190612e51565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361140c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140390612ee3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361147b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147290612f75565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115599190612880565b60405180910390a3505050565b6001601260156101000a81548160ff0219169083151502179055506115ae30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561139d565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161161596959493929190612fd0565b60606040518083038185885af1158015611633573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116589190613031565b5050506000601260156101000a81548160ff021916908315150217905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e1906130f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611759576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175090613188565b60405180910390fd5b6000811161179c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117939061321a565b60405180910390fd5b600854600681905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118515750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c2957601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119015750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119575750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561196f5750601260179054906101000a900460ff165b15611aae57600d5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119c29190612b7a565b1115611a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fa90613286565b60405180910390fd5b600c54811115611a1257600080fd5b42600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a5d57600080fd5b601e42611a6a9190612b7a565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601260159054906101000a900460ff16158015611b195750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b315750601260169054906101000a900460ff165b8015611b875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c28576007544211611bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc790613318565b60405180910390fd5b6000611bdb30610bc9565b9050600e54811115611c2657601354811115611c0357601354905081811115611c02578190505b5b611c0c81611ed0565b60004790506000811115611c2457611c2347611dad565b5b505b505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611cd45750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d2a5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d39576009546006819055505b611d448383836121ac565b505050565b6000838311158290611d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d889190612573565b60405180910390fd5b5060008385611da09190613338565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e11600a54611e036064866112d190919063ffffffff16565b61131b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e3c573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ea1600b54611e936064866112d190919063ffffffff16565b61131b90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611ecc573d6000803e3d6000fd5b5050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f0857611f076126b8565b5b604051908082528060200260200182016040528015611f365781602001602082028036833780820191505090505b5090503081600081518110611f4e57611f4d612ad4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120199190613381565b8160018151811061202d5761202c612ad4565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061209430601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139d565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120f895949392919061346c565b600060405180830381600087803b15801561211257600080fd5b505af1158015612126573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b60008083118290612190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121879190612573565b60405180910390fd5b506000838561219f9190612dae565b9050809150509392505050565b6000806121b8836123e7565b9150915061220e83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461243b90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122a382600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061233881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516123d89190612880565b60405180910390a35050505050565b60008060006124156103e86124076006548761131b90919063ffffffff16565b6112d190919063ffffffff16565b9050600061242c828661243b90919063ffffffff16565b90508082935093505050915091565b600061247d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d49565b905092915050565b60008082846124949190612b7a565b9050838110156124d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124d090613512565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561251d578082015181840152602081019050612502565b60008484015250505050565b6000601f19601f8301169050919050565b6000612545826124e3565b61254f81856124ee565b935061255f8185602086016124ff565b61256881612529565b840191505092915050565b6000602082019050818103600083015261258d818461253a565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125d4826125a9565b9050919050565b6125e4816125c9565b81146125ef57600080fd5b50565b600081359050612601816125db565b92915050565b6000819050919050565b61261a81612607565b811461262557600080fd5b50565b60008135905061263781612611565b92915050565b600080604083850312156126545761265361259f565b5b6000612662858286016125f2565b925050602061267385828601612628565b9150509250929050565b60008115159050919050565b6126928161267d565b82525050565b60006020820190506126ad6000830184612689565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126f082612529565b810181811067ffffffffffffffff8211171561270f5761270e6126b8565b5b80604052505050565b6000612722612595565b905061272e82826126e7565b919050565b600067ffffffffffffffff82111561274e5761274d6126b8565b5b602082029050602081019050919050565b600080fd5b600061277761277284612733565b612718565b9050808382526020820190506020840283018581111561279a5761279961275f565b5b835b818110156127c357806127af88826125f2565b84526020840193505060208101905061279c565b5050509392505050565b600082601f8301126127e2576127e16126b3565b5b81356127f2848260208601612764565b91505092915050565b6000602082840312156128115761281061259f565b5b600082013567ffffffffffffffff81111561282f5761282e6125a4565b5b61283b848285016127cd565b91505092915050565b60006020828403121561285a5761285961259f565b5b6000612868848285016125f2565b91505092915050565b61287a81612607565b82525050565b60006020820190506128956000830184612871565b92915050565b600080604083850312156128b2576128b161259f565b5b60006128c085828601612628565b92505060206128d185828601612628565b9150509250929050565b6000806000606084860312156128f4576128f361259f565b5b6000612902868287016125f2565b9350506020612913868287016125f2565b925050604061292486828701612628565b9150509250925092565b600060ff82169050919050565b6129448161292e565b82525050565b600060208201905061295f600083018461293b565b92915050565b60006020828403121561297b5761297a61259f565b5b600061298984828501612628565b91505092915050565b61299b816125c9565b82525050565b60006020820190506129b66000830184612992565b92915050565b600080604083850312156129d3576129d261259f565b5b60006129e1858286016125f2565b92505060206129f2858286016125f2565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a326020836124ee565b9150612a3d826129fc565b602082019050919050565b60006020820190508181036000830152612a6181612a25565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612a9e6017836124ee565b9150612aa982612a68565b602082019050919050565b60006020820190508181036000830152612acd81612a91565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b3d82612607565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b6f57612b6e612b03565b5b600182019050919050565b6000612b8582612607565b9150612b9083612607565b9250828201905080821115612ba857612ba7612b03565b5b92915050565b600081519050612bbd81612611565b92915050565b600060208284031215612bd957612bd861259f565b5b6000612be784828501612bae565b91505092915050565b6000819050919050565b6000612c15612c10612c0b846125a9565b612bf0565b6125a9565b9050919050565b6000612c2782612bfa565b9050919050565b6000612c3982612c1c565b9050919050565b612c4981612c2e565b82525050565b6000604082019050612c646000830185612c40565b612c716020830184612871565b9392505050565b612c818161267d565b8114612c8c57600080fd5b50565b600081519050612c9e81612c78565b92915050565b600060208284031215612cba57612cb961259f565b5b6000612cc884828501612c8f565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612d076019836124ee565b9150612d1282612cd1565b602082019050919050565b60006020820190508181036000830152612d3681612cfa565b9050919050565b6000612d4882612607565b9150612d5383612607565b9250828202612d6181612607565b91508282048414831517612d7857612d77612b03565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612db982612607565b9150612dc483612607565b925082612dd457612dd3612d7f565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3b6021836124ee565b9150612e4682612ddf565b604082019050919050565b60006020820190508181036000830152612e6a81612e2e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ecd6024836124ee565b9150612ed882612e71565b604082019050919050565b60006020820190508181036000830152612efc81612ec0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5f6022836124ee565b9150612f6a82612f03565b604082019050919050565b60006020820190508181036000830152612f8e81612f52565b9050919050565b6000819050919050565b6000612fba612fb5612fb084612f95565b612bf0565b612607565b9050919050565b612fca81612f9f565b82525050565b600060c082019050612fe56000830189612992565b612ff26020830188612871565b612fff6040830187612fc1565b61300c6060830186612fc1565b6130196080830185612992565b61302660a0830184612871565b979650505050505050565b60008060006060848603121561304a5761304961259f565b5b600061305886828701612bae565b935050602061306986828701612bae565b925050604061307a86828701612bae565b9150509250925092565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006130e06025836124ee565b91506130eb82613084565b604082019050919050565b6000602082019050818103600083015261310f816130d3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006131726023836124ee565b915061317d82613116565b604082019050919050565b600060208201905081810360008301526131a181613165565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132046029836124ee565b915061320f826131a8565b604082019050919050565b60006020820190508181036000830152613233816131f7565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b60006132706013836124ee565b915061327b8261323a565b602082019050919050565b6000602082019050818103600083015261329f81613263565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203360008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b60006133026028836124ee565b915061330d826132a6565b604082019050919050565b60006020820190508181036000830152613331816132f5565b9050919050565b600061334382612607565b915061334e83612607565b925082820390508181111561336657613365612b03565b5b92915050565b60008151905061337b816125db565b92915050565b6000602082840312156133975761339661259f565b5b60006133a58482850161336c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6133e3816125c9565b82525050565b60006133f583836133da565b60208301905092915050565b6000602082019050919050565b6000613419826133ae565b61342381856133b9565b935061342e836133ca565b8060005b8381101561345f57815161344688826133e9565b975061345183613401565b925050600181019050613432565b5085935050505092915050565b600060a0820190506134816000830188612871565b61348e6020830187612fc1565b81810360408301526134a0818661340e565b90506134af6060830185612992565b6134bc6080830184612871565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006134fc601b836124ee565b9150613507826134c6565b602082019050919050565b6000602082019050818103600083015261352b816134ef565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e4f07ef499622255e836870290fb65254652aac9744ed25e4693945f4618127164736f6c63430008120033

Deployed Bytecode Sourcemap

4201:9145:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6276:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7107:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11582:463;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13097:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6553:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7709:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7276:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6462:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7602:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12691:153;;;;;;;;;;;;;:::i;:::-;;6656:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3280:148;;;;;;;;;;;;;:::i;:::-;;8077:81;;;;;;;;;;;;;:::i;:::-;;7911:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2885:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6367:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6781:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12525:154;;;;;;;;;;;;;:::i;:::-;;6956:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8168:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3099:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6276:83;6313:13;6346:5;;;;;;;;;;;;;;;;;6339:12;;6276:83;:::o;7107:161::-;7182:4;7199:39;7208:12;:10;:12::i;:::-;7222:7;7231:6;7199:8;:39::i;:::-;7256:4;7249:11;;7107:161;;;;:::o;11582:463::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11674:11:::1;;;;;;;;;;;11673:12;11665:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11723:85;11736:41;11773:3;11736:32;11765:2;11736:24;11754:4;11736:9;:24::i;:::-;:28;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;11778:21;11800:7;:5;:7::i;:::-;11723:12;:85::i;:::-;11823:6;11819:83;11837:11;:18;11833:1;:22;11819:83;;;11885:15;11897:2;4611:20;11885:11;;:15;;;;:::i;:::-;11861:7;:23;11869:11;11881:1;11869:14;;;;;;;;:::i;:::-;;;;;;;;11861:23;;;;;;;;;;;;;;;:39;;;;11856:3;;;;;:::i;:::-;;;;11819:83;;;;11926:4;11912:11;;:18;;;;;;;;;;;;;;;;;;11955:4;11941:11;;:18;;;;;;;;;;;;;;;;;;11986:4;11970:13;;:20;;;;;;;;;;;;;;;;;;12027:9;12008:15;:29;;;;:::i;:::-;12001:4;:36;;;;11582:463:::0;:::o;13097:246::-;13192:4;13168:29;;:12;:29;;;13160:38;;;;;;13209:20;13239:12;13209:43;;13263:13;:22;;;13286:9;;;;;;;;;;;13296:13;:23;;;13328:4;13296:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13263:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13149:194;13097:246;:::o;6553:95::-;6606:7;4611:20;6626:14;;6553:95;:::o;7709:194::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7802:3:::1;7794:4;:11;;:27;;;;;7818:3;7809:5;:12;;7794:27;7786:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7868:4;7861;:11;;;;7890:5;7883:4;:12;;;;7709:194:::0;;:::o;7276:313::-;7374:4;7391:36;7401:6;7409:9;7420:6;7391:9;:36::i;:::-;7438:121;7447:6;7455:12;:10;:12::i;:::-;7469:89;7507:6;7469:89;;;;;;;;;;;;;;;;;:11;:19;7481:6;7469:19;;;;;;;;;;;;;;;:33;7489:12;:10;:12::i;:::-;7469:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7438:8;:121::i;:::-;7577:4;7570:11;;7276:313;;;;;:::o;6462:83::-;6503:5;5073:1;6521:16;;6462:83;:::o;7602:99::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7685:6:::1;7672:10;:19;;;;7602:99:::0;:::o;12691:153::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12743:26:::1;12772:21;12743:50;;12804:32;12817:18;12804:12;:32::i;:::-;12732:112;12691:153::o:0;6656:117::-;6722:7;6749;:16;6757:7;6749:16;;;;;;;;;;;;;;;;6742:23;;6656:117;;;:::o;3280:148::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3387:1:::1;3350:40;;3371:6;::::0;::::1;;;;;;;;3350:40;;;;;;;;;;;;3418:1;3401:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3280:148::o:0;8077:81::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8145:5:::1;8129:13;;:21;;;;;;;;;;;;;;;;;;8077:81::o:0;7911:158::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8015:3:::1;8007:4;8000;:11;;;;:::i;:::-;:18;7992:27;;;::::0;::::1;;8036:4;8030:3;:10;;;;8057:4;8051:3;:10;;;;7911:158:::0;;:::o;2885:79::-;2923:7;2950:6;;;;;;;;;;;2943:13;;2885:79;:::o;6367:87::-;6406:13;6439:7;;;;;;;;;;;;;;;;;6432:14;;6367:87;:::o;6781:167::-;6859:4;6876:42;6886:12;:10;:12::i;:::-;6900:9;6911:6;6876:9;:42::i;:::-;6936:4;6929:11;;6781:167;;;;:::o;12525:154::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12577:23:::1;12603:24;12621:4;12603:9;:24::i;:::-;12577:50;;12638:33;12655:15;12638:16;:33::i;:::-;12566:113;12525:154::o:0;6956:143::-;7037:7;7064:11;:18;7076:5;7064:18;;;;;;;;;;;;;;;:27;7083:7;7064:27;;;;;;;;;;;;;;;;7057:34;;6956:143;;;;:::o;8168:110::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8266:4:::1;8237:18;:26;8256:6;8237:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8168:110:::0;:::o;3099:173::-;3022:12;:10;:12::i;:::-;3012:22;;:6;;;;;;;;;;:22;;;3004:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3215:9:::1;3186:39;;3207:6;::::0;::::1;;;;;;;;3186:39;;;;;;;;;;;;3245:9;3236:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;3099:173:::0;:::o;2192:132::-;2250:7;2277:39;2281:1;2284;2277:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2270:46;;2192:132;;;;:::o;1938:246::-;1996:7;2025:1;2020;:6;2016:47;;2050:1;2043:8;;;;2016:47;2073:9;2089:1;2085;:5;;;;:::i;:::-;2073:17;;2118:1;2113;2109;:5;;;;:::i;:::-;:10;2101:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2175:1;2168:8;;;1938:246;;;;;:::o;603:98::-;656:7;683:10;676:17;;603:98;:::o;8291:335::-;8401:1;8384:19;;:5;:19;;;8376:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8482:1;8463:21;;:7;:21;;;8455:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8564:6;8534:11;:18;8546:5;8534:18;;;;;;;;;;;;;;;:27;8553:7;8534:27;;;;;;;;;;;;;;;:36;;;;8602:7;8586:32;;8595:5;8586:32;;;8611:6;8586:32;;;;;;:::i;:::-;;;;;;;;8291:335;;;:::o;11097:288::-;5488:4;5479:6;;:13;;;;;;;;;;;;;;;;;;11203:60:::1;11220:4;11234:15;;;;;;;;;;;11251:11;11203:8;:60::i;:::-;11274:15;;;;;;;;;;;:31;;;11313:9;11332:4;11338:11;11350:1;11352::::0;11354:6:::1;11361:15;11274:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5524:5:::0;5515:6;;:14;;;;;;;;;;;;;;;;;;11097:288;;;:::o;8634:1958::-;8738:1;8722:18;;:4;:18;;;8714:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8815:1;8801:16;;:2;:16;;;8793:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8885:1;8876:6;:10;8868:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8952:4;;8945;:11;;;;8979:9;;;;;;;;;;;8971:17;;:4;:17;;;;:36;;;;;8998:9;;;;;;;;;;;8992:15;;:2;:15;;;;8971:36;8967:1433;;;9036:13;;;;;;;;;;;9028:21;;:4;:21;;;:55;;;;;9067:15;;;;;;;;;;;9053:30;;:2;:30;;;;9028:55;:83;;;;;9089:18;:22;9108:2;9089:22;;;;;;;;;;;;;;;;;;;;;;;;;9087:24;9028:83;:100;;;;;9115:13;;;;;;;;;;;9028:100;9024:414;;;9211:16;;9200:6;9186:7;:11;9194:2;9186:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9185:42;;9177:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9287:12;;9277:6;:22;;9269:31;;;;;;9342:15;9327:8;:12;9336:2;9327:12;;;;;;;;;;;;;;;;:30;9319:39;;;;;;9411:10;9392:15;:30;;;;:::i;:::-;9377:8;:12;9386:2;9377:12;;;;;;;;;;;;;;;:45;;;;9024:414;9485:6;;;;;;;;;;;9484:7;:32;;;;;9503:13;;;;;;;;;;;9495:21;;:4;:21;;;;9484:32;:47;;;;;9520:11;;;;;;;;;;;9484:47;:76;;;;;9536:18;:24;9555:4;9536:24;;;;;;;;;;;;;;;;;;;;;;;;;9535:25;9484:76;9480:909;;;9607:4;;9589:15;:22;9581:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9674:28;9705:24;9723:4;9705:9;:24::i;:::-;9674:55;;9774:10;;9751:20;:33;9748:626;;;9834:15;;9811:20;:38;9808:278;;;9900:15;;9877:38;;9968:6;9945:20;:29;9942:121;;;10029:6;10006:29;;9942:121;9808:278;10108:38;10125:20;10108:16;:38::i;:::-;10169:26;10198:21;10169:50;;10266:1;10245:18;:22;10242:113;;;10296:35;10309:21;10296:12;:35::i;:::-;10242:113;9785:589;9748:626;9562:827;9480:909;8967:1433;10420:13;;;;;;;;;;;10414:19;;:2;:19;;;:55;;;;;10453:15;;;;;;;;;;;10437:32;;:4;:32;;;;10414:55;:85;;;;;10475:18;:24;10494:4;10475:24;;;;;;;;;;;;;;;;;;;;;;;;;10473:26;10414:85;10410:129;;;10523:4;;10516;:11;;;;10410:129;10551:33;10569:4;10574:2;10577:6;10551:17;:33::i;:::-;8634:1958;;;:::o;1740:190::-;1826:7;1859:1;1854;:6;;1862:12;1846:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1886:9;1902:1;1898;:5;;;;:::i;:::-;1886:17;;1921:1;1914:8;;;1740:190;;;;;:::o;11399:171::-;11456:9;;;;;;;;;;;:18;;:44;11475:24;11495:3;;11475:15;11486:3;11475:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11456:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11511:16;;;;;;;;;;;:25;;:51;11537:24;11557:3;;11537:15;11548:3;11537:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11511:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11399:171;:::o;10600:483::-;5488:4;5479:6;;:13;;;;;;;;;;;;;;;;;;10678:21:::1;10716:1;10702:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10678:40;;10747:4;10729;10734:1;10729:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10773:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10763:4;10768:1;10763:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10806:62;10823:4;10838:15;;;;;;;;;;;10856:11;10806:8;:62::i;:::-;10879:15;;;;;;;;;;;:66;;;10960:11;10986:1;11002:4;11029;11049:15;10879:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10667:416;5524:5:::0;5515:6;;:14;;;;;;;;;;;;;;;;;;10600:483;:::o;2332:189::-;2418:7;2450:1;2446;:5;2453:12;2438:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2477:9;2493:1;2489;:5;;;;:::i;:::-;2477:17;;2512:1;2505:8;;;2332:189;;;;;:::o;12055:421::-;12154:22;12177:12;12193:20;12205:7;12193:11;:20::i;:::-;12153:60;;;;12242:28;12262:7;12242;:15;12250:6;12242:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12224:7;:15;12232:6;12224:15;;;;;;;;;;;;;;;:46;;;;12302:38;12325:14;12302:7;:18;12310:9;12302:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12281:7;:18;12289:9;12281:18;;;;;;;;;;;;;;;:59;;;;12377:32;12404:4;12377:7;:22;12393:4;12377:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12352:7;:22;12368:4;12352:22;;;;;;;;;;;;;;;:57;;;;12442:9;12425:43;;12434:6;12425:43;;;12453:14;12425:43;;;;;;:::i;:::-;;;;;;;;12142:334;;12055:421;;;:::o;12855:234::-;12915:7;12924;12944:12;12959:27;12981:4;12959:17;12971:4;;12959:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12944:42;;12997:23;13023:17;13035:4;13023:7;:11;;:17;;;;:::i;:::-;12997:43;;13059:15;13076:4;13051:30;;;;;;12855:234;;;:::o;1596:136::-;1654:7;1681:43;1685:1;1688;1681:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1674:50;;1596:136;;;;:::o;1409:179::-;1467:7;1487:9;1503:1;1499;:5;;;;:::i;:::-;1487:17;;1528:1;1523;:6;;1515:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1579:1;1572:8;;;1409:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:539::-;5827:6;5876:2;5864:9;5855:7;5851:23;5847:32;5844:119;;;5882:79;;:::i;:::-;5844:119;6030:1;6019:9;6015:17;6002:31;6060:18;6052:6;6049:30;6046:117;;;6082:79;;:::i;:::-;6046:117;6187:78;6257:7;6248:6;6237:9;6233:22;6187:78;:::i;:::-;6177:88;;5973:302;5743:539;;;;:::o;6288:329::-;6347:6;6396:2;6384:9;6375:7;6371:23;6367:32;6364:119;;;6402:79;;:::i;:::-;6364:119;6522:1;6547:53;6592:7;6583:6;6572:9;6568:22;6547:53;:::i;:::-;6537:63;;6493:117;6288:329;;;;:::o;6623:118::-;6710:24;6728:5;6710:24;:::i;:::-;6705:3;6698:37;6623:118;;:::o;6747:222::-;6840:4;6878:2;6867:9;6863:18;6855:26;;6891:71;6959:1;6948:9;6944:17;6935:6;6891:71;:::i;:::-;6747:222;;;;:::o;6975:474::-;7043:6;7051;7100:2;7088:9;7079:7;7075:23;7071:32;7068:119;;;7106:79;;:::i;:::-;7068:119;7226:1;7251:53;7296:7;7287:6;7276:9;7272:22;7251:53;:::i;:::-;7241:63;;7197:117;7353:2;7379:53;7424:7;7415:6;7404:9;7400:22;7379:53;:::i;:::-;7369:63;;7324:118;6975:474;;;;;:::o;7455:619::-;7532:6;7540;7548;7597:2;7585:9;7576:7;7572:23;7568:32;7565:119;;;7603:79;;:::i;:::-;7565:119;7723:1;7748:53;7793:7;7784:6;7773:9;7769:22;7748:53;:::i;:::-;7738:63;;7694:117;7850:2;7876:53;7921:7;7912:6;7901:9;7897:22;7876:53;:::i;:::-;7866:63;;7821:118;7978:2;8004:53;8049:7;8040:6;8029:9;8025:22;8004:53;:::i;:::-;7994:63;;7949:118;7455:619;;;;;:::o;8080:86::-;8115:7;8155:4;8148:5;8144:16;8133:27;;8080:86;;;:::o;8172:112::-;8255:22;8271:5;8255:22;:::i;:::-;8250:3;8243:35;8172:112;;:::o;8290:214::-;8379:4;8417:2;8406:9;8402:18;8394:26;;8430:67;8494:1;8483:9;8479:17;8470:6;8430:67;:::i;:::-;8290:214;;;;:::o;8510:329::-;8569:6;8618:2;8606:9;8597:7;8593:23;8589:32;8586:119;;;8624:79;;:::i;:::-;8586:119;8744:1;8769:53;8814:7;8805:6;8794:9;8790:22;8769:53;:::i;:::-;8759:63;;8715:117;8510:329;;;;:::o;8845:118::-;8932:24;8950:5;8932:24;:::i;:::-;8927:3;8920:37;8845:118;;:::o;8969:222::-;9062:4;9100:2;9089:9;9085:18;9077:26;;9113:71;9181:1;9170:9;9166:17;9157:6;9113:71;:::i;:::-;8969:222;;;;:::o;9197:474::-;9265:6;9273;9322:2;9310:9;9301:7;9297:23;9293:32;9290:119;;;9328:79;;:::i;:::-;9290:119;9448:1;9473:53;9518:7;9509:6;9498:9;9494:22;9473:53;:::i;:::-;9463:63;;9419:117;9575:2;9601:53;9646:7;9637:6;9626:9;9622:22;9601:53;:::i;:::-;9591:63;;9546:118;9197:474;;;;;:::o;9677:182::-;9817:34;9813:1;9805:6;9801:14;9794:58;9677:182;:::o;9865:366::-;10007:3;10028:67;10092:2;10087:3;10028:67;:::i;:::-;10021:74;;10104:93;10193:3;10104:93;:::i;:::-;10222:2;10217:3;10213:12;10206:19;;9865:366;;;:::o;10237:419::-;10403:4;10441:2;10430:9;10426:18;10418:26;;10490:9;10484:4;10480:20;10476:1;10465:9;10461:17;10454:47;10518:131;10644:4;10518:131;:::i;:::-;10510:139;;10237:419;;;:::o;10662:173::-;10802:25;10798:1;10790:6;10786:14;10779:49;10662:173;:::o;10841:366::-;10983:3;11004:67;11068:2;11063:3;11004:67;:::i;:::-;10997:74;;11080:93;11169:3;11080:93;:::i;:::-;11198:2;11193:3;11189:12;11182:19;;10841:366;;;:::o;11213:419::-;11379:4;11417:2;11406:9;11402:18;11394:26;;11466:9;11460:4;11456:20;11452:1;11441:9;11437:17;11430:47;11494:131;11620:4;11494:131;:::i;:::-;11486:139;;11213:419;;;:::o;11638:180::-;11686:77;11683:1;11676:88;11783:4;11780:1;11773:15;11807:4;11804:1;11797:15;11824:180;11872:77;11869:1;11862:88;11969:4;11966:1;11959:15;11993:4;11990:1;11983:15;12010:233;12049:3;12072:24;12090:5;12072:24;:::i;:::-;12063:33;;12118:66;12111:5;12108:77;12105:103;;12188:18;;:::i;:::-;12105:103;12235:1;12228:5;12224:13;12217:20;;12010:233;;;:::o;12249:191::-;12289:3;12308:20;12326:1;12308:20;:::i;:::-;12303:25;;12342:20;12360:1;12342:20;:::i;:::-;12337:25;;12385:1;12382;12378:9;12371:16;;12406:3;12403:1;12400:10;12397:36;;;12413:18;;:::i;:::-;12397:36;12249:191;;;;:::o;12446:143::-;12503:5;12534:6;12528:13;12519:22;;12550:33;12577:5;12550:33;:::i;:::-;12446:143;;;;:::o;12595:351::-;12665:6;12714:2;12702:9;12693:7;12689:23;12685:32;12682:119;;;12720:79;;:::i;:::-;12682:119;12840:1;12865:64;12921:7;12912:6;12901:9;12897:22;12865:64;:::i;:::-;12855:74;;12811:128;12595:351;;;;:::o;12952:60::-;12980:3;13001:5;12994:12;;12952:60;;;:::o;13018:142::-;13068:9;13101:53;13119:34;13128:24;13146:5;13128:24;:::i;:::-;13119:34;:::i;:::-;13101:53;:::i;:::-;13088:66;;13018:142;;;:::o;13166:126::-;13216:9;13249:37;13280:5;13249:37;:::i;:::-;13236:50;;13166:126;;;:::o;13298:134::-;13356:9;13389:37;13420:5;13389:37;:::i;:::-;13376:50;;13298:134;;;:::o;13438:147::-;13533:45;13572:5;13533:45;:::i;:::-;13528:3;13521:58;13438:147;;:::o;13591:348::-;13720:4;13758:2;13747:9;13743:18;13735:26;;13771:79;13847:1;13836:9;13832:17;13823:6;13771:79;:::i;:::-;13860:72;13928:2;13917:9;13913:18;13904:6;13860:72;:::i;:::-;13591:348;;;;;:::o;13945:116::-;14015:21;14030:5;14015:21;:::i;:::-;14008:5;14005:32;13995:60;;14051:1;14048;14041:12;13995:60;13945:116;:::o;14067:137::-;14121:5;14152:6;14146:13;14137:22;;14168:30;14192:5;14168:30;:::i;:::-;14067:137;;;;:::o;14210:345::-;14277:6;14326:2;14314:9;14305:7;14301:23;14297:32;14294:119;;;14332:79;;:::i;:::-;14294:119;14452:1;14477:61;14530:7;14521:6;14510:9;14506:22;14477:61;:::i;:::-;14467:71;;14423:125;14210:345;;;;:::o;14561:175::-;14701:27;14697:1;14689:6;14685:14;14678:51;14561:175;:::o;14742:366::-;14884:3;14905:67;14969:2;14964:3;14905:67;:::i;:::-;14898:74;;14981:93;15070:3;14981:93;:::i;:::-;15099:2;15094:3;15090:12;15083:19;;14742:366;;;:::o;15114:419::-;15280:4;15318:2;15307:9;15303:18;15295:26;;15367:9;15361:4;15357:20;15353:1;15342:9;15338:17;15331:47;15395:131;15521:4;15395:131;:::i;:::-;15387:139;;15114:419;;;:::o;15539:410::-;15579:7;15602:20;15620:1;15602:20;:::i;:::-;15597:25;;15636:20;15654:1;15636:20;:::i;:::-;15631:25;;15691:1;15688;15684:9;15713:30;15731:11;15713:30;:::i;:::-;15702:41;;15892:1;15883:7;15879:15;15876:1;15873:22;15853:1;15846:9;15826:83;15803:139;;15922:18;;:::i;:::-;15803:139;15587:362;15539:410;;;;:::o;15955:180::-;16003:77;16000:1;15993:88;16100:4;16097:1;16090:15;16124:4;16121:1;16114:15;16141:185;16181:1;16198:20;16216:1;16198:20;:::i;:::-;16193:25;;16232:20;16250:1;16232:20;:::i;:::-;16227:25;;16271:1;16261:35;;16276:18;;:::i;:::-;16261:35;16318:1;16315;16311:9;16306:14;;16141:185;;;;:::o;16332:220::-;16472:34;16468:1;16460:6;16456:14;16449:58;16541:3;16536:2;16528:6;16524:15;16517:28;16332:220;:::o;16558:366::-;16700:3;16721:67;16785:2;16780:3;16721:67;:::i;:::-;16714:74;;16797:93;16886:3;16797:93;:::i;:::-;16915:2;16910:3;16906:12;16899:19;;16558:366;;;:::o;16930:419::-;17096:4;17134:2;17123:9;17119:18;17111:26;;17183:9;17177:4;17173:20;17169:1;17158:9;17154:17;17147:47;17211:131;17337:4;17211:131;:::i;:::-;17203:139;;16930:419;;;:::o;17355:223::-;17495:34;17491:1;17483:6;17479:14;17472:58;17564:6;17559:2;17551:6;17547:15;17540:31;17355:223;:::o;17584:366::-;17726:3;17747:67;17811:2;17806:3;17747:67;:::i;:::-;17740:74;;17823:93;17912:3;17823:93;:::i;:::-;17941:2;17936:3;17932:12;17925:19;;17584:366;;;:::o;17956:419::-;18122:4;18160:2;18149:9;18145:18;18137:26;;18209:9;18203:4;18199:20;18195:1;18184:9;18180:17;18173:47;18237:131;18363:4;18237:131;:::i;:::-;18229:139;;17956:419;;;:::o;18381:221::-;18521:34;18517:1;18509:6;18505:14;18498:58;18590:4;18585:2;18577:6;18573:15;18566:29;18381:221;:::o;18608:366::-;18750:3;18771:67;18835:2;18830:3;18771:67;:::i;:::-;18764:74;;18847:93;18936:3;18847:93;:::i;:::-;18965:2;18960:3;18956:12;18949:19;;18608:366;;;:::o;18980:419::-;19146:4;19184:2;19173:9;19169:18;19161:26;;19233:9;19227:4;19223:20;19219:1;19208:9;19204:17;19197:47;19261:131;19387:4;19261:131;:::i;:::-;19253:139;;18980:419;;;:::o;19405:85::-;19450:7;19479:5;19468:16;;19405:85;;;:::o;19496:158::-;19554:9;19587:61;19605:42;19614:32;19640:5;19614:32;:::i;:::-;19605:42;:::i;:::-;19587:61;:::i;:::-;19574:74;;19496:158;;;:::o;19660:147::-;19755:45;19794:5;19755:45;:::i;:::-;19750:3;19743:58;19660:147;;:::o;19813:807::-;20062:4;20100:3;20089:9;20085:19;20077:27;;20114:71;20182:1;20171:9;20167:17;20158:6;20114:71;:::i;:::-;20195:72;20263:2;20252:9;20248:18;20239:6;20195:72;:::i;:::-;20277:80;20353:2;20342:9;20338:18;20329:6;20277:80;:::i;:::-;20367;20443:2;20432:9;20428:18;20419:6;20367:80;:::i;:::-;20457:73;20525:3;20514:9;20510:19;20501:6;20457:73;:::i;:::-;20540;20608:3;20597:9;20593:19;20584:6;20540:73;:::i;:::-;19813:807;;;;;;;;;:::o;20626:663::-;20714:6;20722;20730;20779:2;20767:9;20758:7;20754:23;20750:32;20747:119;;;20785:79;;:::i;:::-;20747:119;20905:1;20930:64;20986:7;20977:6;20966:9;20962:22;20930:64;:::i;:::-;20920:74;;20876:128;21043:2;21069:64;21125:7;21116:6;21105:9;21101:22;21069:64;:::i;:::-;21059:74;;21014:129;21182:2;21208:64;21264:7;21255:6;21244:9;21240:22;21208:64;:::i;:::-;21198:74;;21153:129;20626:663;;;;;:::o;21295:224::-;21435:34;21431:1;21423:6;21419:14;21412:58;21504:7;21499:2;21491:6;21487:15;21480:32;21295:224;:::o;21525:366::-;21667:3;21688:67;21752:2;21747:3;21688:67;:::i;:::-;21681:74;;21764:93;21853:3;21764:93;:::i;:::-;21882:2;21877:3;21873:12;21866:19;;21525:366;;;:::o;21897:419::-;22063:4;22101:2;22090:9;22086:18;22078:26;;22150:9;22144:4;22140:20;22136:1;22125:9;22121:17;22114:47;22178:131;22304:4;22178:131;:::i;:::-;22170:139;;21897:419;;;:::o;22322:222::-;22462:34;22458:1;22450:6;22446:14;22439:58;22531:5;22526:2;22518:6;22514:15;22507:30;22322:222;:::o;22550:366::-;22692:3;22713:67;22777:2;22772:3;22713:67;:::i;:::-;22706:74;;22789:93;22878:3;22789:93;:::i;:::-;22907:2;22902:3;22898:12;22891:19;;22550:366;;;:::o;22922:419::-;23088:4;23126:2;23115:9;23111:18;23103:26;;23175:9;23169:4;23165:20;23161:1;23150:9;23146:17;23139:47;23203:131;23329:4;23203:131;:::i;:::-;23195:139;;22922:419;;;:::o;23347:228::-;23487:34;23483:1;23475:6;23471:14;23464:58;23556:11;23551:2;23543:6;23539:15;23532:36;23347:228;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:169::-;24518:21;24514:1;24506:6;24502:14;24495:45;24378:169;:::o;24553:366::-;24695:3;24716:67;24780:2;24775:3;24716:67;:::i;:::-;24709:74;;24792:93;24881:3;24792:93;:::i;:::-;24910:2;24905:3;24901:12;24894:19;;24553:366;;;:::o;24925:419::-;25091:4;25129:2;25118:9;25114:18;25106:26;;25178:9;25172:4;25168:20;25164:1;25153:9;25149:17;25142:47;25206:131;25332:4;25206:131;:::i;:::-;25198:139;;24925:419;;;:::o;25350:227::-;25490:34;25486:1;25478:6;25474:14;25467:58;25559:10;25554:2;25546:6;25542:15;25535:35;25350:227;:::o;25583:366::-;25725:3;25746:67;25810:2;25805:3;25746:67;:::i;:::-;25739:74;;25822:93;25911:3;25822:93;:::i;:::-;25940:2;25935:3;25931:12;25924:19;;25583:366;;;:::o;25955:419::-;26121:4;26159:2;26148:9;26144:18;26136:26;;26208:9;26202:4;26198:20;26194:1;26183:9;26179:17;26172:47;26236:131;26362:4;26236:131;:::i;:::-;26228:139;;25955:419;;;:::o;26380:194::-;26420:4;26440:20;26458:1;26440:20;:::i;:::-;26435:25;;26474:20;26492:1;26474:20;:::i;:::-;26469:25;;26518:1;26515;26511:9;26503:17;;26542:1;26536:4;26533:11;26530:37;;;26547:18;;:::i;:::-;26530:37;26380:194;;;;:::o;26580:143::-;26637:5;26668:6;26662:13;26653:22;;26684:33;26711:5;26684:33;:::i;:::-;26580:143;;;;:::o;26729:351::-;26799:6;26848:2;26836:9;26827:7;26823:23;26819:32;26816:119;;;26854:79;;:::i;:::-;26816:119;26974:1;26999:64;27055:7;27046:6;27035:9;27031:22;26999:64;:::i;:::-;26989:74;;26945:128;26729:351;;;;:::o;27086:114::-;27153:6;27187:5;27181:12;27171:22;;27086:114;;;:::o;27206:184::-;27305:11;27339:6;27334:3;27327:19;27379:4;27374:3;27370:14;27355:29;;27206:184;;;;:::o;27396:132::-;27463:4;27486:3;27478:11;;27516:4;27511:3;27507:14;27499:22;;27396:132;;;:::o;27534:108::-;27611:24;27629:5;27611:24;:::i;:::-;27606:3;27599:37;27534:108;;:::o;27648:179::-;27717:10;27738:46;27780:3;27772:6;27738:46;:::i;:::-;27816:4;27811:3;27807:14;27793:28;;27648:179;;;;:::o;27833:113::-;27903:4;27935;27930:3;27926:14;27918:22;;27833:113;;;:::o;27982:732::-;28101:3;28130:54;28178:5;28130:54;:::i;:::-;28200:86;28279:6;28274:3;28200:86;:::i;:::-;28193:93;;28310:56;28360:5;28310:56;:::i;:::-;28389:7;28420:1;28405:284;28430:6;28427:1;28424:13;28405:284;;;28506:6;28500:13;28533:63;28592:3;28577:13;28533:63;:::i;:::-;28526:70;;28619:60;28672:6;28619:60;:::i;:::-;28609:70;;28465:224;28452:1;28449;28445:9;28440:14;;28405:284;;;28409:14;28705:3;28698:10;;28106:608;;;27982:732;;;;:::o;28720:831::-;28983:4;29021:3;29010:9;29006:19;28998:27;;29035:71;29103:1;29092:9;29088:17;29079:6;29035:71;:::i;:::-;29116:80;29192:2;29181:9;29177:18;29168:6;29116:80;:::i;:::-;29243:9;29237:4;29233:20;29228:2;29217:9;29213:18;29206:48;29271:108;29374:4;29365:6;29271:108;:::i;:::-;29263:116;;29389:72;29457:2;29446:9;29442:18;29433:6;29389:72;:::i;:::-;29471:73;29539:3;29528:9;29524:19;29515:6;29471:73;:::i;:::-;28720:831;;;;;;;;:::o;29557:177::-;29697:29;29693:1;29685:6;29681:14;29674:53;29557:177;:::o;29740:366::-;29882:3;29903:67;29967:2;29962:3;29903:67;:::i;:::-;29896:74;;29979:93;30068:3;29979:93;:::i;:::-;30097:2;30092:3;30088:12;30081:19;;29740:366;;;:::o;30112:419::-;30278:4;30316:2;30305:9;30301:18;30293:26;;30365:9;30359:4;30355:20;30351:1;30340:9;30336:17;30329:47;30393:131;30519:4;30393:131;:::i;:::-;30385:139;;30112:419;;;:::o

Swarm Source

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