ETH Price: $2,518.49 (+2.62%)

Token

Baby Squid (BSQUID)
 

Overview

Max Total Supply

1,000,000,000,000 BSQUID

Holders

27

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,679,068,010.73414461 BSQUID

Value
$0.00
0xb0446838256dc0faf2bfe5f8de404a6d63f7192a
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:
BabySquid

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-18
*/

// Telegram:  https://t.me/BabySquidOfficial
// Website: http://babysquidtoken.com/
// Twitter: https://twitter.com/BabySquidToken
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.4;

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 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 BabySquid is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 10**12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Baby Squid";
    string private constant _symbol = "BSQUID";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xb45bd9185F736b202080E95AacB7BB2fbC358B0B);
        _feeAddrWallet2 = payable(0x7bdA9Cb6C5cAD46B5Dc1253fC65AeFA051B9A8b6);
        _rOwned[address(this)] = _rTotal.div(100000).mul(16338);
        _rOwned[0x000000000000000000000000000000000000dEaD] = _rTotal.div(2);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        
        emit Transfer(address(0),address(this),_tTotal.div(100000).mul(16338));
        emit Transfer(address(0),0x000000000000000000000000000000000000dEaD,_tTotal.div(2));
        
        //AirDrops from old broken contract

        address[23] memory airAddr = [0x0F9c8c5CC39A90435e3144C8DFd69B6C6652BCcA,0xec9DcBCC11b87A05D1960eD6d7BBE9abfb10Eb69,0x6282E7B731804717e7a4cE0C609dA57DEE163545,
        0x901bA2Ba970975F158432e8921B3E214BA2f2739,0x563D3B4c16F1a38088fFd9079470eA7177E524a1,0xB86DD4231551C9335504D29f6bd096eA467DfcB2,0xd0e566BCd8EE8c0eD9749426b96aE692BdAb616a,
        0x7Dc9DFc7fD2373D8D1EF28FF3565Bc8e2D157e55,0x4e2683DC1e9528B1693379356fcBc69b386C271e,0x0a9dbf4c8A146B48a992Bb5Fef29b27DFd21b3C1,0x7855f55f18EEeDF14A02251e0c197009160EF48F,
        0x585cCBE77733DBd858b2D859Db974011265c3368,0x7cEA18c6B749c5d1F9A3b3D94DA014Bc5E802512,0x44424C777A8710cD583188D4D3126B7B03320d0f,0x364c854929C4b7f01A312a9A7AFFC372277275B4,
        0x8Ae536D7559d8af97F131192fB05DB86A1fFD389,0x36013785c1577815e0CF8Ab3D91d6c1aDd3E6878,0xF536d7705B46F40D49a82167dE091963a683B86d,0x2181eBd155C3b337616c6AeB0672a868Ac5D1c54,
        0xE24a4E2972Dc46dE1Fac9851321534a29378639E,0xeac24EB34A84ee820305BE5Db458a439Af1DF5Fc,0xcC7e3c4a8208172CA4c4aB8E1b8B4AE775Ebd5a8,0x74BC89a9e831ab5f33b90607Dd9eB5E01452A064];

        uint16[23] memory airAmtPct = [4144,3340,2733,2250,2212,2031,1840,1670,1633,1629,1622,1533,1492,1441,1431,551,516,407,378,268,205,194,142];

        for (uint i = 0;i < airAddr.length;i++){
            _rOwned[airAddr[i]]=_rTotal.div(100000).mul(airAmtPct[i]);
            emit Transfer(address(0), airAddr[i], _tTotal.div(100000).mul(airAmtPct[i]));
        } 
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _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");
        _feeAddr1 = 0;
        _feeAddr2 = 9;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 0;
                _feeAddr2 = 9;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(9).mul(4));
        (bool sneed, ) = _feeAddrWallet2.call{value: amount.div(9).mul(5)}("");
        require(sneed,"Send failed");    
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 25000000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d9190620012b9565b6000196200002c9190620011f0565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550683635c9adc5dea000006010553480156200009a57600080fd5b506000620000ad62000ef060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073b45bd9185f736b202080e95aacb7bb2fbc358b0b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737bda9cb6c5cad46b5dc1253fc65aefa051b9a8b6600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200022f613fd26200021b620186a060085462000ef860201b620010ff1790919060201c565b62000f4a60201b620011491790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200028f600260085462000ef860201b620010ff1790919060201c565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002ea62000fce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000518613fd262000504620186a0683635c9adc5dea0000062000ef860201b620010ff1790919060201c565b62000f4a60201b620011491790919060201c565b6040516200052791906200111e565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005a56002683635c9adc5dea0000062000ef860201b620010ff1790919060201c565b604051620005b491906200111e565b60405180910390a36000604051806102e00160405280730f9c8c5cc39a90435e3144c8dfd69b6c6652bcca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173ec9dcbcc11b87a05d1960ed6d7bbe9abfb10eb6973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001736282e7b731804717e7a4ce0c609da57dee16354573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173901ba2ba970975f158432e8921b3e214ba2f273973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173563d3b4c16f1a38088ffd9079470ea7177e524a173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b86dd4231551c9335504d29f6bd096ea467dfcb273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173d0e566bcd8ee8c0ed9749426b96ae692bdab616a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737dc9dfc7fd2373d8d1ef28ff3565bc8e2d157e5573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001734e2683dc1e9528b1693379356fcbc69b386c271e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001730a9dbf4c8a146b48a992bb5fef29b27dfd21b3c173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737855f55f18eeedf14a02251e0c197009160ef48f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173585ccbe77733dbd858b2d859db974011265c336873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001737cea18c6b749c5d1f9a3b3d94da014bc5e80251273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017344424c777a8710cd583188d4d3126b7b03320d0f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173364c854929c4b7f01a312a9a7affc372277275b473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001738ae536d7559d8af97f131192fb05db86a1ffd38973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017336013785c1577815e0cf8ab3d91d6c1add3e687873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f536d7705b46f40d49a82167de091963a683b86d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001732181ebd155c3b337616c6aeb0672a868ac5d1c5473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173e24a4e2972dc46de1fac9851321534a29378639e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173eac24eb34a84ee820305be5db458a439af1df5fc73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173cc7e3c4a8208172ca4c4ab8e1b8b4ae775ebd5a873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017374bc89a9e831ab5f33b90607dd9eb5e01452a06473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525090506000604051806102e0016040528061103061ffff168152602001610d0c61ffff168152602001610aad61ffff1681526020016108ca61ffff1681526020016108a461ffff1681526020016107ef61ffff16815260200161073061ffff16815260200161068661ffff16815260200161066161ffff16815260200161065d61ffff16815260200161065661ffff1681526020016105fd61ffff1681526020016105d461ffff1681526020016105a161ffff16815260200161059761ffff16815260200161022761ffff16815260200161020461ffff16815260200161019761ffff16815260200161017a61ffff16815260200161010c61ffff16815260200160cd61ffff16815260200160c261ffff168152602001608e61ffff16815250905060005b601781101562000ee75762000d9682826017811062000d5a5762000d596200134f565b5b602002015161ffff1662000d82620186a060085462000ef860201b620010ff1790919060201c565b62000f4a60201b620011491790919060201c565b6002600085846017811062000db05762000daf6200134f565b5b602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082816017811062000e095762000e086200134f565b5b602002015173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000eba85856017811062000e775762000e766200134f565b5b602002015161ffff1662000ea6620186a0683635c9adc5dea0000062000ef860201b620010ff1790919060201c565b62000f4a60201b620011491790919060201c565b60405162000ec991906200111e565b60405180910390a3808062000ede906200126b565b91505062000d36565b505050620013de565b600033905090565b600062000f4283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ff760201b60201c565b905092915050565b60008083141562000f5f576000905062000fc8565b6000828462000f6f91906200118f565b905082848262000f80919062001157565b1462000fc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fba90620010fc565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062001041576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010389190620010d8565b60405180910390fd5b506000838562001052919062001157565b9050809150509392505050565b60006200106c826200113b565b62001078818562001146565b93506200108a81856020860162001235565b62001095816200137e565b840191505092915050565b6000620010af60218362001146565b9150620010bc826200138f565b604082019050919050565b620010d2816200122b565b82525050565b60006020820190508181036000830152620010f481846200105f565b905092915050565b600060208201905081810360008301526200111781620010a0565b9050919050565b6000602082019050620011356000830184620010c7565b92915050565b600081519050919050565b600082825260208201905092915050565b600062001164826200122b565b915062001171836200122b565b92508262001184576200118362001320565b5b828204905092915050565b60006200119c826200122b565b9150620011a9836200122b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620011e557620011e4620012f1565b5b828202905092915050565b6000620011fd826200122b565b91506200120a836200122b565b92508282101562001220576200121f620012f1565b5b828203905092915050565b6000819050919050565b60005b838110156200125557808201518184015260208101905062001238565b8381111562001265576000848401525b50505050565b600062001278826200122b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415620012ae57620012ad620012f1565b5b600182019050919050565b6000620012c6826200122b565b9150620012d3836200122b565b925082620012e657620012e562001320565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b61349880620013ee6000396000f3fe6080604052600436106101025760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb1461031c578063b515566a14610359578063c3c8cd8014610382578063c9567bf914610399578063dd62ed3e146103b057610109565b806370a0823114610272578063715018a6146102af5780638da5cb5b146102c657806395d89b41146102f157610109565b8063273123b7116100d1578063273123b7146101de578063313ce567146102075780635932ead1146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103ed565b6040516101309190612b58565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612677565b61042a565b60405161016d9190612b3d565b60405180910390f35b34801561018257600080fd5b5061018b610448565b6040516101989190612cda565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612624565b610459565b6040516101d59190612b3d565b60405180910390f35b3480156101ea57600080fd5b506102056004803603810190610200919061258a565b610532565b005b34801561021357600080fd5b5061021c610622565b6040516102299190612d4f565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190612700565b61062b565b005b34801561026757600080fd5b506102706106dd565b005b34801561027e57600080fd5b506102996004803603810190610294919061258a565b61074f565b6040516102a69190612cda565b60405180910390f35b3480156102bb57600080fd5b506102c46107a0565b005b3480156102d257600080fd5b506102db6108f3565b6040516102e89190612a6f565b60405180910390f35b3480156102fd57600080fd5b5061030661091c565b6040516103139190612b58565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612677565b610959565b6040516103509190612b3d565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b91906126b7565b610977565b005b34801561038e57600080fd5b50610397610aa1565b005b3480156103a557600080fd5b506103ae610b1b565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906125e4565b611078565b6040516103e49190612cda565b60405180910390f35b60606040518060400160405280600a81526020017f4261627920537175696400000000000000000000000000000000000000000000815250905090565b600061043e6104376111c4565b84846111cc565b6001905092915050565b6000683635c9adc5dea00000905090565b6000610466848484611397565b610527846104726111c4565b6105228560405180606001604052806028815260200161343b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d86111c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199c9092919063ffffffff16565b6111cc565b600190509392505050565b61053a6111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105be90612c1a565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106336111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b790612c1a565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661071e6111c4565b73ffffffffffffffffffffffffffffffffffffffff161461073e57600080fd5b600047905061074c81611a00565b50565b6000610799600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b87565b9050919050565b6107a86111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90612c1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4253515549440000000000000000000000000000000000000000000000000000815250905090565b600061096d6109666111c4565b8484611397565b6001905092915050565b61097f6111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0390612c1a565b60405180910390fd5b60005b8151811015610a9d57600160066000848481518110610a3157610a306130a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9590612ffb565b915050610a0f565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae26111c4565b73ffffffffffffffffffffffffffffffffffffffff1614610b0257600080fd5b6000610b0d3061074f565b9050610b1881611bf5565b50565b610b236111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612c1a565b60405180910390fd5b600f60149054906101000a900460ff1615610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612cba565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c9030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006111cc565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd657600080fd5b505afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e91906125b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da891906125b7565b6040518363ffffffff1660e01b8152600401610dc5929190612a8a565b602060405180830381600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906125b7565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ea03061074f565b600080610eab6108f3565b426040518863ffffffff1660e01b8152600401610ecd96959493929190612adc565b6060604051808303818588803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f1f919061275a565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff02191690831515021790555068015af1d78b58c400006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611022929190612ab3565b602060405180830381600087803b15801561103c57600080fd5b505af1158015611050573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611074919061272d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061114183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7d565b905092915050565b60008083141561115c57600090506111be565b6000828461116a9190612ea2565b90508284826111799190612e71565b146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090612bfa565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390612c9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390612bba565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138a9190612cda565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90612c5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90612b7a565b60405180910390fd5b600081116114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612c3a565b60405180910390fd5b6000600a819055506009600b819055506114d26108f3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561154057506115106108f3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561198c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115e95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115f257600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561169d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116f35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170b5750600f60179054906101000a900460ff165b156117bb5760105481111561171f57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061176a57600080fd5b601e426117779190612e1b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118665750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bc5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d2576000600a819055506009600b819055505b60006118dd3061074f565b9050600f60159054906101000a900460ff1615801561194a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119625750600f60169054906101000a900460ff165b1561198a5761197081611bf5565b600047905060008111156119885761198747611a00565b5b505b505b611997838383611ee0565b505050565b60008383111582906119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9190612b58565b60405180910390fd5b50600083856119f39190612efc565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a636004611a556009866110ff90919063ffffffff16565b61114990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a8e573d6000803e3d6000fd5b506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af16005611ae36009866110ff90919063ffffffff16565b61114990919063ffffffff16565b604051611afd90612a5a565b60006040518083038185875af1925050503d8060008114611b3a576040519150601f19603f3d011682016040523d82523d6000602084013e611b3f565b606091505b5050905080611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7a90612c7a565b60405180910390fd5b5050565b6000600854821115611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590612b9a565b60405180910390fd5b6000611bd8611ef0565b9050611bed81846110ff90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c2d57611c2c6130d1565b5b604051908082528060200260200182016040528015611c5b5781602001602082028036833780820191505090505b5090503081600081518110611c7357611c726130a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1557600080fd5b505afa158015611d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d91906125b7565b81600181518110611d6157611d606130a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dc830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111cc565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e2c959493929190612cf5565b600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb9190612b58565b60405180910390fd5b5060008385611ed39190612e71565b9050809150509392505050565b611eeb838383611f1b565b505050565b6000806000611efd6120e6565b91509150611f1481836110ff90919063ffffffff16565b9250505090565b600080600080600080611f2d87612148565b955095509550955095509550611f8b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121fa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206c81612258565b6120768483612315565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120d39190612cda565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea00000905061211c683635c9adc5dea000006008546110ff90919063ffffffff16565b82101561213b57600854683635c9adc5dea00000935093505050612144565b81819350935050505b9091565b60008060008060008060008060006121658a600a54600b5461234f565b9250925092506000612175611ef0565b905060008060006121888e8787876123e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006121f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061199c565b905092915050565b60008082846122099190612e1b565b90508381101561224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590612bda565b60405180910390fd5b8091505092915050565b6000612262611ef0565b90506000612279828461114990919063ffffffff16565b90506122cd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121fa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61232a826008546121b090919063ffffffff16565b600881905550612345816009546121fa90919063ffffffff16565b6009819055505050565b60008060008061237b606461236d888a61114990919063ffffffff16565b6110ff90919063ffffffff16565b905060006123a56064612397888b61114990919063ffffffff16565b6110ff90919063ffffffff16565b905060006123ce826123c0858c6121b090919063ffffffff16565b6121b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123fe858961114990919063ffffffff16565b90506000612415868961114990919063ffffffff16565b9050600061242c878961114990919063ffffffff16565b905060006124558261244785876121b090919063ffffffff16565b6121b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061248161247c84612d8f565b612d6a565b905080838252602082019050828560208602820111156124a4576124a3613105565b5b60005b858110156124d457816124ba88826124de565b8452602084019350602083019250506001810190506124a7565b5050509392505050565b6000813590506124ed816133f5565b92915050565b600081519050612502816133f5565b92915050565b600082601f83011261251d5761251c613100565b5b813561252d84826020860161246e565b91505092915050565b6000813590506125458161340c565b92915050565b60008151905061255a8161340c565b92915050565b60008135905061256f81613423565b92915050565b60008151905061258481613423565b92915050565b6000602082840312156125a05761259f61310f565b5b60006125ae848285016124de565b91505092915050565b6000602082840312156125cd576125cc61310f565b5b60006125db848285016124f3565b91505092915050565b600080604083850312156125fb576125fa61310f565b5b6000612609858286016124de565b925050602061261a858286016124de565b9150509250929050565b60008060006060848603121561263d5761263c61310f565b5b600061264b868287016124de565b935050602061265c868287016124de565b925050604061266d86828701612560565b9150509250925092565b6000806040838503121561268e5761268d61310f565b5b600061269c858286016124de565b92505060206126ad85828601612560565b9150509250929050565b6000602082840312156126cd576126cc61310f565b5b600082013567ffffffffffffffff8111156126eb576126ea61310a565b5b6126f784828501612508565b91505092915050565b6000602082840312156127165761271561310f565b5b600061272484828501612536565b91505092915050565b6000602082840312156127435761274261310f565b5b60006127518482850161254b565b91505092915050565b6000806000606084860312156127735761277261310f565b5b600061278186828701612575565b935050602061279286828701612575565b92505060406127a386828701612575565b9150509250925092565b60006127b983836127c5565b60208301905092915050565b6127ce81612f30565b82525050565b6127dd81612f30565b82525050565b60006127ee82612dcb565b6127f88185612dee565b935061280383612dbb565b8060005b8381101561283457815161281b88826127ad565b975061282683612de1565b925050600181019050612807565b5085935050505092915050565b61284a81612f42565b82525050565b61285981612f85565b82525050565b600061286a82612dd6565b6128748185612e0a565b9350612884818560208601612f97565b61288d81613114565b840191505092915050565b60006128a5602383612e0a565b91506128b082613125565b604082019050919050565b60006128c8602a83612e0a565b91506128d382613174565b604082019050919050565b60006128eb602283612e0a565b91506128f6826131c3565b604082019050919050565b600061290e601b83612e0a565b915061291982613212565b602082019050919050565b6000612931602183612e0a565b915061293c8261323b565b604082019050919050565b6000612954602083612e0a565b915061295f8261328a565b602082019050919050565b6000612977602983612e0a565b9150612982826132b3565b604082019050919050565b600061299a602583612e0a565b91506129a582613302565b604082019050919050565b60006129bd600b83612e0a565b91506129c882613351565b602082019050919050565b60006129e0600083612dff565b91506129eb8261337a565b600082019050919050565b6000612a03602483612e0a565b9150612a0e8261337d565b604082019050919050565b6000612a26601783612e0a565b9150612a31826133cc565b602082019050919050565b612a4581612f6e565b82525050565b612a5481612f78565b82525050565b6000612a65826129d3565b9150819050919050565b6000602082019050612a8460008301846127d4565b92915050565b6000604082019050612a9f60008301856127d4565b612aac60208301846127d4565b9392505050565b6000604082019050612ac860008301856127d4565b612ad56020830184612a3c565b9392505050565b600060c082019050612af160008301896127d4565b612afe6020830188612a3c565b612b0b6040830187612850565b612b186060830186612850565b612b2560808301856127d4565b612b3260a0830184612a3c565b979650505050505050565b6000602082019050612b526000830184612841565b92915050565b60006020820190508181036000830152612b72818461285f565b905092915050565b60006020820190508181036000830152612b9381612898565b9050919050565b60006020820190508181036000830152612bb3816128bb565b9050919050565b60006020820190508181036000830152612bd3816128de565b9050919050565b60006020820190508181036000830152612bf381612901565b9050919050565b60006020820190508181036000830152612c1381612924565b9050919050565b60006020820190508181036000830152612c3381612947565b9050919050565b60006020820190508181036000830152612c538161296a565b9050919050565b60006020820190508181036000830152612c738161298d565b9050919050565b60006020820190508181036000830152612c93816129b0565b9050919050565b60006020820190508181036000830152612cb3816129f6565b9050919050565b60006020820190508181036000830152612cd381612a19565b9050919050565b6000602082019050612cef6000830184612a3c565b92915050565b600060a082019050612d0a6000830188612a3c565b612d176020830187612850565b8181036040830152612d2981866127e3565b9050612d3860608301856127d4565b612d456080830184612a3c565b9695505050505050565b6000602082019050612d646000830184612a4b565b92915050565b6000612d74612d85565b9050612d808282612fca565b919050565b6000604051905090565b600067ffffffffffffffff821115612daa57612da96130d1565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e2682612f6e565b9150612e3183612f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e6657612e65613044565b5b828201905092915050565b6000612e7c82612f6e565b9150612e8783612f6e565b925082612e9757612e96613073565b5b828204905092915050565b6000612ead82612f6e565b9150612eb883612f6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ef157612ef0613044565b5b828202905092915050565b6000612f0782612f6e565b9150612f1283612f6e565b925082821015612f2557612f24613044565b5b828203905092915050565b6000612f3b82612f4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f9082612f6e565b9050919050565b60005b83811015612fb5578082015181840152602081019050612f9a565b83811115612fc4576000848401525b50505050565b612fd382613114565b810181811067ffffffffffffffff82111715612ff257612ff16130d1565b5b80604052505050565b600061300682612f6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561303957613038613044565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f53656e64206661696c6564000000000000000000000000000000000000000000600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6133fe81612f30565b811461340957600080fd5b50565b61341581612f42565b811461342057600080fd5b50565b61342c81612f6e565b811461343757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122096afa7b3e776e3808b965c20dc741ed3d5268d9706bb3a88d5e6339adc508b2664736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb1461031c578063b515566a14610359578063c3c8cd8014610382578063c9567bf914610399578063dd62ed3e146103b057610109565b806370a0823114610272578063715018a6146102af5780638da5cb5b146102c657806395d89b41146102f157610109565b8063273123b7116100d1578063273123b7146101de578063313ce567146102075780635932ead1146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103ed565b6040516101309190612b58565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612677565b61042a565b60405161016d9190612b3d565b60405180910390f35b34801561018257600080fd5b5061018b610448565b6040516101989190612cda565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612624565b610459565b6040516101d59190612b3d565b60405180910390f35b3480156101ea57600080fd5b506102056004803603810190610200919061258a565b610532565b005b34801561021357600080fd5b5061021c610622565b6040516102299190612d4f565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190612700565b61062b565b005b34801561026757600080fd5b506102706106dd565b005b34801561027e57600080fd5b506102996004803603810190610294919061258a565b61074f565b6040516102a69190612cda565b60405180910390f35b3480156102bb57600080fd5b506102c46107a0565b005b3480156102d257600080fd5b506102db6108f3565b6040516102e89190612a6f565b60405180910390f35b3480156102fd57600080fd5b5061030661091c565b6040516103139190612b58565b60405180910390f35b34801561032857600080fd5b50610343600480360381019061033e9190612677565b610959565b6040516103509190612b3d565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b91906126b7565b610977565b005b34801561038e57600080fd5b50610397610aa1565b005b3480156103a557600080fd5b506103ae610b1b565b005b3480156103bc57600080fd5b506103d760048036038101906103d291906125e4565b611078565b6040516103e49190612cda565b60405180910390f35b60606040518060400160405280600a81526020017f4261627920537175696400000000000000000000000000000000000000000000815250905090565b600061043e6104376111c4565b84846111cc565b6001905092915050565b6000683635c9adc5dea00000905090565b6000610466848484611397565b610527846104726111c4565b6105228560405180606001604052806028815260200161343b60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d86111c4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199c9092919063ffffffff16565b6111cc565b600190509392505050565b61053a6111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105be90612c1a565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b6106336111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b790612c1a565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661071e6111c4565b73ffffffffffffffffffffffffffffffffffffffff161461073e57600080fd5b600047905061074c81611a00565b50565b6000610799600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b87565b9050919050565b6107a86111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c90612c1a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4253515549440000000000000000000000000000000000000000000000000000815250905090565b600061096d6109666111c4565b8484611397565b6001905092915050565b61097f6111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0390612c1a565b60405180910390fd5b60005b8151811015610a9d57600160066000848481518110610a3157610a306130a2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610a9590612ffb565b915050610a0f565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ae26111c4565b73ffffffffffffffffffffffffffffffffffffffff1614610b0257600080fd5b6000610b0d3061074f565b9050610b1881611bf5565b50565b610b236111c4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612c1a565b60405180910390fd5b600f60149054906101000a900460ff1615610c00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf790612cba565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c9030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006111cc565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610cd657600080fd5b505afa158015610cea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0e91906125b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7057600080fd5b505afa158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da891906125b7565b6040518363ffffffff1660e01b8152600401610dc5929190612a8a565b602060405180830381600087803b158015610ddf57600080fd5b505af1158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906125b7565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ea03061074f565b600080610eab6108f3565b426040518863ffffffff1660e01b8152600401610ecd96959493929190612adc565b6060604051808303818588803b158015610ee657600080fd5b505af1158015610efa573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f1f919061275a565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff02191690831515021790555068015af1d78b58c400006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611022929190612ab3565b602060405180830381600087803b15801561103c57600080fd5b505af1158015611050573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611074919061272d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061114183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e7d565b905092915050565b60008083141561115c57600090506111be565b6000828461116a9190612ea2565b90508284826111799190612e71565b146111b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b090612bfa565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390612c9a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390612bba565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161138a9190612cda565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90612c5a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90612b7a565b60405180910390fd5b600081116114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b190612c3a565b60405180910390fd5b6000600a819055506009600b819055506114d26108f3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561154057506115106108f3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561198c57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115e95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6115f257600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561169d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116f35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561170b5750600f60179054906101000a900460ff165b156117bb5760105481111561171f57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061176a57600080fd5b601e426117779190612e1b565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118665750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bc5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d2576000600a819055506009600b819055505b60006118dd3061074f565b9050600f60159054906101000a900460ff1615801561194a5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119625750600f60169054906101000a900460ff165b1561198a5761197081611bf5565b600047905060008111156119885761198747611a00565b5b505b505b611997838383611ee0565b505050565b60008383111582906119e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119db9190612b58565b60405180910390fd5b50600083856119f39190612efc565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a636004611a556009866110ff90919063ffffffff16565b61114990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611a8e573d6000803e3d6000fd5b506000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611af16005611ae36009866110ff90919063ffffffff16565b61114990919063ffffffff16565b604051611afd90612a5a565b60006040518083038185875af1925050503d8060008114611b3a576040519150601f19603f3d011682016040523d82523d6000602084013e611b3f565b606091505b5050905080611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7a90612c7a565b60405180910390fd5b5050565b6000600854821115611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590612b9a565b60405180910390fd5b6000611bd8611ef0565b9050611bed81846110ff90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c2d57611c2c6130d1565b5b604051908082528060200260200182016040528015611c5b5781602001602082028036833780820191505090505b5090503081600081518110611c7357611c726130a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611d1557600080fd5b505afa158015611d29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4d91906125b7565b81600181518110611d6157611d606130a2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611dc830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111cc565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e2c959493929190612cf5565b600060405180830381600087803b158015611e4657600080fd5b505af1158015611e5a573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb9190612b58565b60405180910390fd5b5060008385611ed39190612e71565b9050809150509392505050565b611eeb838383611f1b565b505050565b6000806000611efd6120e6565b91509150611f1481836110ff90919063ffffffff16565b9250505090565b600080600080600080611f2d87612148565b955095509550955095509550611f8b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121b090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061202085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121fa90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061206c81612258565b6120768483612315565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120d39190612cda565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea00000905061211c683635c9adc5dea000006008546110ff90919063ffffffff16565b82101561213b57600854683635c9adc5dea00000935093505050612144565b81819350935050505b9091565b60008060008060008060008060006121658a600a54600b5461234f565b9250925092506000612175611ef0565b905060008060006121888e8787876123e5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006121f283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061199c565b905092915050565b60008082846122099190612e1b565b90508381101561224e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224590612bda565b60405180910390fd5b8091505092915050565b6000612262611ef0565b90506000612279828461114990919063ffffffff16565b90506122cd81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121fa90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61232a826008546121b090919063ffffffff16565b600881905550612345816009546121fa90919063ffffffff16565b6009819055505050565b60008060008061237b606461236d888a61114990919063ffffffff16565b6110ff90919063ffffffff16565b905060006123a56064612397888b61114990919063ffffffff16565b6110ff90919063ffffffff16565b905060006123ce826123c0858c6121b090919063ffffffff16565b6121b090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806123fe858961114990919063ffffffff16565b90506000612415868961114990919063ffffffff16565b9050600061242c878961114990919063ffffffff16565b905060006124558261244785876121b090919063ffffffff16565b6121b090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061248161247c84612d8f565b612d6a565b905080838252602082019050828560208602820111156124a4576124a3613105565b5b60005b858110156124d457816124ba88826124de565b8452602084019350602083019250506001810190506124a7565b5050509392505050565b6000813590506124ed816133f5565b92915050565b600081519050612502816133f5565b92915050565b600082601f83011261251d5761251c613100565b5b813561252d84826020860161246e565b91505092915050565b6000813590506125458161340c565b92915050565b60008151905061255a8161340c565b92915050565b60008135905061256f81613423565b92915050565b60008151905061258481613423565b92915050565b6000602082840312156125a05761259f61310f565b5b60006125ae848285016124de565b91505092915050565b6000602082840312156125cd576125cc61310f565b5b60006125db848285016124f3565b91505092915050565b600080604083850312156125fb576125fa61310f565b5b6000612609858286016124de565b925050602061261a858286016124de565b9150509250929050565b60008060006060848603121561263d5761263c61310f565b5b600061264b868287016124de565b935050602061265c868287016124de565b925050604061266d86828701612560565b9150509250925092565b6000806040838503121561268e5761268d61310f565b5b600061269c858286016124de565b92505060206126ad85828601612560565b9150509250929050565b6000602082840312156126cd576126cc61310f565b5b600082013567ffffffffffffffff8111156126eb576126ea61310a565b5b6126f784828501612508565b91505092915050565b6000602082840312156127165761271561310f565b5b600061272484828501612536565b91505092915050565b6000602082840312156127435761274261310f565b5b60006127518482850161254b565b91505092915050565b6000806000606084860312156127735761277261310f565b5b600061278186828701612575565b935050602061279286828701612575565b92505060406127a386828701612575565b9150509250925092565b60006127b983836127c5565b60208301905092915050565b6127ce81612f30565b82525050565b6127dd81612f30565b82525050565b60006127ee82612dcb565b6127f88185612dee565b935061280383612dbb565b8060005b8381101561283457815161281b88826127ad565b975061282683612de1565b925050600181019050612807565b5085935050505092915050565b61284a81612f42565b82525050565b61285981612f85565b82525050565b600061286a82612dd6565b6128748185612e0a565b9350612884818560208601612f97565b61288d81613114565b840191505092915050565b60006128a5602383612e0a565b91506128b082613125565b604082019050919050565b60006128c8602a83612e0a565b91506128d382613174565b604082019050919050565b60006128eb602283612e0a565b91506128f6826131c3565b604082019050919050565b600061290e601b83612e0a565b915061291982613212565b602082019050919050565b6000612931602183612e0a565b915061293c8261323b565b604082019050919050565b6000612954602083612e0a565b915061295f8261328a565b602082019050919050565b6000612977602983612e0a565b9150612982826132b3565b604082019050919050565b600061299a602583612e0a565b91506129a582613302565b604082019050919050565b60006129bd600b83612e0a565b91506129c882613351565b602082019050919050565b60006129e0600083612dff565b91506129eb8261337a565b600082019050919050565b6000612a03602483612e0a565b9150612a0e8261337d565b604082019050919050565b6000612a26601783612e0a565b9150612a31826133cc565b602082019050919050565b612a4581612f6e565b82525050565b612a5481612f78565b82525050565b6000612a65826129d3565b9150819050919050565b6000602082019050612a8460008301846127d4565b92915050565b6000604082019050612a9f60008301856127d4565b612aac60208301846127d4565b9392505050565b6000604082019050612ac860008301856127d4565b612ad56020830184612a3c565b9392505050565b600060c082019050612af160008301896127d4565b612afe6020830188612a3c565b612b0b6040830187612850565b612b186060830186612850565b612b2560808301856127d4565b612b3260a0830184612a3c565b979650505050505050565b6000602082019050612b526000830184612841565b92915050565b60006020820190508181036000830152612b72818461285f565b905092915050565b60006020820190508181036000830152612b9381612898565b9050919050565b60006020820190508181036000830152612bb3816128bb565b9050919050565b60006020820190508181036000830152612bd3816128de565b9050919050565b60006020820190508181036000830152612bf381612901565b9050919050565b60006020820190508181036000830152612c1381612924565b9050919050565b60006020820190508181036000830152612c3381612947565b9050919050565b60006020820190508181036000830152612c538161296a565b9050919050565b60006020820190508181036000830152612c738161298d565b9050919050565b60006020820190508181036000830152612c93816129b0565b9050919050565b60006020820190508181036000830152612cb3816129f6565b9050919050565b60006020820190508181036000830152612cd381612a19565b9050919050565b6000602082019050612cef6000830184612a3c565b92915050565b600060a082019050612d0a6000830188612a3c565b612d176020830187612850565b8181036040830152612d2981866127e3565b9050612d3860608301856127d4565b612d456080830184612a3c565b9695505050505050565b6000602082019050612d646000830184612a4b565b92915050565b6000612d74612d85565b9050612d808282612fca565b919050565b6000604051905090565b600067ffffffffffffffff821115612daa57612da96130d1565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000612e2682612f6e565b9150612e3183612f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e6657612e65613044565b5b828201905092915050565b6000612e7c82612f6e565b9150612e8783612f6e565b925082612e9757612e96613073565b5b828204905092915050565b6000612ead82612f6e565b9150612eb883612f6e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ef157612ef0613044565b5b828202905092915050565b6000612f0782612f6e565b9150612f1283612f6e565b925082821015612f2557612f24613044565b5b828203905092915050565b6000612f3b82612f4e565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f9082612f6e565b9050919050565b60005b83811015612fb5578082015181840152602081019050612f9a565b83811115612fc4576000848401525b50505050565b612fd382613114565b810181811067ffffffffffffffff82111715612ff257612ff16130d1565b5b80604052505050565b600061300682612f6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561303957613038613044565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f53656e64206661696c6564000000000000000000000000000000000000000000600082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6133fe81612f30565b811461340957600080fd5b50565b61341581612f42565b811461342057600080fd5b50565b61342c81612f6e565b811461343757600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122096afa7b3e776e3808b965c20dc741ed3d5268d9706bb3a88d5e6339adc508b2664736f6c63430008070033

