ETH Price: $3,095.63 (+2.06%)
Gas: 3 Gwei

Token

Gengar (GENGAR)
 

Overview

Max Total Supply

10,000,000,000 GENGAR

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
129,720,840 GENGAR

Value
$0.00
0x6fa68cef4d3cbce568c2409b8cc2288f262b4a42
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:
Gengar

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: GNU
// Telegram: t.me/gengareth
pragma solidity ^0.8.4;

abstract contract Context {
	function _msgSender() internal view virtual returns (address) {
		return msg.sender;
	}
}

interface IERC20 {
	function totalSupply() external view returns (uint256);
	function balanceOf(address account) external view returns (uint256);
	function transfer(address recipient, uint256 amount) external returns (bool);
	function allowance(address owner, address spender) external view returns (uint256);
	function approve(address spender, uint256 amount) external returns (bool);
	function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
	event Transfer(address indexed from, address indexed to, uint256 value);
	event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
	function add(uint256 a, uint256 b) internal pure returns (uint256) {
		uint256 c = a + b;
		require(c >= a, "SafeMath: addition overflow");
		return c;
	}

	function sub(uint256 a, uint256 b) internal pure returns (uint256) {
		return sub(a, b, "SafeMath: subtraction overflow");
	}

	function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
		require(b <= a, errorMessage);
		uint256 c = a - b;
		return c;
	}

	function mul(uint256 a, uint256 b) internal pure returns (uint256) {
		if (a == 0) {
			return 0;
		}
		uint256 c = a * b;
		require(c / a == b, "SafeMath: multiplication overflow");
		return c;
	}

	function div(uint256 a, uint256 b) internal pure returns (uint256) {
		return div(a, b, "SafeMath: division by zero");
	}

	function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
		require(b > 0, errorMessage);
		uint256 c = a / b;
		return c;
	}
}

