ERC-20
Overview
Max Total Supply
1,000,000,000,000 DINOV
Holders
63
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,421,697,956.640394166 DINOVValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DINOV
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-06 */ // SPDX-License-Identifier: Unlicensed /* Welcome to the DINOVERSE! An all-new, unique Metaverse experience … Bringing you back in time to a pre-historic, mesozoic era; a world ruled by mystical and powerful creatures. $DINOV is the governance token of the DINOVERSE Ecosystem and Metaverse. Buy, trade, explore and engage in this one-of-a-kind experience. We’re bringing you back in time … the opportunities and possibilities are endless. Create your destiny. */ // t.me/Dinoversetoken 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 ); } 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); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract DINOV is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "DINOVERSE"; string private constant _symbol = "DINOV"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping (address => uint256) private _buyMap; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; mapping(address => bool) private _isSniper; uint256 public launchTime; uint256 private _redisFeeOnBuy = 2; uint256 private _taxFeeOnBuy = 9; uint256 private _redisFeeOnSell = 2; uint256 private _taxFeeOnSell = 9; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _burnFee = 0; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; uint256 private _previousburnFee = _burnFee; address payable private _marketingAddress = payable(0x6A9ff30A683DC7E6cAde212ee6b911743EA8704d); address public constant deadAddress = 0x000000000000000000000000000000000000dEaD; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 5e9 * 10**9; uint256 public _maxWalletSize = 5e9 * 10**9; uint256 public _swapTokensAtAmount = 1000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[deadAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function createPair() external onlyOwner() { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } 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 ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0 && _burnFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _previousburnFee = _burnFee; _redisFee = 0; _taxFee = 0; _burnFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; _burnFee = _previousburnFee; } 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"); require(!_isSniper[to], 'Stop sniping!'); require(!_isSniper[from], 'Stop sniping!'); require(!_isSniper[_msgSender()], 'Stop sniping!'); if (from != owner() && to != owner()) { if (!tradingOpen) { revert("Trading not yet enabled!"); } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { if (to != address(this) && from != address(this) && to != _marketingAddress && from != _marketingAddress) { require(amount <= _maxTxAmount); } } if (to != uniswapV2Pair && to != _marketingAddress && to != address(this) && to != deadAddress) { require(balanceOf(to) + amount < _maxWalletSize); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > _swapTokensAtAmount; if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { uint256 burntAmount = 0; if (_burnFee > 0) { burntAmount = contractTokenBalance.mul(_burnFee).div(10**2); burnTokens(burntAmount); } swapTokensForEth(contractTokenBalance - burntAmount); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _buyMap[to] = block.timestamp; _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; if (block.timestamp == launchTime) { _isSniper[to] = true; } } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function burnTokens(uint256 burntAmount) private { _transfer(address(this), deadAddress, burntAmount); } 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 { _marketingAddress.transfer(amount); } function setTrading() public onlyOwner { require(!tradingOpen); tradingOpen = true; launchTime = block.timestamp; } function setMarketingWallet(address marketingAddress) external { require(_msgSender() == _marketingAddress); _marketingAddress = payable(marketingAddress); _isExcludedFromFee[_marketingAddress] = true; } function manualswap(uint256 amount) external { require(_msgSender() == _marketingAddress); require(amount <= balanceOf(address(this)) && amount > 0); swapTokensForEth(amount); } function addSniper(address[] memory snipers) external onlyOwner { for(uint256 i= 0; i< snipers.length; i++){ _isSniper[snipers[i]] = true; } } function removeSniper(address sniper) external onlyOwner { if (_isSniper[sniper]) { _isSniper[sniper] = false; } } function isSniper(address sniper) external view returns (bool){ return _isSniper[sniper]; } function manualsend() external { require(_msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } 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 _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _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 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).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); } function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner { _maxWalletSize = maxWalletSize; } function setTaxFee(uint256 amountBuy, uint256 amountSell) external onlyOwner { _taxFeeOnBuy = amountBuy; _taxFeeOnSell = amountSell; } function setRefFee(uint256 amountRefBuy, uint256 amountRefSell) external onlyOwner { _redisFeeOnBuy = amountRefBuy; _redisFeeOnSell = amountRefSell; } function setBurnFee(uint256 amount) external onlyOwner { _burnFee = amount; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"snipers","type":"address[]"}],"name":"addSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"sniper","type":"address"}],"name":"isSniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"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":[{"internalType":"address","name":"sniper","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setBurnFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountRefBuy","type":"uint256"},{"internalType":"uint256","name":"amountRefSell","type":"uint256"}],"name":"setRefFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountBuy","type":"uint256"},{"internalType":"uint256","name":"amountSell","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526200001b683635c9adc5dea00000600019620001fa565b6200002990600019620001d4565b6007556002600b8190556009600c819055600d829055600e819055600f829055601081905560006011819055601292909255601355601455601580546001600160a01b031916736a9ff30a683dc7e6cade212ee6b911743ea8704d1790556017805461ffff60a81b1916600160b01b179055674563918244f40000601881905560195564e8d4a51000601a55348015620000c257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360008181526002602090815260408083209490945581546001600160a01b039081168352600682528483208054600160ff19918216811790925530855286852080548216831790556015549092168452858420805483168217905561dead84527f1aecba4ebe7a4e0673e4891b2b092b2228e4322380b579fb494fad3da8586e2280549092161790559251683635c9adc5dea000008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200021d565b600082821015620001f557634e487b7160e01b600052601160045260246000fd5b500390565b6000826200021857634e487b7160e01b600052601260045260246000fd5b500690565b612030806200022d6000396000f3fe6080604052600436106101f25760003560e01c80636fc3eaec1161010d5780638da5cb5b116100a0578063a9059cbb1161006f578063a9059cbb14610595578063c5528490146105b5578063dd62ed3e146105d5578063ea1644d51461061b578063f2fde38b1461063b57600080fd5b80638da5cb5b1461051e5780638f9a55c01461053c57806395d89b41146105525780639e78fb4f1461058057600080fd5b8063790ca413116100dc578063790ca413146104bd5780637c519ffb146104d35780637d1db4a5146104e8578063881dce60146104fe57600080fd5b80636fc3eaec1461045357806370a0823114610468578063715018a61461048857806374010ece1461049d57600080fd5b80632fd689e31161018557806349bd5a5e1161015457806349bd5a5e146103d35780634bf2c7c9146103f35780635d098b38146104135780636d8aa8f81461043357600080fd5b80632fd689e314610361578063313ce5671461037757806333251a0b1461039357806338eea22d146103b357600080fd5b806318160ddd116101c157806318160ddd146102e357806323b872dd1461030957806327c8f8351461032957806328bb665a1461033f57600080fd5b806306fdde03146101fe578063095ea7b3146102425780630f3a325f146102725780631694505e146102ab57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060408051808201909152600981526844494e4f564552534560b81b60208201525b6040516102399190611dce565b60405180910390f35b34801561024e57600080fd5b5061026261025d366004611c79565b61065b565b6040519015158152602001610239565b34801561027e57600080fd5b5061026261028d366004611bc5565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102b757600080fd5b506016546102cb906001600160a01b031681565b6040516001600160a01b039091168152602001610239565b3480156102ef57600080fd5b50683635c9adc5dea000005b604051908152602001610239565b34801561031557600080fd5b50610262610324366004611c38565b610672565b34801561033557600080fd5b506102cb61dead81565b34801561034b57600080fd5b5061035f61035a366004611ca5565b6106db565b005b34801561036d57600080fd5b506102fb601a5481565b34801561038357600080fd5b5060405160098152602001610239565b34801561039f57600080fd5b5061035f6103ae366004611bc5565b61077a565b3480156103bf57600080fd5b5061035f6103ce366004611dac565b6107e9565b3480156103df57600080fd5b506017546102cb906001600160a01b031681565b3480156103ff57600080fd5b5061035f61040e366004611d93565b61081e565b34801561041f57600080fd5b5061035f61042e366004611bc5565b61084d565b34801561043f57600080fd5b5061035f61044e366004611d71565b6108a7565b34801561045f57600080fd5b5061035f6108ef565b34801561047457600080fd5b506102fb610483366004611bc5565b610919565b34801561049457600080fd5b5061035f61093b565b3480156104a957600080fd5b5061035f6104b8366004611d93565b6109af565b3480156104c957600080fd5b506102fb600a5481565b3480156104df57600080fd5b5061035f6109de565b3480156104f457600080fd5b506102fb60185481565b34801561050a57600080fd5b5061035f610519366004611d93565b610a38565b34801561052a57600080fd5b506000546001600160a01b03166102cb565b34801561054857600080fd5b506102fb60195481565b34801561055e57600080fd5b506040805180820190915260058152642224a727ab60d91b602082015261022c565b34801561058c57600080fd5b5061035f610a82565b3480156105a157600080fd5b506102626105b0366004611c79565b610c67565b3480156105c157600080fd5b5061035f6105d0366004611dac565b610c74565b3480156105e157600080fd5b506102fb6105f0366004611bff565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561062757600080fd5b5061035f610636366004611d93565b610ca9565b34801561064757600080fd5b5061035f610656366004611bc5565b610cd8565b6000610668338484610dc2565b5060015b92915050565b600061067f848484610ee6565b6106d184336106cc85604051806060016040528060288152602001611fd3602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906114ae565b610dc2565b5060019392505050565b6000546001600160a01b0316331461070e5760405162461bcd60e51b815260040161070590611e23565b60405180910390fd5b60005b81518110156107765760016009600084848151811061073257610732611f91565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061076e81611f60565b915050610711565b5050565b6000546001600160a01b031633146107a45760405162461bcd60e51b815260040161070590611e23565b6001600160a01b03811660009081526009602052604090205460ff16156107e6576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108135760405162461bcd60e51b815260040161070590611e23565b600b91909155600d55565b6000546001600160a01b031633146108485760405162461bcd60e51b815260040161070590611e23565b601155565b6015546001600160a01b0316336001600160a01b03161461086d57600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161070590611e23565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b03161461090f57600080fd5b476107e6816114e8565b6001600160a01b03811660009081526002602052604081205461066c90611522565b6000546001600160a01b031633146109655760405162461bcd60e51b815260040161070590611e23565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109d95760405162461bcd60e51b815260040161070590611e23565b601855565b6000546001600160a01b03163314610a085760405162461bcd60e51b815260040161070590611e23565b601754600160a01b900460ff1615610a1f57600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610a5857600080fd5b610a6130610919565b8111158015610a705750600081115b610a7957600080fd5b6107e681611550565b6000546001600160a01b03163314610aac5760405162461bcd60e51b815260040161070590611e23565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b158015610b0c57600080fd5b505afa158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b449190611be2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8c57600080fd5b505afa158015610ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc49190611be2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c449190611be2565b601780546001600160a01b0319166001600160a01b039290921691909117905550565b6000610668338484610ee6565b6000546001600160a01b03163314610c9e5760405162461bcd60e51b815260040161070590611e23565b600c91909155600e55565b6000546001600160a01b03163314610cd35760405162461bcd60e51b815260040161070590611e23565b601955565b6000546001600160a01b03163314610d025760405162461bcd60e51b815260040161070590611e23565b6001600160a01b038116610d675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610705565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610e855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b038216610fac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b6000811161100e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610705565b6001600160a01b03821660009081526009602052604090205460ff16156110475760405162461bcd60e51b815260040161070590611e58565b6001600160a01b03831660009081526009602052604090205460ff16156110805760405162461bcd60e51b815260040161070590611e58565b3360009081526009602052604090205460ff16156110b05760405162461bcd60e51b815260040161070590611e58565b6000546001600160a01b038481169116148015906110dc57506000546001600160a01b03838116911614155b1561135857601754600160a01b900460ff1661113a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610705565b6017546001600160a01b03838116911614801561116557506016546001600160a01b03848116911614155b156111d4576001600160a01b038216301480159061118c57506001600160a01b0383163014155b80156111a657506015546001600160a01b03838116911614155b80156111c057506015546001600160a01b03848116911614155b156111d4576018548111156111d457600080fd5b6017546001600160a01b0383811691161480159061120057506015546001600160a01b03838116911614155b801561121557506001600160a01b0382163014155b801561122c57506001600160a01b03821661dead14155b15611252576019548161123e84610919565b6112489190611ef0565b1061125257600080fd5b600061125d30610919565b601a54909150811180801561127c5750601754600160a81b900460ff16155b801561129657506017546001600160a01b03868116911614155b80156112ab5750601754600160b01b900460ff165b80156112d057506001600160a01b03851660009081526006602052604090205460ff16155b80156112f557506001600160a01b03841660009081526006602052604090205460ff16155b15611355576011546000901561133057611325606461131f601154866116d990919063ffffffff16565b90611758565b90506113308161179a565b61134261133d8285611f49565b611550565b47801561135257611352476114e8565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061139a57506001600160a01b03831660009081526006602052604090205460ff165b806113cc57506017546001600160a01b038581169116148015906113cc57506017546001600160a01b03848116911614155b156113d95750600061149c565b6017546001600160a01b03858116911614801561140457506016546001600160a01b03848116911614155b1561145f576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a54141561145f576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b03848116911614801561148a57506016546001600160a01b03858116911614155b1561149c57600d54600f55600e546010555b6114a8848484846117a7565b50505050565b600081848411156114d25760405162461bcd60e51b81526004016107059190611dce565b5060006114df8486611f49565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610776573d6000803e3d6000fd5b600060075482111561153357600080fd5b600061153d6117db565b90506115498382611758565b9392505050565b6017805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061159857611598611f91565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156115ec57600080fd5b505afa158015611600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116249190611be2565b8160018151811061163757611637611f91565b6001600160a01b03928316602091820292909201015260165461165d9130911684610dc2565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611696908590600090869030904290600401611e7f565b600060405180830381600087803b1580156116b057600080fd5b505af11580156116c4573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6000826116e85750600061066c565b60006116f48385611f2a565b9050826117018583611f08565b146115495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610705565b600061154983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117fe565b6107e63061dead83610ee6565b806117b4576117b461182c565b6117bf848484611871565b806114a8576114a8601254600f55601354601055601454601155565b60008060006117e8611968565b90925090506117f78282611758565b9250505090565b6000818361181f5760405162461bcd60e51b81526004016107059190611dce565b5060006114df8486611f08565b600f5415801561183c5750601054155b80156118485750601154155b1561184f57565b600f805460125560108054601355601180546014556000928390559082905555565b600080600080600080611883876119aa565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118b59087611a07565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118e49086611a49565b6001600160a01b03891660009081526002602052604090205561190681611aa8565b6119108483611af2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161195591815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea000006119848282611758565b8210156119a157505060075492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006119c78a600f54601054611b16565b92509250925060006119d76117db565b905060008060006119ea8e878787611b65565b919e509c509a509598509396509194505050505091939550919395565b600061154983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ae565b600080611a568385611ef0565b9050838110156115495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610705565b6000611ab26117db565b90506000611ac083836116d9565b30600090815260026020526040902054909150611add9082611a49565b30600090815260026020526040902055505050565b600754611aff9083611a07565b600755600854611b0f9082611a49565b6008555050565b6000808080611b2a606461131f89896116d9565b90506000611b3d606461131f8a896116d9565b90506000611b5582611b4f8b86611a07565b90611a07565b9992985090965090945050505050565b6000808080611b7488866116d9565b90506000611b8288876116d9565b90506000611b9088886116d9565b90506000611ba282611b4f8686611a07565b939b939a50919850919650505050505050565b8035611bc081611fbd565b919050565b600060208284031215611bd757600080fd5b813561154981611fbd565b600060208284031215611bf457600080fd5b815161154981611fbd565b60008060408385031215611c1257600080fd5b8235611c1d81611fbd565b91506020830135611c2d81611fbd565b809150509250929050565b600080600060608486031215611c4d57600080fd5b8335611c5881611fbd565b92506020840135611c6881611fbd565b929592945050506040919091013590565b60008060408385031215611c8c57600080fd5b8235611c9781611fbd565b946020939093013593505050565b60006020808385031215611cb857600080fd5b823567ffffffffffffffff80821115611cd057600080fd5b818501915085601f830112611ce457600080fd5b813581811115611cf657611cf6611fa7565b8060051b604051601f19603f83011681018181108582111715611d1b57611d1b611fa7565b604052828152858101935084860182860187018a1015611d3a57600080fd5b600095505b83861015611d6457611d5081611bb5565b855260019590950194938601938601611d3f565b5098975050505050505050565b600060208284031215611d8357600080fd5b8135801515811461154957600080fd5b600060208284031215611da557600080fd5b5035919050565b60008060408385031215611dbf57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611dfb57858101830151858201604001528201611ddf565b81811115611e0d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ecf5784516001600160a01b031683529383019391830191600101611eaa565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f0357611f03611f7b565b500190565b600082611f2557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f4457611f44611f7b565b500290565b600082821015611f5b57611f5b611f7b565b500390565b6000600019821415611f7457611f74611f7b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107e657600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f602c8b1ab00813af42a1e04ccef8567ac6bb76ced053b129e9bbdd385aeb4964736f6c63430008070033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c80636fc3eaec1161010d5780638da5cb5b116100a0578063a9059cbb1161006f578063a9059cbb14610595578063c5528490146105b5578063dd62ed3e146105d5578063ea1644d51461061b578063f2fde38b1461063b57600080fd5b80638da5cb5b1461051e5780638f9a55c01461053c57806395d89b41146105525780639e78fb4f1461058057600080fd5b8063790ca413116100dc578063790ca413146104bd5780637c519ffb146104d35780637d1db4a5146104e8578063881dce60146104fe57600080fd5b80636fc3eaec1461045357806370a0823114610468578063715018a61461048857806374010ece1461049d57600080fd5b80632fd689e31161018557806349bd5a5e1161015457806349bd5a5e146103d35780634bf2c7c9146103f35780635d098b38146104135780636d8aa8f81461043357600080fd5b80632fd689e314610361578063313ce5671461037757806333251a0b1461039357806338eea22d146103b357600080fd5b806318160ddd116101c157806318160ddd146102e357806323b872dd1461030957806327c8f8351461032957806328bb665a1461033f57600080fd5b806306fdde03146101fe578063095ea7b3146102425780630f3a325f146102725780631694505e146102ab57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060408051808201909152600981526844494e4f564552534560b81b60208201525b6040516102399190611dce565b60405180910390f35b34801561024e57600080fd5b5061026261025d366004611c79565b61065b565b6040519015158152602001610239565b34801561027e57600080fd5b5061026261028d366004611bc5565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156102b757600080fd5b506016546102cb906001600160a01b031681565b6040516001600160a01b039091168152602001610239565b3480156102ef57600080fd5b50683635c9adc5dea000005b604051908152602001610239565b34801561031557600080fd5b50610262610324366004611c38565b610672565b34801561033557600080fd5b506102cb61dead81565b34801561034b57600080fd5b5061035f61035a366004611ca5565b6106db565b005b34801561036d57600080fd5b506102fb601a5481565b34801561038357600080fd5b5060405160098152602001610239565b34801561039f57600080fd5b5061035f6103ae366004611bc5565b61077a565b3480156103bf57600080fd5b5061035f6103ce366004611dac565b6107e9565b3480156103df57600080fd5b506017546102cb906001600160a01b031681565b3480156103ff57600080fd5b5061035f61040e366004611d93565b61081e565b34801561041f57600080fd5b5061035f61042e366004611bc5565b61084d565b34801561043f57600080fd5b5061035f61044e366004611d71565b6108a7565b34801561045f57600080fd5b5061035f6108ef565b34801561047457600080fd5b506102fb610483366004611bc5565b610919565b34801561049457600080fd5b5061035f61093b565b3480156104a957600080fd5b5061035f6104b8366004611d93565b6109af565b3480156104c957600080fd5b506102fb600a5481565b3480156104df57600080fd5b5061035f6109de565b3480156104f457600080fd5b506102fb60185481565b34801561050a57600080fd5b5061035f610519366004611d93565b610a38565b34801561052a57600080fd5b506000546001600160a01b03166102cb565b34801561054857600080fd5b506102fb60195481565b34801561055e57600080fd5b506040805180820190915260058152642224a727ab60d91b602082015261022c565b34801561058c57600080fd5b5061035f610a82565b3480156105a157600080fd5b506102626105b0366004611c79565b610c67565b3480156105c157600080fd5b5061035f6105d0366004611dac565b610c74565b3480156105e157600080fd5b506102fb6105f0366004611bff565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561062757600080fd5b5061035f610636366004611d93565b610ca9565b34801561064757600080fd5b5061035f610656366004611bc5565b610cd8565b6000610668338484610dc2565b5060015b92915050565b600061067f848484610ee6565b6106d184336106cc85604051806060016040528060288152602001611fd3602891396001600160a01b038a16600090815260056020908152604080832033845290915290205491906114ae565b610dc2565b5060019392505050565b6000546001600160a01b0316331461070e5760405162461bcd60e51b815260040161070590611e23565b60405180910390fd5b60005b81518110156107765760016009600084848151811061073257610732611f91565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061076e81611f60565b915050610711565b5050565b6000546001600160a01b031633146107a45760405162461bcd60e51b815260040161070590611e23565b6001600160a01b03811660009081526009602052604090205460ff16156107e6576001600160a01b0381166000908152600960205260409020805460ff191690555b50565b6000546001600160a01b031633146108135760405162461bcd60e51b815260040161070590611e23565b600b91909155600d55565b6000546001600160a01b031633146108485760405162461bcd60e51b815260040161070590611e23565b601155565b6015546001600160a01b0316336001600160a01b03161461086d57600080fd5b601580546001600160a01b039092166001600160a01b0319909216821790556000908152600660205260409020805460ff19166001179055565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161070590611e23565b60178054911515600160b01b0260ff60b01b19909216919091179055565b6015546001600160a01b0316336001600160a01b03161461090f57600080fd5b476107e6816114e8565b6001600160a01b03811660009081526002602052604081205461066c90611522565b6000546001600160a01b031633146109655760405162461bcd60e51b815260040161070590611e23565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109d95760405162461bcd60e51b815260040161070590611e23565b601855565b6000546001600160a01b03163314610a085760405162461bcd60e51b815260040161070590611e23565b601754600160a01b900460ff1615610a1f57600080fd5b6017805460ff60a01b1916600160a01b17905542600a55565b6015546001600160a01b0316336001600160a01b031614610a5857600080fd5b610a6130610919565b8111158015610a705750600081115b610a7957600080fd5b6107e681611550565b6000546001600160a01b03163314610aac5760405162461bcd60e51b815260040161070590611e23565b601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a0155916004808301926020929190829003018186803b158015610b0c57600080fd5b505afa158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b449190611be2565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8c57600080fd5b505afa158015610ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc49190611be2565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610c0c57600080fd5b505af1158015610c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c449190611be2565b601780546001600160a01b0319166001600160a01b039290921691909117905550565b6000610668338484610ee6565b6000546001600160a01b03163314610c9e5760405162461bcd60e51b815260040161070590611e23565b600c91909155600e55565b6000546001600160a01b03163314610cd35760405162461bcd60e51b815260040161070590611e23565b601955565b6000546001600160a01b03163314610d025760405162461bcd60e51b815260040161070590611e23565b6001600160a01b038116610d675760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610705565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610705565b6001600160a01b038216610e855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610705565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f4a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610705565b6001600160a01b038216610fac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610705565b6000811161100e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610705565b6001600160a01b03821660009081526009602052604090205460ff16156110475760405162461bcd60e51b815260040161070590611e58565b6001600160a01b03831660009081526009602052604090205460ff16156110805760405162461bcd60e51b815260040161070590611e58565b3360009081526009602052604090205460ff16156110b05760405162461bcd60e51b815260040161070590611e58565b6000546001600160a01b038481169116148015906110dc57506000546001600160a01b03838116911614155b1561135857601754600160a01b900460ff1661113a5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610705565b6017546001600160a01b03838116911614801561116557506016546001600160a01b03848116911614155b156111d4576001600160a01b038216301480159061118c57506001600160a01b0383163014155b80156111a657506015546001600160a01b03838116911614155b80156111c057506015546001600160a01b03848116911614155b156111d4576018548111156111d457600080fd5b6017546001600160a01b0383811691161480159061120057506015546001600160a01b03838116911614155b801561121557506001600160a01b0382163014155b801561122c57506001600160a01b03821661dead14155b15611252576019548161123e84610919565b6112489190611ef0565b1061125257600080fd5b600061125d30610919565b601a54909150811180801561127c5750601754600160a81b900460ff16155b801561129657506017546001600160a01b03868116911614155b80156112ab5750601754600160b01b900460ff165b80156112d057506001600160a01b03851660009081526006602052604090205460ff16155b80156112f557506001600160a01b03841660009081526006602052604090205460ff16155b15611355576011546000901561133057611325606461131f601154866116d990919063ffffffff16565b90611758565b90506113308161179a565b61134261133d8285611f49565b611550565b47801561135257611352476114e8565b50505b50505b6001600160a01b03831660009081526006602052604090205460019060ff168061139a57506001600160a01b03831660009081526006602052604090205460ff165b806113cc57506017546001600160a01b038581169116148015906113cc57506017546001600160a01b03848116911614155b156113d95750600061149c565b6017546001600160a01b03858116911614801561140457506016546001600160a01b03848116911614155b1561145f576001600160a01b03831660009081526004602052604090204290819055600b54600f55600c54601055600a54141561145f576001600160a01b0383166000908152600960205260409020805460ff191660011790555b6017546001600160a01b03848116911614801561148a57506016546001600160a01b03858116911614155b1561149c57600d54600f55600e546010555b6114a8848484846117a7565b50505050565b600081848411156114d25760405162461bcd60e51b81526004016107059190611dce565b5060006114df8486611f49565b95945050505050565b6015546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610776573d6000803e3d6000fd5b600060075482111561153357600080fd5b600061153d6117db565b90506115498382611758565b9392505050565b6017805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061159857611598611f91565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156115ec57600080fd5b505afa158015611600573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116249190611be2565b8160018151811061163757611637611f91565b6001600160a01b03928316602091820292909201015260165461165d9130911684610dc2565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611696908590600090869030904290600401611e7f565b600060405180830381600087803b1580156116b057600080fd5b505af11580156116c4573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6000826116e85750600061066c565b60006116f48385611f2a565b9050826117018583611f08565b146115495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610705565b600061154983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117fe565b6107e63061dead83610ee6565b806117b4576117b461182c565b6117bf848484611871565b806114a8576114a8601254600f55601354601055601454601155565b60008060006117e8611968565b90925090506117f78282611758565b9250505090565b6000818361181f5760405162461bcd60e51b81526004016107059190611dce565b5060006114df8486611f08565b600f5415801561183c5750601054155b80156118485750601154155b1561184f57565b600f805460125560108054601355601180546014556000928390559082905555565b600080600080600080611883876119aa565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506118b59087611a07565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546118e49086611a49565b6001600160a01b03891660009081526002602052604090205561190681611aa8565b6119108483611af2565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161195591815260200190565b60405180910390a3505050505050505050565b6007546000908190683635c9adc5dea000006119848282611758565b8210156119a157505060075492683635c9adc5dea0000092509050565b90939092509050565b60008060008060008060008060006119c78a600f54601054611b16565b92509250925060006119d76117db565b905060008060006119ea8e878787611b65565b919e509c509a509598509396509194505050505091939550919395565b600061154983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114ae565b600080611a568385611ef0565b9050838110156115495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610705565b6000611ab26117db565b90506000611ac083836116d9565b30600090815260026020526040902054909150611add9082611a49565b30600090815260026020526040902055505050565b600754611aff9083611a07565b600755600854611b0f9082611a49565b6008555050565b6000808080611b2a606461131f89896116d9565b90506000611b3d606461131f8a896116d9565b90506000611b5582611b4f8b86611a07565b90611a07565b9992985090965090945050505050565b6000808080611b7488866116d9565b90506000611b8288876116d9565b90506000611b9088886116d9565b90506000611ba282611b4f8686611a07565b939b939a50919850919650505050505050565b8035611bc081611fbd565b919050565b600060208284031215611bd757600080fd5b813561154981611fbd565b600060208284031215611bf457600080fd5b815161154981611fbd565b60008060408385031215611c1257600080fd5b8235611c1d81611fbd565b91506020830135611c2d81611fbd565b809150509250929050565b600080600060608486031215611c4d57600080fd5b8335611c5881611fbd565b92506020840135611c6881611fbd565b929592945050506040919091013590565b60008060408385031215611c8c57600080fd5b8235611c9781611fbd565b946020939093013593505050565b60006020808385031215611cb857600080fd5b823567ffffffffffffffff80821115611cd057600080fd5b818501915085601f830112611ce457600080fd5b813581811115611cf657611cf6611fa7565b8060051b604051601f19603f83011681018181108582111715611d1b57611d1b611fa7565b604052828152858101935084860182860187018a1015611d3a57600080fd5b600095505b83861015611d6457611d5081611bb5565b855260019590950194938601938601611d3f565b5098975050505050505050565b600060208284031215611d8357600080fd5b8135801515811461154957600080fd5b600060208284031215611da557600080fd5b5035919050565b60008060408385031215611dbf57600080fd5b50508035926020909101359150565b600060208083528351808285015260005b81811015611dfb57858101830151858201604001528201611ddf565b81811115611e0d576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252600d908201526c53746f7020736e6970696e672160981b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ecf5784516001600160a01b031683529383019391830191600101611eaa565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611f0357611f03611f7b565b500190565b600082611f2557634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611f4457611f44611f7b565b500290565b600082821015611f5b57611f5b611f7b565b500390565b6000600019821415611f7457611f74611f7b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107e657600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209f602c8b1ab00813af42a1e04ccef8567ac6bb76ced053b129e9bbdd385aeb4964736f6c63430008070033
Deployed Bytecode Sourcemap
4607:14500:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7287:83;;;;;;;;;;-1:-1:-1;7357:5:0;;;;;;;;;;;;-1:-1:-1;;;7357:5:0;;;;7287:83;;;;;;;:::i;:::-;;;;;;;;8212:193;;;;;;;;;;-1:-1:-1;8212:193:0;;;;;:::i;:::-;;:::i;:::-;;;4370:14:1;;4363:22;4345:41;;4333:2;4318:18;8212:193:0;4205:187:1;14566:105:0;;;;;;;;;;-1:-1:-1;14566:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;14646:17:0;14623:4;14646:17;;;:9;:17;;;;;;;;;14566:105;6057:41;;;;;;;;;;-1:-1:-1;6057:41:0;;;;-1:-1:-1;;;;;6057:41:0;;;;;;-1:-1:-1;;;;;3852:32:1;;;3834:51;;3822:2;3807:18;6057:41:0;3688:203:1;7564:95:0;;;;;;;;;;-1:-1:-1;5208:12:0;7564:95;;;9628:25:1;;;9616:2;9601:18;7564:95:0;9482:177:1;8413:446:0;;;;;;;;;;-1:-1:-1;8413:446:0;;;;;:::i;:::-;;:::i;5968:80::-;;;;;;;;;;;;6006:42;5968:80;;14208:192;;;;;;;;;;-1:-1:-1;14208:192:0;;;;;:::i;:::-;;:::i;:::-;;6354:49;;;;;;;;;;;;;;;;7473:83;;;;;;;;;;-1:-1:-1;7473:83:0;;4831:1;10791:36:1;;10779:2;10764:18;7473:83:0;10649:184:1;14408:150:0;;;;;;;;;;-1:-1:-1;14408:150:0;;;;;:::i;:::-;;:::i;18828:173::-;;;;;;;;;;-1:-1:-1;18828:173:0;;;;;:::i;:::-;;:::i;6105:28::-;;;;;;;;;;-1:-1:-1;6105:28:0;;;;-1:-1:-1;;;;;6105:28:0;;;19009:91;;;;;;;;;;-1:-1:-1;19009:91:0;;;;;:::i;:::-;;:::i;13742:235::-;;;;;;;;;;-1:-1:-1;13742:235:0;;;;;:::i;:::-;;:::i;18303:101::-;;;;;;;;;;-1:-1:-1;18303:101:0;;;;;:::i;:::-;;:::i;14679:196::-;;;;;;;;;;;;;:::i;7667:138::-;;;;;;;;;;-1:-1:-1;7667:138:0;;;;;:::i;:::-;;:::i;2086:148::-;;;;;;;;;;;;;:::i;18416:110::-;;;;;;;;;;-1:-1:-1;18416:110:0;;;;;:::i;:::-;;:::i;5365:25::-;;;;;;;;;;;;;;;;13585:147;;;;;;;;;;;;;:::i;6255:41::-;;;;;;;;;;;;;;;;13991:209;;;;;;;;;;-1:-1:-1;13991:209:0;;;;;:::i;:::-;;:::i;1872:79::-;;;;;;;;;;-1:-1:-1;1910:7:0;1937:6;-1:-1:-1;;;;;1937:6:0;1872:79;;6304:43;;;;;;;;;;;;;;;;7378:87;;;;;;;;;;-1:-1:-1;7450:7:0;;;;;;;;;;;;-1:-1:-1;;;7450:7:0;;;;7378:87;;6935:344;;;;;;;;;;;;;:::i;7813:199::-;;;;;;;;;;-1:-1:-1;7813:199:0;;;;;:::i;:::-;;:::i;18663:157::-;;;;;;;;;;-1:-1:-1;18663:157:0;;;;;:::i;:::-;;:::i;8020:184::-;;;;;;;;;;-1:-1:-1;8020:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8169:18:0;;;8137:7;8169:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8020:184;18538:117;;;;;;;;;;-1:-1:-1;18538:117:0;;;;;:::i;:::-;;:::i;2246:244::-;;;;;;;;;;-1:-1:-1;2246:244:0;;;;;:::i;:::-;;:::i;8212:193::-;8314:4;8336:39;711:10;8359:7;8368:6;8336:8;:39::i;:::-;-1:-1:-1;8393:4:0;8212:193;;;;;:::o;8413:446::-;8545:4;8562:36;8572:6;8580:9;8591:6;8562:9;:36::i;:::-;8609:220;8632:6;711:10;8680:138;8736:6;8680:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8680:19:0;;;;;;:11;:19;;;;;;;;711:10;8680:33;;;;;;;;;;:37;:138::i;:::-;8609:8;:220::i;:::-;-1:-1:-1;8847:4:0;8413:446;;;;;:::o;14208:192::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;;;;;;;;;14287:9:::1;14283:110;14304:7;:14;14301:1;:17;14283:110;;;14363:4;14339:9;:21;14349:7;14357:1;14349:10;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14339:21:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14339:21:0;:28;;-1:-1:-1;;14339:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14320:3;::::1;::::0;::::1;:::i;:::-;;;;14283:110;;;;14208:192:::0;:::o;14408:150::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14480:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;::::1;;14476:75;;;-1:-1:-1::0;;;;;14514:17:0;::::1;14534:5;14514:17:::0;;;:9:::1;:17;::::0;;;;:25;;-1:-1:-1;;14514:25:0::1;::::0;;14476:75:::1;14408:150:::0;:::o;18828:173::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;18922:14:::1;:29:::0;;;;18962:15:::1;:31:::0;18828:173::o;19009:91::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;19075:8:::1;:17:::0;19009:91::o;13742:235::-;13840:17;;-1:-1:-1;;;;;13840:17:0;711:10;-1:-1:-1;;;;;13824:33:0;;13816:42;;;;;;13869:17;:45;;-1:-1:-1;;;;;13869:45:0;;;-1:-1:-1;;;;;;13869:45:0;;;;;;;:17;13925:37;;;:18;:37;;;;;:44;;-1:-1:-1;;13925:44:0;13869:45;13925:44;;;13742:235::o;18303:101::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;18370:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;18370:26:0::1;-1:-1:-1::0;;;;18370:26:0;;::::1;::::0;;;::::1;::::0;;18303:101::o;14679:196::-;14745:17;;-1:-1:-1;;;;;14745:17:0;711:10;-1:-1:-1;;;;;14729:33:0;;14721:42;;;;;;14803:21;14835:32;14803:21;14835:12;:32::i;7667:138::-;-1:-1:-1;;;;;7780:16:0;;7733:7;7780:16;;;:7;:16;;;;;;7760:37;;:19;:37::i;2086:148::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;2193:1:::1;2177:6:::0;;2156:40:::1;::::0;-1:-1:-1;;;;;2177:6:0;;::::1;::::0;2156:40:::1;::::0;2193:1;;2156:40:::1;2224:1;2207:19:::0;;-1:-1:-1;;;;;;2207:19:0::1;::::0;;2086:148::o;18416:110::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;18492:12:::1;:26:::0;18416:110::o;13585:147::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;13644:11:::1;::::0;-1:-1:-1;;;13644:11:0;::::1;;;13643:12;13635:21;;;::::0;::::1;;13667:11;:18:::0;;-1:-1:-1;;;;13667:18:0::1;-1:-1:-1::0;;;13667:18:0::1;::::0;;13709:15:::1;13696:10;:28:::0;13585:147::o;13991:209::-;14071:17;;-1:-1:-1;;;;;14071:17:0;711:10;-1:-1:-1;;;;;14055:33:0;;14047:42;;;;;;14118:24;14136:4;14118:9;:24::i;:::-;14108:6;:34;;:48;;;;;14155:1;14146:6;:10;14108:48;14100:57;;;;;;14168:24;14185:6;14168:16;:24::i;6935:344::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;7102:15:::1;:34:::0;;-1:-1:-1;;;;;;7102:34:0::1;7048:42;7102:34:::0;;::::1;::::0;;;7181:26:::1;::::0;;-1:-1:-1;;;7181:26:0;;;;7048:42;;7181:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;7048:42;7181:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7163:66:0::1;;7238:4;7245:16;-1:-1:-1::0;;;;;7245:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7163:106;::::0;-1:-1:-1;;;;;;7163:106:0::1;::::0;;;;;;-1:-1:-1;;;;;4126:15:1;;;7163:106:0::1;::::0;::::1;4108:34:1::0;4178:15;;4158:18;;;4151:43;4043:18;;7163:106:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7147:13;:122:::0;;-1:-1:-1;;;;;;7147:122:0::1;-1:-1:-1::0;;;;;7147:122:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;6935:344:0:o;7813:199::-;7918:4;7940:42;711:10;7964:9;7975:6;7940:9;:42::i;18663:157::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;18751:12:::1;:24:::0;;;;18786:13:::1;:26:::0;18663:157::o;18538:117::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;18617:14:::1;:30:::0;18538:117::o;2246:244::-;1999:6;;-1:-1:-1;;;;;1999:6:0;711:10;1999:22;1991:67;;;;-1:-1:-1;;;1991:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2335:22:0;::::1;2327:73;;;::::0;-1:-1:-1;;;2327:73:0;;6192:2:1;2327:73:0::1;::::0;::::1;6174:21:1::0;6231:2;6211:18;;;6204:30;6270:34;6250:18;;;6243:62;-1:-1:-1;;;6321:18:1;;;6314:36;6367:19;;2327:73:0::1;5990:402:1::0;2327:73:0::1;2437:6;::::0;;2416:38:::1;::::0;-1:-1:-1;;;;;2416:38:0;;::::1;::::0;2437:6;::::1;::::0;2416:38:::1;::::0;::::1;2465:6;:17:::0;;-1:-1:-1;;;;;;2465:17:0::1;-1:-1:-1::0;;;;;2465:17:0;;;::::1;::::0;;;::::1;::::0;;2246:244::o;9619:369::-;-1:-1:-1;;;;;9746:19:0;;9738:68;;;;-1:-1:-1;;;9738:68:0;;9279:2:1;9738:68:0;;;9261:21:1;9318:2;9298:18;;;9291:30;9357:34;9337:18;;;9330:62;-1:-1:-1;;;9408:18:1;;;9401:34;9452:19;;9738:68:0;9077:400:1;9738:68:0;-1:-1:-1;;;;;9825:21:0;;9817:68;;;;-1:-1:-1;;;9817:68:0;;6599:2:1;9817:68:0;;;6581:21:1;6638:2;6618:18;;;6611:30;6677:34;6657:18;;;6650:62;-1:-1:-1;;;6728:18:1;;;6721:32;6770:19;;9817:68:0;6397:398:1;9817:68:0;-1:-1:-1;;;;;9896:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9948:32;;9628:25:1;;;9948:32:0;;9601:18:1;9948:32:0;;;;;;;9619:369;;;:::o;9996:2857::-;-1:-1:-1;;;;;10118:18:0;;10110:68;;;;-1:-1:-1;;;10110:68:0;;8531:2:1;10110:68:0;;;8513:21:1;8570:2;8550:18;;;8543:30;8609:34;8589:18;;;8582:62;-1:-1:-1;;;8660:18:1;;;8653:35;8705:19;;10110:68:0;8329:401:1;10110:68:0;-1:-1:-1;;;;;10197:16:0;;10189:64;;;;-1:-1:-1;;;10189:64:0;;5435:2:1;10189:64:0;;;5417:21:1;5474:2;5454:18;;;5447:30;5513:34;5493:18;;;5486:62;-1:-1:-1;;;5564:18:1;;;5557:33;5607:19;;10189:64:0;5233:399:1;10189:64:0;10281:1;10272:6;:10;10264:64;;;;-1:-1:-1;;;10264:64:0;;8121:2:1;10264:64:0;;;8103:21:1;8160:2;8140:18;;;8133:30;8199:34;8179:18;;;8172:62;-1:-1:-1;;;8250:18:1;;;8243:39;8299:19;;10264:64:0;7919:405:1;10264:64:0;-1:-1:-1;;;;;10348:13:0;;;;;;:9;:13;;;;;;;;10347:14;10339:40;;;;-1:-1:-1;;;10339:40:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10399:15:0;;;;;;:9;:15;;;;;;;;10398:16;10390:42;;;;-1:-1:-1;;;10390:42:0;;;;;;;:::i;:::-;711:10;10452:23;;;;:9;:23;;;;;;;;10451:24;10443:50;;;;-1:-1:-1;;;10443:50:0;;;;;;;:::i;:::-;1910:7;1937:6;-1:-1:-1;;;;;10510:15:0;;;1937:6;;10510:15;;;;:32;;-1:-1:-1;1910:7:0;1937:6;-1:-1:-1;;;;;10529:13:0;;;1937:6;;10529:13;;10510:32;10506:1491;;;10578:11;;-1:-1:-1;;;10578:11:0;;;;10573:87;;10610:34;;-1:-1:-1;;;10610:34:0;;5839:2:1;10610:34:0;;;5821:21:1;5878:2;5858:18;;;5851:30;5917:26;5897:18;;;5890:54;5961:18;;10610:34:0;5637:348:1;10573:87:0;10698:13;;-1:-1:-1;;;;;10692:19:0;;;10698:13;;10692:19;:55;;;;-1:-1:-1;10731:15:0;;-1:-1:-1;;;;;10715:32:0;;;10731:15;;10715:32;;10692:55;10688:275;;;-1:-1:-1;;;;;10772:19:0;;10786:4;10772:19;;;;:44;;-1:-1:-1;;;;;;10795:21:0;;10811:4;10795:21;;10772:44;:71;;;;-1:-1:-1;10826:17:0;;-1:-1:-1;;;;;10820:23:0;;;10826:17;;10820:23;;10772:71;:100;;;;-1:-1:-1;10855:17:0;;-1:-1:-1;;;;;10847:25:0;;;10855:17;;10847:25;;10772:100;10768:180;;;10915:12;;10905:6;:22;;10897:31;;;;;;10989:13;;-1:-1:-1;;;;;10983:19:0;;;10989:13;;10983:19;;;;:46;;-1:-1:-1;11012:17:0;;-1:-1:-1;;;;;11006:23:0;;;11012:17;;11006:23;;10983:46;:69;;;;-1:-1:-1;;;;;;11033:19:0;;11047:4;11033:19;;10983:69;:90;;;;-1:-1:-1;;;;;;11056:17:0;;6006:42;11056:17;;10983:90;10979:197;;;11127:14;;11118:6;11102:13;11112:2;11102:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11094:48;;;;;;11204:28;11235:24;11253:4;11235:9;:24::i;:::-;11312:19;;11204:55;;-1:-1:-1;11289:42:0;;;11364:18;;;;-1:-1:-1;11376:6:0;;-1:-1:-1;;;11376:6:0;;;;11375:7;11364:18;:43;;;;-1:-1:-1;11394:13:0;;-1:-1:-1;;;;;11386:21:0;;;11394:13;;11386:21;;11364:43;:58;;;;-1:-1:-1;11411:11:0;;-1:-1:-1;;;11411:11:0;;;;11364:58;:87;;;;-1:-1:-1;;;;;;11427:24:0;;;;;;:18;:24;;;;;;;;11426:25;11364:87;:114;;;;-1:-1:-1;;;;;;11456:22:0;;;;;;:18;:22;;;;;;;;11455:23;11364:114;11360:626;;;11545:8;;11499:19;;11545:12;11541:166;;11596:45;11635:5;11596:34;11621:8;;11596:20;:24;;:34;;;;:::i;:::-;:38;;:45::i;:::-;11582:59;;11664:23;11675:11;11664:10;:23::i;:::-;11725:52;11742:34;11765:11;11742:20;:34;:::i;:::-;11725:16;:52::i;:::-;11825:21;11869:22;;11865:106;;11916:35;11929:21;11916:12;:35::i;:::-;11480:506;;11360:626;10544:1453;;10506:1491;-1:-1:-1;;;;;12054:24:0;;12017:12;12054:24;;;:18;:24;;;;;;12032:4;;12054:24;;;:50;;-1:-1:-1;;;;;;12082:22:0;;;;;;:18;:22;;;;;;;;12054:50;12053:102;;;-1:-1:-1;12118:13:0;;-1:-1:-1;;;;;12110:21:0;;;12118:13;;12110:21;;;;:44;;-1:-1:-1;12141:13:0;;-1:-1:-1;;;;;12135:19:0;;;12141:13;;12135:19;;12110:44;12049:743;;;-1:-1:-1;12182:5:0;12049:743;;;12231:13;;-1:-1:-1;;;;;12223:21:0;;;12231:13;;12223:21;:55;;;;-1:-1:-1;12262:15:0;;-1:-1:-1;;;;;12248:30:0;;;12262:15;;12248:30;;12223:55;12220:350;;;-1:-1:-1;;;;;12303:11:0;;;;;;:7;:11;;;;;12317:15;12303:29;;;;12367:14;;12355:9;:26;12414:12;;12404:7;:22;12472:10;;12453:29;12449:106;;;-1:-1:-1;;;;;12511:13:0;;;;;;:9;:13;;;;;:20;;-1:-1:-1;;12511:20:0;12527:4;12511:20;;;12449:106;12600:13;;-1:-1:-1;;;;;12594:19:0;;;12600:13;;12594:19;:55;;;;-1:-1:-1;12633:15:0;;-1:-1:-1;;;;;12617:32:0;;;12633:15;;12617:32;;12594:55;12590:191;;;12704:15;;12692:9;:27;12752:13;;12742:7;:23;12590:191;12804:41;12819:4;12825:2;12829:6;12837:7;12804:14;:41::i;:::-;10099:2754;9996:2857;;;:::o;2858:224::-;2978:7;3014:12;3006:6;;;;2998:29;;;;-1:-1:-1;;;2998:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3038:9:0;3050:5;3054:1;3050;:5;:::i;:::-;3038:17;2858:224;-1:-1:-1;;;;;2858:224:0:o;13478:99::-;13535:17;;:34;;-1:-1:-1;;;;;13535:17:0;;;;:34;;;;;13562:6;;13535:17;:34;:17;:34;13562:6;13535:17;:34;;;;;;;;;;;;;;;;;;;8867:264;8962:7;9020;;9009;:18;;8987:51;;;;;;9049:19;9071:10;:8;:10::i;:::-;9049:32;-1:-1:-1;9099:24:0;:7;9049:32;9099:11;:24::i;:::-;9092:31;8867:264;-1:-1:-1;;;8867:264:0:o;12987:483::-;6497:6;:13;;-1:-1:-1;;;;6497:13:0;-1:-1:-1;;;6497:13:0;;;13089:16:::1;::::0;;13103:1:::1;13089:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13089:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13089:16:0::1;13065:40;;13134:4;13116;13121:1;13116:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13116:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13160:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13160:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13116:7;;13160:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13150:4;13155:1;13150:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13150:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13225:15:::1;::::0;13193:62:::1;::::0;13210:4:::1;::::0;13225:15:::1;13243:11:::0;13193:8:::1;:62::i;:::-;13266:15;::::0;:196:::1;::::0;-1:-1:-1;;;13266:196:0;;-1:-1:-1;;;;;13266:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13347:11;;13266:15:::1;::::0;13389:4;;13416::::1;::::0;13436:15:::1;::::0;13266:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6533:6:0;:14;;-1:-1:-1;;;;6533:14:0;;;-1:-1:-1;;;;12987:483:0:o;3090:246::-;3148:7;3172:6;3168:47;;-1:-1:-1;3202:1:0;3195:8;;3168:47;3225:9;3237:5;3241:1;3237;:5;:::i;:::-;3225:17;-1:-1:-1;3270:1:0;3261:5;3265:1;3225:17;3261:5;:::i;:::-;:10;3253:56;;;;-1:-1:-1;;;3253:56:0;;7358:2:1;3253:56:0;;;7340:21:1;7397:2;7377:18;;;7370:30;7436:34;7416:18;;;7409:62;-1:-1:-1;;;7487:18:1;;;7480:31;7528:19;;3253:56:0;7156:397:1;3344:132:0;3402:7;3429:39;3433:1;3436;3429:39;;;;;;;;;;;;;;;;;:3;:39::i;12861:118::-;12921:50;12939:4;6006:42;12959:11;12921:9;:50::i;14883:282::-;15039:7;15034:28;;15048:14;:12;:14::i;:::-;15073:44;15091:6;15099:9;15110:6;15073:17;:44::i;:::-;15133:7;15128:29;;15142:15;9512:17;;9500:9;:29;9550:15;;9540:7;:25;9587:16;;9576:8;:27;9456:155;17858:166;17900:7;17921:15;17938;17957:19;:17;:19::i;:::-;17920:56;;-1:-1:-1;17920:56:0;-1:-1:-1;17996:20:0;17920:56;;17996:11;:20::i;:::-;17989:27;;;;17858:166;:::o;3484:223::-;3604:7;3639:12;3632:5;3624:28;;;;-1:-1:-1;;;3624:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3663:9:0;3675:5;3679:1;3675;:5;:::i;9139:309::-;9186:9;;:14;:30;;;;-1:-1:-1;9204:7:0;;:12;9186:30;:47;;;;-1:-1:-1;9220:8:0;;:13;9186:47;9182:60;;;9139:309::o;9182:60::-;9278:9;;;9258:17;:29;9316:7;;;9298:15;:25;9353:8;;;9334:16;:27;-1:-1:-1;9382:13:0;;;;9406:11;;;;9428:12;9139:309::o;15173:610::-;15320:15;15350:23;15388:12;15415:23;15453:12;15480:13;15507:19;15518:7;15507:10;:19::i;:::-;-1:-1:-1;;;;;15555:15:0;;;;;;:7;:15;;;;;;15305:221;;-1:-1:-1;15305:221:0;;-1:-1:-1;15305:221:0;;-1:-1:-1;15305:221:0;-1:-1:-1;15305:221:0;-1:-1:-1;15305:221:0;-1:-1:-1;15555:28:0;;15305:221;15555:19;:28::i;:::-;-1:-1:-1;;;;;15537:15:0;;;;;;;:7;:15;;;;;;:46;;;;15615:18;;;;;;;:39;;15638:15;15615:22;:39::i;:::-;-1:-1:-1;;;;;15594:18:0;;;;;;:7;:18;;;;;:60;15665:16;15675:5;15665:9;:16::i;:::-;15692:23;15704:4;15710;15692:11;:23::i;:::-;15748:9;-1:-1:-1;;;;;15731:44:0;15740:6;-1:-1:-1;;;;;15731:44:0;;15759:15;15731:44;;;;9628:25:1;;9616:2;9601:18;;9482:177;15731:44:0;;;;;;;;15294:489;;;;;;15173:610;;;:::o;18032:263::-;18130:7;;18083;;;;5208:12;18198:20;18130:7;5208:12;18198:11;:20::i;:::-;18188:7;:30;18184:61;;;-1:-1:-1;;18228:7:0;;;5208:12;;-1:-1:-1;18032:263:0;-1:-1:-1;18032:263:0:o;18184:61::-;18270:7;;18279;;-1:-1:-1;18032:263:0;-1:-1:-1;18032:263:0:o;16202:625::-;16302:7;16324;16346;16368;16390;16412;16448:23;16473:12;16487:13;16517:40;16529:7;16538:9;;16549:7;;16517:11;:40::i;:::-;16447:110;;;;;;16568:19;16590:10;:8;:10::i;:::-;16568:32;;16612:15;16629:23;16654:12;16683:46;16695:7;16704:4;16710:5;16717:11;16683;:46::i;:::-;16611:118;;-1:-1:-1;16611:118:0;-1:-1:-1;16611:118:0;-1:-1:-1;16790:15:0;;-1:-1:-1;16807:4:0;;-1:-1:-1;16813:5:0;;-1:-1:-1;;;;;16202:625:0;;;;;;;:::o;2714:136::-;2772:7;2799:43;2803:1;2806;2799:43;;;;;;;;;;;;;;;;;:3;:43::i;2527:179::-;2585:7;;2617:5;2621:1;2617;:5;:::i;:::-;2605:17;;2646:1;2641;:6;;2633:46;;;;-1:-1:-1;;;2633:46:0;;7002:2:1;2633:46:0;;;6984:21:1;7041:2;7021:18;;;7014:30;7080:29;7060:18;;;7053:57;7127:18;;2633:46:0;6800:351:1;15791:211:0;15844:19;15866:10;:8;:10::i;:::-;15844:32;-1:-1:-1;15887:13:0;15903:22;:5;15844:32;15903:9;:22::i;:::-;15977:4;15961:22;;;;:7;:22;;;;;;15887:38;;-1:-1:-1;15961:33:0;;15887:38;15961:26;:33::i;:::-;15952:4;15936:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;15791:211:0:o;16010:147::-;16088:7;;:17;;16100:4;16088:11;:17::i;:::-;16078:7;:27;16129:10;;:20;;16144:4;16129:14;:20::i;:::-;16116:10;:33;-1:-1:-1;;16010:147:0:o;16835:471::-;17004:7;;;;17098:30;17124:3;17098:21;:7;17110:8;17098:11;:21::i;:30::-;17083:45;-1:-1:-1;17139:13:0;17155:28;17179:3;17155:19;:7;17167:6;17155:11;:19::i;:28::-;17139:44;-1:-1:-1;17194:23:0;17220:28;17139:44;17220:17;:7;17232:4;17220:11;:17::i;:::-;:21;;:28::i;:::-;17194:54;17286:4;;-1:-1:-1;17292:5:0;;-1:-1:-1;16835:471:0;;-1:-1:-1;;;;;16835:471:0:o;17314:536::-;17508:7;;;;17605:24;:7;17617:11;17605;:24::i;:::-;17587:42;-1:-1:-1;17640:12:0;17655:21;:4;17664:11;17655:8;:21::i;:::-;17640:36;-1:-1:-1;17687:13:0;17703:22;:5;17713:11;17703:9;:22::i;:::-;17687:38;-1:-1:-1;17736:23:0;17762:28;17687:38;17762:17;:7;17774:4;17762:11;:17::i;:28::-;17811:7;;;;-1:-1:-1;17837:4:0;;-1:-1:-1;17314:536:0;;-1:-1:-1;;;;;;;17314:536:0:o;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:52;;;281:1;278;271:12;233:52;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:52;;;544:1;541;534:12;496:52;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:52;;;806:1;803;796:12;758:52;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;661:388;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:52;;;1216:1;1213;1206:12;1168:52;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1054:456;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1054:456::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:52;;;1660:1;1657;1650:12;1612:52;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1515:315:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:34;;;2135:1;2132;2125:12;2105:34;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:55;;2240:1;2237;2230:12;2189:55;2276:2;2263:16;2298:2;2294;2291:10;2288:36;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:72;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:53:1;;;2735:1;2732;2725:12;2686:53;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1835:1132;-1:-1:-1;;;;;;;;1835:1132:1:o;2972:273::-;3028:6;3081:2;3069:9;3060:7;3056:23;3052:32;3049:52;;;3097:1;3094;3087:12;3049:52;3136:9;3123:23;3189:5;3182:13;3175:21;3168:5;3165:32;3155:60;;3211:1;3208;3201:12;3250:180;3309:6;3362:2;3350:9;3341:7;3337:23;3333:32;3330:52;;;3378:1;3375;3368:12;3330:52;-1:-1:-1;3401:23:1;;3250:180;-1:-1:-1;3250:180:1:o;3435:248::-;3503:6;3511;3564:2;3552:9;3543:7;3539:23;3535:32;3532:52;;;3580:1;3577;3570:12;3532:52;-1:-1:-1;;3603:23:1;;;3673:2;3658:18;;;3645:32;;-1:-1:-1;3435:248:1:o;4631:597::-;4743:4;4772:2;4801;4790:9;4783:21;4833:6;4827:13;4876:6;4871:2;4860:9;4856:18;4849:34;4901:1;4911:140;4925:6;4922:1;4919:13;4911:140;;;5020:14;;;5016:23;;5010:30;4986:17;;;5005:2;4982:26;4975:66;4940:10;;4911:140;;;5069:6;5066:1;5063:13;5060:91;;;5139:1;5134:2;5125:6;5114:9;5110:22;5106:31;5099:42;5060:91;-1:-1:-1;5212:2:1;5191:15;-1:-1:-1;;5187:29:1;5172:45;;;;5219:2;5168:54;;4631:597;-1:-1:-1;;;4631:597:1:o;7558:356::-;7760:2;7742:21;;;7779:18;;;7772:30;7838:34;7833:2;7818:18;;7811:62;7905:2;7890:18;;7558:356::o;8735:337::-;8937:2;8919:21;;;8976:2;8956:18;;;8949:30;-1:-1:-1;;;9010:2:1;8995:18;;8988:43;9063:2;9048:18;;8735:337::o;9664:980::-;9926:4;9974:3;9963:9;9959:19;10005:6;9994:9;9987:25;10031:2;10069:6;10064:2;10053:9;10049:18;10042:34;10112:3;10107:2;10096:9;10092:18;10085:31;10136:6;10171;10165:13;10202:6;10194;10187:22;10240:3;10229:9;10225:19;10218:26;;10279:2;10271:6;10267:15;10253:29;;10300:1;10310:195;10324:6;10321:1;10318:13;10310:195;;;10389:13;;-1:-1:-1;;;;;10385:39:1;10373:52;;10480:15;;;;10445:12;;;;10421:1;10339:9;10310:195;;;-1:-1:-1;;;;;;;10561:32:1;;;;10556:2;10541:18;;10534:60;-1:-1:-1;;;10625:3:1;10610:19;10603:35;10522:3;9664:980;-1:-1:-1;;;9664:980:1:o;10838:128::-;10878:3;10909:1;10905:6;10902:1;10899:13;10896:39;;;10915:18;;:::i;:::-;-1:-1:-1;10951:9:1;;10838:128::o;10971:217::-;11011:1;11037;11027:132;;11081:10;11076:3;11072:20;11069:1;11062:31;11116:4;11113:1;11106:15;11144:4;11141:1;11134:15;11027:132;-1:-1:-1;11173:9:1;;10971:217::o;11193:168::-;11233:7;11299:1;11295;11291:6;11287:14;11284:1;11281:21;11276:1;11269:9;11262:17;11258:45;11255:71;;;11306:18;;:::i;:::-;-1:-1:-1;11346:9:1;;11193:168::o;11366:125::-;11406:4;11434:1;11431;11428:8;11425:34;;;11439:18;;:::i;:::-;-1:-1:-1;11476:9:1;;11366:125::o;11496:135::-;11535:3;-1:-1:-1;;11556:17:1;;11553:43;;;11576:18;;:::i;:::-;-1:-1:-1;11623:1:1;11612:13;;11496:135::o;11636:127::-;11697:10;11692:3;11688:20;11685:1;11678:31;11728:4;11725:1;11718:15;11752:4;11749:1;11742:15;11768:127;11829:10;11824:3;11820:20;11817:1;11810:31;11860:4;11857:1;11850:15;11884:4;11881:1;11874:15;11900:127;11961:10;11956:3;11952:20;11949:1;11942:31;11992:4;11989:1;11982:15;12016:4;12013:1;12006:15;12032:131;-1:-1:-1;;;;;12107:31:1;;12097:42;;12087:70;;12153:1;12150;12143:12
Swarm Source
ipfs://9f602c8b1ab00813af42a1e04ccef8567ac6bb76ced053b129e9bbdd385aeb49
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.