ERC-20
Overview
Max Total Supply
1,000,000,000 🟪🐕
Holders
40
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,617,488.371973454 🟪🐕Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
PurpleDOGE
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-10 */ /** wow such memecoin so hyped very purple 🟪🐕 Telegram: https://t.me/purple_doge Twitter: https://twitter.com/PurpleDogeToken ⠀⠀⠀⠀⠀⠀⠀⠀⠀▄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀▄ ⠀⠀⠀⠀⠀⠀⠀⠀▌▒█⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀▄▀▒▌ ⠀⠀⠀⠀⠀⠀⠀⠀▌▒▒█⠀⠀⠀⠀⠀⠀⠀⠀▄▀▒▒▒▐ ⠀⠀wow⠀⠀▐▄█▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐ ⠀⠀⠀⠀⠀▄▄▀▒▒▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐ ⠀⠀⠀▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒⠀▌ ⠀⠀▐▒▒▒▄▄▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▀▄▒▌ ⠀⠀ ▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐ ⠀▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄▌ ⠀▌░▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒▌ ▌▒▒▒▄██▄▒▒▒▒▒▒▒▒░░░░░░░░▒▒▒▐ ▐▒▒▐▄█▄█▌▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▒▒▌ ▐▒▒▐▀▐▀▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒░▒▒▐ very colorful ⠀▌▒▒▀▄▄▄▄▄▄▒▒▒▒▒▒▒▒░▒░▒░▒▒▒▌ ⠀▐▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒▒▄▒▒▐ ⠀⠀▀▄▒▒▒▒▒▒▒▒▒▒▒▒▒░▒░▒▄▒▒▒▒▌ ⠀⠀⠀⠀▀▄▒▒▒▒▒▒▒▒▒▒▄▄▄▀▒▒▒▒▄▀ much purple ⠀⠀⠀⠀⠀⠀▀▄▄▄▄▄▄▀▀▀▒▒▒▒▒▄▄▀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀▀▀▀▀▀▀▀▀▀▀▀▀ **/ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; 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; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract PurpleDOGE is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = true; address payable private _taxWallet; uint256 private _initialBuyTax = 17; uint256 private _initialSellTax = 17; uint256 private _finalBuyTax = 2; uint256 private _finalSellTax = 2; uint256 private _reduceBuyTaxAt = 7; uint256 private _reduceSellTaxAt = 7; uint256 private _preventSwapBefore = 7; uint256 private _buyCount = 0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 1000000000 * 10**_decimals; string private constant _name = "Purple Doge"; string private constant _symbol = unicode"🟪🐕"; uint256 public _maxTxAmount = _tTotal.mul(20).div(1000); uint256 public _maxWalletSize = _tTotal.mul(40).div(1000); uint256 public _taxSwapThreshold = _tTotal.mul(20).div(1000); uint256 public _maxTaxSwap = _tTotal.mul(20).div(1000); IUniswapV2Router02 private uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = false; event _maxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; uint256 devBalance = _tTotal.mul(4).div(100); uint256 contractBalance = _tTotal.sub(devBalance); _balances[_msgSender()] = devBalance; emit Transfer(address(0), _msgSender(), devBalance); _balances[address(this)] = contractBalance; emit Transfer(address(0), address(this), contractBalance); _approve(address(this), address(uniswapV2Router), _tTotal); 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 _balances[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 buyCount() public view returns (uint256) { return _buyCount; } function sellTax() public view returns (uint256) { return (_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax; } function buyTax() public view returns (uint256) { return (_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax; } 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"); uint256 taxAmount=0; if (from != owner() && to != owner()) { taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require( _holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed." ); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the _maxWalletSize."); _buyCount++; } if(to == uniswapV2Pair && from!= address(this) ){ taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } 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 removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; transferDelayEnabled = false; emit _maxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function openTrading() external payable onlyOwner { require(!tradingOpen,"trading is already open"); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } function reduceFee(uint256 _newFee) external onlyOwner { require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax); _finalBuyTax=_newFee; _finalSellTax=_newFee; } receive() external payable {} function manualSwap() external onlyOwner { uint256 tokenBalance = balanceOf(address(this)); if(tokenBalance > 0) { swapTokensForEth(tokenBalance); } uint256 ethBalance = address(this).balance; if(ethBalance > 0) { sendETHToFee(ethBalance); } } function rescueTokens(address token) external { require(token != address(this)); IERC20(token).transfer(_taxWallet, IERC20(token).balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"_maxTxAmountUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526005805460ff19166001179055601160068190556007908155600260088190556009908155600a828155600b839055600c929092555f600d5562000077916103e8916200007091601491620000599162000807565b6200006990633b9aca0062000817565b9062000440565b90620004d3565b600e55620000956103e8620000706028620000596009600a62000807565b600f55620000b36103e8620000706014620000596009600a62000807565b601055620000d16103e8620000706014620000596009600a62000807565b601155601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556013805462ffffff60a01b1916905534801562000115575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b031916336101009081029190911782555f80546001600160a01b03908116825260036020526040808320805460ff1990811660019081179092553085528285208054821683179055955494909404909116825281208054909316909117909155620001dc6064620000706004620000596009600a62000807565b90505f6200020982620001f26009600a62000807565b6200020290633b9aca0062000817565b906200051c565b335f81815260016020908152604080832087905551868152939450919290915f80516020620021bd833981519152910160405180910390a3305f818152600160209081526040808320859055518481525f80516020620021bd833981519152910160405180910390a3601254620002a99030906001600160a01b0316620002936009600a62000807565b620002a390633b9aca0062000817565b62000565565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000320919062000831565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000380573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003a6919062000831565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620003f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000417919062000831565b601380546001600160a01b0319166001600160a01b039290921691909117905550620008dc9050565b5f825f036200045157505f620004cd565b5f6200045e838562000817565b9050826200046d858362000859565b14620004ca5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620004ca83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200068c60201b60201c565b5f620004ca83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620006c660201b60201c565b6001600160a01b038316620005c95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620004c1565b6001600160a01b0382166200062c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620004c1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8183620006af5760405162461bcd60e51b8152600401620004c1919062000879565b505f620006bd848662000859565b95945050505050565b5f8184841115620006ec5760405162461bcd60e51b8152600401620004c1919062000879565b505f620006bd8486620008c6565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200074e57815f1904821115620007325762000732620006fa565b808516156200074057918102915b93841c939080029062000713565b509250929050565b5f826200076657506001620004cd565b816200077457505f620004cd565b81600181146200078d57600281146200079857620007b8565b6001915050620004cd565b60ff841115620007ac57620007ac620006fa565b50506001821b620004cd565b5060208310610133831016604e8410600b8410161715620007dd575081810a620004cd565b620007e983836200070e565b805f1904821115620007ff57620007ff620006fa565b029392505050565b5f620004ca60ff84168362000756565b8082028115828204841417620004cd57620004cd620006fa565b5f6020828403121562000842575f80fd5b81516001600160a01b0381168114620004ca575f80fd5b5f826200087457634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020808352835180828501525f5b81811015620008a65785810183015185820160400152820162000888565b505f604082860101526040601f19601f8301168501019250505092915050565b81810381811115620004cd57620004cd620006fa565b6118d380620008ea5f395ff3fe608060405260043610610163575f3560e01c8063751039fc116100cd578063bf474bed11610087578063ca70307511610062578063ca703075146103fa578063cc1776d31461040e578063dd62ed3e14610422578063ec1f3f6314610466575f80fd5b8063bf474bed146103c4578063c876d0b9146103d9578063c9567bf9146103f2575f80fd5b8063751039fc1461031b5780637d1db4a51461032f5780638da5cb5b146103445780638f9a55c01461036057806395d89b4114610375578063a9059cbb146103a5575f80fd5b8063313ce5671161011e578063313ce5671461025957806349bd5a5e146102745780634f7041a5146102ab57806351bc3c85146102bf57806370a08231146102d3578063715018a614610307575f80fd5b8062ae3bf81461016e57806306fdde031461018f578063095ea7b3146101d45780630faee56f1461020357806318160ddd1461022657806323b872dd1461023a575f80fd5b3661016a57005b5f80fd5b348015610179575f80fd5b5061018d6101883660046114af565b610485565b005b34801561019a575f80fd5b5060408051808201909152600b81526a507572706c6520446f676560a81b60208201525b6040516101cb91906114ca565b60405180910390f35b3480156101df575f80fd5b506101f36101ee366004611515565b610585565b60405190151581526020016101cb565b34801561020e575f80fd5b5061021860115481565b6040519081526020016101cb565b348015610231575f80fd5b5061021861059b565b348015610245575f80fd5b506101f361025436600461153f565b6105bb565b348015610264575f80fd5b50604051600981526020016101cb565b34801561027f575f80fd5b50601354610293906001600160a01b031681565b6040516001600160a01b0390911681526020016101cb565b3480156102b6575f80fd5b50610218610622565b3480156102ca575f80fd5b5061018d61063c565b3480156102de575f80fd5b506102186102ed3660046114af565b6001600160a01b03165f9081526001602052604090205490565b348015610312575f80fd5b5061018d61069c565b348015610326575f80fd5b5061018d61070d565b34801561033a575f80fd5b50610218600e5481565b34801561034f575f80fd5b505f546001600160a01b0316610293565b34801561036b575f80fd5b50610218600f5481565b348015610380575f80fd5b50604080518082019091526008815267f09f9faaf09f909560c01b60208201526101be565b3480156103b0575f80fd5b506101f36103bf366004611515565b6107c8565b3480156103cf575f80fd5b5061021860105481565b3480156103e4575f80fd5b506005546101f39060ff1681565b61018d6107d4565b348015610405575f80fd5b50600d54610218565b348015610419575f80fd5b506102186109b9565b34801561042d575f80fd5b5061021861043c36600461157d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610471575f80fd5b5061018d6104803660046115b4565b6109d3565b306001600160a01b03821603610499575f80fd5b6005546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb926101009091049091169083906370a0823190602401602060405180830381865afa1580156104f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051591906115cb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561055d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058191906115e2565b5050565b5f610591338484610a22565b5060015b92915050565b5f6105a86009600a6116f5565b6105b690633b9aca00611703565b905090565b5f6105c7848484610b45565b610618843361061385604051806060016040528060288152602001611876602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611110565b610a22565b5060019392505050565b5f600a54600d5411610635575060065490565b5060085490565b5f546001600160a01b0316331461066e5760405162461bcd60e51b81526004016106659061171a565b60405180910390fd5b305f90815260016020526040902054801561068c5761068c81611148565b47801561058157610581816112b8565b5f546001600160a01b031633146106c55760405162461bcd60e51b81526004016106659061171a565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107365760405162461bcd60e51b81526004016106659061171a565b6107426009600a6116f5565b61075090633b9aca00611703565b600e5561075f6009600a6116f5565b61076d90633b9aca00611703565b600f556005805460ff191690557f9db9a6bb34668471bb42c5125336636b21681b762cc518e445a94386af2d44376107a76009600a6116f5565b6107b590633b9aca00611703565b60405190815260200160405180910390a1565b5f610591338484610b45565b5f546001600160a01b031633146107fd5760405162461bcd60e51b81526004016106659061171a565b601354600160a01b900460ff16156108575760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610665565b6012546001600160a01b031663f305d7194730610888816001600160a01b03165f9081526001602052604090205490565b5f8061089b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610901573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610926919061174f565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561097b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099f91906115e2565b506013805462ff00ff60a01b19166201000160a01b179055565b5f600b54600d54116109cc575060075490565b5060095490565b5f546001600160a01b031633146109fc5760405162461bcd60e51b81526004016106659061171a565b6008548111158015610a1057506009548111155b610a18575f80fd5b6008819055600955565b6001600160a01b038316610a845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610665565b6001600160a01b038216610ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610665565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ba95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610665565b6001600160a01b038216610c0b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610665565b5f8111610c6c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610665565b5f80546001600160a01b03858116911614801590610c9757505f546001600160a01b03848116911614155b15610fd357610cc86064610cc2600a54600d5411610cb757600654610cbb565b6008545b85906112f3565b90611378565b60055490915060ff1615610dae576012546001600160a01b03848116911614801590610d0257506013546001600160a01b03848116911614155b15610dae57325f908152600460205260409020544311610d9c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610665565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610dd957506012546001600160a01b03848116911614155b8015610dfd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ee357600e54821115610e545760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610665565b600f5482610e76856001600160a01b03165f9081526001602052604090205490565b610e80919061177a565b1115610ece5760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610665565b600d8054905f610edd8361178d565b91905055505b6013546001600160a01b038481169116148015610f0957506001600160a01b0384163014155b15610f3657610f336064610cc2600b54600d5411610f2957600754610cbb565b60095485906112f3565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610f6c57506013546001600160a01b038581169116145b8015610f815750601354600160b01b900460ff165b8015610f8e575060105481115b8015610f9d5750600c54600d54115b15610fd157610fbf610fba84610fb5846011546113b9565b6113b9565b611148565b478015610fcf57610fcf476112b8565b505b505b801561104b57305f90815260016020526040902054610ff290826113cd565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110429085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461106d908361142b565b6001600160a01b0385165f908152600160205260409020556110b0611092838361142b565b6001600160a01b0385165f90815260016020526040902054906113cd565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110f9858561142b565b60405190815260200160405180910390a350505050565b5f81848411156111335760405162461bcd60e51b815260040161066591906114ca565b505f61113f84866117a5565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061118e5761118e6117b8565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120991906117cc565b8160018151811061121c5761121c6117b8565b6001600160a01b0392831660209182029290920101526012546112429130911684610a22565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061127a9085905f908690309042906004016117e7565b5f604051808303815f87803b158015611291575f80fd5b505af11580156112a3573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610581573d5f803e3d5ffd5b5f825f0361130257505f610595565b5f61130d8385611703565b90508261131a8583611856565b146113715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610665565b9392505050565b5f61137183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061146c565b5f8183116113c75782611371565b50919050565b5f806113d9838561177a565b9050838110156113715760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610665565b5f61137183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611110565b5f818361148c5760405162461bcd60e51b815260040161066591906114ca565b505f61113f8486611856565b6001600160a01b03811681146114ac575f80fd5b50565b5f602082840312156114bf575f80fd5b813561137181611498565b5f6020808352835180828501525f5b818110156114f5578581018301518582016040015282016114d9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611526575f80fd5b823561153181611498565b946020939093013593505050565b5f805f60608486031215611551575f80fd5b833561155c81611498565b9250602084013561156c81611498565b929592945050506040919091013590565b5f806040838503121561158e575f80fd5b823561159981611498565b915060208301356115a981611498565b809150509250929050565b5f602082840312156115c4575f80fd5b5035919050565b5f602082840312156115db575f80fd5b5051919050565b5f602082840312156115f2575f80fd5b81518015158114611371575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561164f57815f190482111561163557611635611601565b8085161561164257918102915b93841c939080029061161a565b509250929050565b5f8261166557506001610595565b8161167157505f610595565b81600181146116875760028114611691576116ad565b6001915050610595565b60ff8411156116a2576116a2611601565b50506001821b610595565b5060208310610133831016604e8410600b84101617156116d0575081810a610595565b6116da8383611615565b805f19048211156116ed576116ed611601565b029392505050565b5f61137160ff841683611657565b808202811582820484141761059557610595611601565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611761575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561059557610595611601565b5f6001820161179e5761179e611601565b5060010190565b8181038181111561059557610595611601565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156117dc575f80fd5b815161137181611498565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118355784516001600160a01b031683529383019391830191600101611810565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261187057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206abea91648c511d90a2af1ba4f73f457f1793c95a3c8b332474b787195602a3664736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x608060405260043610610163575f3560e01c8063751039fc116100cd578063bf474bed11610087578063ca70307511610062578063ca703075146103fa578063cc1776d31461040e578063dd62ed3e14610422578063ec1f3f6314610466575f80fd5b8063bf474bed146103c4578063c876d0b9146103d9578063c9567bf9146103f2575f80fd5b8063751039fc1461031b5780637d1db4a51461032f5780638da5cb5b146103445780638f9a55c01461036057806395d89b4114610375578063a9059cbb146103a5575f80fd5b8063313ce5671161011e578063313ce5671461025957806349bd5a5e146102745780634f7041a5146102ab57806351bc3c85146102bf57806370a08231146102d3578063715018a614610307575f80fd5b8062ae3bf81461016e57806306fdde031461018f578063095ea7b3146101d45780630faee56f1461020357806318160ddd1461022657806323b872dd1461023a575f80fd5b3661016a57005b5f80fd5b348015610179575f80fd5b5061018d6101883660046114af565b610485565b005b34801561019a575f80fd5b5060408051808201909152600b81526a507572706c6520446f676560a81b60208201525b6040516101cb91906114ca565b60405180910390f35b3480156101df575f80fd5b506101f36101ee366004611515565b610585565b60405190151581526020016101cb565b34801561020e575f80fd5b5061021860115481565b6040519081526020016101cb565b348015610231575f80fd5b5061021861059b565b348015610245575f80fd5b506101f361025436600461153f565b6105bb565b348015610264575f80fd5b50604051600981526020016101cb565b34801561027f575f80fd5b50601354610293906001600160a01b031681565b6040516001600160a01b0390911681526020016101cb565b3480156102b6575f80fd5b50610218610622565b3480156102ca575f80fd5b5061018d61063c565b3480156102de575f80fd5b506102186102ed3660046114af565b6001600160a01b03165f9081526001602052604090205490565b348015610312575f80fd5b5061018d61069c565b348015610326575f80fd5b5061018d61070d565b34801561033a575f80fd5b50610218600e5481565b34801561034f575f80fd5b505f546001600160a01b0316610293565b34801561036b575f80fd5b50610218600f5481565b348015610380575f80fd5b50604080518082019091526008815267f09f9faaf09f909560c01b60208201526101be565b3480156103b0575f80fd5b506101f36103bf366004611515565b6107c8565b3480156103cf575f80fd5b5061021860105481565b3480156103e4575f80fd5b506005546101f39060ff1681565b61018d6107d4565b348015610405575f80fd5b50600d54610218565b348015610419575f80fd5b506102186109b9565b34801561042d575f80fd5b5061021861043c36600461157d565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610471575f80fd5b5061018d6104803660046115b4565b6109d3565b306001600160a01b03821603610499575f80fd5b6005546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb926101009091049091169083906370a0823190602401602060405180830381865afa1580156104f1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061051591906115cb565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561055d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058191906115e2565b5050565b5f610591338484610a22565b5060015b92915050565b5f6105a86009600a6116f5565b6105b690633b9aca00611703565b905090565b5f6105c7848484610b45565b610618843361061385604051806060016040528060288152602001611876602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611110565b610a22565b5060019392505050565b5f600a54600d5411610635575060065490565b5060085490565b5f546001600160a01b0316331461066e5760405162461bcd60e51b81526004016106659061171a565b60405180910390fd5b305f90815260016020526040902054801561068c5761068c81611148565b47801561058157610581816112b8565b5f546001600160a01b031633146106c55760405162461bcd60e51b81526004016106659061171a565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107365760405162461bcd60e51b81526004016106659061171a565b6107426009600a6116f5565b61075090633b9aca00611703565b600e5561075f6009600a6116f5565b61076d90633b9aca00611703565b600f556005805460ff191690557f9db9a6bb34668471bb42c5125336636b21681b762cc518e445a94386af2d44376107a76009600a6116f5565b6107b590633b9aca00611703565b60405190815260200160405180910390a1565b5f610591338484610b45565b5f546001600160a01b031633146107fd5760405162461bcd60e51b81526004016106659061171a565b601354600160a01b900460ff16156108575760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610665565b6012546001600160a01b031663f305d7194730610888816001600160a01b03165f9081526001602052604090205490565b5f8061089b5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610901573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610926919061174f565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af115801561097b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061099f91906115e2565b506013805462ff00ff60a01b19166201000160a01b179055565b5f600b54600d54116109cc575060075490565b5060095490565b5f546001600160a01b031633146109fc5760405162461bcd60e51b81526004016106659061171a565b6008548111158015610a1057506009548111155b610a18575f80fd5b6008819055600955565b6001600160a01b038316610a845760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610665565b6001600160a01b038216610ae55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610665565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ba95760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610665565b6001600160a01b038216610c0b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610665565b5f8111610c6c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610665565b5f80546001600160a01b03858116911614801590610c9757505f546001600160a01b03848116911614155b15610fd357610cc86064610cc2600a54600d5411610cb757600654610cbb565b6008545b85906112f3565b90611378565b60055490915060ff1615610dae576012546001600160a01b03848116911614801590610d0257506013546001600160a01b03848116911614155b15610dae57325f908152600460205260409020544311610d9c5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610665565b325f9081526004602052604090204390555b6013546001600160a01b038581169116148015610dd957506012546001600160a01b03848116911614155b8015610dfd57506001600160a01b0383165f9081526003602052604090205460ff16155b15610ee357600e54821115610e545760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610665565b600f5482610e76856001600160a01b03165f9081526001602052604090205490565b610e80919061177a565b1115610ece5760405162461bcd60e51b815260206004820152601b60248201527f4578636565647320746865205f6d617857616c6c657453697a652e00000000006044820152606401610665565b600d8054905f610edd8361178d565b91905055505b6013546001600160a01b038481169116148015610f0957506001600160a01b0384163014155b15610f3657610f336064610cc2600b54600d5411610f2957600754610cbb565b60095485906112f3565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610f6c57506013546001600160a01b038581169116145b8015610f815750601354600160b01b900460ff165b8015610f8e575060105481115b8015610f9d5750600c54600d54115b15610fd157610fbf610fba84610fb5846011546113b9565b6113b9565b611148565b478015610fcf57610fcf476112b8565b505b505b801561104b57305f90815260016020526040902054610ff290826113cd565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110429085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461106d908361142b565b6001600160a01b0385165f908152600160205260409020556110b0611092838361142b565b6001600160a01b0385165f90815260016020526040902054906113cd565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110f9858561142b565b60405190815260200160405180910390a350505050565b5f81848411156111335760405162461bcd60e51b815260040161066591906114ca565b505f61113f84866117a5565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061118e5761118e6117b8565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120991906117cc565b8160018151811061121c5761121c6117b8565b6001600160a01b0392831660209182029290920101526012546112429130911684610a22565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061127a9085905f908690309042906004016117e7565b5f604051808303815f87803b158015611291575f80fd5b505af11580156112a3573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610581573d5f803e3d5ffd5b5f825f0361130257505f610595565b5f61130d8385611703565b90508261131a8583611856565b146113715760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610665565b9392505050565b5f61137183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061146c565b5f8183116113c75782611371565b50919050565b5f806113d9838561177a565b9050838110156113715760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610665565b5f61137183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611110565b5f818361148c5760405162461bcd60e51b815260040161066591906114ca565b505f61113f8486611856565b6001600160a01b03811681146114ac575f80fd5b50565b5f602082840312156114bf575f80fd5b813561137181611498565b5f6020808352835180828501525f5b818110156114f5578581018301518582016040015282016114d9565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215611526575f80fd5b823561153181611498565b946020939093013593505050565b5f805f60608486031215611551575f80fd5b833561155c81611498565b9250602084013561156c81611498565b929592945050506040919091013590565b5f806040838503121561158e575f80fd5b823561159981611498565b915060208301356115a981611498565b809150509250929050565b5f602082840312156115c4575f80fd5b5035919050565b5f602082840312156115db575f80fd5b5051919050565b5f602082840312156115f2575f80fd5b81518015158114611371575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561164f57815f190482111561163557611635611601565b8085161561164257918102915b93841c939080029061161a565b509250929050565b5f8261166557506001610595565b8161167157505f610595565b81600181146116875760028114611691576116ad565b6001915050610595565b60ff8411156116a2576116a2611601565b50506001821b610595565b5060208310610133831016604e8410600b84101617156116d0575081810a610595565b6116da8383611615565b805f19048211156116ed576116ed611601565b029392505050565b5f61137160ff841683611657565b808202811582820484141761059557610595611601565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f805f60608486031215611761575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561059557610595611601565b5f6001820161179e5761179e611601565b5060010190565b8181038181111561059557610595611601565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156117dc575f80fd5b815161137181611498565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156118355784516001600160a01b031683529383019391830191600101611810565b50506001600160a01b03969096166060850152505050608001529392505050565b5f8261187057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206abea91648c511d90a2af1ba4f73f457f1793c95a3c8b332474b787195602a3664736f6c63430008140033
Deployed Bytecode Sourcemap
5195:8916:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13927:181;;;;;;;;;;-1:-1:-1;13927:181:0;;;;;:::i;:::-;;:::i;:::-;;7615:83;;;;;;;;;;-1:-1:-1;7685:5:0;;;;;;;;;;;;-1:-1:-1;;;7685:5:0;;;;7615:83;;;;;;;:::i;:::-;;;;;;;;8448:161;;;;;;;;;;-1:-1:-1;8448:161:0;;;;;:::i;:::-;;:::i;:::-;;;1440:14:1;;1433:22;1415:41;;1403:2;1388:18;8448:161:0;1275:187:1;6377:54:0;;;;;;;;;;;;;;;;;;;1613:25:1;;;1601:2;1586:18;6377:54:0;1467:177:1;7892:95:0;;;;;;;;;;;;;:::i;8617:313::-;;;;;;;;;;-1:-1:-1;8617:313:0;;;;;:::i;:::-;;:::i;7801:83::-;;;;;;;;;;-1:-1:-1;7801:83:0;;5998:1;2252:36:1;;2240:2;2225:18;7801:83:0;2110:184:1;6554:28:0;;;;;;;;;;-1:-1:-1;6554:28:0;;;;-1:-1:-1;;;;;6554:28:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6554:28:0;2299:203:1;9172:129:0;;;;;;;;;;;;;:::i;13591:328::-;;;;;;;;;;;;;:::i;7995:119::-;;;;;;;;;;-1:-1:-1;7995:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8088:18:0;8061:7;8088:18;;;:9;:18;;;;;;;7995:119;4276:148;;;;;;;;;;;;;:::i;12638:201::-;;;;;;;;;;;;;:::i;6184:55::-;;;;;;;;;;;;;;;;4062:79;;;;;;;;;;-1:-1:-1;4100:7:0;4127:6;-1:-1:-1;;;;;4127:6:0;4062:79;;6246:57;;;;;;;;;;;;;;;;7706:87;;;;;;;;;;-1:-1:-1;7778:7:0;;;;;;;;;;;;-1:-1:-1;;;7778:7:0;;;;7706:87;;8122:167;;;;;;;;;;-1:-1:-1;8122:167:0;;;;;:::i;:::-;;:::i;6310:60::-;;;;;;;;;;;;;;;;5542:39;;;;;;;;;;-1:-1:-1;5542:39:0;;;;;;;;12947:398;;;:::i;8938:85::-;;;;;;;;;;-1:-1:-1;9006:9:0;;8938:85;;9031:133;;;;;;;;;;;;;:::i;8297:143::-;;;;;;;;;;-1:-1:-1;8297:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8405:18:0;;;8378:7;8405:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8297:143;13353:193;;;;;;;;;;-1:-1:-1;13353:193:0;;;;;:::i;:::-;;:::i;13927:181::-;14009:4;-1:-1:-1;;;;;13992:22:0;;;13984:31;;;;;;14049:10;;14061:38;;-1:-1:-1;;;14061:38:0;;14093:4;14061:38;;;2445:51:1;-1:-1:-1;;;;;14026:22:0;;;;;;14049:10;;;;;;;;14026:22;;14061:23;;2418:18:1;;14061:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14026:74;;-1:-1:-1;;;;;;14026:74:0;;;;;;;-1:-1:-1;;;;;3474:32:1;;;14026:74:0;;;3456:51:1;3523:18;;;3516:34;3429:18;;14026:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13927:181;:::o;8448:161::-;8523:4;8540:39;1897:10;8563:7;8572:6;8540:8;:39::i;:::-;-1:-1:-1;8597:4:0;8448:161;;;;;:::o;7892:95::-;7945:7;6054:13;5998:1;6054:2;:13;:::i;:::-;6041:26;;:10;:26;:::i;:::-;7965:14;;7892:95;:::o;8617:313::-;8715:4;8732:36;8742:6;8750:9;8761:6;8732:9;:36::i;:::-;8779:121;8788:6;1897:10;8810:89;8848:6;8810:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8810:19:0;;;;;;:11;:19;;;;;;;;1897:10;8810:33;;;;;;;;;;:37;:89::i;:::-;8779:8;:121::i;:::-;-1:-1:-1;8918:4:0;8617:313;;;;;:::o;9172:129::-;9211:7;9249:15;;9239:9;;:25;9238:55;;-1:-1:-1;9279:14:0;;;7892:95::o;9238:55::-;-1:-1:-1;9266:12:0;;;9172:129::o;13591:328::-;4189:6;;-1:-1:-1;;;;;4189:6:0;1897:10;4189:22;4181:67;;;;-1:-1:-1;;;4181:67:0;;;;;;;:::i;:::-;;;;;;;;;13684:4:::1;13643:20;8088:18:::0;;;:9;:18;;;;;;13704:16;;13701:78:::1;;13737:30;13754:12;13737:16;:30::i;:::-;13810:21;13845:14:::0;;13842:70:::1;;13876:24;13889:10;13876:12;:24::i;4276:148::-:0;4189:6;;-1:-1:-1;;;;;4189:6:0;1897:10;4189:22;4181:67;;;;-1:-1:-1;;;4181:67:0;;;;;;;:::i;:::-;4383:1:::1;4367:6:::0;;4346:40:::1;::::0;-1:-1:-1;;;;;4367:6:0;;::::1;::::0;4346:40:::1;::::0;4383:1;;4346:40:::1;4414:1;4397:19:::0;;-1:-1:-1;;;;;;4397:19:0::1;::::0;;4276:148::o;12638:201::-;4189:6;;-1:-1:-1;;;;;4189:6:0;1897:10;4189:22;4181:67;;;;-1:-1:-1;;;4181:67:0;;;;;;;:::i;:::-;6054:13:::1;5998:1;6054:2;:13;:::i;:::-;6041:26;::::0;:10:::1;:26;:::i;:::-;12691:12;:22:::0;6054:13:::1;5998:1;6054:2;:13;:::i;:::-;6041:26;::::0;:10:::1;:26;:::i;:::-;12724:14;:24:::0;12759:20:::1;:28:::0;;-1:-1:-1;;12759:28:0::1;::::0;;12803::::1;6054:13;5998:1;-1:-1:-1::0;6054:13:0::1;:::i;:::-;6041:26;::::0;:10:::1;:26;:::i;:::-;12803:28;::::0;1613:25:1;;;1601:2;1586:18;12803:28:0::1;;;;;;;12638:201::o:0;8122:167::-;8200:4;8217:42;1897:10;8241:9;8252:6;8217:9;:42::i;12947:398::-;4189:6;;-1:-1:-1;;;;;4189:6:0;1897:10;4189:22;4181:67;;;;-1:-1:-1;;;4181:67:0;;;;;;;:::i;:::-;13017:11:::1;::::0;-1:-1:-1;;;13017:11:0;::::1;;;13016:12;13008:47;;;::::0;-1:-1:-1;;;13008:47:0;;6094:2:1;13008:47:0::1;::::0;::::1;6076:21:1::0;6133:2;6113:18;;;6106:30;6172:25;6152:18;;;6145:53;6215:18;;13008:47:0::1;5892:347:1::0;13008:47:0::1;13068:15;::::0;-1:-1:-1;;;;;13068:15:0::1;:31;13107:21;13138:4;13144:24;13138:4:::0;-1:-1:-1;;;;;8088:18:0;8061:7;8088:18;;;:9;:18;;;;;;;7995:119;13144:24:::1;13169:1;13171::::0;13173:7:::1;4100::::0;4127:6;-1:-1:-1;;;;;4127:6:0;;4062:79;13173:7:::1;13068:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13068:129:0;;;-1:-1:-1;;;;;6603:15:1;;;13068:129:0::1;::::0;::::1;6585:34:1::0;6635:18;;;6628:34;;;;6678:18;;;6671:34;;;;6721:18;;;6714:34;6785:15;;;6764:19;;;6757:44;13181:15:0::1;6817:19:1::0;;;6810:35;6519:19;;13068:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13215:13:0::1;::::0;13246:15:::1;::::0;13208:71:::1;::::0;-1:-1:-1;;;13208:71:0;;-1:-1:-1;;;;;13246:15:0;;::::1;13208:71;::::0;::::1;3456:51:1::0;-1:-1:-1;;3523:18:1;;;3516:34;13215:13:0;::::1;::::0;-1:-1:-1;13208:29:0::1;::::0;3429:18:1;;13208:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13290:11:0::1;:18:::0;;-1:-1:-1;;;;13319:18:0;-1:-1:-1;;;13319:18:0;;;12947:398::o;9031:133::-;9071:7;9109:16;;9099:9;;:26;9098:58;;-1:-1:-1;9141:15:0;;;7892:95::o;9098:58::-;-1:-1:-1;9127:13:0;;;9031:133::o;13353:193::-;4189:6;;-1:-1:-1;;;;;4189:6:0;1897:10;4189:22;4181:67;;;;-1:-1:-1;;;4181:67:0;;;;;;;:::i;:::-;13436:12:::1;;13427:7;:21;;:47;;;;;13461:13;;13452:7;:22;;13427:47;13419:56;;;::::0;::::1;;13486:12;:20:::0;;;13517:13:::1;:21:::0;13353:193::o;9309:335::-;-1:-1:-1;;;;;9402:19:0;;9394:68;;;;-1:-1:-1;;;9394:68:0;;7648:2:1;9394:68:0;;;7630:21:1;7687:2;7667:18;;;7660:30;7726:34;7706:18;;;7699:62;-1:-1:-1;;;7777:18:1;;;7770:34;7821:19;;9394:68:0;7446:400:1;9394:68:0;-1:-1:-1;;;;;9481:21:0;;9473:68;;;;-1:-1:-1;;;9473:68:0;;8053:2:1;9473:68:0;;;8035:21:1;8092:2;8072:18;;;8065:30;8131:34;8111:18;;;8104:62;-1:-1:-1;;;8182:18:1;;;8175:32;8224:19;;9473:68:0;7851:398:1;9473:68:0;-1:-1:-1;;;;;9552:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9604:32;;1613:25:1;;;9604:32:0;;1586:18:1;9604:32:0;;;;;;;9309:335;;;:::o;9652:2379::-;-1:-1:-1;;;;;9740:18:0;;9732:68;;;;-1:-1:-1;;;9732:68:0;;8456:2:1;9732:68:0;;;8438:21:1;8495:2;8475:18;;;8468:30;8534:34;8514:18;;;8507:62;-1:-1:-1;;;8585:18:1;;;8578:35;8630:19;;9732:68:0;8254:401:1;9732:68:0;-1:-1:-1;;;;;9819:16:0;;9811:64;;;;-1:-1:-1;;;9811:64:0;;8862:2:1;9811:64:0;;;8844:21:1;8901:2;8881:18;;;8874:30;8940:34;8920:18;;;8913:62;-1:-1:-1;;;8991:18:1;;;8984:33;9034:19;;9811:64:0;8660:399:1;9811:64:0;9903:1;9894:6;:10;9886:64;;;;-1:-1:-1;;;9886:64:0;;9266:2:1;9886:64:0;;;9248:21:1;9305:2;9285:18;;;9278:30;9344:34;9324:18;;;9317:62;-1:-1:-1;;;9395:18:1;;;9388:39;9444:19;;9886:64:0;9064:405:1;9886:64:0;9961:17;4127:6;;-1:-1:-1;;;;;9995:15:0;;;4127:6;;9995:15;;;;:32;;-1:-1:-1;4100:7:0;4127:6;-1:-1:-1;;;;;10014:13:0;;;4127:6;;10014:13;;9995:32;9991:1680;;;10056:76;10128:3;10056:67;10078:15;;10068:9;;:25;10067:55;;10108:14;;10067:55;;;10095:12;;10067:55;10056:6;;:10;:67::i;:::-;:71;;:76::i;:::-;10153:20;;10044:88;;-1:-1:-1;10153:20:0;;10149:486;;;10212:15;;-1:-1:-1;;;;;10198:30:0;;;10212:15;;10198:30;;;;:62;;-1:-1:-1;10246:13:0;;-1:-1:-1;;;;;10232:28:0;;;10246:13;;10232:28;;10198:62;10194:426;;;10348:9;10319:39;;;;:28;:39;;;;;;10386:12;-1:-1:-1;10285:238:0;;;;-1:-1:-1;;;10285:238:0;;9676:2:1;10285:238:0;;;9658:21:1;9715:2;9695:18;;;9688:30;9754:34;9734:18;;;9727:62;9825:34;9805:18;;;9798:62;-1:-1:-1;;;9876:19:1;;;9869:40;9926:19;;10285:238:0;9474:477:1;10285:238:0;10575:9;10546:39;;;;:28;:39;;;;;10588:12;10546:54;;10194:426;10663:13;;-1:-1:-1;;;;;10655:21:0;;;10663:13;;10655:21;:55;;;;-1:-1:-1;10694:15:0;;-1:-1:-1;;;;;10680:30:0;;;10694:15;;10680:30;;10655:55;:83;;;;-1:-1:-1;;;;;;10716:22:0;;;;;;:18;:22;;;;;;;;10714:24;10655:83;10651:314;;;10778:12;;10768:6;:22;;10760:60;;;;-1:-1:-1;;;10760:60:0;;10158:2:1;10760:60:0;;;10140:21:1;10197:2;10177:18;;;10170:30;10236:27;10216:18;;;10209:55;10281:18;;10760:60:0;9956:349:1;10760:60:0;10873:14;;10863:6;10847:13;10857:2;-1:-1:-1;;;;;8088:18:0;8061:7;8088:18;;;:9;:18;;;;;;;7995:119;10847:13;:22;;;;:::i;:::-;:40;;10839:80;;;;-1:-1:-1;;;10839:80:0;;10642:2:1;10839:80:0;;;10624:21:1;10681:2;10661:18;;;10654:30;10720:29;10700:18;;;10693:57;10767:18;;10839:80:0;10440:351:1;10839:80:0;10938:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10651:314;10990:13;;-1:-1:-1;;;;;10984:19:0;;;10990:13;;10984:19;:43;;;;-1:-1:-1;;;;;;11007:20:0;;11022:4;11007:20;;10984:43;10981:174;;;11060:79;11135:3;11060:70;11082:16;;11072:9;;:26;11071:58;;11114:15;;11071:58;;;11100:13;;11060:6;;:10;:70::i;:79::-;11048:91;;10981:174;11220:4;11171:28;8088:18;;;:9;:18;;;;;;11246:6;;-1:-1:-1;;;11246:6:0;;;;11245:7;:30;;;;-1:-1:-1;11262:13:0;;-1:-1:-1;;;;;11256:19:0;;;11262:13;;11256:19;11245:30;:45;;;;-1:-1:-1;11279:11:0;;-1:-1:-1;;;11279:11:0;;;;11245:45;:87;;;;;11315:17;;11294:20;:38;11245:87;:119;;;;;11346:18;;11336:9;;:28;11245:119;11241:419;;;11385:67;11402:49;11406:6;11413:37;11417:20;11438:11;;11413:3;:37::i;:::-;11402:3;:49::i;:::-;11385:16;:67::i;:::-;11500:21;11543:22;;11540:105;;11590:35;11603:21;11590:12;:35::i;:::-;11366:294;11241:419;10029:1642;9991:1680;11686:11;;11683:165;;11756:4;11738:24;;;;:9;:24;;;;;;:39;;11767:9;11738:28;:39::i;:::-;11731:4;11713:24;;;;:9;:24;;;;;;;:64;;;;11797:39;;-1:-1:-1;;;;;11797:39:0;;;;;;;11826:9;1613:25:1;;1601:2;1586:18;;1467:177;11797:39:0;;;;;;;;11683:165;-1:-1:-1;;;;;11874:15:0;;;;;;:9;:15;;;;;;:27;;11894:6;11874:19;:27::i;:::-;-1:-1:-1;;;;;11858:15:0;;;;;;:9;:15;;;;;:43;11926:40;11944:21;:6;11955:9;11944:10;:21::i;:::-;-1:-1:-1;;;;;11926:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;11912:13:0;;;;;;;:9;:13;;;;;:54;;;;11982:41;;;12001:21;:6;12012:9;12001:10;:21::i;:::-;11982:41;;1613:25:1;;;1601:2;1586:18;11982:41:0;;;;;;;9721:2310;9652:2379;;;:::o;2954:190::-;3040:7;3076:12;3068:6;;;;3060:29;;;;-1:-1:-1;;;3060:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3100:9:0;3112:5;3116:1;3112;:5;:::i;:::-;3100:17;2954:190;-1:-1:-1;;;;;2954:190:0:o;12147:483::-;6786:6;:13;;-1:-1:-1;;;;6786:13:0;-1:-1:-1;;;6786:13:0;;;12249:16:::1;::::0;;12263:1:::1;12249:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12249:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12249:16:0::1;12225:40;;12294:4;12276;12281:1;12276:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12276:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12320:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12320:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12276:7;;12320:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12310:4;12315:1;12310:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12310:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12385:15:::1;::::0;12353:62:::1;::::0;12370:4:::1;::::0;12385:15:::1;12403:11:::0;12353:8:::1;:62::i;:::-;12426:15;::::0;:196:::1;::::0;-1:-1:-1;;;12426:196:0;;-1:-1:-1;;;;;12426:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12507:11;;12426:15:::1;::::0;12549:4;;12576::::1;::::0;12596:15:::1;::::0;12426:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6822:6:0;:14;;-1:-1:-1;;;;6822:14:0;;;-1:-1:-1;;;;12147:483:0:o;12847:92::-;12904:10;;:27;;:10;;;;-1:-1:-1;;;;;12904:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;3152:246;3210:7;3234:1;3239;3234:6;3230:47;;-1:-1:-1;3264:1:0;3257:8;;3230:47;3287:9;3299:5;3303:1;3299;:5;:::i;:::-;3287:17;-1:-1:-1;3332:1:0;3323:5;3327:1;3287:17;3323:5;:::i;:::-;:10;3315:56;;;;-1:-1:-1;;;3315:56:0;;12998:2:1;3315:56:0;;;12980:21:1;13037:2;13017:18;;;13010:30;13076:34;13056:18;;;13049:62;-1:-1:-1;;;13127:18:1;;;13120:31;13168:19;;3315:56:0;12796:397:1;3315:56:0;3389:1;3152:246;-1:-1:-1;;;3152:246:0:o;3406:132::-;3464:7;3491:39;3495:1;3498;3491:39;;;;;;;;;;;;;;;;;:3;:39::i;12039:100::-;12096:7;12125:1;12123;:3;12122:9;;12130:1;12122:9;;;-1:-1:-1;12128:1:0;12039:100;-1:-1:-1;12039:100:0:o;2623:179::-;2681:7;;2713:5;2717:1;2713;:5;:::i;:::-;2701:17;;2742:1;2737;:6;;2729:46;;;;-1:-1:-1;;;2729:46:0;;13400:2:1;2729:46:0;;;13382:21:1;13439:2;13419:18;;;13412:30;13478:29;13458:18;;;13451:57;13525:18;;2729:46:0;13198:351:1;2810:136:0;2868:7;2895:43;2899:1;2902;2895:43;;;;;;;;;;;;;;;;;:3;:43::i;3546:189::-;3632:7;3667:12;3660:5;3652:28;;;;-1:-1:-1;;;3652:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3691:9:0;3703:5;3707:1;3703;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:247::-;209:6;262:2;250:9;241:7;237:23;233:32;230:52;;;278:1;275;268:12;230:52;317:9;304:23;336:31;361:5;336:31;:::i;402:548::-;514:4;543:2;572;561:9;554:21;604:6;598:13;647:6;642:2;631:9;627:18;620:34;672:1;682:140;696:6;693:1;690:13;682:140;;;791:14;;;787:23;;781:30;757:17;;;776:2;753:26;746:66;711:10;;682:140;;;686:3;871:1;866:2;857:6;846:9;842:22;838:31;831:42;941:2;934;930:7;925:2;917:6;913:15;909:29;898:9;894:45;890:54;882:62;;;;402:548;;;;:::o;955:315::-;1023:6;1031;1084:2;1072:9;1063:7;1059:23;1055:32;1052:52;;;1100:1;1097;1090:12;1052:52;1139:9;1126:23;1158:31;1183:5;1158:31;:::i;:::-;1208:5;1260:2;1245:18;;;;1232:32;;-1:-1:-1;;;955:315:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:184::-;3155:6;3208:2;3196:9;3187:7;3183:23;3179:32;3176:52;;;3224:1;3221;3214:12;3176:52;-1:-1:-1;3247:16:1;;3085:184;-1:-1:-1;3085:184:1:o;3561:277::-;3628:6;3681:2;3669:9;3660:7;3656:23;3652:32;3649:52;;;3697:1;3694;3687:12;3649:52;3729:9;3723:16;3782:5;3775:13;3768:21;3761:5;3758:32;3748:60;;3804:1;3801;3794:12;3843:127;3904:10;3899:3;3895:20;3892:1;3885:31;3935:4;3932:1;3925:15;3959:4;3956:1;3949:15;3975:422;4064:1;4107:5;4064:1;4121:270;4142:7;4132:8;4129:21;4121:270;;;4201:4;4197:1;4193:6;4189:17;4183:4;4180:27;4177:53;;;4210:18;;:::i;:::-;4260:7;4250:8;4246:22;4243:55;;;4280:16;;;;4243:55;4359:22;;;;4319:15;;;;4121:270;;;4125:3;3975:422;;;;;:::o;4402:806::-;4451:5;4481:8;4471:80;;-1:-1:-1;4522:1:1;4536:5;;4471:80;4570:4;4560:76;;-1:-1:-1;4607:1:1;4621:5;;4560:76;4652:4;4670:1;4665:59;;;;4738:1;4733:130;;;;4645:218;;4665:59;4695:1;4686:10;;4709:5;;;4733:130;4770:3;4760:8;4757:17;4754:43;;;4777:18;;:::i;:::-;-1:-1:-1;;4833:1:1;4819:16;;4848:5;;4645:218;;4947:2;4937:8;4934:16;4928:3;4922:4;4919:13;4915:36;4909:2;4899:8;4896:16;4891:2;4885:4;4882:12;4878:35;4875:77;4872:159;;;-1:-1:-1;4984:19:1;;;5016:5;;4872:159;5063:34;5088:8;5082:4;5063:34;:::i;:::-;5133:6;5129:1;5125:6;5121:19;5112:7;5109:32;5106:58;;;5144:18;;:::i;:::-;5182:20;;4402:806;-1:-1:-1;;;4402:806:1:o;5213:140::-;5271:5;5300:47;5341:4;5331:8;5327:19;5321:4;5300:47;:::i;5358:168::-;5431:9;;;5462;;5479:15;;;5473:22;;5459:37;5449:71;;5500:18;;:::i;5531:356::-;5733:2;5715:21;;;5752:18;;;5745:30;5811:34;5806:2;5791:18;;5784:62;5878:2;5863:18;;5531:356::o;6856:306::-;6944:6;6952;6960;7013:2;7001:9;6992:7;6988:23;6984:32;6981:52;;;7029:1;7026;7019:12;6981:52;7058:9;7052:16;7042:26;;7108:2;7097:9;7093:18;7087:25;7077:35;;7152:2;7141:9;7137:18;7131:25;7121:35;;6856:306;;;;;:::o;10310:125::-;10375:9;;;10396:10;;;10393:36;;;10409:18;;:::i;10796:135::-;10835:3;10856:17;;;10853:43;;10876:18;;:::i;:::-;-1:-1:-1;10923:1:1;10912:13;;10796:135::o;10936:128::-;11003:9;;;11024:11;;;11021:37;;;11038:18;;:::i;11201:127::-;11262:10;11257:3;11253:20;11250:1;11243:31;11293:4;11290:1;11283:15;11317:4;11314:1;11307:15;11333:251;11403:6;11456:2;11444:9;11435:7;11431:23;11427:32;11424:52;;;11472:1;11469;11462:12;11424:52;11504:9;11498:16;11523:31;11548:5;11523:31;:::i;11589:980::-;11851:4;11899:3;11888:9;11884:19;11930:6;11919:9;11912:25;11956:2;11994:6;11989:2;11978:9;11974:18;11967:34;12037:3;12032:2;12021:9;12017:18;12010:31;12061:6;12096;12090:13;12127:6;12119;12112:22;12165:3;12154:9;12150:19;12143:26;;12204:2;12196:6;12192:15;12178:29;;12225:1;12235:195;12249:6;12246:1;12243:13;12235:195;;;12314:13;;-1:-1:-1;;;;;12310:39:1;12298:52;;12405:15;;;;12370:12;;;;12346:1;12264:9;12235:195;;;-1:-1:-1;;;;;;;12486:32:1;;;;12481:2;12466:18;;12459:60;-1:-1:-1;;;12550:3:1;12535:19;12528:35;12447:3;11589:980;-1:-1:-1;;;11589:980:1:o;12574:217::-;12614:1;12640;12630:132;;12684:10;12679:3;12675:20;12672:1;12665:31;12719:4;12716:1;12709:15;12747:4;12744:1;12737:15;12630:132;-1:-1:-1;12776:9:1;;12574:217::o
Swarm Source
ipfs://6abea91648c511d90a2af1ba4f73f457f1793c95a3c8b332474b787195602a36
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.