contract Ownable is Context {
	address private _owner;
	address private _previousOwner;
	event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
	constructor () {
		address msgSender = _msgSender();
		_owner = msgSender;
		emit OwnershipTransferred(address(0), msgSender);
	}

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

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

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

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

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

contract Gengar 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 _tTotal = 10000000000 ;
	uint256 private _rTotal = (MAX - (MAX % _tTotal));
	uint256 private _tFeeTotal;

	uint256 private _taxRate=4;
	address payable private _taxWallet;

	string private constant _name = "Gengar";
	string private constant _symbol = "GENGAR";
	uint8 private constant _decimals = 0;

	IUniswapV2Router02 private uniswapV2Router;
	address private uniswapV2Pair;
	bool private tradingOpen;
	bool private inSwap = false;
	bool private swapEnabled = false;
	uint256 private _ceil = _tTotal;

	modifier lockTheSwap {
		inSwap = true;
		_;
		inSwap = false;
	}
	constructor () {
		_taxWallet = payable(0x5A5AdD3D159f6630a2aE4ed4bf96B25a93C2de89);
		_rOwned[_msgSender()] = _rTotal;
		uniswapV2Router =  IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
		emit Transfer(address(0x0000000000000000000000000000000000000000), _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  view 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 setTaxRate(uint rate) external onlyOwner{
		require(rate>=0 ,"Rate must be non-negative");
		_taxRate=rate;
	}

	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 (to == uniswapV2Pair && from != address(uniswapV2Router)) {
				require(amount <= _ceil);
			}
			uint256 contractTokenBalance = balanceOf(address(this));
			if (!inSwap && from != uniswapV2Pair && swapEnabled) {
				swapTokensForEth(contractTokenBalance);
				uint256 contractETHBalance = address(this).balance;
				if (contractETHBalance > 0) {
					sendETHToFee(address(this).balance);
				}
			}
		}
		_tokenTransfer(from, to, amount);
	}

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

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

	function openTrading() external onlyOwner() {
		require(!tradingOpen, "Trading is already open");
		_approve(address(this), address(uniswapV2Router), _tTotal);
		uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
		uniswapV2Router.addLiquidityETH{value : address(this).balance}(address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
		swapEnabled = true;
		_ceil = 10000000000 ;
		tradingOpen = true;
		IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
	}

	function _tokenTransfer(address sender, address recipient, uint256 amount) private {
		_transferStandard(sender, recipient, amount);
	}

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

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

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

	receive() external payable {}

	function manualSwap() external {
		require(_msgSender() == _taxWallet);
		uint256 contractBalance = balanceOf(address(this));
		swapTokensForEth(contractBalance);
	}

	function manualSend() external {
		require(_msgSender() == _taxWallet);
		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, _taxRate, _taxRate);
		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 setCeiling(uint256 ceil) external onlyOwner {
		_ceil = ceil;
	}

	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":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ceil","type":"uint256"}],"name":"setCeiling","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setTaxRate","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526402540be4006005556005546000196200001f9190620002ef565b6000196200002e919062000356565b60065560046008556000600b60156101000a81548160ff0219169083151502179055506000600b60166101000a81548160ff021916908315150217905550600554600c553480156200007f57600080fd5b50600062000092620002ae60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350735a5add3d159f6630a2ae4ed4bf96b25a93c2de89600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600260006200019c620002ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200023f620002ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620002a09190620003a2565b60405180910390a3620003bf565b600033905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620002fc82620002b6565b91506200030983620002b6565b9250826200031c576200031b620002c0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200036382620002b6565b91506200037083620002b6565b92508282101562000386576200038562000327565b5b828203905092915050565b6200039c81620002b6565b82525050565b6000602082019050620003b9600083018462000391565b92915050565b612eac80620003cf6000396000f3fe6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063c6d69a3011610059578063c6d69a3014610325578063c9567bf91461034e578063dd62ed3e14610365578063f4293890146103a2576100fe565b80638da5cb5b146102695780638f02cf971461029457806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d357806351bc3c85146101fe57806370a0823114610215578063715018a614610252576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103b9565b6040516101259190612113565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906121ce565b6103f6565b6040516101629190612229565b60405180910390f35b34801561017757600080fd5b50610180610414565b60405161018d9190612253565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061226e565b61041e565b6040516101ca9190612229565b60405180910390f35b3480156101df57600080fd5b506101e86104f7565b6040516101f591906122dd565b60405180910390f35b34801561020a57600080fd5b506102136104fc565b005b34801561022157600080fd5b5061023c600480360381019061023791906122f8565b610576565b6040516102499190612253565b60405180910390f35b34801561025e57600080fd5b506102676105c7565b005b34801561027557600080fd5b5061027e6107dc565b60405161028b9190612334565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061234f565b610805565b005b3480156102c957600080fd5b506102d2610903565b6040516102df9190612113565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906121ce565b610940565b60405161031c9190612229565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061234f565b61095e565b005b34801561035a57600080fd5b50610363610aa0565b005b34801561037157600080fd5b5061038c6004803603810190610387919061237c565b61101f565b6040516103999190612253565b60405180910390f35b3480156103ae57600080fd5b506103b76110a6565b005b60606040518060400160405280600681526020017f47656e6761720000000000000000000000000000000000000000000000000000815250905090565b600061040a610403611118565b8484611120565b6001905092915050565b6000600554905090565b600061042b8484846112eb565b6104ec84610437611118565b6104e785604051806060016040528060288152602001612e4f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061049d611118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116139092919063ffffffff16565b611120565b600190509392505050565b600090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661053d611118565b73ffffffffffffffffffffffffffffffffffffffff161461055d57600080fd5b600061056830610576565b905061057381611677565b50565b60006105c0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118ff565b9050919050565b6105cf611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061067c575061062b611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612408565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61080d611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108ba5750610869611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612408565b60405180910390fd5b80600c8190555050565b60606040518060400160405280600681526020017f47454e4741520000000000000000000000000000000000000000000000000000815250905090565b600061095461094d611118565b84846112eb565b6001905092915050565b610966611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a1357506109c2611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612408565b60405180910390fd5b6000811015610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90612474565b60405180910390fd5b8060088190555050565b610aa8611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610b555750610b04611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90612408565b60405180910390fd5b600b60149054906101000a900460ff1615610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb906124e0565b60405180910390fd5b610c1330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7b57600080fd5b505afa158015610c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb39190612515565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3757600080fd5b505afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f9190612515565b6040518363ffffffff1660e01b8152600401610d8c929190612542565b602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190612515565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e6730610576565b600080610e726107dc565b426040518863ffffffff1660e01b8152600401610e94969594939291906125b0565b6060604051808303818588803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ee69190612626565b5050506001600b60166101000a81548160ff0219169083151502179055506402540be400600c819055506001600b60146101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fca929190612679565b602060405180830381600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c91906126ce565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e7611118565b73ffffffffffffffffffffffffffffffffffffffff161461110757600080fd5b60004790506111158161196d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111879061276d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127ff565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112de9190612253565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290612891565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612923565b60405180910390fd5b6000811161140e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611405906129b5565b60405180910390fd5b6114166107dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148457506114546107dc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561160357600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115345750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561154957600c5481111561154857600080fd5b5b600061155430610576565b9050600b60159054906101000a900460ff161580156115c15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115d95750600b60169054906101000a900460ff165b15611601576115e781611677565b600047905060008111156115ff576115fe4761196d565b5b505b505b61160e8383836119d9565b505050565b600083831115829061165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116529190612113565b60405180910390fd5b506000838561166a9190612a04565b9050809150509392505050565b6001600b60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116af576116ae612a38565b5b6040519080825280602002602001820160405280156116dd5781602001602082028036833780820191505090505b50905030816000815181106116f5576116f4612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561179757600080fd5b505afa1580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612515565b816001815181106117e3576117e2612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061184a30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ae959493929190612b54565b600060405180830381600087803b1580156118c857600080fd5b505af11580156118dc573d6000803e3d6000fd5b50505050506000600b60156101000a81548160ff02191690831515021790555050565b6000600654821115611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90612c20565b60405180910390fd5b60006119506119e9565b90506119658184611a1490919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119d5573d6000803e3d6000fd5b5050565b6119e4838383611a5e565b505050565b60008060006119f6611c29565b91509150611a0d8183611a1490919063ffffffff16565b9250505090565b6000611a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c76565b905092915050565b600080600080600080611a7087611cd9565b955095509550955095509550611ace86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b6385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611baf81611de9565b611bb98483611ea6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c169190612253565b60405180910390a3505050505050505050565b6000806000600654905060006005549050611c51600554600654611a1490919063ffffffff16565b821015611c6957600654600554935093505050611c72565b81819350935050505b9091565b60008083118290611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb49190612113565b60405180910390fd5b5060008385611ccc9190612c6f565b9050809150509392505050565b6000806000806000806000806000611cf68a600854600854611ee0565b9250925092506000611d066119e9565b90506000806000611d198e878787611f76565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611613565b905092915050565b6000808284611d9a9190612ca0565b905083811015611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690612d42565b60405180910390fd5b8091505092915050565b6000611df36119e9565b90506000611e0a8284611fff90919063ffffffff16565b9050611e5e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611ebb82600654611d4190919063ffffffff16565b600681905550611ed681600754611d8b90919063ffffffff16565b6007819055505050565b600080600080611f0c6064611efe888a611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f366064611f28888b611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f5f82611f51858c611d4190919063ffffffff16565b611d4190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f8f8589611fff90919063ffffffff16565b90506000611fa68689611fff90919063ffffffff16565b90506000611fbd8789611fff90919063ffffffff16565b90506000611fe682611fd88587611d4190919063ffffffff16565b611d4190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156120125760009050612074565b600082846120209190612d62565b905082848261202f9190612c6f565b1461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612e2e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b4578082015181840152602081019050612099565b838111156120c3576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e58261207a565b6120ef8185612085565b93506120ff818560208601612096565b612108816120c9565b840191505092915050565b6000602082019050818103600083015261212d81846120da565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121658261213a565b9050919050565b6121758161215a565b811461218057600080fd5b50565b6000813590506121928161216c565b92915050565b6000819050919050565b6121ab81612198565b81146121b657600080fd5b50565b6000813590506121c8816121a2565b92915050565b600080604083850312156121e5576121e4612135565b5b60006121f385828601612183565b9250506020612204858286016121b9565b9150509250929050565b60008115159050919050565b6122238161220e565b82525050565b600060208201905061223e600083018461221a565b92915050565b61224d81612198565b82525050565b60006020820190506122686000830184612244565b92915050565b60008060006060848603121561228757612286612135565b5b600061229586828701612183565b93505060206122a686828701612183565b92505060406122b7868287016121b9565b9150509250925092565b600060ff82169050919050565b6122d7816122c1565b82525050565b60006020820190506122f260008301846122ce565b92915050565b60006020828403121561230e5761230d612135565b5b600061231c84828501612183565b91505092915050565b61232e8161215a565b82525050565b60006020820190506123496000830184612325565b92915050565b60006020828403121561236557612364612135565b5b6000612373848285016121b9565b91505092915050565b6000806040838503121561239357612392612135565b5b60006123a185828601612183565b92505060206123b285828601612183565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123f2602083612085565b91506123fd826123bc565b602082019050919050565b60006020820190508181036000830152612421816123e5565b9050919050565b7f52617465206d757374206265206e6f6e2d6e6567617469766500000000000000600082015250565b600061245e601983612085565b915061246982612428565b602082019050919050565b6000602082019050818103600083015261248d81612451565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124ca601783612085565b91506124d582612494565b602082019050919050565b600060208201905081810360008301526124f9816124bd565b9050919050565b60008151905061250f8161216c565b92915050565b60006020828403121561252b5761252a612135565b5b600061253984828501612500565b91505092915050565b60006040820190506125576000830185612325565b6125646020830184612325565b9392505050565b6000819050919050565b6000819050919050565b600061259a6125956125908461256b565b612575565b612198565b9050919050565b6125aa8161257f565b82525050565b600060c0820190506125c56000830189612325565b6125d26020830188612244565b6125df60408301876125a1565b6125ec60608301866125a1565b6125f96080830185612325565b61260660a0830184612244565b979650505050505050565b600081519050612620816121a2565b92915050565b60008060006060848603121561263f5761263e612135565b5b600061264d86828701612611565b935050602061265e86828701612611565b925050604061266f86828701612611565b9150509250925092565b600060408201905061268e6000830185612325565b61269b6020830184612244565b9392505050565b6126ab8161220e565b81146126b657600080fd5b50565b6000815190506126c8816126a2565b92915050565b6000602082840312156126e4576126e3612135565b5b60006126f2848285016126b9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612757602483612085565b9150612762826126fb565b604082019050919050565b600060208201905081810360008301526127868161274a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127e9602283612085565b91506127f48261278d565b604082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061287b602583612085565b91506128868261281f565b604082019050919050565b600060208201905081810360008301526128aa8161286e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061290d602383612085565b9150612918826128b1565b604082019050919050565b6000602082019050818103600083015261293c81612900565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061299f602983612085565b91506129aa82612943565b604082019050919050565b600060208201905081810360008301526129ce81612992565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a0f82612198565b9150612a1a83612198565b925082821015612a2d57612a2c6129d5565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612acb8161215a565b82525050565b6000612add8383612ac2565b60208301905092915050565b6000602082019050919050565b6000612b0182612a96565b612b0b8185612aa1565b9350612b1683612ab2565b8060005b83811015612b47578151612b2e8882612ad1565b9750612b3983612ae9565b925050600181019050612b1a565b5085935050505092915050565b600060a082019050612b696000830188612244565b612b7660208301876125a1565b8181036040830152612b888186612af6565b9050612b976060830185612325565b612ba46080830184612244565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c0a602a83612085565b9150612c1582612bae565b604082019050919050565b60006020820190508181036000830152612c3981612bfd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c7a82612198565b9150612c8583612198565b925082612c9557612c94612c40565b5b828204905092915050565b6000612cab82612198565b9150612cb683612198565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ceb57612cea6129d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d2c601b83612085565b9150612d3782612cf6565b602082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b6000612d6d82612198565b9150612d7883612198565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db157612db06129d5565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e18602183612085565b9150612e2382612dbc565b604082019050919050565b60006020820190508181036000830152612e4781612e0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b10c309435ff328ef0c0738a8f2538dc93c193df56ffa534586626c5a0472e264736f6c63430008090033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063c6d69a3011610059578063c6d69a3014610325578063c9567bf91461034e578063dd62ed3e14610365578063f4293890146103a2576100fe565b80638da5cb5b146102695780638f02cf971461029457806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d357806351bc3c85146101fe57806370a0823114610215578063715018a614610252576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103b9565b6040516101259190612113565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906121ce565b6103f6565b6040516101629190612229565b60405180910390f35b34801561017757600080fd5b50610180610414565b60405161018d9190612253565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061226e565b61041e565b6040516101ca9190612229565b60405180910390f35b3480156101df57600080fd5b506101e86104f7565b6040516101f591906122dd565b60405180910390f35b34801561020a57600080fd5b506102136104fc565b005b34801561022157600080fd5b5061023c600480360381019061023791906122f8565b610576565b6040516102499190612253565b60405180910390f35b34801561025e57600080fd5b506102676105c7565b005b34801561027557600080fd5b5061027e6107dc565b60405161028b9190612334565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b6919061234f565b610805565b005b3480156102c957600080fd5b506102d2610903565b6040516102df9190612113565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906121ce565b610940565b60405161031c9190612229565b60405180910390f35b34801561033157600080fd5b5061034c6004803603810190610347919061234f565b61095e565b005b34801561035a57600080fd5b50610363610aa0565b005b34801561037157600080fd5b5061038c6004803603810190610387919061237c565b61101f565b6040516103999190612253565b60405180910390f35b3480156103ae57600080fd5b506103b76110a6565b005b60606040518060400160405280600681526020017f47656e6761720000000000000000000000000000000000000000000000000000815250905090565b600061040a610403611118565b8484611120565b6001905092915050565b6000600554905090565b600061042b8484846112eb565b6104ec84610437611118565b6104e785604051806060016040528060288152602001612e4f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061049d611118565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116139092919063ffffffff16565b611120565b600190509392505050565b600090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661053d611118565b73ffffffffffffffffffffffffffffffffffffffff161461055d57600080fd5b600061056830610576565b905061057381611677565b50565b60006105c0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118ff565b9050919050565b6105cf611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061067c575061062b611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6106bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b290612408565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61080d611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108ba5750610869611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b6108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090612408565b60405180910390fd5b80600c8190555050565b60606040518060400160405280600681526020017f47454e4741520000000000000000000000000000000000000000000000000000815250905090565b600061095461094d611118565b84846112eb565b6001905092915050565b610966611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a1357506109c2611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4990612408565b60405180910390fd5b6000811015610a96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8d90612474565b60405180910390fd5b8060088190555050565b610aa8611118565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610b555750610b04611118565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90612408565b60405180910390fd5b600b60149054906101000a900460ff1615610be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bdb906124e0565b60405180910390fd5b610c1330600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600554611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7b57600080fd5b505afa158015610c8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb39190612515565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3757600080fd5b505afa158015610d4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6f9190612515565b6040518363ffffffff1660e01b8152600401610d8c929190612542565b602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190612515565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e6730610576565b600080610e726107dc565b426040518863ffffffff1660e01b8152600401610e94969594939291906125b0565b6060604051808303818588803b158015610ead57600080fd5b505af1158015610ec1573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610ee69190612626565b5050506001600b60166101000a81548160ff0219169083151502179055506402540be400600c819055506001600b60146101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fca929190612679565b602060405180830381600087803b158015610fe457600080fd5b505af1158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061101c91906126ce565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110e7611118565b73ffffffffffffffffffffffffffffffffffffffff161461110757600080fd5b60004790506111158161196d565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111879061276d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127ff565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112de9190612253565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290612891565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290612923565b60405180910390fd5b6000811161140e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611405906129b5565b60405180910390fd5b6114166107dc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561148457506114546107dc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561160357600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115345750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561154957600c5481111561154857600080fd5b5b600061155430610576565b9050600b60159054906101000a900460ff161580156115c15750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115d95750600b60169054906101000a900460ff165b15611601576115e781611677565b600047905060008111156115ff576115fe4761196d565b5b505b505b61160e8383836119d9565b505050565b600083831115829061165b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116529190612113565b60405180910390fd5b506000838561166a9190612a04565b9050809150509392505050565b6001600b60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156116af576116ae612a38565b5b6040519080825280602002602001820160405280156116dd5781602001602082028036833780820191505090505b50905030816000815181106116f5576116f4612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561179757600080fd5b505afa1580156117ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cf9190612515565b816001815181106117e3576117e2612a67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061184a30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611120565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118ae959493929190612b54565b600060405180830381600087803b1580156118c857600080fd5b505af11580156118dc573d6000803e3d6000fd5b50505050506000600b60156101000a81548160ff02191690831515021790555050565b6000600654821115611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d90612c20565b60405180910390fd5b60006119506119e9565b90506119658184611a1490919063ffffffff16565b915050919050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119d5573d6000803e3d6000fd5b5050565b6119e4838383611a5e565b505050565b60008060006119f6611c29565b91509150611a0d8183611a1490919063ffffffff16565b9250505090565b6000611a5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c76565b905092915050565b600080600080600080611a7087611cd9565b955095509550955095509550611ace86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d4190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b6385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611baf81611de9565b611bb98483611ea6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c169190612253565b60405180910390a3505050505050505050565b6000806000600654905060006005549050611c51600554600654611a1490919063ffffffff16565b821015611c6957600654600554935093505050611c72565b81819350935050505b9091565b60008083118290611cbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb49190612113565b60405180910390fd5b5060008385611ccc9190612c6f565b9050809150509392505050565b6000806000806000806000806000611cf68a600854600854611ee0565b9250925092506000611d066119e9565b90506000806000611d198e878787611f76565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611d8383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611613565b905092915050565b6000808284611d9a9190612ca0565b905083811015611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690612d42565b60405180910390fd5b8091505092915050565b6000611df36119e9565b90506000611e0a8284611fff90919063ffffffff16565b9050611e5e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611ebb82600654611d4190919063ffffffff16565b600681905550611ed681600754611d8b90919063ffffffff16565b6007819055505050565b600080600080611f0c6064611efe888a611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f366064611f28888b611fff90919063ffffffff16565b611a1490919063ffffffff16565b90506000611f5f82611f51858c611d4190919063ffffffff16565b611d4190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080611f8f8589611fff90919063ffffffff16565b90506000611fa68689611fff90919063ffffffff16565b90506000611fbd8789611fff90919063ffffffff16565b90506000611fe682611fd88587611d4190919063ffffffff16565b611d4190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156120125760009050612074565b600082846120209190612d62565b905082848261202f9190612c6f565b1461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612e2e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156120b4578082015181840152602081019050612099565b838111156120c3576000848401525b50505050565b6000601f19601f8301169050919050565b60006120e58261207a565b6120ef8185612085565b93506120ff818560208601612096565b612108816120c9565b840191505092915050565b6000602082019050818103600083015261212d81846120da565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121658261213a565b9050919050565b6121758161215a565b811461218057600080fd5b50565b6000813590506121928161216c565b92915050565b6000819050919050565b6121ab81612198565b81146121b657600080fd5b50565b6000813590506121c8816121a2565b92915050565b600080604083850312156121e5576121e4612135565b5b60006121f385828601612183565b9250506020612204858286016121b9565b9150509250929050565b60008115159050919050565b6122238161220e565b82525050565b600060208201905061223e600083018461221a565b92915050565b61224d81612198565b82525050565b60006020820190506122686000830184612244565b92915050565b60008060006060848603121561228757612286612135565b5b600061229586828701612183565b93505060206122a686828701612183565b92505060406122b7868287016121b9565b9150509250925092565b600060ff82169050919050565b6122d7816122c1565b82525050565b60006020820190506122f260008301846122ce565b92915050565b60006020828403121561230e5761230d612135565b5b600061231c84828501612183565b91505092915050565b61232e8161215a565b82525050565b60006020820190506123496000830184612325565b92915050565b60006020828403121561236557612364612135565b5b6000612373848285016121b9565b91505092915050565b6000806040838503121561239357612392612135565b5b60006123a185828601612183565b92505060206123b285828601612183565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006123f2602083612085565b91506123fd826123bc565b602082019050919050565b60006020820190508181036000830152612421816123e5565b9050919050565b7f52617465206d757374206265206e6f6e2d6e6567617469766500000000000000600082015250565b600061245e601983612085565b915061246982612428565b602082019050919050565b6000602082019050818103600083015261248d81612451565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006124ca601783612085565b91506124d582612494565b602082019050919050565b600060208201905081810360008301526124f9816124bd565b9050919050565b60008151905061250f8161216c565b92915050565b60006020828403121561252b5761252a612135565b5b600061253984828501612500565b91505092915050565b60006040820190506125576000830185612325565b6125646020830184612325565b9392505050565b6000819050919050565b6000819050919050565b600061259a6125956125908461256b565b612575565b612198565b9050919050565b6125aa8161257f565b82525050565b600060c0820190506125c56000830189612325565b6125d26020830188612244565b6125df60408301876125a1565b6125ec60608301866125a1565b6125f96080830185612325565b61260660a0830184612244565b979650505050505050565b600081519050612620816121a2565b92915050565b60008060006060848603121561263f5761263e612135565b5b600061264d86828701612611565b935050602061265e86828701612611565b925050604061266f86828701612611565b9150509250925092565b600060408201905061268e6000830185612325565b61269b6020830184612244565b9392505050565b6126ab8161220e565b81146126b657600080fd5b50565b6000815190506126c8816126a2565b92915050565b6000602082840312156126e4576126e3612135565b5b60006126f2848285016126b9565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612757602483612085565b9150612762826126fb565b604082019050919050565b600060208201905081810360008301526127868161274a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006127e9602283612085565b91506127f48261278d565b604082019050919050565b60006020820190508181036000830152612818816127dc565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061287b602583612085565b91506128868261281f565b604082019050919050565b600060208201905081810360008301526128aa8161286e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061290d602383612085565b9150612918826128b1565b604082019050919050565b6000602082019050818103600083015261293c81612900565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061299f602983612085565b91506129aa82612943565b604082019050919050565b600060208201905081810360008301526129ce81612992565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612a0f82612198565b9150612a1a83612198565b925082821015612a2d57612a2c6129d5565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612acb8161215a565b82525050565b6000612add8383612ac2565b60208301905092915050565b6000602082019050919050565b6000612b0182612a96565b612b0b8185612aa1565b9350612b1683612ab2565b8060005b83811015612b47578151612b2e8882612ad1565b9750612b3983612ae9565b925050600181019050612b1a565b5085935050505092915050565b600060a082019050612b696000830188612244565b612b7660208301876125a1565b8181036040830152612b888186612af6565b9050612b976060830185612325565b612ba46080830184612244565b9695505050505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c0a602a83612085565b9150612c1582612bae565b604082019050919050565b60006020820190508181036000830152612c3981612bfd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612c7a82612198565b9150612c8583612198565b925082612c9557612c94612c40565b5b828204905092915050565b6000612cab82612198565b9150612cb683612198565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612ceb57612cea6129d5565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612d2c601b83612085565b9150612d3782612cf6565b602082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b6000612d6d82612198565b9150612d7883612198565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db157612db06129d5565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e18602183612085565b9150612e2382612dbc565b604082019050919050565b60006020820190508181036000830152612e4781612e0b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b10c309435ff328ef0c0738a8f2538dc93c193df56ffa534586626c5a0472e264736f6c63430008090033