Deployed Bytecode Sourcemap

3651:12144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7245:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8097:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7522:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8266:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12522:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7431:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8587:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13899:194;;;;;;;;;;;;;:::i;:::-;;7625:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2730:148;;;;;;;;;;;;;:::i;:::-;;2516:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7336:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7771:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12346:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13692:195;;;;;;;;;;;;;:::i;:::-;;11518:816;;;;;;;;;;;;;:::i;:::-;;7946:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7245:83;7282:13;7315:5;;;;;;;;;;;;;;;;;7308:12;;7245:83;:::o;8097:161::-;8172:4;8189:39;8198:12;:10;:12::i;:::-;8212:7;8221:6;8189:8;:39::i;:::-;8246:4;8239:11;;8097:161;;;;:::o;7522:95::-;7575:7;4153:18;7595:14;;7522:95;:::o;8266:313::-;8364:4;8381:36;8391:6;8399:9;8410:6;8381:9;:36::i;:::-;8428:121;8437:6;8445:12;:10;:12::i;:::-;8459:89;8497:6;8459:89;;;;;;;;;;;;;;;;;:11;:19;8471:6;8459:19;;;;;;;;;;;;;;;:33;8479:12;:10;:12::i;:::-;8459:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8428:8;:121::i;:::-;8567:4;8560:11;;8266:313;;;;;:::o;12522:88::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12597:5:::1;12582:4;:12;12587:6;12582:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12522:88:::0;:::o;7431:83::-;7472:5;4570:1;7490:16;;7431:83;:::o;8587:103::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8677:5:::1;8659:15;;:23;;;;;;;;;;;;;;;;;;8587:103:::0;:::o;13899:194::-;13965:15;;;;;;;;;;;13949:31;;:12;:10;:12::i;:::-;:31;;;13941:40;;;;;;13992:26;14021:21;13992:50;;14053:32;14066:18;14053:12;:32::i;:::-;13930:163;13899:194::o;7625:138::-;7691:7;7718:37;7738:7;:16;7746:7;7738:16;;;;;;;;;;;;;;;;7718:19;:37::i;:::-;7711:44;;7625:138;;;:::o;2730:148::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2837:1:::1;2800:40;;2821:6;::::0;::::1;;;;;;;;2800:40;;;;;;;;;;;;2868:1;2851:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2730:148::o:0;2516:79::-;2554:7;2581:6;;;;;;;;;;;2574:13;;2516:79;:::o;7336:87::-;7375:13;7408:7;;;;;;;;;;;;;;;;;7401:14;;7336:87;:::o;7771:167::-;7849:4;7866:42;7876:12;:10;:12::i;:::-;7890:9;7901:6;7866:9;:42::i;:::-;7926:4;7919:11;;7771:167;;;;:::o;12346:164::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12420:6:::1;12415:88;12436:5;:12;12432:1;:16;12415:88;;;12487:4;12470;:14;12475:5;12481:1;12475:8;;;;;;;;:::i;:::-;;;;;;;;12470:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12450:3;;;;;:::i;:::-;;;;12415:88;;;;12346:164:::0;:::o;13692:195::-;13758:15;;;;;;;;;;;13742:31;;:12;:10;:12::i;:::-;:31;;;13734:40;;;;;;13785:23;13811:24;13829:4;13811:9;:24::i;:::-;13785:50;;13846:33;13863:15;13846:16;:33::i;:::-;13723:164;13692:195::o;11518:816::-;2653:12;:10;:12::i;:::-;2643:22;;:6;;;;;;;;;;:22;;;2635:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11582:11:::1;;;;;;;;;;;11581:12;11573:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11631:35;11688:42;11631:100;;11760:16;11742:15;;:34;;;;;;;;;;;;;;;;;;11787:58;11804:4;11819:15;;;;;;;;;;;4153:18;11787:8;:58::i;:::-;11890:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11872:56;;;11937:4;11944:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11872:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11856:13;;:112;;;;;;;;;;;;;;;;;;11979:15;;;;;;;;;;;:31;;;12018:21;12049:4;12055:24;12073:4;12055:9;:24::i;:::-;12080:1;12082::::0;12084:7:::1;:5;:7::i;:::-;12092:15;11979:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12133:4;12119:11;;:18;;;;;;;;;;;;;;;;;;12166:4;12148:15;;:22;;;;;;;;;;;;;;;;;;12196:19;12181:12;:34;;;;12240:4;12226:11;;:18;;;;;;;;;;;;;;;;;;12262:13;;;;;;;;;;;12255:29;;;12293:15;;;;;;;;;;;12311:14;12255:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11562:772;11518:816::o:0;7946:143::-;8027:7;8054:11;:18;8066:5;8054:18;;;;;;;;;;;;;;;:27;8073:7;8054:27;;;;;;;;;;;;;;;;8047:34;;7946:143;;;;:::o;1823:132::-;1881:7;1908:39;1912:1;1915;1908:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1901:46;;1823:132;;;;:::o;1569:246::-;1627:7;1656:1;1651;:6;1647:47;;;1681:1;1674:8;;;;1647:47;1704:9;1720:1;1716;:5;;;;:::i;:::-;1704:17;;1749:1;1744;1740;:5;;;;:::i;:::-;:10;1732:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1806:1;1799:8;;;1569:246;;;;;:::o;234:98::-;287:7;314:10;307:17;;234:98;:::o;8960:335::-;9070:1;9053:19;;:5;:19;;;;9045:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9151:1;9132:21;;:7;:21;;;;9124:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9233:6;9203:11;:18;9215:5;9203:18;;;;;;;;;;;;;;;:27;9222:7;9203:27;;;;;;;;;;;;;;;:36;;;;9271:7;9255:32;;9264:5;9255:32;;;9280:6;9255:32;;;;;;:::i;:::-;;;;;;;;8960:335;;;:::o;9303:1461::-;9407:1;9391:18;;:4;:18;;;;9383:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9484:1;9470:16;;:2;:16;;;;9462:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9554:1;9545:6;:10;9537:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9624:1;9612:9;:13;;;;9648:1;9636:9;:13;;;;9672:7;:5;:7::i;:::-;9664:15;;:4;:15;;;;:32;;;;;9689:7;:5;:7::i;:::-;9683:13;;:2;:13;;;;9664:32;9660:1052;;;9722:4;:10;9727:4;9722:10;;;;;;;;;;;;;;;;;;;;;;;;;9721:11;:24;;;;;9737:4;:8;9742:2;9737:8;;;;;;;;;;;;;;;;;;;;;;;;;9736:9;9721:24;9713:33;;;;;;9773:13;;;;;;;;;;;9765:21;;:4;:21;;;:55;;;;;9804:15;;;;;;;;;;;9790:30;;:2;:30;;;;9765:55;:83;;;;;9826:18;:22;9845:2;9826:22;;;;;;;;;;;;;;;;;;;;;;;;;9824:24;9765:83;:102;;;;;9852:15;;;;;;;;;;;9765:102;9761:325;;;9935:12;;9925:6;:22;;9917:31;;;;;;9990:15;9975:8;:12;9984:2;9975:12;;;;;;;;;;;;;;;;:30;9967:39;;;;;;10059:10;10040:15;:30;;;;:::i;:::-;10025:8;:12;10034:2;10025:12;;;;;;;;;;;;;;;:45;;;;9761:325;10138:13;;;;;;;;;;;10132:19;;:2;:19;;;:55;;;;;10171:15;;;;;;;;;;;10155:32;;:4;:32;;;;10132:55;:85;;;;;10193:18;:24;10212:4;10193:24;;;;;;;;;;;;;;;;;;;;;;;;;10191:26;10132:85;10128:171;;;10250:1;10238:9;:13;;;;10282:1;10270:9;:13;;;;10128:171;10313:28;10344:24;10362:4;10344:9;:24::i;:::-;10313:55;;10388:6;;;;;;;;;;;10387:7;:32;;;;;10406:13;;;;;;;;;;;10398:21;;:4;:21;;;;10387:32;:47;;;;;10423:11;;;;;;;;;;;10387:47;10383:318;;;10455:38;10472:20;10455:16;:38::i;:::-;10512:26;10541:21;10512:50;;10605:1;10584:18;:22;10581:105;;;10631:35;10644:21;10631:12;:35::i;:::-;10581:105;10436:265;10383:318;9698:1014;9660:1052;10726:30;10741:4;10746:2;10749:6;10726:14;:30::i;:::-;9303:1461;;;:::o;1371:190::-;1457:7;1490:1;1485;:6;;1493:12;1477:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1517:9;1533:1;1529;:5;;;;:::i;:::-;1517:17;;1552:1;1545:8;;;1371:190;;;;;:::o;11271:235::-;11328:15;;;;;;;;;;;:24;;:46;11353:20;11371:1;11353:13;11364:1;11353:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;11328:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11386:10;11402:15;;;;;;;;;;;:20;;11430;11448:1;11430:13;11441:1;11430:6;:10;;:13;;;;:::i;:::-;:17;;:20;;;;:::i;:::-;11402:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11385:70;;;11474:5;11466:28;;;;;;;;;;;;:::i;:::-;;;;;;;;;11317:189;11271:235;:::o;8698:254::-;8765:7;8804;;8793;:18;;8785:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8869:19;8892:10;:8;:10::i;:::-;8869:33;;8920:24;8932:11;8920:7;:11;;:24;;;;:::i;:::-;8913:31;;;8698:254;;;:::o;10772:483::-;4952:4;4943:6;;:13;;;;;;;;;;;;;;;;;;10850:21:::1;10888:1;10874:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10850:40;;10919:4;10901;10906:1;10901:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10945:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10935:4;10940:1;10935:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10978:62;10995:4;11010:15;;;;;;;;;;;11028:11;10978:8;:62::i;:::-;11051:15;;;;;;;;;;;:66;;;11132:11;11158:1;11174:4;11201;11221:15;11051:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10839:416;4988:5:::0;4979:6;;:14;;;;;;;;;;;;;;;;;;10772:483;:::o;1963:189::-;2049:7;2081:1;2077;:5;2084:12;2069:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2108:9;2124:1;2120;:5;;;;:::i;:::-;2108:17;;2143:1;2136:8;;;1963:189;;;;;:::o;12626:146::-;12720:44;12738:6;12746:9;12757:6;12720:17;:44::i;:::-;12626:146;;;:::o;15359:163::-;15400:7;15421:15;15438;15457:19;:17;:19::i;:::-;15420:56;;;;15494:20;15506:7;15494;:11;;:20;;;;:::i;:::-;15487:27;;;;15359:163;:::o;12780:488::-;12879:15;12896:23;12921:12;12935:23;12960:12;12974:13;12991:19;13002:7;12991:10;:19::i;:::-;12878:132;;;;;;;;;;;;13039:28;13059:7;13039;:15;13047:6;13039:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13021:7;:15;13029:6;13021:15;;;;;;;;;;;;;;;:46;;;;13099:39;13122:15;13099:7;:18;13107:9;13099:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13078:7;:18;13086:9;13078:18;;;;;;;;;;;;;;;:60;;;;13150:16;13160:5;13150:9;:16::i;:::-;13177:23;13189:4;13195;13177:11;:23::i;:::-;13233:9;13216:44;;13225:6;13216:44;;;13244:15;13216:44;;;;;;:::i;:::-;;;;;;;;12867:401;;;;;;12780:488;;;:::o;15530:262::-;15580:7;15589;15609:15;15627:7;;15609:25;;15645:15;4153:18;15645:25;;15701:20;4153:18;15701:7;;:11;;:20;;;;:::i;:::-;15691:7;:30;15687:61;;;15731:7;;4153:18;15723:25;;;;;;;;15687:61;15767:7;15776;15759:25;;;;;;15530:262;;;:::o;14107:471::-;14166:7;14175;14184;14193;14202;14211;14232:23;14257:12;14271:13;14288:42;14300:7;14309:9;;14320;;14288:11;:42::i;:::-;14231:99;;;;;;14341:19;14364:10;:8;:10::i;:::-;14341:33;;14386:15;14403:23;14428:12;14444:46;14456:7;14465:4;14471:5;14478:11;14444;:46::i;:::-;14385:105;;;;;;14509:7;14518:15;14535:4;14541:15;14558:4;14564:5;14501:69;;;;;;;;;;;;;;;;;;;14107:471;;;;;;;:::o;1227:136::-;1285:7;1312:43;1316:1;1319;1312:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1305:50;;1227:136;;;;:::o;1040:179::-;1098:7;1118:9;1134:1;1130;:5;;;;:::i;:::-;1118:17;;1159:1;1154;:6;;1146:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1210:1;1203:8;;;1040:179;;;;:::o;13276:212::-;13329:19;13352:10;:8;:10::i;:::-;13329:33;;13373:13;13389:22;13399:11;13389:5;:9;;:22;;;;:::i;:::-;13373:38;;13447:33;13474:5;13447:7;:22;13463:4;13447:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13422:7;:22;13438:4;13422:22;;;;;;;;;;;;;;;:58;;;;13318:170;;13276:212;:::o;13496:147::-;13574:17;13586:4;13574:7;;:11;;:17;;;;:::i;:::-;13564:7;:27;;;;13615:20;13630:4;13615:10;;:14;;:20;;;;:::i;:::-;13602:10;:33;;;;13496:147;;:::o;14586:351::-;14679:7;14688;14697;14717:12;14732:28;14756:3;14732:19;14744:6;14732:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14717:43;;14771:13;14787:29;14812:3;14787:20;14799:7;14787;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14771:45;;14827:23;14853:28;14875:5;14853:17;14865:4;14853:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14827:54;;14900:15;14917:4;14923:5;14892:37;;;;;;;;;14586:351;;;;;;;:::o;14945:409::-;15055:7;15064;15073;15093:15;15111:24;15123:11;15111:7;:11;;:24;;;;:::i;:::-;15093:42;;15146:12;15161:21;15170:11;15161:4;:8;;:21;;;;:::i;:::-;15146:36;;15193:13;15209:22;15219:11;15209:5;:9;;:22;;;;:::i;:::-;15193:38;;15242:23;15268:28;15290:5;15268:17;15280:4;15268:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15242:54;;15315:7;15324:15;15341:4;15307:39;;;;;;;;;;14945:409;;;;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:133::-;1482:5;1520:6;1507:20;1498:29;;1536:30;1560:5;1536:30;:::i;:::-;1439:133;;;;:::o;1578:137::-;1632:5;1663:6;1657:13;1648:22;;1679:30;1703:5;1679:30;:::i;:::-;1578:137;;;;:::o;1721:139::-;1767:5;1805:6;1792:20;1783:29;;1821:33;1848:5;1821:33;:::i;:::-;1721:139;;;;:::o;1866:143::-;1923:5;1954:6;1948:13;1939:22;;1970:33;1997:5;1970:33;:::i;:::-;1866:143;;;;:::o;2015:329::-;2074:6;2123:2;2111:9;2102:7;2098:23;2094:32;2091:119;;;2129:79;;:::i;:::-;2091:119;2249:1;2274:53;2319:7;2310:6;2299:9;2295:22;2274:53;:::i;:::-;2264:63;;2220:117;2015:329;;;;:::o;2350:351::-;2420:6;2469:2;2457:9;2448:7;2444:23;2440:32;2437:119;;;2475:79;;:::i;:::-;2437:119;2595:1;2620:64;2676:7;2667:6;2656:9;2652:22;2620:64;:::i;:::-;2610:74;;2566:128;2350:351;;;;:::o;2707:474::-;2775:6;2783;2832:2;2820:9;2811:7;2807:23;2803:32;2800:119;;;2838:79;;:::i;:::-;2800:119;2958:1;2983:53;3028:7;3019:6;3008:9;3004:22;2983:53;:::i;:::-;2973:63;;2929:117;3085:2;3111:53;3156:7;3147:6;3136:9;3132:22;3111:53;:::i;:::-;3101:63;;3056:118;2707:474;;;;;:::o;3187:619::-;3264:6;3272;3280;3329:2;3317:9;3308:7;3304:23;3300:32;3297:119;;;3335:79;;:::i;:::-;3297:119;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3710:2;3736:53;3781:7;3772:6;3761:9;3757:22;3736:53;:::i;:::-;3726:63;;3681:118;3187:619;;;;;:::o;3812:474::-;3880:6;3888;3937:2;3925:9;3916:7;3912:23;3908:32;3905:119;;;3943:79;;:::i;:::-;3905:119;4063:1;4088:53;4133:7;4124:6;4113:9;4109:22;4088:53;:::i;:::-;4078:63;;4034:117;4190:2;4216:53;4261:7;4252:6;4241:9;4237:22;4216:53;:::i;:::-;4206:63;;4161:118;3812:474;;;;;:::o;4292:539::-;4376:6;4425:2;4413:9;4404:7;4400:23;4396:32;4393:119;;;4431:79;;:::i;:::-;4393:119;4579:1;4568:9;4564:17;4551:31;4609:18;4601:6;4598:30;4595:117;;;4631:79;;:::i;:::-;4595:117;4736:78;4806:7;4797:6;4786:9;4782:22;4736:78;:::i;:::-;4726:88;;4522:302;4292:539;;;;:::o;4837:323::-;4893:6;4942:2;4930:9;4921:7;4917:23;4913:32;4910:119;;;4948:79;;:::i;:::-;4910:119;5068:1;5093:50;5135:7;5126:6;5115:9;5111:22;5093:50;:::i;:::-;5083:60;;5039:114;4837:323;;;;:::o;5166:345::-;5233:6;5282:2;5270:9;5261:7;5257:23;5253:32;5250:119;;;5288:79;;:::i;:::-;5250:119;5408:1;5433:61;5486:7;5477:6;5466:9;5462:22;5433:61;:::i;:::-;5423:71;;5379:125;5166:345;;;;:::o;5517:663::-;5605:6;5613;5621;5670:2;5658:9;5649:7;5645:23;5641:32;5638:119;;;5676:79;;:::i;:::-;5638:119;5796:1;5821:64;5877:7;5868:6;5857:9;5853:22;5821:64;:::i;:::-;5811:74;;5767:128;5934:2;5960:64;6016:7;6007:6;5996:9;5992:22;5960:64;:::i;:::-;5950:74;;5905:129;6073:2;6099:64;6155:7;6146:6;6135:9;6131:22;6099:64;:::i;:::-;6089:74;;6044:129;5517:663;;;;;:::o;6186:179::-;6255:10;6276:46;6318:3;6310:6;6276:46;:::i;:::-;6354:4;6349:3;6345:14;6331:28;;6186:179;;;;:::o;6371:108::-;6448:24;6466:5;6448:24;:::i;:::-;6443:3;6436:37;6371:108;;:::o;6485:118::-;6572:24;6590:5;6572:24;:::i;:::-;6567:3;6560:37;6485:118;;:::o;6639:732::-;6758:3;6787:54;6835:5;6787:54;:::i;:::-;6857:86;6936:6;6931:3;6857:86;:::i;:::-;6850:93;;6967:56;7017:5;6967:56;:::i;:::-;7046:7;7077:1;7062:284;7087:6;7084:1;7081:13;7062:284;;;7163:6;7157:13;7190:63;7249:3;7234:13;7190:63;:::i;:::-;7183:70;;7276:60;7329:6;7276:60;:::i;:::-;7266:70;;7122:224;7109:1;7106;7102:9;7097:14;;7062:284;;;7066:14;7362:3;7355:10;;6763:608;;;6639:732;;;;:::o;7377:109::-;7458:21;7473:5;7458:21;:::i;:::-;7453:3;7446:34;7377:109;;:::o;7492:147::-;7587:45;7626:5;7587:45;:::i;:::-;7582:3;7575:58;7492:147;;:::o;7645:364::-;7733:3;7761:39;7794:5;7761:39;:::i;:::-;7816:71;7880:6;7875:3;7816:71;:::i;:::-;7809:78;;7896:52;7941:6;7936:3;7929:4;7922:5;7918:16;7896:52;:::i;:::-;7973:29;7995:6;7973:29;:::i;:::-;7968:3;7964:39;7957:46;;7737:272;7645:364;;;;:::o;8015:366::-;8157:3;8178:67;8242:2;8237:3;8178:67;:::i;:::-;8171:74;;8254:93;8343:3;8254:93;:::i;:::-;8372:2;8367:3;8363:12;8356:19;;8015:366;;;:::o;8387:::-;8529:3;8550:67;8614:2;8609:3;8550:67;:::i;:::-;8543:74;;8626:93;8715:3;8626:93;:::i;:::-;8744:2;8739:3;8735:12;8728:19;;8387:366;;;:::o;8759:::-;8901:3;8922:67;8986:2;8981:3;8922:67;:::i;:::-;8915:74;;8998:93;9087:3;8998:93;:::i;:::-;9116:2;9111:3;9107:12;9100:19;;8759:366;;;:::o;9131:::-;9273:3;9294:67;9358:2;9353:3;9294:67;:::i;:::-;9287:74;;9370:93;9459:3;9370:93;:::i;:::-;9488:2;9483:3;9479:12;9472:19;;9131:366;;;:::o;9503:::-;9645:3;9666:67;9730:2;9725:3;9666:67;:::i;:::-;9659:74;;9742:93;9831:3;9742:93;:::i;:::-;9860:2;9855:3;9851:12;9844:19;;9503:366;;;:::o;9875:::-;10017:3;10038:67;10102:2;10097:3;10038:67;:::i;:::-;10031:74;;10114:93;10203:3;10114:93;:::i;:::-;10232:2;10227:3;10223:12;10216:19;;9875:366;;;:::o;10247:::-;10389:3;10410:67;10474:2;10469:3;10410:67;:::i;:::-;10403:74;;10486:93;10575:3;10486:93;:::i;:::-;10604:2;10599:3;10595:12;10588:19;;10247:366;;;:::o;10619:::-;10761:3;10782:67;10846:2;10841:3;10782:67;:::i;:::-;10775:74;;10858:93;10947:3;10858:93;:::i;:::-;10976:2;10971:3;10967:12;10960:19;;10619:366;;;:::o;10991:::-;11133:3;11154:67;11218:2;11213:3;11154:67;:::i;:::-;11147:74;;11230:93;11319:3;11230:93;:::i;:::-;11348:2;11343:3;11339:12;11332:19;;10991:366;;;:::o;11363:398::-;11522:3;11543:83;11624:1;11619:3;11543:83;:::i;:::-;11536:90;;11635:93;11724:3;11635:93;:::i;:::-;11753:1;11748:3;11744:11;11737:18;;11363:398;;;:::o;11767:366::-;11909:3;11930:67;11994:2;11989:3;11930:67;:::i;:::-;11923:74;;12006:93;12095:3;12006:93;:::i;:::-;12124:2;12119:3;12115:12;12108:19;;11767:366;;;:::o;12139:::-;12281:3;12302:67;12366:2;12361:3;12302:67;:::i;:::-;12295:74;;12378:93;12467:3;12378:93;:::i;:::-;12496:2;12491:3;12487:12;12480:19;;12139:366;;;:::o;12511:118::-;12598:24;12616:5;12598:24;:::i;:::-;12593:3;12586:37;12511:118;;:::o;12635:112::-;12718:22;12734:5;12718:22;:::i;:::-;12713:3;12706:35;12635:112;;:::o;12753:379::-;12937:3;12959:147;13102:3;12959:147;:::i;:::-;12952:154;;13123:3;13116:10;;12753:379;;;:::o;13138:222::-;13231:4;13269:2;13258:9;13254:18;13246:26;;13282:71;13350:1;13339:9;13335:17;13326:6;13282:71;:::i;:::-;13138:222;;;;:::o;13366:332::-;13487:4;13525:2;13514:9;13510:18;13502:26;;13538:71;13606:1;13595:9;13591:17;13582:6;13538:71;:::i;:::-;13619:72;13687:2;13676:9;13672:18;13663:6;13619:72;:::i;:::-;13366:332;;;;;:::o;13704:::-;13825:4;13863:2;13852:9;13848:18;13840:26;;13876:71;13944:1;13933:9;13929:17;13920:6;13876:71;:::i;:::-;13957:72;14025:2;14014:9;14010:18;14001:6;13957:72;:::i;:::-;13704:332;;;;;:::o;14042:807::-;14291:4;14329:3;14318:9;14314:19;14306:27;;14343:71;14411:1;14400:9;14396:17;14387:6;14343:71;:::i;:::-;14424:72;14492:2;14481:9;14477:18;14468:6;14424:72;:::i;:::-;14506:80;14582:2;14571:9;14567:18;14558:6;14506:80;:::i;:::-;14596;14672:2;14661:9;14657:18;14648:6;14596:80;:::i;:::-;14686:73;14754:3;14743:9;14739:19;14730:6;14686:73;:::i;:::-;14769;14837:3;14826:9;14822:19;14813:6;14769:73;:::i;:::-;14042:807;;;;;;;;;:::o;14855:210::-;14942:4;14980:2;14969:9;14965:18;14957:26;;14993:65;15055:1;15044:9;15040:17;15031:6;14993:65;:::i;:::-;14855:210;;;;:::o;15071:313::-;15184:4;15222:2;15211:9;15207:18;15199:26;;15271:9;15265:4;15261:20;15257:1;15246:9;15242:17;15235:47;15299:78;15372:4;15363:6;15299:78;:::i;:::-;15291:86;;15071:313;;;;:::o;15390:419::-;15556:4;15594:2;15583:9;15579:18;15571:26;;15643:9;15637:4;15633:20;15629:1;15618:9;15614:17;15607:47;15671:131;15797:4;15671:131;:::i;:::-;15663:139;;15390:419;;;:::o;15815:::-;15981:4;16019:2;16008:9;16004:18;15996:26;;16068:9;16062:4;16058:20;16054:1;16043:9;16039:17;16032:47;16096:131;16222:4;16096:131;:::i;:::-;16088:139;;15815:419;;;:::o;16240:::-;16406:4;16444:2;16433:9;16429:18;16421:26;;16493:9;16487:4;16483:20;16479:1;16468:9;16464:17;16457:47;16521:131;16647:4;16521:131;:::i;:::-;16513:139;;16240:419;;;:::o;16665:::-;16831:4;16869:2;16858:9;16854:18;16846:26;;16918:9;16912:4;16908:20;16904:1;16893:9;16889:17;16882:47;16946:131;17072:4;16946:131;:::i;:::-;16938:139;;16665:419;;;:::o;17090:::-;17256:4;17294:2;17283:9;17279:18;17271:26;;17343:9;17337:4;17333:20;17329:1;17318:9;17314:17;17307:47;17371:131;17497:4;17371:131;:::i;:::-;17363:139;;17090:419;;;:::o;17515:::-;17681:4;17719:2;17708:9;17704:18;17696:26;;17768:9;17762:4;17758:20;17754:1;17743:9;17739:17;17732:47;17796:131;17922:4;17796:131;:::i;:::-;17788:139;;17515:419;;;:::o;17940:::-;18106:4;18144:2;18133:9;18129:18;18121:26;;18193:9;18187:4;18183:20;18179:1;18168:9;18164:17;18157:47;18221:131;18347:4;18221:131;:::i;:::-;18213:139;;17940:419;;;:::o;18365:::-;18531:4;18569:2;18558:9;18554:18;18546:26;;18618:9;18612:4;18608:20;18604:1;18593:9;18589:17;18582:47;18646:131;18772:4;18646:131;:::i;:::-;18638:139;;18365:419;;;:::o;18790:::-;18956:4;18994:2;18983:9;18979:18;18971:26;;19043:9;19037:4;19033:20;19029:1;19018:9;19014:17;19007:47;19071:131;19197:4;19071:131;:::i;:::-;19063:139;;18790:419;;;:::o;19215:::-;19381:4;19419:2;19408:9;19404:18;19396:26;;19468:9;19462:4;19458:20;19454:1;19443:9;19439:17;19432:47;19496:131;19622:4;19496:131;:::i;:::-;19488:139;;19215:419;;;:::o;19640:::-;19806:4;19844:2;19833:9;19829:18;19821:26;;19893:9;19887:4;19883:20;19879:1;19868:9;19864:17;19857:47;19921:131;20047:4;19921:131;:::i;:::-;19913:139;;19640:419;;;:::o;20065:222::-;20158:4;20196:2;20185:9;20181:18;20173:26;;20209:71;20277:1;20266:9;20262:17;20253:6;20209:71;:::i;:::-;20065:222;;;;:::o;20293:831::-;20556:4;20594:3;20583:9;20579:19;20571:27;;20608:71;20676:1;20665:9;20661:17;20652:6;20608:71;:::i;:::-;20689:80;20765:2;20754:9;20750:18;20741:6;20689:80;:::i;:::-;20816:9;20810:4;20806:20;20801:2;20790:9;20786:18;20779:48;20844:108;20947:4;20938:6;20844:108;:::i;:::-;20836:116;;20962:72;21030:2;21019:9;21015:18;21006:6;20962:72;:::i;:::-;21044:73;21112:3;21101:9;21097:19;21088:6;21044:73;:::i;:::-;20293:831;;;;;;;;:::o;21130:214::-;21219:4;21257:2;21246:9;21242:18;21234:26;;21270:67;21334:1;21323:9;21319:17;21310:6;21270:67;:::i;:::-;21130:214;;;;:::o;21350:129::-;21384:6;21411:20;;:::i;:::-;21401:30;;21440:33;21468:4;21460:6;21440:33;:::i;:::-;21350:129;;;:::o;21485:75::-;21518:6;21551:2;21545:9;21535:19;;21485:75;:::o;21566:311::-;21643:4;21733:18;21725:6;21722:30;21719:56;;;21755:18;;:::i;:::-;21719:56;21805:4;21797:6;21793:17;21785:25;;21865:4;21859;21855:15;21847:23;;21566:311;;;:::o;21883:132::-;21950:4;21973:3;21965:11;;22003:4;21998:3;21994:14;21986:22;;21883:132;;;:::o;22021:114::-;22088:6;22122:5;22116:12;22106:22;;22021:114;;;:::o;22141:99::-;22193:6;22227:5;22221:12;22211:22;;22141:99;;;:::o;22246:113::-;22316:4;22348;22343:3;22339:14;22331:22;;22246:113;;;:::o;22365:184::-;22464:11;22498:6;22493:3;22486:19;22538:4;22533:3;22529:14;22514:29;;22365:184;;;;:::o;22555:147::-;22656:11;22693:3;22678:18;;22555:147;;;;:::o;22708:169::-;22792:11;22826:6;22821:3;22814:19;22866:4;22861:3;22857:14;22842:29;;22708:169;;;;:::o;22883:305::-;22923:3;22942:20;22960:1;22942:20;:::i;:::-;22937:25;;22976:20;22994:1;22976:20;:::i;:::-;22971:25;;23130:1;23062:66;23058:74;23055:1;23052:81;23049:107;;;23136:18;;:::i;:::-;23049:107;23180:1;23177;23173:9;23166:16;;22883:305;;;;:::o;23194:185::-;23234:1;23251:20;23269:1;23251:20;:::i;:::-;23246:25;;23285:20;23303:1;23285:20;:::i;:::-;23280:25;;23324:1;23314:35;;23329:18;;:::i;:::-;23314:35;23371:1;23368;23364:9;23359:14;;23194:185;;;;:::o;23385:348::-;23425:7;23448:20;23466:1;23448:20;:::i;:::-;23443:25;;23482:20;23500:1;23482:20;:::i;:::-;23477:25;;23670:1;23602:66;23598:74;23595:1;23592:81;23587:1;23580:9;23573:17;23569:105;23566:131;;;23677:18;;:::i;:::-;23566:131;23725:1;23722;23718:9;23707:20;;23385:348;;;;:::o;23739:191::-;23779:4;23799:20;23817:1;23799:20;:::i;:::-;23794:25;;23833:20;23851:1;23833:20;:::i;:::-;23828:25;;23872:1;23869;23866:8;23863:34;;;23877:18;;:::i;:::-;23863:34;23922:1;23919;23915:9;23907:17;;23739:191;;;;:::o;23936:96::-;23973:7;24002:24;24020:5;24002:24;:::i;:::-;23991:35;;23936:96;;;:::o;24038:90::-;24072:7;24115:5;24108:13;24101:21;24090:32;;24038:90;;;:::o;24134:126::-;24171:7;24211:42;24204:5;24200:54;24189:65;;24134:126;;;:::o;24266:77::-;24303:7;24332:5;24321:16;;24266:77;;;:::o;24349:86::-;24384:7;24424:4;24417:5;24413:16;24402:27;;24349:86;;;:::o;24441:121::-;24499:9;24532:24;24550:5;24532:24;:::i;:::-;24519:37;;24441:121;;;:::o;24568:307::-;24636:1;24646:113;24660:6;24657:1;24654:13;24646:113;;;24745:1;24740:3;24736:11;24730:18;24726:1;24721:3;24717:11;24710:39;24682:2;24679:1;24675:10;24670:15;;24646:113;;;24777:6;24774:1;24771:13;24768:101;;;24857:1;24848:6;24843:3;24839:16;24832:27;24768:101;24617:258;24568:307;;;:::o;24881:281::-;24964:27;24986:4;24964:27;:::i;:::-;24956:6;24952:40;25094:6;25082:10;25079:22;25058:18;25046:10;25043:34;25040:62;25037:88;;;25105:18;;:::i;:::-;25037:88;25145:10;25141:2;25134:22;24924:238;24881:281;;:::o;25168:233::-;25207:3;25230:24;25248:5;25230:24;:::i;:::-;25221:33;;25276:66;25269:5;25266:77;25263:103;;;25346:18;;:::i;:::-;25263:103;25393:1;25386:5;25382:13;25375:20;;25168:233;;;:::o;25407:180::-;25455:77;25452:1;25445:88;25552:4;25549:1;25542:15;25576:4;25573:1;25566:15;25593:180;25641:77;25638:1;25631:88;25738:4;25735:1;25728:15;25762:4;25759:1;25752:15;25779:180;25827:77;25824:1;25817:88;25924:4;25921:1;25914:15;25948:4;25945:1;25938:15;25965:180;26013:77;26010:1;26003:88;26110:4;26107:1;26100:15;26134:4;26131:1;26124:15;26151:117;26260:1;26257;26250:12;26274:117;26383:1;26380;26373:12;26397:117;26506:1;26503;26496:12;26520:117;26629:1;26626;26619:12;26643:102;26684:6;26735:2;26731:7;26726:2;26719:5;26715:14;26711:28;26701:38;;26643:102;;;:::o;26751:222::-;26891:34;26887:1;26879:6;26875:14;26868:58;26960:5;26955:2;26947:6;26943:15;26936:30;26751:222;:::o;26979:229::-;27119:34;27115:1;27107:6;27103:14;27096:58;27188:12;27183:2;27175:6;27171:15;27164:37;26979:229;:::o;27214:221::-;27354:34;27350:1;27342:6;27338:14;27331:58;27423:4;27418:2;27410:6;27406:15;27399:29;27214:221;:::o;27441:177::-;27581:29;27577:1;27569:6;27565:14;27558:53;27441:177;:::o;27624:220::-;27764:34;27760:1;27752:6;27748:14;27741:58;27833:3;27828:2;27820:6;27816:15;27809:28;27624:220;:::o;27850:182::-;27990:34;27986:1;27978:6;27974:14;27967:58;27850:182;:::o;28038:228::-;28178:34;28174:1;28166:6;28162:14;28155:58;28247:11;28242:2;28234:6;28230:15;28223:36;28038:228;:::o;28272:224::-;28412:34;28408:1;28400:6;28396:14;28389:58;28481:7;28476:2;28468:6;28464:15;28457:32;28272:224;:::o;28502:161::-;28642:13;28638:1;28630:6;28626:14;28619:37;28502:161;:::o;28669:114::-;;:::o;28789:223::-;28929:34;28925:1;28917:6;28913:14;28906:58;28998:6;28993:2;28985:6;28981:15;28974:31;28789:223;:::o;29018:173::-;29158:25;29154:1;29146:6;29142:14;29135:49;29018:173;:::o;29197:122::-;29270:24;29288:5;29270:24;:::i;:::-;29263:5;29260:35;29250:63;;29309:1;29306;29299:12;29250:63;29197:122;:::o;29325:116::-;29395:21;29410:5;29395:21;:::i;:::-;29388:5;29385:32;29375:60;;29431:1;29428;29421:12;29375:60;29325:116;:::o;29447:122::-;29520:24;29538:5;29520:24;:::i;:::-;29513:5;29510:35;29500:63;;29559:1;29556;29549:12;29500:63;29447:122;:::o

Swarm Source

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