ETH Price: $2,438.42 (+4.89%)

Token

ROSHI (Master Roshi)
 

Overview

Max Total Supply

100,000,000 Master Roshi

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Filtered by Token Holder
*goat⚽️.eth
Balance
2,234,552.409944 Master Roshi

Value
$0.00
0xb4b60c4c8678752363FC4D1a2c7f6FBCB19589c7
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:
ROSHI

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

//SPDX-License-Identifier: MIT
// Telegram: t.me/MasterRoshiErc20

pragma solidity ^0.8.7;

uint256 constant INITIAL_TAX=9;
uint256 constant TOTAL_SUPPLY=100000000;
string constant TOKEN_SYMBOL="Master Roshi";
string constant TOKEN_NAME="ROSHI";
uint8 constant DECIMALS=6;
uint256 constant TAX_THRESHOLD=1000000000000000000;

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

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

}


contract ROSHI is Context, IERC20, Ownable {
	using SafeMath for uint256;
	mapping (address => uint256) private _rOwned;
	mapping (address => mapping (address => uint256)) private _allowances;
	mapping (address => bool) private _isExcludedFromFee;

	uint256 private constant MAX = ~uint256(0);
	uint256 private constant _tTotal = TOTAL_SUPPLY * 10**DECIMALS;
	uint256 private _rTotal = (MAX - (MAX % _tTotal));
	uint256 private _tFeeTotal;

	uint256 private _burnFee;
	uint256 private _taxFee;
	address payable private _taxWallet;
	uint256 private _maxTxAmount;


	string private constant _name = TOKEN_NAME;
	string private constant _symbol = TOKEN_SYMBOL;
	uint8 private constant _decimals = DECIMALS;

	IUniswapV2Router02 private _uniswap;
	address private _pair;
	bool private _canTrade;
	bool private _inSwap = false;
	bool private _swapEnabled = false;

	modifier lockTheSwap {
		_inSwap = true;
		_;
		_inSwap = false;
	}
	constructor () {
		_taxWallet = payable(_msgSender());
		_burnFee = 1;
		_taxFee = INITIAL_TAX;
		_uniswap = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		_pair = IUniswapV2Factory(_uniswap.factory()).createPair(address(this), _uniswap.WETH());
		_rOwned[address(this)] = _rTotal;
		_isExcludedFromFee[address(this)] = true;
		_isExcludedFromFee[_taxWallet] = true;
		_maxTxAmount=_tTotal.div(25);
		emit Transfer(address(0x0), _msgSender(), _tTotal);
	}

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

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

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

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

	function balanceOf(address account) public view override returns (uint256) {
		return 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 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");

		if (from != owner() && to != owner()) {
			if (from == _pair && to != address(_uniswap) && ! _isExcludedFromFee[to] ) {
				require(amount<_maxTxAmount,"Transaction amount limited");
			}

			uint256 contractTokenBalance = balanceOf(address(this));
			if (!_inSwap && from != _pair && _swapEnabled) {
				swapTokensForEth(contractTokenBalance);
				uint256 contractETHBalance = address(this).balance;
				if(contractETHBalance >= TAX_THRESHOLD) {
					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] = _uniswap.WETH();
		_approve(address(this), address(_uniswap), tokenAmount);
		_uniswap.swapExactTokensForETHSupportingFeeOnTransferTokens(
			tokenAmount,
			0,
			path,
			address(this),
			block.timestamp
		);
	}
	modifier onlyTaxCollector() {
		require(_taxWallet == _msgSender() );
		_;
	}

	function lowerTax(uint256 newTaxRate) public onlyTaxCollector{
		require(newTaxRate<INITIAL_TAX);
		_taxFee=newTaxRate;
	}

	function removeBuyLimit() public onlyTaxCollector{
		_maxTxAmount=_tTotal;
	}

	function sendETHToFee(uint256 amount) private {
		_taxWallet.transfer(amount);
	}

	function startTrading() external onlyTaxCollector {
		require(!_canTrade,"Trading is already open");
		_approve(address(this), address(_uniswap), _tTotal);
		_uniswap.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
		_swapEnabled = true;
		_canTrade = true;
		IERC20(_pair).approve(address(_uniswap), type(uint).max);
	}

	function endTrading() external onlyTaxCollector{
		require(_canTrade,"Trading is not started yet");
		_swapEnabled = false;
		_canTrade = 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 onlyTaxCollector{
		uint256 contractBalance = balanceOf(address(this));
		swapTokensForEth(contractBalance);
	}

	function manualSend() external onlyTaxCollector{
		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, _burnFee, _taxFee);
		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":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":[],"name":"endTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTaxRate","type":"uint256"}],"name":"lowerTax","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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"}]