Deployed Bytecode Sourcemap

3212:7874:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4433:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5197:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4674:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5350:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4595:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9118:169;;;;;;;;;;;;;:::i;:::-;;4767:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2403:169;;;;;;;;;;;;;:::i;:::-;;2187:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10773:75;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4512:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4901:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6198:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7585:567;;;;;;;;;;;;;:::i;:::-;;5058:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9292:168;;;;;;;;;;;;;:::i;:::-;;4433:74;4470:13;4497:5;;;;;;;;;;;;;;;;;4490:12;;4433:74;:::o;5197:146::-;5272:4;5283:39;5292:12;:10;:12::i;:::-;5306:7;5315:6;5283:8;:39::i;:::-;5334:4;5327:11;;5197:146;;;;:::o;4674:88::-;4729:7;4750;;4743:14;;4674:88;:::o;5350:292::-;5448:4;5459:36;5469:6;5477:9;5488:6;5459:9;:36::i;:::-;5500:121;5509:6;5517:12;:10;:12::i;:::-;5531:89;5569:6;5531:89;;;;;;;;;;;;;;;;;:11;:19;5543:6;5531:19;;;;;;;;;;;;;;;:33;5551:12;:10;:12::i;:::-;5531:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5500:8;:121::i;:::-;5633:4;5626:11;;5350:292;;;;;:::o;4595:74::-;4636:5;4595:74;:::o;9118:169::-;9178:10;;;;;;;;;;;9162:26;;:12;:10;:12::i;:::-;:26;;;9154:35;;;;;;9194:23;9220:24;9238:4;9220:9;:24::i;:::-;9194:50;;9249:33;9266:15;9249:16;:33::i;:::-;9149:138;9118:169::o;4767:129::-;4833:7;4854:37;4874:7;:16;4882:7;4874:16;;;;;;;;;;;;;;;;4854:19;:37::i;:::-;4847:44;;4767:129;;;:::o;2403:169::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;2504:6:::1;2467:45;;2488:6;::::0;::::1;;;;;;;;2467:45;;;;;;;;;;;;2532:6;::::0;::::1;;;;;;;;2517:14;;:21;;;;;;;;;;;;;;;;;;2560:6;2543;::::0;:24:::1;;;;;;;;;;;;;;;;;;2403:169::o:0;2187:70::-;2225:7;2246:6;;;;;;;;;;;2239:13;;2187:70;:::o;10773:75::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;10839:4:::1;10831:5;:12;;;;10773:75:::0;:::o;4512:78::-;4551:13;4578:7;;;;;;;;;;;;;;;;;4571:14;;4512:78;:::o;4901:152::-;4979:4;4990:42;5000:12;:10;:12::i;:::-;5014:9;5025:6;4990:9;:42::i;:::-;5044:4;5037:11;;4901:152;;;;:::o;6198:122::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;6266:1:::1;6260:4;:7;;6252:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;6311:4;6302:8;:13;;;;6198:122:::0;:::o;7585:567::-;2306:12;:10;:12::i;:::-;2296:22;;:6;;;;;;;;;;:22;;;:54;;;;2338:12;:10;:12::i;:::-;2322:28;;:14;;;;;;;;;;;:28;;;2296:54;2288:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7643:11:::1;;;;;;;;;;;7642:12;7634:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7687:58;7704:4;7719:15;;;;;;;;;;;7737:7;;7687:8;:58::i;:::-;7784:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7766:55;;;7830:4;7837:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7766:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7750:13;;:110;;;;;;;;;;;;;;;;;;7865:15;;;;;;;;;;;:31;;;7905:21;7936:4;7943:24;7961:4;7943:9;:24::i;:::-;7969:1;7972::::0;7975:7:::1;:5;:7::i;:::-;7984:15;7865:135;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8019:4;8005:11;;:18;;;;;;;;;;;;;;;;;;8036:11;8028:5;:19;;;;8067:4;8053:11;;:18;;;;;;;;;;;;;;;;;;8083:13;;;;;;;;;;;8076:29;;;8114:15;;;;;;;;;;;8132:14;8076:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7585:567::o:0;5058:134::-;5139:7;5160:11;:18;5172:5;5160:18;;;;;;;;;;;;;;;:27;5179:7;5160:27;;;;;;;;;;;;;;;;5153:34;;5058:134;;;;:::o;9292:168::-;9352:10;;;;;;;;;;;9336:26;;:12;:10;:12::i;:::-;:26;;;9328:35;;;;;;9368:26;9397:21;9368:50;;9423:32;9436:18;9423:12;:32::i;:::-;9323:137;9292:168::o;119:89::-;172:7;193:10;186:17;;119:89;:::o;5885:308::-;5989:1;5972:19;;:5;:19;;;;5964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6064:1;6045:21;;:7;:21;;;;6037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6140:6;6110:11;:18;6122:5;6110:18;;;;;;;;;;;;;;;:27;6129:7;6110:27;;;;;;;;;;;;;;;:36;;;;6172:7;6156:32;;6165:5;6156:32;;;6181:6;6156:32;;;;;;:::i;:::-;;;;;;;;5885:308;;;:::o;6325:789::-;6423:1;6407:18;;:4;:18;;;;6399:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6494:1;6480:16;;:2;:16;;;;6472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6558:1;6549:6;:10;6541:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6624:7;:5;:7::i;:::-;6616:15;;:4;:15;;;;:32;;;;;6641:7;:5;:7::i;:::-;6635:13;;:2;:13;;;;6616:32;6612:461;;;6666:13;;;;;;;;;;;6660:19;;:2;:19;;;:55;;;;;6699:15;;;;;;;;;;;6683:32;;:4;:32;;;;6660:55;6656:99;;;6742:5;;6732:6;:15;;6724:24;;;;;;6656:99;6760:28;6791:24;6809:4;6791:9;:24::i;:::-;6760:55;;6826:6;;;;;;;;;;;6825:7;:32;;;;;6844:13;;;;;;;;;;;6836:21;;:4;:21;;;;6825:32;:47;;;;;6861:11;;;;;;;;;;;6825:47;6821:247;;;6881:38;6898:20;6881:16;:38::i;:::-;6926:26;6955:21;6926:50;;7008:1;6987:18;:22;6983:79;;;7019:35;7032:21;7019:12;:35::i;:::-;6983:79;6874:194;6821:247;6650:423;6612:461;7077:32;7092:4;7098:2;7102:6;7077:14;:32::i;:::-;6325:789;;;:::o;1184:169::-;1270:7;1297:1;1292;:6;;1300:12;1284:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1318:9;1334:1;1330;:5;;;;:::i;:::-;1318:17;;1347:1;1340:8;;;1184:169;;;;;:::o;7119:373::-;4086:4;4077:6;;:13;;;;;;;;;;;;;;;;;;7191:21:::1;7229:1;7215:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7191:40;;7254:4;7236;7241:1;7236:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;7274:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7264:4;7269:1;7264:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;7301:62;7318:4;7333:15;;;;;;;;;;;7351:11;7301:8;:62::i;:::-;7368:15;;;;;;;;;;;:66;;;7435:11;7448:1;7451:4;7464;7471:15;7368:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7186:306;4110:5:::0;4101:6;;:14;;;;;;;;;;;;;;;;;;7119:373;:::o;5647:233::-;5715:7;5748;;5737;:18;;5729:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5807:19;5829:10;:8;:10::i;:::-;5807:32;;5851:24;5863:11;5851:7;:11;;:24;;;;:::i;:::-;5844:31;;;5647:233;;;:::o;7497:83::-;7548:10;;;;;;;;;;;:19;;:27;7568:6;7548:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7497:83;:::o;8157:137::-;8245:44;8263:6;8271:9;8282:6;8245:17;:44::i;:::-;8157:137;;;:::o;10621:149::-;10663:7;10678:15;10695;10714:19;:17;:19::i;:::-;10677:56;;;;10745:20;10757:7;10745;:11;;:20;;;;:::i;:::-;10738:27;;;;10621:149;:::o;1567:123::-;1625:7;1646:39;1650:1;1653;1646:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1639:46;;1567:123;;;;:::o;8299:448::-;8392:15;8409:23;8434:12;8448:23;8473:12;8487:13;8504:19;8515:7;8504:10;:19::i;:::-;8391:132;;;;;;;;;;;;8546:28;8566:7;8546;:15;8554:6;8546:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;8528:7;:15;8536:6;8528:15;;;;;;;;;;;;;;;:46;;;;8600:39;8623:15;8600:7;:18;8608:9;8600:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;8579:7;:18;8587:9;8579:18;;;;;;;;;;;;;;;:60;;;;8644:16;8654:5;8644:9;:16::i;:::-;8665:23;8677:4;8683;8665:11;:23::i;:::-;8715:9;8698:44;;8707:6;8698:44;;;8726:15;8698:44;;;;;;:::i;:::-;;;;;;;;8386:361;;;;;;8299:448;;;:::o;10853:230::-;10904:7;10913;10927:15;10945:7;;10927:25;;10957:15;10975:7;;10957:25;;11001:20;11013:7;;11001;;:11;;:20;;;;:::i;:::-;10991:7;:30;10987:61;;;11031:7;;11040;;11023:25;;;;;;;;10987:61;11061:7;11070;11053:25;;;;;;10853:230;;;:::o;1695:168::-;1781:7;1807:1;1803;:5;1810:12;1795:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1828:9;1844:1;1840;:5;;;;:::i;:::-;1828:17;;1857:1;1850:8;;;1695:168;;;;;:::o;9465:441::-;9524:7;9533;9542;9551;9560;9569;9584:23;9609:12;9623:13;9640:40;9652:7;9661:8;;9671;;9640:11;:40::i;:::-;9583:97;;;;;;9685:19;9707:10;:8;:10::i;:::-;9685:32;;9723:15;9740:23;9765:12;9781:46;9793:7;9802:4;9808:5;9815:11;9781;:46::i;:::-;9722:105;;;;;;9840:7;9849:15;9866:4;9872:15;9889:4;9895:5;9832:69;;;;;;;;;;;;;;;;;;;9465:441;;;;;;;:::o;1052:127::-;1110:7;1131:43;1135:1;1138;1131:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1124:50;;1052:127;;;;:::o;889:158::-;947:7;961:9;977:1;973;:5;;;;:::i;:::-;961:17;;996:1;991;:6;;983:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1041:1;1034:8;;;889:158;;;;:::o;8752:190::-;8799:19;8821:10;:8;:10::i;:::-;8799:32;;8836:13;8852:22;8862:11;8852:5;:9;;:22;;;;:::i;:::-;8836:38;;8904:33;8931:5;8904:7;:22;8920:4;8904:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;8879:7;:22;8895:4;8879:22;;;;;;;;;;;;;;;:58;;;;8794:148;;8752:190;:::o;8947:132::-;9019:17;9031:4;9019:7;;:11;;:17;;;;:::i;:::-;9009:7;:27;;;;9054:20;9069:4;9054:10;;:14;;:20;;;;:::i;:::-;9041:10;:33;;;;8947:132;;:::o;9911:324::-;10004:7;10013;10022;10036:12;10051:28;10075:3;10051:19;10063:6;10051:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10036:43;;10084:13;10100:29;10125:3;10100:20;10112:7;10100;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;10084:45;;10134:23;10160:28;10182:5;10160:17;10172:4;10160:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10134:54;;10201:15;10218:4;10224:5;10193:37;;;;;;;;;9911:324;;;;;;;:::o;10240:376::-;10350:7;10359;10368;10382:15;10400:24;10412:11;10400:7;:11;;:24;;;;:::i;:::-;10382:42;;10429:12;10444:21;10453:11;10444:4;:8;;:21;;;;:::i;:::-;10429:36;;10470:13;10486:22;10496:11;10486:5;:9;;:22;;;;:::i;:::-;10470:38;;10513:23;10539:28;10561:5;10539:17;10551:4;10539:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;10513:54;;10580:7;10589:15;10606:4;10572:39;;;;;;;;;;10240:376;;;;;;;;:::o;1358:204::-;1416:7;1439:1;1434;:6;1430:32;;;1455:1;1448:8;;;;1430:32;1466:9;1482:1;1478;:5;;;;:::i;:::-;1466:17;;1505:1;1500;1496;:5;;;;:::i;:::-;:10;1488:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1556:1;1549:8;;;1358:204;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:182::-;6543:34;6539:1;6531:6;6527:14;6520:58;6403:182;:::o;6591:366::-;6733:3;6754:67;6818:2;6813:3;6754:67;:::i;:::-;6747:74;;6830:93;6919:3;6830:93;:::i;:::-;6948:2;6943:3;6939:12;6932:19;;6591:366;;;:::o;6963:419::-;7129:4;7167:2;7156:9;7152:18;7144:26;;7216:9;7210:4;7206:20;7202:1;7191:9;7187:17;7180:47;7244:131;7370:4;7244:131;:::i;:::-;7236:139;;6963:419;;;:::o;7388:175::-;7528:27;7524:1;7516:6;7512:14;7505:51;7388:175;:::o;7569:366::-;7711:3;7732:67;7796:2;7791:3;7732:67;:::i;:::-;7725:74;;7808:93;7897:3;7808:93;:::i;:::-;7926:2;7921:3;7917:12;7910:19;;7569:366;;;:::o;7941:419::-;8107:4;8145:2;8134:9;8130:18;8122:26;;8194:9;8188:4;8184:20;8180:1;8169:9;8165:17;8158:47;8222:131;8348:4;8222:131;:::i;:::-;8214:139;;7941:419;;;:::o;8366:173::-;8506:25;8502:1;8494:6;8490:14;8483:49;8366:173;:::o;8545:366::-;8687:3;8708:67;8772:2;8767:3;8708:67;:::i;:::-;8701:74;;8784:93;8873:3;8784:93;:::i;:::-;8902:2;8897:3;8893:12;8886:19;;8545:366;;;:::o;8917:419::-;9083:4;9121:2;9110:9;9106:18;9098:26;;9170:9;9164:4;9160:20;9156:1;9145:9;9141:17;9134:47;9198:131;9324:4;9198:131;:::i;:::-;9190:139;;8917:419;;;:::o;9342:143::-;9399:5;9430:6;9424:13;9415:22;;9446:33;9473:5;9446:33;:::i;:::-;9342:143;;;;:::o;9491:351::-;9561:6;9610:2;9598:9;9589:7;9585:23;9581:32;9578:119;;;9616:79;;:::i;:::-;9578:119;9736:1;9761:64;9817:7;9808:6;9797:9;9793:22;9761:64;:::i;:::-;9751:74;;9707:128;9491:351;;;;:::o;9848:332::-;9969:4;10007:2;9996:9;9992:18;9984:26;;10020:71;10088:1;10077:9;10073:17;10064:6;10020:71;:::i;:::-;10101:72;10169:2;10158:9;10154:18;10145:6;10101:72;:::i;:::-;9848:332;;;;;:::o;10186:85::-;10231:7;10260:5;10249:16;;10186:85;;;:::o;10277:60::-;10305:3;10326:5;10319:12;;10277:60;;;:::o;10343:158::-;10401:9;10434:61;10452:42;10461:32;10487:5;10461:32;:::i;:::-;10452:42;:::i;:::-;10434:61;:::i;:::-;10421:74;;10343:158;;;:::o;10507:147::-;10602:45;10641:5;10602:45;:::i;:::-;10597:3;10590:58;10507:147;;:::o;10660:807::-;10909:4;10947:3;10936:9;10932:19;10924:27;;10961:71;11029:1;11018:9;11014:17;11005:6;10961:71;:::i;:::-;11042:72;11110:2;11099:9;11095:18;11086:6;11042:72;:::i;:::-;11124:80;11200:2;11189:9;11185:18;11176:6;11124:80;:::i;:::-;11214;11290:2;11279:9;11275:18;11266:6;11214:80;:::i;:::-;11304:73;11372:3;11361:9;11357:19;11348:6;11304:73;:::i;:::-;11387;11455:3;11444:9;11440:19;11431:6;11387:73;:::i;:::-;10660:807;;;;;;;;;:::o;11473:143::-;11530:5;11561:6;11555:13;11546:22;;11577:33;11604:5;11577:33;:::i;:::-;11473:143;;;;:::o;11622:663::-;11710:6;11718;11726;11775:2;11763:9;11754:7;11750:23;11746:32;11743:119;;;11781:79;;:::i;:::-;11743:119;11901:1;11926:64;11982:7;11973:6;11962:9;11958:22;11926:64;:::i;:::-;11916:74;;11872:128;12039:2;12065:64;12121:7;12112:6;12101:9;12097:22;12065:64;:::i;:::-;12055:74;;12010:129;12178:2;12204:64;12260:7;12251:6;12240:9;12236:22;12204:64;:::i;:::-;12194:74;;12149:129;11622:663;;;;;:::o;12291:332::-;12412:4;12450:2;12439:9;12435:18;12427:26;;12463:71;12531:1;12520:9;12516:17;12507:6;12463:71;:::i;:::-;12544:72;12612:2;12601:9;12597:18;12588:6;12544:72;:::i;:::-;12291:332;;;;;:::o;12629:116::-;12699:21;12714:5;12699:21;:::i;:::-;12692:5;12689:32;12679:60;;12735:1;12732;12725:12;12679:60;12629:116;:::o;12751:137::-;12805:5;12836:6;12830:13;12821:22;;12852:30;12876:5;12852:30;:::i;:::-;12751:137;;;;:::o;12894:345::-;12961:6;13010:2;12998:9;12989:7;12985:23;12981:32;12978:119;;;13016:79;;:::i;:::-;12978:119;13136:1;13161:61;13214:7;13205:6;13194:9;13190:22;13161:61;:::i;:::-;13151:71;;13107:125;12894:345;;;;:::o;13245:223::-;13385:34;13381:1;13373:6;13369:14;13362:58;13454:6;13449:2;13441:6;13437:15;13430:31;13245:223;:::o;13474:366::-;13616:3;13637:67;13701:2;13696:3;13637:67;:::i;:::-;13630:74;;13713:93;13802:3;13713:93;:::i;:::-;13831:2;13826:3;13822:12;13815:19;;13474:366;;;:::o;13846:419::-;14012:4;14050:2;14039:9;14035:18;14027:26;;14099:9;14093:4;14089:20;14085:1;14074:9;14070:17;14063:47;14127:131;14253:4;14127:131;:::i;:::-;14119:139;;13846:419;;;:::o;14271:221::-;14411:34;14407:1;14399:6;14395:14;14388:58;14480:4;14475:2;14467:6;14463:15;14456:29;14271:221;:::o;14498:366::-;14640:3;14661:67;14725:2;14720:3;14661:67;:::i;:::-;14654:74;;14737:93;14826:3;14737:93;:::i;:::-;14855:2;14850:3;14846:12;14839:19;;14498:366;;;:::o;14870:419::-;15036:4;15074:2;15063:9;15059:18;15051:26;;15123:9;15117:4;15113:20;15109:1;15098:9;15094:17;15087:47;15151:131;15277:4;15151:131;:::i;:::-;15143:139;;14870:419;;;:::o;15295:224::-;15435:34;15431:1;15423:6;15419:14;15412:58;15504:7;15499:2;15491:6;15487:15;15480:32;15295:224;:::o;15525:366::-;15667:3;15688:67;15752:2;15747:3;15688:67;:::i;:::-;15681:74;;15764:93;15853:3;15764:93;:::i;:::-;15882:2;15877:3;15873:12;15866:19;;15525:366;;;:::o;15897:419::-;16063:4;16101:2;16090:9;16086:18;16078:26;;16150:9;16144:4;16140:20;16136:1;16125:9;16121:17;16114:47;16178:131;16304:4;16178:131;:::i;:::-;16170:139;;15897:419;;;:::o;16322:222::-;16462:34;16458:1;16450:6;16446:14;16439:58;16531:5;16526:2;16518:6;16514:15;16507:30;16322:222;:::o;16550:366::-;16692:3;16713:67;16777:2;16772:3;16713:67;:::i;:::-;16706:74;;16789:93;16878:3;16789:93;:::i;:::-;16907:2;16902:3;16898:12;16891:19;;16550:366;;;:::o;16922:419::-;17088:4;17126:2;17115:9;17111:18;17103:26;;17175:9;17169:4;17165:20;17161:1;17150:9;17146:17;17139:47;17203:131;17329:4;17203:131;:::i;:::-;17195:139;;16922:419;;;:::o;17347:228::-;17487:34;17483:1;17475:6;17471:14;17464:58;17556:11;17551:2;17543:6;17539:15;17532:36;17347:228;:::o;17581:366::-;17723:3;17744:67;17808:2;17803:3;17744:67;:::i;:::-;17737:74;;17820:93;17909:3;17820:93;:::i;:::-;17938:2;17933:3;17929:12;17922:19;;17581:366;;;:::o;17953:419::-;18119:4;18157:2;18146:9;18142:18;18134:26;;18206:9;18200:4;18196:20;18192:1;18181:9;18177:17;18170:47;18234:131;18360:4;18234:131;:::i;:::-;18226:139;;17953:419;;;:::o;18378:180::-;18426:77;18423:1;18416:88;18523:4;18520:1;18513:15;18547:4;18544:1;18537:15;18564:191;18604:4;18624:20;18642:1;18624:20;:::i;:::-;18619:25;;18658:20;18676:1;18658:20;:::i;:::-;18653:25;;18697:1;18694;18691:8;18688:34;;;18702:18;;:::i;:::-;18688:34;18747:1;18744;18740:9;18732:17;;18564:191;;;;:::o;18761:180::-;18809:77;18806:1;18799:88;18906:4;18903:1;18896:15;18930:4;18927:1;18920:15;18947:180;18995:77;18992:1;18985:88;19092:4;19089:1;19082:15;19116:4;19113:1;19106:15;19133:114;19200:6;19234:5;19228:12;19218:22;;19133:114;;;:::o;19253:184::-;19352:11;19386:6;19381:3;19374:19;19426:4;19421:3;19417:14;19402:29;;19253:184;;;;:::o;19443:132::-;19510:4;19533:3;19525:11;;19563:4;19558:3;19554:14;19546:22;;19443:132;;;:::o;19581:108::-;19658:24;19676:5;19658:24;:::i;:::-;19653:3;19646:37;19581:108;;:::o;19695:179::-;19764:10;19785:46;19827:3;19819:6;19785:46;:::i;:::-;19863:4;19858:3;19854:14;19840:28;;19695:179;;;;:::o;19880:113::-;19950:4;19982;19977:3;19973:14;19965:22;;19880:113;;;:::o;20029:732::-;20148:3;20177:54;20225:5;20177:54;:::i;:::-;20247:86;20326:6;20321:3;20247:86;:::i;:::-;20240:93;;20357:56;20407:5;20357:56;:::i;:::-;20436:7;20467:1;20452:284;20477:6;20474:1;20471:13;20452:284;;;20553:6;20547:13;20580:63;20639:3;20624:13;20580:63;:::i;:::-;20573:70;;20666:60;20719:6;20666:60;:::i;:::-;20656:70;;20512:224;20499:1;20496;20492:9;20487:14;;20452:284;;;20456:14;20752:3;20745:10;;20153:608;;;20029:732;;;;:::o;20767:831::-;21030:4;21068:3;21057:9;21053:19;21045:27;;21082:71;21150:1;21139:9;21135:17;21126:6;21082:71;:::i;:::-;21163:80;21239:2;21228:9;21224:18;21215:6;21163:80;:::i;:::-;21290:9;21284:4;21280:20;21275:2;21264:9;21260:18;21253:48;21318:108;21421:4;21412:6;21318:108;:::i;:::-;21310:116;;21436:72;21504:2;21493:9;21489:18;21480:6;21436:72;:::i;:::-;21518:73;21586:3;21575:9;21571:19;21562:6;21518:73;:::i;:::-;20767:831;;;;;;;;:::o;21604:229::-;21744:34;21740:1;21732:6;21728:14;21721:58;21813:12;21808:2;21800:6;21796:15;21789:37;21604:229;:::o;21839:366::-;21981:3;22002:67;22066:2;22061:3;22002:67;:::i;:::-;21995:74;;22078:93;22167:3;22078:93;:::i;:::-;22196:2;22191:3;22187:12;22180:19;;21839:366;;;:::o;22211:419::-;22377:4;22415:2;22404:9;22400:18;22392:26;;22464:9;22458:4;22454:20;22450:1;22439:9;22435:17;22428:47;22492:131;22618:4;22492:131;:::i;:::-;22484:139;;22211:419;;;:::o;22636:180::-;22684:77;22681:1;22674:88;22781:4;22778:1;22771:15;22805:4;22802:1;22795:15;22822:185;22862:1;22879:20;22897:1;22879:20;:::i;:::-;22874:25;;22913:20;22931:1;22913:20;:::i;:::-;22908:25;;22952:1;22942:35;;22957:18;;:::i;:::-;22942:35;22999:1;22996;22992:9;22987:14;;22822:185;;;;:::o;23013:305::-;23053:3;23072:20;23090:1;23072:20;:::i;:::-;23067:25;;23106:20;23124:1;23106:20;:::i;:::-;23101:25;;23260:1;23192:66;23188:74;23185:1;23182:81;23179:107;;;23266:18;;:::i;:::-;23179:107;23310:1;23307;23303:9;23296:16;;23013:305;;;;:::o;23324:177::-;23464:29;23460:1;23452:6;23448:14;23441:53;23324:177;:::o;23507:366::-;23649:3;23670:67;23734:2;23729:3;23670:67;:::i;:::-;23663:74;;23746:93;23835:3;23746:93;:::i;:::-;23864:2;23859:3;23855:12;23848:19;;23507:366;;;:::o;23879:419::-;24045:4;24083:2;24072:9;24068:18;24060:26;;24132:9;24126:4;24122:20;24118:1;24107:9;24103:17;24096:47;24160:131;24286:4;24160:131;:::i;:::-;24152:139;;23879:419;;;:::o;24304:348::-;24344:7;24367:20;24385:1;24367:20;:::i;:::-;24362:25;;24401:20;24419:1;24401:20;:::i;:::-;24396:25;;24589:1;24521:66;24517:74;24514:1;24511:81;24506:1;24499:9;24492:17;24488:105;24485:131;;;24596:18;;:::i;:::-;24485:131;24644:1;24641;24637:9;24626:20;;24304:348;;;;:::o;24658:220::-;24798:34;24794:1;24786:6;24782:14;24775:58;24867:3;24862:2;24854:6;24850:15;24843:28;24658:220;:::o;24884:366::-;25026:3;25047:67;25111:2;25106:3;25047:67;:::i;:::-;25040:74;;25123:93;25212:3;25123:93;:::i;:::-;25241:2;25236:3;25232:12;25225:19;;24884:366;;;:::o;25256:419::-;25422:4;25460:2;25449:9;25445:18;25437:26;;25509:9;25503:4;25499:20;25495:1;25484:9;25480:17;25473:47;25537:131;25663:4;25537:131;:::i;:::-;25529:139;;25256:419;;;:::o

Swarm Source

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