60806040526006600a62000014919062000889565b6305f5e100620000259190620009c6565b60001962000034919062000ae3565b60001962000043919062000a27565b6005556000600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055503480156200008957600080fd5b5060006200009c620005fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200014a620005fe60201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016007819055506009600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200025857600080fd5b505afa1580156200026d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002939190620006d7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200031857600080fd5b505afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003539190620006d7565b6040518363ffffffff1660e01b8152600401620003729291906200076c565b602060405180830381600087803b1580156200038d57600080fd5b505af1158015620003a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c89190620006d7565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200055b60196006600a62000536919062000889565b6305f5e100620005479190620009c6565b6200060660201b62000d9a1790919060201c565b600a8190555062000571620005fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006600a620005d0919062000889565b6305f5e100620005e19190620009c6565b604051620005f09190620007bd565b60405180910390a362000bb6565b600033905090565b60006200065083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200065860201b60201c565b905092915050565b60008083118290620006a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000699919062000799565b60405180910390fd5b5060008385620006b39190620007f6565b9050809150509392505050565b600081519050620006d18162000b9c565b92915050565b600060208284031215620006f057620006ef62000b79565b5b60006200070084828501620006c0565b91505092915050565b620007148162000a62565b82525050565b60006200072782620007da565b620007338185620007e5565b93506200074581856020860162000aad565b620007508162000b7e565b840191505092915050565b620007668162000a96565b82525050565b600060408201905062000783600083018562000709565b62000792602083018462000709565b9392505050565b60006020820190508181036000830152620007b581846200071a565b905092915050565b6000602082019050620007d460008301846200075b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620008038262000a96565b9150620008108362000a96565b92508262000823576200082262000b4a565b5b828204905092915050565b6000808291508390505b6001851115620008805780860481111562000858576200085762000b1b565b5b6001851615620008685780820291505b8081029050620008788562000b8f565b945062000838565b94509492505050565b6000620008968262000a96565b9150620008a38362000aa0565b9250620008d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008da565b905092915050565b600082620008ec5760019050620009bf565b81620008fc5760009050620009bf565b8160018114620009155760028114620009205762000956565b6001915050620009bf565b60ff84111562000935576200093462000b1b565b5b8360020a9150848211156200094f576200094e62000b1b565b5b50620009bf565b5060208310610133831016604e8410600b8410161715620009905782820a9050838111156200098a576200098962000b1b565b5b620009bf565b6200099f84848460016200082e565b92509050818404811115620009b957620009b862000b1b565b5b81810290505b9392505050565b6000620009d38262000a96565b9150620009e08362000a96565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000a1c5762000a1b62000b1b565b5b828202905092915050565b600062000a348262000a96565b915062000a418362000a96565b92508282101562000a575762000a5662000b1b565b5b828203905092915050565b600062000a6f8262000a76565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b8381101562000acd57808201518184015260208101905062000ab0565b8381111562000add576000848401525b50505050565b600062000af08262000a96565b915062000afd8362000a96565b92508262000b105762000b0f62000b4a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b62000ba78162000a62565b811462000bb357600080fd5b50565b612daa8062000bc66000396000f3fe6080604052600436106101025760003560e01c806356d9dce81161009557806395d89b411161006457806395d89b41146102e45780639e752b951461030f578063a9059cbb14610338578063dd62ed3e14610375578063f4293890146103b257610109565b806356d9dce81461024e57806370a0823114610265578063715018a6146102a25780638da5cb5b146102b957610109565b8063293230b8116100d1578063293230b8146101de578063313ce567146101f55780633e07ce5b1461022057806351bc3c851461023757610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103c9565b604051610130919061238b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f31565b610406565b60405161016d9190612370565b60405180910390f35b34801561018257600080fd5b5061018b610424565b604051610198919061252d565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611ede565b610448565b6040516101d59190612370565b60405180910390f35b3480156101ea57600080fd5b506101f3610521565b005b34801561020157600080fd5b5061020a610810565b60405161021791906125a2565b60405180910390f35b34801561022c57600080fd5b50610235610819565b005b34801561024357600080fd5b5061024c61089f565b005b34801561025a57600080fd5b50610263610919565b005b34801561027157600080fd5b5061028c60048036038101906102879190611e44565b610a01565b604051610299919061252d565b60405180910390f35b3480156102ae57600080fd5b506102b7610a52565b005b3480156102c557600080fd5b506102ce610ba5565b6040516102db91906122cb565b60405180910390f35b3480156102f057600080fd5b506102f9610bce565b604051610306919061238b565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190611f9e565b610c0b565b005b34801561034457600080fd5b5061035f600480360381019061035a9190611f31565b610c83565b60405161036c9190612370565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190611e9e565b610ca1565b6040516103a9919061252d565b60405180910390f35b3480156103be57600080fd5b506103c7610d28565b005b60606040518060400160405280600581526020017f524f534849000000000000000000000000000000000000000000000000000000815250905090565b600061041a610413610de4565b8484610dec565b6001905092915050565b60006006600a61043491906126ec565b6305f5e100610443919061280a565b905090565b6000610455848484610fb7565b61051684610461610de4565b61051185604051806060016040528060288152602001612d4d60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c7610de4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113709092919063ffffffff16565b610dec565b600190509392505050565b610529610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058257600080fd5b600c60149054906101000a900460ff16156105d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c99061240d565b60405180910390fd5b61061b30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600a61060791906126ec565b6305f5e100610616919061280a565b610dec565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061066430610a01565b60008061066f610ba5565b426040518863ffffffff1660e01b81526004016106919695949392919061230f565b6060604051808303818588803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106e39190611fcb565b5050506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016107bb9291906122e6565b602060405180830381600087803b1580156107d557600080fd5b505af11580156107e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080d9190611f71565b50565b60006006905090565b610821610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087a57600080fd5b6006600a61088891906126ec565b6305f5e100610897919061280a565b600a81905550565b6108a7610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090057600080fd5b600061090b30610a01565b9050610916816113d4565b50565b610921610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097a57600080fd5b600c60149054906101000a900460ff166109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c09061250d565b60405180910390fd5b6000600c60166101000a81548160ff0219169083151502179055506000600c60146101000a81548160ff021916908315150217905550565b6000610a4b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165c565b9050919050565b610a5a610de4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade9061248d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f4d617374657220526f7368690000000000000000000000000000000000000000815250905090565b610c13610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c57600080fd5b60098110610c7957600080fd5b8060088190555050565b6000610c97610c90610de4565b8484610fb7565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d30610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8957600080fd5b6000479050610d97816116ca565b50565b6000610ddc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611736565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906124ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec3906123ed565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610faa919061252d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906124cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e906123ad565b60405180910390fd5b600081116110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906124ad565b60405180910390fd5b6110e2610ba5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111505750611120610ba5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561136057600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156112005750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112565750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112a057600a54811061129f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112969061244d565b60405180910390fd5b5b60006112ab30610a01565b9050600c60159054906101000a900460ff161580156113185750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113305750600c60169054906101000a900460ff165b1561135e5761133e816113d4565b6000479050670de0b6b3a7640000811061135c5761135b476116ca565b5b505b505b61136b838383611799565b505050565b60008383111582906113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af919061238b565b60405180910390fd5b50600083856113c79190612864565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561140c5761140b6129bf565b5b60405190808252806020026020018201604052801561143a5781602001602082028036833780820191505090505b509050308160008151811061145257611451612990565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114f457600080fd5b505afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152c9190611e71565b816001815181106115405761153f612990565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115a730600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dec565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161160b959493929190612548565b600060405180830381600087803b15801561162557600080fd5b505af1158015611639573d6000803e3d6000fd5b50505050506000600c60156101000a81548160ff02191690831515021790555050565b60006005548211156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906123cd565b60405180910390fd5b60006116ad6117a9565b90506116c28184610d9a90919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611732573d6000803e3d6000fd5b5050565b6000808311829061177d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611774919061238b565b60405180910390fd5b506000838561178c9190612668565b9050809150509392505050565b6117a48383836117d4565b505050565b60008060006117b661199f565b915091506117cd8183610d9a90919063ffffffff16565b9250505090565b6000806000806000806117e687611a3a565b95509550955095509550955061184486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118d985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061192581611b4a565b61192f8483611c07565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161198c919061252d565b60405180910390a3505050505050505050565b6000806000600554905060006006600a6119b991906126ec565b6305f5e1006119c8919061280a565b90506119fb6006600a6119db91906126ec565b6305f5e1006119ea919061280a565b600554610d9a90919063ffffffff16565b821015611a2d576005546006600a611a1391906126ec565b6305f5e100611a22919061280a565b935093505050611a36565b81819350935050505b9091565b6000806000806000806000806000611a578a600754600854611c41565b9250925092506000611a676117a9565b90506000806000611a7a8e878787611cd7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611ae483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611370565b905092915050565b6000808284611afb9190612612565b905083811015611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b379061242d565b60405180910390fd5b8091505092915050565b6000611b546117a9565b90506000611b6b8284611d6090919063ffffffff16565b9050611bbf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611c1c82600554611aa290919063ffffffff16565b600581905550611c3781600654611aec90919063ffffffff16565b6006819055505050565b600080600080611c6d6064611c5f888a611d6090919063ffffffff16565b610d9a90919063ffffffff16565b90506000611c976064611c89888b611d6090919063ffffffff16565b610d9a90919063ffffffff16565b90506000611cc082611cb2858c611aa290919063ffffffff16565b611aa290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611cf08589611d6090919063ffffffff16565b90506000611d078689611d6090919063ffffffff16565b90506000611d1e8789611d6090919063ffffffff16565b90506000611d4782611d398587611aa290919063ffffffff16565b611aa290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611d735760009050611dd5565b60008284611d81919061280a565b9050828482611d909190612668565b14611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc79061246d565b60405180910390fd5b809150505b92915050565b600081359050611dea81612d07565b92915050565b600081519050611dff81612d07565b92915050565b600081519050611e1481612d1e565b92915050565b600081359050611e2981612d35565b92915050565b600081519050611e3e81612d35565b92915050565b600060208284031215611e5a57611e596129ee565b5b6000611e6884828501611ddb565b91505092915050565b600060208284031215611e8757611e866129ee565b5b6000611e9584828501611df0565b91505092915050565b60008060408385031215611eb557611eb46129ee565b5b6000611ec385828601611ddb565b9250506020611ed485828601611ddb565b9150509250929050565b600080600060608486031215611ef757611ef66129ee565b5b6000611f0586828701611ddb565b9350506020611f1686828701611ddb565b9250506040611f2786828701611e1a565b9150509250925092565b60008060408385031215611f4857611f476129ee565b5b6000611f5685828601611ddb565b9250506020611f6785828601611e1a565b9150509250929050565b600060208284031215611f8757611f866129ee565b5b6000611f9584828501611e05565b91505092915050565b600060208284031215611fb457611fb36129ee565b5b6000611fc284828501611e1a565b91505092915050565b600080600060608486031215611fe457611fe36129ee565b5b6000611ff286828701611e2f565b935050602061200386828701611e2f565b925050604061201486828701611e2f565b9150509250925092565b600061202a8383612036565b60208301905092915050565b61203f81612898565b82525050565b61204e81612898565b82525050565b600061205f826125cd565b61206981856125f0565b9350612074836125bd565b8060005b838110156120a557815161208c888261201e565b9750612097836125e3565b925050600181019050612078565b5085935050505092915050565b6120bb816128aa565b82525050565b6120ca816128ed565b82525050565b60006120db826125d8565b6120e58185612601565b93506120f58185602086016128ff565b6120fe816129f3565b840191505092915050565b6000612116602383612601565b915061212182612a11565b604082019050919050565b6000612139602a83612601565b915061214482612a60565b604082019050919050565b600061215c602283612601565b915061216782612aaf565b604082019050919050565b600061217f601783612601565b915061218a82612afe565b602082019050919050565b60006121a2601b83612601565b91506121ad82612b27565b602082019050919050565b60006121c5601a83612601565b91506121d082612b50565b602082019050919050565b60006121e8602183612601565b91506121f382612b79565b604082019050919050565b600061220b602083612601565b915061221682612bc8565b602082019050919050565b600061222e602983612601565b915061223982612bf1565b604082019050919050565b6000612251602583612601565b915061225c82612c40565b604082019050919050565b6000612274602483612601565b915061227f82612c8f565b604082019050919050565b6000612297601a83612601565b91506122a282612cde565b602082019050919050565b6122b6816128d6565b82525050565b6122c5816128e0565b82525050565b60006020820190506122e06000830184612045565b92915050565b60006040820190506122fb6000830185612045565b61230860208301846122ad565b9392505050565b600060c0820190506123246000830189612045565b61233160208301886122ad565b61233e60408301876120c1565b61234b60608301866120c1565b6123586080830185612045565b61236560a08301846122ad565b979650505050505050565b600060208201905061238560008301846120b2565b92915050565b600060208201905081810360008301526123a581846120d0565b905092915050565b600060208201905081810360008301526123c681612109565b9050919050565b600060208201905081810360008301526123e68161212c565b9050919050565b600060208201905081810360008301526124068161214f565b9050919050565b6000602082019050818103600083015261242681612172565b9050919050565b6000602082019050818103600083015261244681612195565b9050919050565b60006020820190508181036000830152612466816121b8565b9050919050565b60006020820190508181036000830152612486816121db565b9050919050565b600060208201905081810360008301526124a6816121fe565b9050919050565b600060208201905081810360008301526124c681612221565b9050919050565b600060208201905081810360008301526124e681612244565b9050919050565b6000602082019050818103600083015261250681612267565b9050919050565b600060208201905081810360008301526125268161228a565b9050919050565b600060208201905061254260008301846122ad565b92915050565b600060a08201905061255d60008301886122ad565b61256a60208301876120c1565b818103604083015261257c8186612054565b905061258b6060830185612045565b61259860808301846122ad565b9695505050505050565b60006020820190506125b760008301846122bc565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061261d826128d6565b9150612628836128d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561265d5761265c612932565b5b828201905092915050565b6000612673826128d6565b915061267e836128d6565b92508261268e5761268d612961565b5b828204905092915050565b6000808291508390505b60018511156126e3578086048111156126bf576126be612932565b5b60018516156126ce5780820291505b80810290506126dc85612a04565b94506126a3565b94509492505050565b60006126f7826128d6565b9150612702836128e0565b925061272f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612737565b905092915050565b6000826127475760019050612803565b816127555760009050612803565b816001811461276b5760028114612775576127a4565b6001915050612803565b60ff84111561278757612786612932565b5b8360020a91508482111561279e5761279d612932565b5b50612803565b5060208310610133831016604e8410600b84101617156127d95782820a9050838111156127d4576127d3612932565b5b612803565b6127e68484846001612699565b925090508184048111156127fd576127fc612932565b5b81810290505b9392505050565b6000612815826128d6565b9150612820836128d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285957612858612932565b5b828202905092915050565b600061286f826128d6565b915061287a836128d6565b92508282101561288d5761288c612932565b5b828203905092915050565b60006128a3826128b6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006128f8826128d6565b9050919050565b60005b8381101561291d578082015181840152602081019050612902565b8381111561292c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e73616374696f6e20616d6f756e74206c696d69746564000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206973206e6f74207374617274656420796574000000000000600082015250565b612d1081612898565b8114612d1b57600080fd5b50565b612d27816128aa565b8114612d3257600080fd5b50565b612d3e816128d6565b8114612d4957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c65a6b79a034bca0bb5e045e3ae21fb7e056229f35dd5d46983da6fde67f33264736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806356d9dce81161009557806395d89b411161006457806395d89b41146102e45780639e752b951461030f578063a9059cbb14610338578063dd62ed3e14610375578063f4293890146103b257610109565b806356d9dce81461024e57806370a0823114610265578063715018a6146102a25780638da5cb5b146102b957610109565b8063293230b8116100d1578063293230b8146101de578063313ce567146101f55780633e07ce5b1461022057806351bc3c851461023757610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103c9565b604051610130919061238b565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f31565b610406565b60405161016d9190612370565b60405180910390f35b34801561018257600080fd5b5061018b610424565b604051610198919061252d565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611ede565b610448565b6040516101d59190612370565b60405180910390f35b3480156101ea57600080fd5b506101f3610521565b005b34801561020157600080fd5b5061020a610810565b60405161021791906125a2565b60405180910390f35b34801561022c57600080fd5b50610235610819565b005b34801561024357600080fd5b5061024c61089f565b005b34801561025a57600080fd5b50610263610919565b005b34801561027157600080fd5b5061028c60048036038101906102879190611e44565b610a01565b604051610299919061252d565b60405180910390f35b3480156102ae57600080fd5b506102b7610a52565b005b3480156102c557600080fd5b506102ce610ba5565b6040516102db91906122cb565b60405180910390f35b3480156102f057600080fd5b506102f9610bce565b604051610306919061238b565b60405180910390f35b34801561031b57600080fd5b5061033660048036038101906103319190611f9e565b610c0b565b005b34801561034457600080fd5b5061035f600480360381019061035a9190611f31565b610c83565b60405161036c9190612370565b60405180910390f35b34801561038157600080fd5b5061039c60048036038101906103979190611e9e565b610ca1565b6040516103a9919061252d565b60405180910390f35b3480156103be57600080fd5b506103c7610d28565b005b60606040518060400160405280600581526020017f524f534849000000000000000000000000000000000000000000000000000000815250905090565b600061041a610413610de4565b8484610dec565b6001905092915050565b60006006600a61043491906126ec565b6305f5e100610443919061280a565b905090565b6000610455848484610fb7565b61051684610461610de4565b61051185604051806060016040528060288152602001612d4d60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c7610de4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113709092919063ffffffff16565b610dec565b600190509392505050565b610529610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058257600080fd5b600c60149054906101000a900460ff16156105d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c99061240d565b60405180910390fd5b61061b30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006600a61060791906126ec565b6305f5e100610616919061280a565b610dec565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061066430610a01565b60008061066f610ba5565b426040518863ffffffff1660e01b81526004016106919695949392919061230f565b6060604051808303818588803b1580156106aa57600080fd5b505af11580156106be573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106e39190611fcb565b5050506001600c60166101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff021916908315150217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016107bb9291906122e6565b602060405180830381600087803b1580156107d557600080fd5b505af11580156107e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080d9190611f71565b50565b60006006905090565b610821610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461087a57600080fd5b6006600a61088891906126ec565b6305f5e100610897919061280a565b600a81905550565b6108a7610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090057600080fd5b600061090b30610a01565b9050610916816113d4565b50565b610921610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097a57600080fd5b600c60149054906101000a900460ff166109c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c09061250d565b60405180910390fd5b6000600c60166101000a81548160ff0219169083151502179055506000600c60146101000a81548160ff021916908315150217905550565b6000610a4b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461165c565b9050919050565b610a5a610de4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade9061248d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f4d617374657220526f7368690000000000000000000000000000000000000000815250905090565b610c13610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6c57600080fd5b60098110610c7957600080fd5b8060088190555050565b6000610c97610c90610de4565b8484610fb7565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d30610de4565b73ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8957600080fd5b6000479050610d97816116ca565b50565b6000610ddc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611736565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906124ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec3906123ed565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610faa919061252d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906124cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108e906123ad565b60405180910390fd5b600081116110da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d1906124ad565b60405180910390fd5b6110e2610ba5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111505750611120610ba5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561136057600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156112005750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156112565750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156112a057600a54811061129f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112969061244d565b60405180910390fd5b5b60006112ab30610a01565b9050600c60159054906101000a900460ff161580156113185750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156113305750600c60169054906101000a900460ff165b1561135e5761133e816113d4565b6000479050670de0b6b3a7640000811061135c5761135b476116ca565b5b505b505b61136b838383611799565b505050565b60008383111582906113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af919061238b565b60405180910390fd5b50600083856113c79190612864565b9050809150509392505050565b6001600c60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561140c5761140b6129bf565b5b60405190808252806020026020018201604052801561143a5781602001602082028036833780820191505090505b509050308160008151811061145257611451612990565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156114f457600080fd5b505afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152c9190611e71565b816001815181106115405761153f612990565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506115a730600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610dec565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161160b959493929190612548565b600060405180830381600087803b15801561162557600080fd5b505af1158015611639573d6000803e3d6000fd5b50505050506000600c60156101000a81548160ff02191690831515021790555050565b60006005548211156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906123cd565b60405180910390fd5b60006116ad6117a9565b90506116c28184610d9a90919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611732573d6000803e3d6000fd5b5050565b6000808311829061177d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611774919061238b565b60405180910390fd5b506000838561178c9190612668565b9050809150509392505050565b6117a48383836117d4565b505050565b60008060006117b661199f565b915091506117cd8183610d9a90919063ffffffff16565b9250505090565b6000806000806000806117e687611a3a565b95509550955095509550955061184486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aa290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118d985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061192581611b4a565b61192f8483611c07565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161198c919061252d565b60405180910390a3505050505050505050565b6000806000600554905060006006600a6119b991906126ec565b6305f5e1006119c8919061280a565b90506119fb6006600a6119db91906126ec565b6305f5e1006119ea919061280a565b600554610d9a90919063ffffffff16565b821015611a2d576005546006600a611a1391906126ec565b6305f5e100611a22919061280a565b935093505050611a36565b81819350935050505b9091565b6000806000806000806000806000611a578a600754600854611c41565b9250925092506000611a676117a9565b90506000806000611a7a8e878787611cd7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611ae483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611370565b905092915050565b6000808284611afb9190612612565b905083811015611b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b379061242d565b60405180910390fd5b8091505092915050565b6000611b546117a9565b90506000611b6b8284611d6090919063ffffffff16565b9050611bbf81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aec90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611c1c82600554611aa290919063ffffffff16565b600581905550611c3781600654611aec90919063ffffffff16565b6006819055505050565b600080600080611c6d6064611c5f888a611d6090919063ffffffff16565b610d9a90919063ffffffff16565b90506000611c976064611c89888b611d6090919063ffffffff16565b610d9a90919063ffffffff16565b90506000611cc082611cb2858c611aa290919063ffffffff16565b611aa290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611cf08589611d6090919063ffffffff16565b90506000611d078689611d6090919063ffffffff16565b90506000611d1e8789611d6090919063ffffffff16565b90506000611d4782611d398587611aa290919063ffffffff16565b611aa290919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415611d735760009050611dd5565b60008284611d81919061280a565b9050828482611d909190612668565b14611dd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc79061246d565b60405180910390fd5b809150505b92915050565b600081359050611dea81612d07565b92915050565b600081519050611dff81612d07565b92915050565b600081519050611e1481612d1e565b92915050565b600081359050611e2981612d35565b92915050565b600081519050611e3e81612d35565b92915050565b600060208284031215611e5a57611e596129ee565b5b6000611e6884828501611ddb565b91505092915050565b600060208284031215611e8757611e866129ee565b5b6000611e9584828501611df0565b91505092915050565b60008060408385031215611eb557611eb46129ee565b5b6000611ec385828601611ddb565b9250506020611ed485828601611ddb565b9150509250929050565b600080600060608486031215611ef757611ef66129ee565b5b6000611f0586828701611ddb565b9350506020611f1686828701611ddb565b9250506040611f2786828701611e1a565b9150509250925092565b60008060408385031215611f4857611f476129ee565b5b6000611f5685828601611ddb565b9250506020611f6785828601611e1a565b9150509250929050565b600060208284031215611f8757611f866129ee565b5b6000611f9584828501611e05565b91505092915050565b600060208284031215611fb457611fb36129ee565b5b6000611fc284828501611e1a565b91505092915050565b600080600060608486031215611fe457611fe36129ee565b5b6000611ff286828701611e2f565b935050602061200386828701611e2f565b925050604061201486828701611e2f565b9150509250925092565b600061202a8383612036565b60208301905092915050565b61203f81612898565b82525050565b61204e81612898565b82525050565b600061205f826125cd565b61206981856125f0565b9350612074836125bd565b8060005b838110156120a557815161208c888261201e565b9750612097836125e3565b925050600181019050612078565b5085935050505092915050565b6120bb816128aa565b82525050565b6120ca816128ed565b82525050565b60006120db826125d8565b6120e58185612601565b93506120f58185602086016128ff565b6120fe816129f3565b840191505092915050565b6000612116602383612601565b915061212182612a11565b604082019050919050565b6000612139602a83612601565b915061214482612a60565b604082019050919050565b600061215c602283612601565b915061216782612aaf565b604082019050919050565b600061217f601783612601565b915061218a82612afe565b602082019050919050565b60006121a2601b83612601565b91506121ad82612b27565b602082019050919050565b60006121c5601a83612601565b91506121d082612b50565b602082019050919050565b60006121e8602183612601565b91506121f382612b79565b604082019050919050565b600061220b602083612601565b915061221682612bc8565b602082019050919050565b600061222e602983612601565b915061223982612bf1565b604082019050919050565b6000612251602583612601565b915061225c82612c40565b604082019050919050565b6000612274602483612601565b915061227f82612c8f565b604082019050919050565b6000612297601a83612601565b91506122a282612cde565b602082019050919050565b6122b6816128d6565b82525050565b6122c5816128e0565b82525050565b60006020820190506122e06000830184612045565b92915050565b60006040820190506122fb6000830185612045565b61230860208301846122ad565b9392505050565b600060c0820190506123246000830189612045565b61233160208301886122ad565b61233e60408301876120c1565b61234b60608301866120c1565b6123586080830185612045565b61236560a08301846122ad565b979650505050505050565b600060208201905061238560008301846120b2565b92915050565b600060208201905081810360008301526123a581846120d0565b905092915050565b600060208201905081810360008301526123c681612109565b9050919050565b600060208201905081810360008301526123e68161212c565b9050919050565b600060208201905081810360008301526124068161214f565b9050919050565b6000602082019050818103600083015261242681612172565b9050919050565b6000602082019050818103600083015261244681612195565b9050919050565b60006020820190508181036000830152612466816121b8565b9050919050565b60006020820190508181036000830152612486816121db565b9050919050565b600060208201905081810360008301526124a6816121fe565b9050919050565b600060208201905081810360008301526124c681612221565b9050919050565b600060208201905081810360008301526124e681612244565b9050919050565b6000602082019050818103600083015261250681612267565b9050919050565b600060208201905081810360008301526125268161228a565b9050919050565b600060208201905061254260008301846122ad565b92915050565b600060a08201905061255d60008301886122ad565b61256a60208301876120c1565b818103604083015261257c8186612054565b905061258b6060830185612045565b61259860808301846122ad565b9695505050505050565b60006020820190506125b760008301846122bc565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061261d826128d6565b9150612628836128d6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561265d5761265c612932565b5b828201905092915050565b6000612673826128d6565b915061267e836128d6565b92508261268e5761268d612961565b5b828204905092915050565b6000808291508390505b60018511156126e3578086048111156126bf576126be612932565b5b60018516156126ce5780820291505b80810290506126dc85612a04565b94506126a3565b94509492505050565b60006126f7826128d6565b9150612702836128e0565b925061272f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612737565b905092915050565b6000826127475760019050612803565b816127555760009050612803565b816001811461276b5760028114612775576127a4565b6001915050612803565b60ff84111561278757612786612932565b5b8360020a91508482111561279e5761279d612932565b5b50612803565b5060208310610133831016604e8410600b84101617156127d95782820a9050838111156127d4576127d3612932565b5b612803565b6127e68484846001612699565b925090508184048111156127fd576127fc612932565b5b81810290505b9392505050565b6000612815826128d6565b9150612820836128d6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561285957612858612932565b5b828202905092915050565b600061286f826128d6565b915061287a836128d6565b92508282101561288d5761288c612932565b5b828203905092915050565b60006128a3826128b6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006128f8826128d6565b9050919050565b60005b8381101561291d578082015181840152602081019050612902565b8381111561292c576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b60008160011c9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e73616374696f6e20616d6f756e74206c696d69746564000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206973206e6f74207374617274656420796574000000000000600082015250565b612d1081612898565b8114612d1b57600080fd5b50565b612d27816128aa565b8114612d3257600080fd5b50565b612d3e816128d6565b8114612d4957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204c65a6b79a034bca0bb5e045e3ae21fb7e056229f35dd5d46983da6fde67f33264736f6c63430008070033

Deployed Bytecode Sourcemap

3443:8193:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4895:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5657:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5136:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5808:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8275:394;;;;;;;;;;;;;:::i;:::-;;5057:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8103:79;;;;;;;;;;;;;:::i;:::-;;9794:145;;;;;;;;;;;;;:::i;:::-;;8674:151;;;;;;;;;;;;;:::i;:::-;;5227:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3299:133;;;;;;;;;;;;;:::i;:::-;;3115:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4974:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7973:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5361:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5518:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9944:144;;;;;;;;;;;;;:::i;:::-;;4895:74;4932:13;4057:10;;;;;;;;;;;;;;;;;4952:12;;4895:74;:::o;5657:146::-;5732:4;5743:39;5752:12;:10;:12::i;:::-;5766:7;5775:6;5743:8;:39::i;:::-;5794:4;5787:11;;5657:146;;;;:::o;5136:86::-;5189:7;279:1;3795:2;:12;;;;:::i;:::-;160:9;3780:27;;;;:::i;:::-;5203:14;;5136:86;:::o;5808:292::-;5906:4;5917:36;5927:6;5935:9;5946:6;5917:9;:36::i;:::-;5958:121;5967:6;5975:12;:10;:12::i;:::-;5989:89;6027:6;5989:89;;;;;;;;;;;;;;;;;:11;:19;6001:6;5989:19;;;;;;;;;;;;;;;:33;6009:12;:10;:12::i;:::-;5989:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5958:8;:121::i;:::-;6091:4;6084:11;;5808:292;;;;;:::o;8275:394::-;7943:12;:10;:12::i;:::-;7929:26;;:10;;;;;;;;;;;:26;;;7921:36;;;;;;8339:9:::1;;;;;;;;;;;8338:10;8330:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;8380:51;8397:4;8412:8;;;;;;;;;;;279:1;3795:2;:12;;;;:::i;:::-;160:9;3780:27;;;;:::i;:::-;8380:8;:51::i;:::-;8436:8;;;;;;;;;;;:24;;;8468:21;8499:4;8505:24;8523:4;8505:9;:24::i;:::-;8530:1;8532::::0;8534:7:::1;:5;:7::i;:::-;8542:15;8436:122;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8578:4;8563:12;;:19;;;;;;;;;;;;;;;;;;8599:4;8587:9;;:16;;;;;;;;;;;;;;;;;;8615:5;;;;;;;;;;;8608:21;;;8638:8;;;;;;;;;;;8649:14;8608:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8275:394::o:0;5057:74::-;5098:5;279:1;5110:16;;5057:74;:::o;8103:79::-;7943:12;:10;:12::i;:::-;7929:26;;:10;;;;;;;;;;;:26;;;7921:36;;;;;;279:1:::1;3795:2;:12;;;;:::i;:::-;160:9;3780:27;;;;:::i;:::-;8157:12;:20;;;;8103:79::o:0;9794:145::-;7943:12;:10;:12::i;:::-;7929:26;;:10;;;;;;;;;;;:26;;;7921:36;;;;;;9846:23:::1;9872:24;9890:4;9872:9;:24::i;:::-;9846:50;;9901:33;9918:15;9901:16;:33::i;:::-;9841:98;9794:145::o:0;8674:151::-;7943:12;:10;:12::i;:::-;7929:26;;:10;;;;;;;;;;;:26;;;7921:36;;;;;;8734:9:::1;;;;;;;;;;;8726:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;8793:5;8778:12;;:20;;;;;;;;;;;;;;;;;;8815:5;8803:9;;:17;;;;;;;;;;;;;;;;;;8674:151::o:0;5227:129::-;5293:7;5314:37;5334:7;:16;5342:7;5334:16;;;;;;;;;;;;;;;;5314:19;:37::i;:::-;5307:44;;5227:129;;;:::o;3299:133::-;3234:12;:10;:12::i;:::-;3224:22;;:6;;;;;;;;;;:22;;;3216:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3400:1:::1;3363:40;;3384:6;::::0;::::1;;;;;;;;3363:40;;;;;;;;;;;;3425:1;3408:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3299:133::o:0;3115:70::-;3153:7;3174:6;;;;;;;;;;;3167:13;;3115:70;:::o;4974:78::-;5013:13;4105:12;;;;;;;;;;;;;;;;;5033:14;;4974:78;:::o;7973:125::-;7943:12;:10;:12::i;:::-;7929:26;;:10;;;;;;;;;;;:26;;;7921:36;;;;;;126:1:::1;8047:10;:22;8039:31;;;::::0;::::1;;8083:10;8075:7;:18;;;;7973:125:::0;:::o;5361:152::-;5439:4;5450:42;5460:12;:10;:12::i;:::-;5474:9;5485:6;5450:9;:42::i;:::-;5504:4;5497:11;;5361:152;;;;:::o;5518:134::-;5599:7;5620:11;:18;5632:5;5620:18;;;;;;;;;;;;;;;:27;5639:7;5620:27;;;;;;;;;;;;;;;;5613:34;;5518:134;;;;:::o;9944:144::-;7943:12;:10;:12::i;:::-;7929:26;;:10;;;;;;;;;;;:26;;;7921:36;;;;;;9996:26:::1;10025:21;9996:50;;10051:32;10064:18;10051:12;:32::i;:::-;9991:97;9944:144::o:0;2491:123::-;2549:7;2570:39;2574:1;2577;2570:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2563:46;;2491:123;;;;:::o;1043:89::-;1096:7;1117:10;1110:17;;1043:89;:::o;6345:308::-;6449:1;6432:19;;:5;:19;;;;6424:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6524:1;6505:21;;:7;:21;;;;6497:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6600:6;6570:11;:18;6582:5;6570:18;;;;;;;;;;;;;;;:27;6589:7;6570:27;;;;;;;;;;;;;;;:36;;;;6632:7;6616:32;;6625:5;6616:32;;;6641:6;6616:32;;;;;;:::i;:::-;;;;;;;;6345:308;;;:::o;6658:844::-;6756:1;6740:18;;:4;:18;;;;6732:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6827:1;6813:16;;:2;:16;;;;6805:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6891:1;6882:6;:10;6874:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6957:7;:5;:7::i;:::-;6949:15;;:4;:15;;;;:32;;;;;6974:7;:5;:7::i;:::-;6968:13;;:2;:13;;;;6949:32;6945:516;;;7001:5;;;;;;;;;;;6993:13;;:4;:13;;;:40;;;;;7024:8;;;;;;;;;;;7010:23;;:2;:23;;;;6993:40;:68;;;;;7039:18;:22;7058:2;7039:22;;;;;;;;;;;;;;;;;;;;;;;;;7037:24;6993:68;6989:146;;;7086:12;;7079:6;:19;7071:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6989:146;7142:28;7173:24;7191:4;7173:9;:24::i;:::-;7142:55;;7208:7;;;;;;;;;;;7207:8;:25;;;;;7227:5;;;;;;;;;;;7219:13;;:4;:13;;;;7207:25;:41;;;;;7236:12;;;;;;;;;;;7207:41;7203:253;;;7257:38;7274:20;7257:16;:38::i;:::-;7302:26;7331:21;7302:50;;314:19;7362:18;:35;7359:91;;7407:35;7420:21;7407:12;:35::i;:::-;7359:91;7250:206;7203:253;6983:478;6945:516;7467:30;7482:4;7487:2;7490:6;7467:14;:30::i;:::-;6658:844;;;:::o;2108:169::-;2194:7;2221:1;2216;:6;;2224:12;2208:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2242:9;2258:1;2254;:5;;;;:::i;:::-;2242:17;;2271:1;2264:8;;;2108:169;;;;;:::o;7507:378::-;4367:4;4357:7;;:14;;;;;;;;;;;;;;;;;;7579:21:::1;7617:1;7603:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7579:40;;7642:4;7624;7629:1;7624:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7662:8;;;;;;;;;;;:13;;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7652:4;7657:1;7652:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;::::0;::::1;7682:55;7699:4;7714:8;;;;;;;;;;;7725:11;7682:8;:55::i;:::-;7742:8;;;;;;;;;;;:59;;;7807:11;7824:1;7831:4;7849;7860:15;7742:138;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7574:311;4392:5:::0;4382:7;;:15;;;;;;;;;;;;;;;;;;7507:378;:::o;6107:233::-;6174:7;6207;;6196;:18;;6188:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6266:19;6289:10;:8;:10::i;:::-;6266:33;;6311:24;6323:11;6311:7;:11;;:24;;;;:::i;:::-;6304:31;;;6107:233;;;:::o;8187:83::-;8238:10;;;;;;;;;;;:19;;:27;8258:6;8238:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8187:83;:::o;2619:168::-;2705:7;2731:1;2727;:5;2734:12;2719:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2752:9;2768:1;2764;:5;;;;:::i;:::-;2752:17;;2781:1;2774:8;;;2619:168;;;;;:::o;8832:137::-;8920:44;8938:6;8946:9;8957:6;8920:17;:44::i;:::-;8832:137;;;:::o;11251:148::-;11292:7;11307:15;11324;11343:19;:17;:19::i;:::-;11306:56;;;;11374:20;11386:7;11374;:11;;:20;;;;:::i;:::-;11367:27;;;;11251:148;:::o;8974:448::-;9067:15;9084:23;9109:12;9123:23;9148:12;9162:13;9179:19;9190:7;9179:10;:19::i;:::-;9066:132;;;;;;;;;;;;9221:28;9241:7;9221;:15;9229:6;9221:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;9203:7;:15;9211:6;9203:15;;;;;;;;;;;;;;;:46;;;;9275:39;9298:15;9275:7;:18;9283:9;9275:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;9254:7;:18;9262:9;9254:18;;;;;;;;;;;;;;;:60;;;;9319:16;9329:5;9319:9;:16::i;:::-;9340:23;9352:4;9358;9340:11;:23::i;:::-;9390:9;9373:44;;9382:6;9373:44;;;9401:15;9373:44;;;;;;:::i;:::-;;;;;;;;9061:361;;;;;;8974:448;;;:::o;11404:229::-;11454:7;11463;11477:15;11495:7;;11477:25;;11507:15;279:1;3795:2;:12;;;;:::i;:::-;160:9;3780:27;;;;:::i;:::-;11507:25;;11551:20;279:1;3795:2;:12;;;;:::i;:::-;160:9;3780:27;;;;:::i;:::-;11551:7;;:11;;:20;;;;:::i;:::-;11541:7;:30;11537:61;;;11581:7;;279:1;3795:2;:12;;;;:::i;:::-;160:9;3780:27;;;;:::i;:::-;11573:25;;;;;;;;11537:61;11611:7;11620;11603:25;;;;;;11404:229;;;:::o;10095:441::-;10154:7;10163;10172;10181;10190;10199;10214:23;10239:12;10253:13;10270:39;10282:7;10291:8;;10301:7;;10270:11;:39::i;:::-;10213:96;;;;;;10314:19;10337:10;:8;:10::i;:::-;10314:33;;10353:15;10370:23;10395:12;10411:46;10423:7;10432:4;10438:5;10445:11;10411;:46::i;:::-;10352:105;;;;;;10470:7;10479:15;10496:4;10502:15;10519:4;10525:5;10462:69;;;;;;;;;;;;;;;;;;;10095:441;;;;;;;:::o;1976:127::-;2034:7;2055:43;2059:1;2062;2055:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2048:50;;1976:127;;;;:::o;1813:158::-;1871:7;1885:9;1901:1;1897;:5;;;;:::i;:::-;1885:17;;1920:1;1915;:6;;1907:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1965:1;1958:8;;;1813:158;;;;:::o;9427:191::-;9474:19;9497:10;:8;:10::i;:::-;9474:33;;9512:13;9528:22;9538:11;9528:5;:9;;:22;;;;:::i;:::-;9512:38;;9580:33;9607:5;9580:7;:22;9596:4;9580:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;9555:7;:22;9571:4;9555:22;;;;;;;;;;;;;;;:58;;;;9469:149;;9427:191;:::o;9623:132::-;9695:17;9707:4;9695:7;;:11;;:17;;;;:::i;:::-;9685:7;:27;;;;9730:20;9745:4;9730:10;;:14;;:20;;;;:::i;:::-;9717:10;:33;;;;9623:132;;:::o;10541:324::-;10634:7;10643;10652;10666:12;10681:28;10705:3;10681:19;10693:6;10681:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10666:43;;10714:13;10730:29;10755:3;10730:20;10742:7;10730;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;10714:45;;10764:23;10790:28;10812:5;10790:17;10802:4;10790:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10764:54;;10831:15;10848:4;10854:5;10823:37;;;;;;;;;10541:324;;;;;;;:::o;10870:376::-;10980:7;10989;10998;11012:15;11030:24;11042:11;11030:7;:11;;:24;;;;:::i;:::-;11012:42;;11059:12;11074:21;11083:11;11074:4;:8;;:21;;;;:::i;:::-;11059:36;;11100:13;11116:22;11126:11;11116:5;:9;;:22;;;;:::i;:::-;11100:38;;11143:23;11169:28;11191:5;11169:17;11181:4;11169:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11143:54;;11210:7;11219:15;11236:4;11202:39;;;;;;;;;;10870:376;;;;;;;;:::o;2282:204::-;2340:7;2363:1;2358;:6;2354:32;;;2379:1;2372:8;;;;2354:32;2390:9;2406:1;2402;:5;;;;:::i;:::-;2390:17;;2429:1;2424;2420;:5;;;;:::i;:::-;:10;2412:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2480:1;2473:8;;;2282:204;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:137::-;355:5;386:6;380:13;371:22;;402:30;426:5;402:30;:::i;:::-;301:137;;;;:::o;444:139::-;490:5;528:6;515:20;506:29;;544:33;571:5;544:33;:::i;:::-;444:139;;;;:::o;589:143::-;646:5;677:6;671:13;662:22;;693:33;720:5;693:33;:::i;:::-;589:143;;;;:::o;738:329::-;797:6;846:2;834:9;825:7;821:23;817:32;814:119;;;852:79;;:::i;:::-;814:119;972:1;997:53;1042:7;1033:6;1022:9;1018:22;997:53;:::i;:::-;987:63;;943:117;738:329;;;;:::o;1073:351::-;1143:6;1192:2;1180:9;1171:7;1167:23;1163:32;1160:119;;;1198:79;;:::i;:::-;1160:119;1318:1;1343:64;1399:7;1390:6;1379:9;1375:22;1343:64;:::i;:::-;1333:74;;1289:128;1073:351;;;;:::o;1430:474::-;1498:6;1506;1555:2;1543:9;1534:7;1530:23;1526:32;1523:119;;;1561:79;;:::i;:::-;1523:119;1681:1;1706:53;1751:7;1742:6;1731:9;1727:22;1706:53;:::i;:::-;1696:63;;1652:117;1808:2;1834:53;1879:7;1870:6;1859:9;1855:22;1834:53;:::i;:::-;1824:63;;1779:118;1430:474;;;;;:::o;1910:619::-;1987:6;1995;2003;2052:2;2040:9;2031:7;2027:23;2023:32;2020:119;;;2058:79;;:::i;:::-;2020:119;2178:1;2203:53;2248:7;2239:6;2228:9;2224:22;2203:53;:::i;:::-;2193:63;;2149:117;2305:2;2331:53;2376:7;2367:6;2356:9;2352:22;2331:53;:::i;:::-;2321:63;;2276:118;2433:2;2459:53;2504:7;2495:6;2484:9;2480:22;2459:53;:::i;:::-;2449:63;;2404:118;1910:619;;;;;:::o;2535:474::-;2603:6;2611;2660:2;2648:9;2639:7;2635:23;2631:32;2628:119;;;2666:79;;:::i;:::-;2628:119;2786:1;2811:53;2856:7;2847:6;2836:9;2832:22;2811:53;:::i;:::-;2801:63;;2757:117;2913:2;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2884:118;2535:474;;;;;:::o;3015:345::-;3082:6;3131:2;3119:9;3110:7;3106:23;3102:32;3099:119;;;3137:79;;:::i;:::-;3099:119;3257:1;3282:61;3335:7;3326:6;3315:9;3311:22;3282:61;:::i;:::-;3272:71;;3228:125;3015:345;;;;:::o;3366:329::-;3425:6;3474:2;3462:9;3453:7;3449:23;3445:32;3442:119;;;3480:79;;:::i;:::-;3442:119;3600:1;3625:53;3670:7;3661:6;3650:9;3646:22;3625:53;:::i;:::-;3615:63;;3571:117;3366:329;;;;:::o;3701:663::-;3789:6;3797;3805;3854:2;3842:9;3833:7;3829:23;3825:32;3822:119;;;3860:79;;:::i;:::-;3822:119;3980:1;4005:64;4061:7;4052:6;4041:9;4037:22;4005:64;:::i;:::-;3995:74;;3951:128;4118:2;4144:64;4200:7;4191:6;4180:9;4176:22;4144:64;:::i;:::-;4134:74;;4089:129;4257:2;4283:64;4339:7;4330:6;4319:9;4315:22;4283:64;:::i;:::-;4273:74;;4228:129;3701:663;;;;;:::o;4370:179::-;4439:10;4460:46;4502:3;4494:6;4460:46;:::i;:::-;4538:4;4533:3;4529:14;4515:28;;4370:179;;;;:::o;4555:108::-;4632:24;4650:5;4632:24;:::i;:::-;4627:3;4620:37;4555:108;;:::o;4669:118::-;4756:24;4774:5;4756:24;:::i;:::-;4751:3;4744:37;4669:118;;:::o;4823:732::-;4942:3;4971:54;5019:5;4971:54;:::i;:::-;5041:86;5120:6;5115:3;5041:86;:::i;:::-;5034:93;;5151:56;5201:5;5151:56;:::i;:::-;5230:7;5261:1;5246:284;5271:6;5268:1;5265:13;5246:284;;;5347:6;5341:13;5374:63;5433:3;5418:13;5374:63;:::i;:::-;5367:70;;5460:60;5513:6;5460:60;:::i;:::-;5450:70;;5306:224;5293:1;5290;5286:9;5281:14;;5246:284;;;5250:14;5546:3;5539:10;;4947:608;;;4823:732;;;;:::o;5561:109::-;5642:21;5657:5;5642:21;:::i;:::-;5637:3;5630:34;5561:109;;:::o;5676:147::-;5771:45;5810:5;5771:45;:::i;:::-;5766:3;5759:58;5676:147;;:::o;5829:364::-;5917:3;5945:39;5978:5;5945:39;:::i;:::-;6000:71;6064:6;6059:3;6000:71;:::i;:::-;5993:78;;6080:52;6125:6;6120:3;6113:4;6106:5;6102:16;6080:52;:::i;:::-;6157:29;6179:6;6157:29;:::i;:::-;6152:3;6148:39;6141:46;;5921:272;5829:364;;;;:::o;6199:366::-;6341:3;6362:67;6426:2;6421:3;6362:67;:::i;:::-;6355:74;;6438:93;6527:3;6438:93;:::i;:::-;6556:2;6551:3;6547:12;6540:19;;6199:366;;;:::o;6571:::-;6713:3;6734:67;6798:2;6793:3;6734:67;:::i;:::-;6727:74;;6810:93;6899:3;6810:93;:::i;:::-;6928:2;6923:3;6919:12;6912:19;;6571:366;;;:::o;6943:::-;7085:3;7106:67;7170:2;7165:3;7106:67;:::i;:::-;7099:74;;7182:93;7271:3;7182:93;:::i;:::-;7300:2;7295:3;7291:12;7284:19;;6943:366;;;:::o;7315:::-;7457:3;7478:67;7542:2;7537:3;7478:67;:::i;:::-;7471:74;;7554:93;7643:3;7554:93;:::i;:::-;7672:2;7667:3;7663:12;7656:19;;7315:366;;;:::o;7687:::-;7829:3;7850:67;7914:2;7909:3;7850:67;:::i;:::-;7843:74;;7926:93;8015:3;7926:93;:::i;:::-;8044:2;8039:3;8035:12;8028:19;;7687:366;;;:::o;8059:::-;8201:3;8222:67;8286:2;8281:3;8222:67;:::i;:::-;8215:74;;8298:93;8387:3;8298:93;:::i;:::-;8416:2;8411:3;8407:12;8400:19;;8059:366;;;:::o;8431:::-;8573:3;8594:67;8658:2;8653:3;8594:67;:::i;:::-;8587:74;;8670:93;8759:3;8670:93;:::i;:::-;8788:2;8783:3;8779:12;8772:19;;8431:366;;;:::o;8803:::-;8945:3;8966:67;9030:2;9025:3;8966:67;:::i;:::-;8959:74;;9042:93;9131:3;9042:93;:::i;:::-;9160:2;9155:3;9151:12;9144:19;;8803:366;;;:::o;9175:::-;9317:3;9338:67;9402:2;9397:3;9338:67;:::i;:::-;9331:74;;9414:93;9503:3;9414:93;:::i;:::-;9532:2;9527:3;9523:12;9516:19;;9175:366;;;:::o;9547:::-;9689:3;9710:67;9774:2;9769:3;9710:67;:::i;:::-;9703:74;;9786:93;9875:3;9786:93;:::i;:::-;9904:2;9899:3;9895:12;9888:19;;9547:366;;;:::o;9919:::-;10061:3;10082:67;10146:2;10141:3;10082:67;:::i;:::-;10075:74;;10158:93;10247:3;10158:93;:::i;:::-;10276:2;10271:3;10267:12;10260:19;;9919:366;;;:::o;10291:::-;10433:3;10454:67;10518:2;10513:3;10454:67;:::i;:::-;10447:74;;10530:93;10619:3;10530:93;:::i;:::-;10648:2;10643:3;10639:12;10632:19;;10291:366;;;:::o;10663:118::-;10750:24;10768:5;10750:24;:::i;:::-;10745:3;10738:37;10663:118;;:::o;10787:112::-;10870:22;10886:5;10870:22;:::i;:::-;10865:3;10858:35;10787:112;;:::o;10905:222::-;10998:4;11036:2;11025:9;11021:18;11013:26;;11049:71;11117:1;11106:9;11102:17;11093:6;11049:71;:::i;:::-;10905:222;;;;:::o;11133:332::-;11254:4;11292:2;11281:9;11277:18;11269:26;;11305:71;11373:1;11362:9;11358:17;11349:6;11305:71;:::i;:::-;11386:72;11454:2;11443:9;11439:18;11430:6;11386:72;:::i;:::-;11133:332;;;;;:::o;11471:807::-;11720:4;11758:3;11747:9;11743:19;11735:27;;11772:71;11840:1;11829:9;11825:17;11816:6;11772:71;:::i;:::-;11853:72;11921:2;11910:9;11906:18;11897:6;11853:72;:::i;:::-;11935:80;12011:2;12000:9;11996:18;11987:6;11935:80;:::i;:::-;12025;12101:2;12090:9;12086:18;12077:6;12025:80;:::i;:::-;12115:73;12183:3;12172:9;12168:19;12159:6;12115:73;:::i;:::-;12198;12266:3;12255:9;12251:19;12242:6;12198:73;:::i;:::-;11471:807;;;;;;;;;:::o;12284:210::-;12371:4;12409:2;12398:9;12394:18;12386:26;;12422:65;12484:1;12473:9;12469:17;12460:6;12422:65;:::i;:::-;12284:210;;;;:::o;12500:313::-;12613:4;12651:2;12640:9;12636:18;12628:26;;12700:9;12694:4;12690:20;12686:1;12675:9;12671:17;12664:47;12728:78;12801:4;12792:6;12728:78;:::i;:::-;12720:86;;12500:313;;;;:::o;12819:419::-;12985:4;13023:2;13012:9;13008:18;13000:26;;13072:9;13066:4;13062:20;13058:1;13047:9;13043:17;13036:47;13100:131;13226:4;13100:131;:::i;:::-;13092:139;;12819:419;;;:::o;13244:::-;13410:4;13448:2;13437:9;13433:18;13425:26;;13497:9;13491:4;13487:20;13483:1;13472:9;13468:17;13461:47;13525:131;13651:4;13525:131;:::i;:::-;13517:139;;13244:419;;;:::o;13669:::-;13835:4;13873:2;13862:9;13858:18;13850:26;;13922:9;13916:4;13912:20;13908:1;13897:9;13893:17;13886:47;13950:131;14076:4;13950:131;:::i;:::-;13942:139;;13669:419;;;:::o;14094:::-;14260:4;14298:2;14287:9;14283:18;14275:26;;14347:9;14341:4;14337:20;14333:1;14322:9;14318:17;14311:47;14375:131;14501:4;14375:131;:::i;:::-;14367:139;;14094:419;;;:::o;14519:::-;14685:4;14723:2;14712:9;14708:18;14700:26;;14772:9;14766:4;14762:20;14758:1;14747:9;14743:17;14736:47;14800:131;14926:4;14800:131;:::i;:::-;14792:139;;14519:419;;;:::o;14944:::-;15110:4;15148:2;15137:9;15133:18;15125:26;;15197:9;15191:4;15187:20;15183:1;15172:9;15168:17;15161:47;15225:131;15351:4;15225:131;:::i;:::-;15217:139;;14944:419;;;:::o;15369:::-;15535:4;15573:2;15562:9;15558:18;15550:26;;15622:9;15616:4;15612:20;15608:1;15597:9;15593:17;15586:47;15650:131;15776:4;15650:131;:::i;:::-;15642:139;;15369:419;;;:::o;15794:::-;15960:4;15998:2;15987:9;15983:18;15975:26;;16047:9;16041:4;16037:20;16033:1;16022:9;16018:17;16011:47;16075:131;16201:4;16075:131;:::i;:::-;16067:139;;15794:419;;;:::o;16219:::-;16385:4;16423:2;16412:9;16408:18;16400:26;;16472:9;16466:4;16462:20;16458:1;16447:9;16443:17;16436:47;16500:131;16626:4;16500:131;:::i;:::-;16492:139;;16219:419;;;:::o;16644:::-;16810:4;16848:2;16837:9;16833:18;16825:26;;16897:9;16891:4;16887:20;16883:1;16872:9;16868:17;16861:47;16925:131;17051:4;16925:131;:::i;:::-;16917:139;;16644:419;;;:::o;17069:::-;17235:4;17273:2;17262:9;17258:18;17250:26;;17322:9;17316:4;17312:20;17308:1;17297:9;17293:17;17286:47;17350:131;17476:4;17350:131;:::i;:::-;17342:139;;17069:419;;;:::o;17494:::-;17660:4;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17494:419;;;:::o;17919:222::-;18012:4;18050:2;18039:9;18035:18;18027:26;;18063:71;18131:1;18120:9;18116:17;18107:6;18063:71;:::i;:::-;17919:222;;;;:::o;18147:831::-;18410:4;18448:3;18437:9;18433:19;18425:27;;18462:71;18530:1;18519:9;18515:17;18506:6;18462:71;:::i;:::-;18543:80;18619:2;18608:9;18604:18;18595:6;18543:80;:::i;:::-;18670:9;18664:4;18660:20;18655:2;18644:9;18640:18;18633:48;18698:108;18801:4;18792:6;18698:108;:::i;:::-;18690:116;;18816:72;18884:2;18873:9;18869:18;18860:6;18816:72;:::i;:::-;18898:73;18966:3;18955:9;18951:19;18942:6;18898:73;:::i;:::-;18147:831;;;;;;;;:::o;18984:214::-;19073:4;19111:2;19100:9;19096:18;19088:26;;19124:67;19188:1;19177:9;19173:17;19164:6;19124:67;:::i;:::-;18984:214;;;;:::o;19285:132::-;19352:4;19375:3;19367:11;;19405:4;19400:3;19396:14;19388:22;;19285:132;;;:::o;19423:114::-;19490:6;19524:5;19518:12;19508:22;;19423:114;;;:::o;19543:99::-;19595:6;19629:5;19623:12;19613:22;;19543:99;;;:::o;19648:113::-;19718:4;19750;19745:3;19741:14;19733:22;;19648:113;;;:::o;19767:184::-;19866:11;19900:6;19895:3;19888:19;19940:4;19935:3;19931:14;19916:29;;19767:184;;;;:::o;19957:169::-;20041:11;20075:6;20070:3;20063:19;20115:4;20110:3;20106:14;20091:29;;19957:169;;;;:::o;20132:305::-;20172:3;20191:20;20209:1;20191:20;:::i;:::-;20186:25;;20225:20;20243:1;20225:20;:::i;:::-;20220:25;;20379:1;20311:66;20307:74;20304:1;20301:81;20298:107;;;20385:18;;:::i;:::-;20298:107;20429:1;20426;20422:9;20415:16;;20132:305;;;;:::o;20443:185::-;20483:1;20500:20;20518:1;20500:20;:::i;:::-;20495:25;;20534:20;20552:1;20534:20;:::i;:::-;20529:25;;20573:1;20563:35;;20578:18;;:::i;:::-;20563:35;20620:1;20617;20613:9;20608:14;;20443:185;;;;:::o;20634:848::-;20695:5;20702:4;20726:6;20717:15;;20750:5;20741:14;;20764:712;20785:1;20775:8;20772:15;20764:712;;;20880:4;20875:3;20871:14;20865:4;20862:24;20859:50;;;20889:18;;:::i;:::-;20859:50;20939:1;20929:8;20925:16;20922:451;;;21354:4;21347:5;21343:16;21334:25;;20922:451;21404:4;21398;21394:15;21386:23;;21434:32;21457:8;21434:32;:::i;:::-;21422:44;;20764:712;;;20634:848;;;;;;;:::o;21488:281::-;21546:5;21570:23;21588:4;21570:23;:::i;:::-;21562:31;;21614:25;21630:8;21614:25;:::i;:::-;21602:37;;21658:104;21695:66;21685:8;21679:4;21658:104;:::i;:::-;21649:113;;21488:281;;;;:::o;21775:1073::-;21829:5;22020:8;22010:40;;22041:1;22032:10;;22043:5;;22010:40;22069:4;22059:36;;22086:1;22077:10;;22088:5;;22059:36;22155:4;22203:1;22198:27;;;;22239:1;22234:191;;;;22148:277;;22198:27;22216:1;22207:10;;22218:5;;;22234:191;22279:3;22269:8;22266:17;22263:43;;;22286:18;;:::i;:::-;22263:43;22335:8;22332:1;22328:16;22319:25;;22370:3;22363:5;22360:14;22357:40;;;22377:18;;:::i;:::-;22357:40;22410:5;;;22148:277;;22534:2;22524:8;22521:16;22515:3;22509:4;22506:13;22502:36;22484:2;22474:8;22471:16;22466:2;22460:4;22457:12;22453:35;22437:111;22434:246;;;22590:8;22584:4;22580:19;22571:28;;22625:3;22618:5;22615:14;22612:40;;;22632:18;;:::i;:::-;22612:40;22665:5;;22434:246;22705:42;22743:3;22733:8;22727:4;22724:1;22705:42;:::i;:::-;22690:57;;;;22779:4;22774:3;22770:14;22763:5;22760:25;22757:51;;;22788:18;;:::i;:::-;22757:51;22837:4;22830:5;22826:16;22817:25;;21775:1073;;;;;;:::o;22854:348::-;22894:7;22917:20;22935:1;22917:20;:::i;:::-;22912:25;;22951:20;22969:1;22951:20;:::i;:::-;22946:25;;23139:1;23071:66;23067:74;23064:1;23061:81;23056:1;23049:9;23042:17;23038:105;23035:131;;;23146:18;;:::i;:::-;23035:131;23194:1;23191;23187:9;23176:20;;22854:348;;;;:::o;23208:191::-;23248:4;23268:20;23286:1;23268:20;:::i;:::-;23263:25;;23302:20;23320:1;23302:20;:::i;:::-;23297:25;;23341:1;23338;23335:8;23332:34;;;23346:18;;:::i;:::-;23332:34;23391:1;23388;23384:9;23376:17;;23208:191;;;;:::o;23405:96::-;23442:7;23471:24;23489:5;23471:24;:::i;:::-;23460:35;;23405:96;;;:::o;23507:90::-;23541:7;23584:5;23577:13;23570:21;23559:32;;23507:90;;;:::o;23603:126::-;23640:7;23680:42;23673:5;23669:54;23658:65;;23603:126;;;:::o;23735:77::-;23772:7;23801:5;23790:16;;23735:77;;;:::o;23818:86::-;23853:7;23893:4;23886:5;23882:16;23871:27;;23818:86;;;:::o;23910:121::-;23968:9;24001:24;24019:5;24001:24;:::i;:::-;23988:37;;23910:121;;;:::o;24037:307::-;24105:1;24115:113;24129:6;24126:1;24123:13;24115:113;;;24214:1;24209:3;24205:11;24199:18;24195:1;24190:3;24186:11;24179:39;24151:2;24148:1;24144:10;24139:15;;24115:113;;;24246:6;24243:1;24240:13;24237:101;;;24326:1;24317:6;24312:3;24308:16;24301:27;24237:101;24086:258;24037:307;;;:::o;24350:180::-;24398:77;24395:1;24388:88;24495:4;24492:1;24485:15;24519:4;24516:1;24509:15;24536:180;24584:77;24581:1;24574:88;24681:4;24678:1;24671:15;24705:4;24702:1;24695:15;24722:180;24770:77;24767:1;24760:88;24867:4;24864:1;24857:15;24891:4;24888:1;24881:15;24908:180;24956:77;24953:1;24946:88;25053:4;25050:1;25043:15;25077:4;25074:1;25067:15;25217:117;25326:1;25323;25316:12;25340:102;25381:6;25432:2;25428:7;25423:2;25416:5;25412:14;25408:28;25398:38;;25340:102;;;:::o;25448:::-;25490:8;25537:5;25534:1;25530:13;25509:34;;25448:102;;;:::o;25556:222::-;25696:34;25692:1;25684:6;25680:14;25673:58;25765:5;25760:2;25752:6;25748:15;25741:30;25556:222;:::o;25784:229::-;25924:34;25920:1;25912:6;25908:14;25901:58;25993:12;25988:2;25980:6;25976:15;25969:37;25784:229;:::o;26019:221::-;26159:34;26155:1;26147:6;26143:14;26136:58;26228:4;26223:2;26215:6;26211:15;26204:29;26019:221;:::o;26246:173::-;26386:25;26382:1;26374:6;26370:14;26363:49;26246:173;:::o;26425:177::-;26565:29;26561:1;26553:6;26549:14;26542:53;26425:177;:::o;26608:176::-;26748:28;26744:1;26736:6;26732:14;26725:52;26608:176;:::o;26790:220::-;26930:34;26926:1;26918:6;26914:14;26907:58;26999:3;26994:2;26986:6;26982:15;26975:28;26790:220;:::o;27016:182::-;27156:34;27152:1;27144:6;27140:14;27133:58;27016:182;:::o;27204:228::-;27344:34;27340:1;27332:6;27328:14;27321:58;27413:11;27408:2;27400:6;27396:15;27389:36;27204:228;:::o;27438:224::-;27578:34;27574:1;27566:6;27562:14;27555:58;27647:7;27642:2;27634:6;27630:15;27623:32;27438:224;:::o;27668:223::-;27808:34;27804:1;27796:6;27792:14;27785:58;27877:6;27872:2;27864:6;27860:15;27853:31;27668:223;:::o;27897:176::-;28037:28;28033:1;28025:6;28021:14;28014:52;27897:176;:::o;28079:122::-;28152:24;28170:5;28152:24;:::i;:::-;28145:5;28142:35;28132:63;;28191:1;28188;28181:12;28132:63;28079:122;:::o;28207:116::-;28277:21;28292:5;28277:21;:::i;:::-;28270:5;28267:32;28257:60;;28313:1;28310;28303:12;28257:60;28207:116;:::o;28329:122::-;28402:24;28420:5;28402:24;:::i;:::-;28395:5;28392:35;28382:63;;28441:1;28438;28431:12;28382:63;28329:122;:::o

Swarm Source

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