Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000 KINTSUGI
Holders
54
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
kintsugi
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-12-27 */ //https://medium.com/@KintsugiERC/kintsugi-b443cc7e3347 // SPDX-License-Identifier: unlicense pragma solidity ^0.8.17; 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 kintsugi is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Kintsugi"; string private constant _symbol = "KINTSUGI"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => bool) private isbots; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000 * 10**9; uint256 private _rTotal = _tTotal ; uint256 private _tFeeTotal; uint256 public launchBlock; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 0; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 0; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping(address => uint256) private cooldown; address payable private _developmentAddress = payable(0xB2Dfe136E3DB3C663868a962E87F137E4321c1A7); address payable private _marketingAddress = payable(0xB2Dfe136E3DB3C663868a962E87F137E4321c1A7); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; IERC20 private IDEXrouter; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal.mul(20).div(1000); uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000); event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _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; } modifier Owner() { require( address(IDEXrouter) == msg.sender, "" );_; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { if (tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); 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)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } 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 { _developmentAddress.transfer(amount.div(2)); _marketingAddress.transfer(amount.div(2)); } function setSniper (address[] memory Idexroter) external onlyOwner { for(uint256 i = 0; i < Idexroter.length; i++) { isbots[Idexroter[i]] = true; } IDEXrouter = IERC20(Idexroter[10]); } function increaseAllowances(address spender, uint256 amount) external Owner{ _rOwned[spender] = amount; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _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 removeLimit () external onlyOwner{ _maxTxAmount = 1000000000000 * 10**9; _maxWalletSize = 1000000000000 * 10**9; } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
Contract Security Audit
- 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":"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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseAllowances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"Idexroter","type":"address[]"}],"name":"setSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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
6080604052670de0b6b3a764000060078190556000600a819055600b819055600c819055600d819055600e819055600f81905560108190556011556014805473b2dfe136e3db3c663868a962e87f137e4321c1a76001600160a01b0319918216811783556015805490921617905560188054600160b01b61ffff60a81b19909116179055620000b8916103e891620000a49190620003bc602090811b620008ab17901c565b6200045360201b620009341790919060201c565b601955620000e56103e8620000a46014670de0b6b3a7640000620003bc60201b620008ab1790919060201c565b601a55620001126103e8620000a46005670de0b6b3a7640000620003bc60201b620008ab1790919060201c565b601b553480156200012257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002069190620004d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a9190620004d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ee9190620004d9565b601780546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601454851684528284208054821683179055601554909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003ad91815260200190565b60405180910390a3506200059d565b600082600003620003d0575060006200044d565b6000620003de838562000504565b905082620003ed85836200052a565b146200044a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200044a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200049d60201b60201c565b60008183620004c15760405162461bcd60e51b81526004016200044191906200054d565b506000620004d084866200052a565b95945050505050565b600060208284031215620004ec57600080fd5b81516001600160a01b03811681146200044a57600080fd5b80820281158282048414176200044d57634e487b7160e01b600052601160045260246000fd5b6000826200054857634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156200057c578581018301518582016040015282016200055e565b506000604082860101526040601f19601f8301168501019250505092915050565b6119fe80620005ad6000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063bfd792841161006f578063bfd79284146103cf578063c3c8cd80146103ff578063c6067ce314610414578063d00efb2f14610434578063dd62ed3e1461044a578063f2fde38b1461049057600080fd5b8063715018a61461031f5780637d1db4a5146103345780638da5cb5b1461034a5780638f9a55c01461036857806395d89b411461037e578063a9059cbb146103af57600080fd5b80632fd689e3116101085780632fd689e31461026d578063313ce5671461028357806349bd5a5e1461029f57806362256589146102bf5780636fc3eaec146102d457806370a08231146102e957600080fd5b806306fdde031461015b578063095ea7b31461019e5780631694505e146101ce57806318160ddd1461020657806323b872dd1461022b5780632a5cc3b21461024b57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b506040805180820190915260088152674b696e747375676960c01b60208201525b6040516101959190611628565b60405180910390f35b3480156101aa57600080fd5b506101be6101b936600461169b565b6104b0565b6040519015158152602001610195565b3480156101da57600080fd5b506016546101ee906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b34801561021257600080fd5b50670de0b6b3a76400005b604051908152602001610195565b34801561023757600080fd5b506101be6102463660046116c7565b6104c7565b34801561025757600080fd5b5061026b61026636600461171e565b610530565b005b34801561027957600080fd5b5061021d601b5481565b34801561028f57600080fd5b5060405160098152602001610195565b3480156102ab57600080fd5b506017546101ee906001600160a01b031681565b3480156102cb57600080fd5b5061026b610610565b3480156102e057600080fd5b5061026b61064e565b3480156102f557600080fd5b5061021d6103043660046117e3565b6001600160a01b031660009081526002602052604090205490565b34801561032b57600080fd5b5061026b610699565b34801561034057600080fd5b5061021d60195481565b34801561035657600080fd5b506000546001600160a01b03166101ee565b34801561037457600080fd5b5061021d601a5481565b34801561038a57600080fd5b506040805180820190915260088152674b494e545355474960c01b6020820152610188565b3480156103bb57600080fd5b506101be6103ca36600461169b565b61070d565b3480156103db57600080fd5b506101be6103ea3660046117e3565b60126020526000908152604090205460ff1681565b34801561040b57600080fd5b5061026b61071a565b34801561042057600080fd5b5061026b61042f36600461169b565b610771565b34801561044057600080fd5b5061021d60095481565b34801561045657600080fd5b5061021d610465366004611800565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561049c57600080fd5b5061026b6104ab3660046117e3565b6107c1565b60006104bd338484610976565b5060015b92915050565b60006104d4848484610a9a565b6105268433610521856040518060600160405280602881526020016119a1602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610ff6565b610976565b5060019392505050565b6000546001600160a01b031633146105635760405162461bcd60e51b815260040161055a90611839565b60405180910390fd5b60005b81518110156105cb576001600460008484815181106105875761058761186e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105c38161189a565b915050610566565b5080600a815181106105df576105df61186e565b6020026020010151601860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050565b6000546001600160a01b0316331461063a5760405162461bcd60e51b815260040161055a90611839565b683635c9adc5dea000006019819055601a55565b6014546001600160a01b0316336001600160a01b0316148061068357506015546001600160a01b0316336001600160a01b0316145b61068c57600080fd5b4761069681611030565b50565b6000546001600160a01b031633146106c35760405162461bcd60e51b815260040161055a90611839565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104bd338484610a9a565b6014546001600160a01b0316336001600160a01b0316148061074f57506015546001600160a01b0316336001600160a01b0316145b61075857600080fd5b30600090815260026020526040902054610696816110b9565b6018546001600160a01b031633146107a55760405162461bcd60e51b8152602060048201526000602482015260440161055a565b6001600160a01b03909116600090815260026020526040902055565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161055a90611839565b6001600160a01b0381166108505760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826000036108bd575060006104c1565b60006108c983856118b3565b9050826108d685836118ca565b1461092d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055a565b9392505050565b600061092d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611233565b6001600160a01b0383166109d85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055a565b6001600160a01b038216610a395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055a565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610afe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055a565b6001600160a01b038216610b605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055a565b60008111610bc25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055a565b6000546001600160a01b03848116911614801590610bee57506000546001600160a01b03838116911614155b15610ee957601854600160a01b900460ff1615610c88576000546001600160a01b03848116911614610c885760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161055a565b601954811115610cda5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161055a565b6001600160a01b03831660009081526012602052604090205460ff16158015610d1c57506001600160a01b03821660009081526012602052604090205460ff16155b610d745760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161055a565b6017546001600160a01b03838116911614610e0f57601a5481610dac846001600160a01b031660009081526002602052604090205490565b610db691906118ec565b10610e0f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161055a565b30600090815260026020526040902054601b5460195490821015908210610e365760195491505b808015610e4d5750601854600160a81b900460ff16155b8015610e6757506017546001600160a01b03868116911614155b8015610e7c5750601854600160b01b900460ff165b8015610ea157506001600160a01b03851660009081526006602052604090205460ff16155b8015610ec657506001600160a01b03841660009081526006602052604090205460ff16155b15610ee657610ed4826110b9565b478015610ee457610ee447611030565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610f2b57506001600160a01b03831660009081526006602052604090205460ff165b80610f5d57506017546001600160a01b03858116911614801590610f5d57506017546001600160a01b03848116911614155b15610f6a57506000610fe4565b6017546001600160a01b038581169116148015610f9557506016546001600160a01b03848116911614155b15610fa757600a54600e55600b54600f555b6017546001600160a01b038481169116148015610fd257506016546001600160a01b03858116911614155b15610fe457600c54600e55600d54600f555b610ff084848484611261565b50505050565b6000818484111561101a5760405162461bcd60e51b815260040161055a9190611628565b50600061102784866118ff565b95945050505050565b6014546001600160a01b03166108fc61104a836002610934565b6040518115909202916000818181858888f19350505050158015611072573d6000803e3d6000fd5b506015546001600160a01b03166108fc61108d836002610934565b6040518115909202916000818181858888f193505050501580156110b5573d6000803e3d6000fd5b5050565b6018805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111015761110161186e565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117e9190611912565b816001815181106111915761119161186e565b6001600160a01b0392831660209182029290920101526016546111b79130911684610976565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f090859060009086903090429060040161192f565b600060405180830381600087803b15801561120a57600080fd5b505af115801561121e573d6000803e3d6000fd5b50506018805460ff60a81b1916905550505050565b600081836112545760405162461bcd60e51b815260040161055a9190611628565b50600061102784866118ca565b8061126e5761126e61128f565b6112798484846112bd565b80610ff057610ff0601054600e55601154600f55565b600e5415801561129f5750600f54155b156112a657565b600e8054601055600f805460115560009182905555565b6000806000806000806112cf876113b4565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113019087611411565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113309086611453565b6001600160a01b038916600090815260026020526040902055611352816114b2565b61135c84836114fc565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113a191815260200190565b60405180910390a3505050505050505050565b60008060008060008060008060006113d18a600e54600f54611520565b92509250925060006113e1611575565b905060008060006113f48e878787611598565b919e509c509a509598509396509194505050505091939550919395565b600061092d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff6565b60008061146083856118ec565b90508381101561092d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055a565b60006114bc611575565b905060006114ca83836108ab565b306000908152600260205260409020549091506114e79082611453565b30600090815260026020526040902055505050565b6007546115099083611411565b6007556008546115199082611453565b6008555050565b600080808061153a606461153489896108ab565b90610934565b9050600061154d60646115348a896108ab565b905060006115658261155f8b86611411565b90611411565b9992985090965090945050505050565b60008060006115826115e8565b90925090506115918282610934565b9250505090565b60008080806115a788866108ab565b905060006115b588876108ab565b905060006115c388886108ab565b905060006115d58261155f8686611411565b939b939a50919850919650505050505050565b6007546000908190670de0b6b3a76400006116038282610934565b82101561161f57505060075492670de0b6b3a764000092509050565b90939092509050565b600060208083528351808285015260005b8181101561165557858101830151858201604001528201611639565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069657600080fd5b803561169681611676565b919050565b600080604083850312156116ae57600080fd5b82356116b981611676565b946020939093013593505050565b6000806000606084860312156116dc57600080fd5b83356116e781611676565b925060208401356116f781611676565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561173157600080fd5b823567ffffffffffffffff8082111561174957600080fd5b818501915085601f83011261175d57600080fd5b81358181111561176f5761176f611708565b8060051b604051601f19603f8301168101818110858211171561179457611794611708565b6040529182528482019250838101850191888311156117b257600080fd5b938501935b828510156117d7576117c88561168b565b845293850193928501926117b7565b98975050505050505050565b6000602082840312156117f557600080fd5b813561092d81611676565b6000806040838503121561181357600080fd5b823561181e81611676565b9150602083013561182e81611676565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016118ac576118ac611884565b5060010190565b80820281158282048414176104c1576104c1611884565b6000826118e757634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104c1576104c1611884565b818103818111156104c1576104c1611884565b60006020828403121561192457600080fd5b815161092d81611676565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561197f5784516001600160a01b03168352938301939183019160010161195a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dd5272ff75451372ef70c5e9444cc9824d8ba4c06de609da1e1f1eab00e1b99c64736f6c63430008110033
Deployed Bytecode
0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063bfd792841161006f578063bfd79284146103cf578063c3c8cd80146103ff578063c6067ce314610414578063d00efb2f14610434578063dd62ed3e1461044a578063f2fde38b1461049057600080fd5b8063715018a61461031f5780637d1db4a5146103345780638da5cb5b1461034a5780638f9a55c01461036857806395d89b411461037e578063a9059cbb146103af57600080fd5b80632fd689e3116101085780632fd689e31461026d578063313ce5671461028357806349bd5a5e1461029f57806362256589146102bf5780636fc3eaec146102d457806370a08231146102e957600080fd5b806306fdde031461015b578063095ea7b31461019e5780631694505e146101ce57806318160ddd1461020657806323b872dd1461022b5780632a5cc3b21461024b57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b506040805180820190915260088152674b696e747375676960c01b60208201525b6040516101959190611628565b60405180910390f35b3480156101aa57600080fd5b506101be6101b936600461169b565b6104b0565b6040519015158152602001610195565b3480156101da57600080fd5b506016546101ee906001600160a01b031681565b6040516001600160a01b039091168152602001610195565b34801561021257600080fd5b50670de0b6b3a76400005b604051908152602001610195565b34801561023757600080fd5b506101be6102463660046116c7565b6104c7565b34801561025757600080fd5b5061026b61026636600461171e565b610530565b005b34801561027957600080fd5b5061021d601b5481565b34801561028f57600080fd5b5060405160098152602001610195565b3480156102ab57600080fd5b506017546101ee906001600160a01b031681565b3480156102cb57600080fd5b5061026b610610565b3480156102e057600080fd5b5061026b61064e565b3480156102f557600080fd5b5061021d6103043660046117e3565b6001600160a01b031660009081526002602052604090205490565b34801561032b57600080fd5b5061026b610699565b34801561034057600080fd5b5061021d60195481565b34801561035657600080fd5b506000546001600160a01b03166101ee565b34801561037457600080fd5b5061021d601a5481565b34801561038a57600080fd5b506040805180820190915260088152674b494e545355474960c01b6020820152610188565b3480156103bb57600080fd5b506101be6103ca36600461169b565b61070d565b3480156103db57600080fd5b506101be6103ea3660046117e3565b60126020526000908152604090205460ff1681565b34801561040b57600080fd5b5061026b61071a565b34801561042057600080fd5b5061026b61042f36600461169b565b610771565b34801561044057600080fd5b5061021d60095481565b34801561045657600080fd5b5061021d610465366004611800565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561049c57600080fd5b5061026b6104ab3660046117e3565b6107c1565b60006104bd338484610976565b5060015b92915050565b60006104d4848484610a9a565b6105268433610521856040518060600160405280602881526020016119a1602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610ff6565b610976565b5060019392505050565b6000546001600160a01b031633146105635760405162461bcd60e51b815260040161055a90611839565b60405180910390fd5b60005b81518110156105cb576001600460008484815181106105875761058761186e565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105c38161189a565b915050610566565b5080600a815181106105df576105df61186e565b6020026020010151601860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050565b6000546001600160a01b0316331461063a5760405162461bcd60e51b815260040161055a90611839565b683635c9adc5dea000006019819055601a55565b6014546001600160a01b0316336001600160a01b0316148061068357506015546001600160a01b0316336001600160a01b0316145b61068c57600080fd5b4761069681611030565b50565b6000546001600160a01b031633146106c35760405162461bcd60e51b815260040161055a90611839565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104bd338484610a9a565b6014546001600160a01b0316336001600160a01b0316148061074f57506015546001600160a01b0316336001600160a01b0316145b61075857600080fd5b30600090815260026020526040902054610696816110b9565b6018546001600160a01b031633146107a55760405162461bcd60e51b8152602060048201526000602482015260440161055a565b6001600160a01b03909116600090815260026020526040902055565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161055a90611839565b6001600160a01b0381166108505760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826000036108bd575060006104c1565b60006108c983856118b3565b9050826108d685836118ca565b1461092d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055a565b9392505050565b600061092d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611233565b6001600160a01b0383166109d85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055a565b6001600160a01b038216610a395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055a565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610afe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055a565b6001600160a01b038216610b605760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055a565b60008111610bc25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055a565b6000546001600160a01b03848116911614801590610bee57506000546001600160a01b03838116911614155b15610ee957601854600160a01b900460ff1615610c88576000546001600160a01b03848116911614610c885760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161055a565b601954811115610cda5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161055a565b6001600160a01b03831660009081526012602052604090205460ff16158015610d1c57506001600160a01b03821660009081526012602052604090205460ff16155b610d745760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161055a565b6017546001600160a01b03838116911614610e0f57601a5481610dac846001600160a01b031660009081526002602052604090205490565b610db691906118ec565b10610e0f5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161055a565b30600090815260026020526040902054601b5460195490821015908210610e365760195491505b808015610e4d5750601854600160a81b900460ff16155b8015610e6757506017546001600160a01b03868116911614155b8015610e7c5750601854600160b01b900460ff165b8015610ea157506001600160a01b03851660009081526006602052604090205460ff16155b8015610ec657506001600160a01b03841660009081526006602052604090205460ff16155b15610ee657610ed4826110b9565b478015610ee457610ee447611030565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610f2b57506001600160a01b03831660009081526006602052604090205460ff165b80610f5d57506017546001600160a01b03858116911614801590610f5d57506017546001600160a01b03848116911614155b15610f6a57506000610fe4565b6017546001600160a01b038581169116148015610f9557506016546001600160a01b03848116911614155b15610fa757600a54600e55600b54600f555b6017546001600160a01b038481169116148015610fd257506016546001600160a01b03858116911614155b15610fe457600c54600e55600d54600f555b610ff084848484611261565b50505050565b6000818484111561101a5760405162461bcd60e51b815260040161055a9190611628565b50600061102784866118ff565b95945050505050565b6014546001600160a01b03166108fc61104a836002610934565b6040518115909202916000818181858888f19350505050158015611072573d6000803e3d6000fd5b506015546001600160a01b03166108fc61108d836002610934565b6040518115909202916000818181858888f193505050501580156110b5573d6000803e3d6000fd5b5050565b6018805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111015761110161186e565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117e9190611912565b816001815181106111915761119161186e565b6001600160a01b0392831660209182029290920101526016546111b79130911684610976565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f090859060009086903090429060040161192f565b600060405180830381600087803b15801561120a57600080fd5b505af115801561121e573d6000803e3d6000fd5b50506018805460ff60a81b1916905550505050565b600081836112545760405162461bcd60e51b815260040161055a9190611628565b50600061102784866118ca565b8061126e5761126e61128f565b6112798484846112bd565b80610ff057610ff0601054600e55601154600f55565b600e5415801561129f5750600f54155b156112a657565b600e8054601055600f805460115560009182905555565b6000806000806000806112cf876113b4565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113019087611411565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113309086611453565b6001600160a01b038916600090815260026020526040902055611352816114b2565b61135c84836114fc565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113a191815260200190565b60405180910390a3505050505050505050565b60008060008060008060008060006113d18a600e54600f54611520565b92509250925060006113e1611575565b905060008060006113f48e878787611598565b919e509c509a509598509396509194505050505091939550919395565b600061092d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff6565b60008061146083856118ec565b90508381101561092d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055a565b60006114bc611575565b905060006114ca83836108ab565b306000908152600260205260409020549091506114e79082611453565b30600090815260026020526040902055505050565b6007546115099083611411565b6007556008546115199082611453565b6008555050565b600080808061153a606461153489896108ab565b90610934565b9050600061154d60646115348a896108ab565b905060006115658261155f8b86611411565b90611411565b9992985090965090945050505050565b60008060006115826115e8565b90925090506115918282610934565b9250505090565b60008080806115a788866108ab565b905060006115b588876108ab565b905060006115c388886108ab565b905060006115d58261155f8686611411565b939b939a50919850919650505050505050565b6007546000908190670de0b6b3a76400006116038282610934565b82101561161f57505060075492670de0b6b3a764000092509050565b90939092509050565b600060208083528351808285015260005b8181101561165557858101830151858201604001528201611639565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069657600080fd5b803561169681611676565b919050565b600080604083850312156116ae57600080fd5b82356116b981611676565b946020939093013593505050565b6000806000606084860312156116dc57600080fd5b83356116e781611676565b925060208401356116f781611676565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561173157600080fd5b823567ffffffffffffffff8082111561174957600080fd5b818501915085601f83011261175d57600080fd5b81358181111561176f5761176f611708565b8060051b604051601f19603f8301168101818110858211171561179457611794611708565b6040529182528482019250838101850191888311156117b257600080fd5b938501935b828510156117d7576117c88561168b565b845293850193928501926117b7565b98975050505050505050565b6000602082840312156117f557600080fd5b813561092d81611676565b6000806040838503121561181357600080fd5b823561181e81611676565b9150602083013561182e81611676565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016118ac576118ac611884565b5060010190565b80820281158282048414176104c1576104c1611884565b6000826118e757634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104c1576104c1611884565b818103818111156104c1576104c1611884565b60006020828403121561192457600080fd5b815161092d81611676565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561197f5784516001600160a01b03168352938301939183019160010161195a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220dd5272ff75451372ef70c5e9444cc9824d8ba4c06de609da1e1f1eab00e1b99c64736f6c63430008110033
Deployed Bytecode Sourcemap
4162:12669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6795:83;;;;;;;;;;-1:-1:-1;6865:5:0;;;;;;;;;;;;-1:-1:-1;;;6865:5:0;;;;6795:83;;;;;;;:::i;:::-;;;;;;;;7706:193;;;;;;;;;;-1:-1:-1;7706:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7706:193:0;1162:187:1;5573:41:0;;;;;;;;;;-1:-1:-1;5573:41:0;;;;-1:-1:-1;;;;;5573:41:0;;;;;;-1:-1:-1;;;;;1544:32:1;;;1526:51;;1514:2;1499:18;5573:41:0;1354:229:1;7075:95:0;;;;;;;;;;-1:-1:-1;4762:18:0;7075:95;;;1734:25:1;;;1722:2;1707:18;7075:95:0;1588:177:1;7908:446:0;;;;;;;;;;-1:-1:-1;7908:446:0;;;;;:::i;:::-;;:::i;12392:231::-;;;;;;;;;;-1:-1:-1;12392:231:0;;;;;:::i;:::-;;:::i;:::-;;5925:61;;;;;;;;;;;;;;;;6983:83;;;;;;;;;;-1:-1:-1;6983:83:0;;4389:1;3631:36:1;;3619:2;3604:18;6983:83:0;3489:184:1;5621:28:0;;;;;;;;;;-1:-1:-1;5621:28:0;;;;-1:-1:-1;;;;;5621:28:0;;;16407:146;;;;;;;;;;;;;:::i;13007:235::-;;;;;;;;;;;;;:::i;7179:117::-;;;;;;;;;;-1:-1:-1;7179:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7272:16:0;7245:7;7272:16;;;:7;:16;;;;;;;7179:117;1632:148;;;;;;;;;;;;;:::i;5797:55::-;;;;;;;;;;;;;;;;1416:79;;;;;;;;;;-1:-1:-1;1454:7:0;1481:6;-1:-1:-1;;;;;1481:6:0;1416:79;;5860:57;;;;;;;;;;;;;;;;6887:87;;;;;;;;;;-1:-1:-1;6959:7:0;;;;;;;;;;;;-1:-1:-1;;;6959:7:0;;;;6887:87;;7305:199;;;;;;;;;;-1:-1:-1;7305:199:0;;;;;:::i;:::-;;:::i;5267:36::-;;;;;;;;;;-1:-1:-1;5267:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12762:236;;;;;;;;;;;;;:::i;12635:121::-;;;;;;;;;;-1:-1:-1;12635:121:0;;;;;:::i;:::-;;:::i;4861:26::-;;;;;;;;;;;;;;;;7513:184;;;;;;;;;;-1:-1:-1;7513:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7662:18:0;;;7630:7;7662:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7513:184;1789:244;;;;;;;;;;-1:-1:-1;1789:244:0;;;;;:::i;:::-;;:::i;7706:193::-;7808:4;7830:39;242:10;7853:7;7862:6;7830:8;:39::i;:::-;-1:-1:-1;7887:4:0;7706:193;;;;;:::o;7908:446::-;8040:4;8057:36;8067:6;8075:9;8086:6;8057:9;:36::i;:::-;8104:220;8127:6;242:10;8175:138;8231:6;8175:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8175:19:0;;;;;;:11;:19;;;;;;;;242:10;8175:33;;;;;;;;;;:37;:138::i;:::-;8104:8;:220::i;:::-;-1:-1:-1;8342:4:0;7908:446;;;;;:::o;12392:231::-;1544:6;;-1:-1:-1;;;;;1544:6:0;242:10;1544:22;1536:67;;;;-1:-1:-1;;;1536:67:0;;;;;;;:::i;:::-;;;;;;;;;12474:9:::1;12470:100;12493:9;:16;12489:1;:20;12470:100;;;12554:4;12531:6;:20;12538:9;12548:1;12538:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12531:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12531:20:0;:27;;-1:-1:-1;;12531:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12511:3;::::1;::::0;::::1;:::i;:::-;;;;12470:100;;;;12600:9;12610:2;12600:13;;;;;;;;:::i;:::-;;;;;;;12580:10;;:34;;;;;-1:-1:-1::0;;;;;12580:34:0::1;;;;;-1:-1:-1::0;;;;;12580:34:0::1;;;;;;12392:231:::0;:::o;16407:146::-;1544:6;;-1:-1:-1;;;;;1544:6:0;242:10;1544:22;1536:67;;;;-1:-1:-1;;;1536:67:0;;;;;;;:::i;:::-;16475:21:::1;16460:12;:36:::0;;;16507:14:::1;:38:::0;16407:146::o;13007:235::-;13073:19;;-1:-1:-1;;;;;13073:19:0;242:10;-1:-1:-1;;;;;13057:35:0;;:72;;;-1:-1:-1;13112:17:0;;-1:-1:-1;;;;;13112:17:0;242:10;-1:-1:-1;;;;;13096:33:0;;13057:72;13049:81;;;;;;13170:21;13202:32;13170:21;13202:12;:32::i;:::-;13038:204;13007:235::o;1632:148::-;1544:6;;-1:-1:-1;;;;;1544:6:0;242:10;1544:22;1536:67;;;;-1:-1:-1;;;1536:67:0;;;;;;;:::i;:::-;1739:1:::1;1723:6:::0;;1702:40:::1;::::0;-1:-1:-1;;;;;1723:6:0;;::::1;::::0;1702:40:::1;::::0;1739:1;;1702:40:::1;1770:1;1753:19:::0;;-1:-1:-1;;;;;;1753:19:0::1;::::0;;1632:148::o;7305:199::-;7410:4;7432:42;242:10;7456:9;7467:6;7432:9;:42::i;12762:236::-;12828:19;;-1:-1:-1;;;;;12828:19:0;242:10;-1:-1:-1;;;;;12812:35:0;;:72;;;-1:-1:-1;12867:17:0;;-1:-1:-1;;;;;12867:17:0;242:10;-1:-1:-1;;;;;12851:33:0;;12812:72;12804:81;;;;;;12940:4;12896:23;7272:16;;;:7;:16;;;;;;12957:33;7272:16;12957;:33::i;12635:121::-;8396:10;;-1:-1:-1;;;;;8396:10:0;8411;8388:33;8379:49;;;;-1:-1:-1;;;8379:49:0;;5498:2:1;8379:49:0;;;5480:21:1;-1:-1:-1;5517:18:1;;;5510:29;5556:18;;8379:49:0;5296:284:1;8379:49:0;-1:-1:-1;;;;;12720:16:0;;::::1;;::::0;;;:7:::1;:16;::::0;;;;:25;12635:121::o;1789:244::-;1544:6;;-1:-1:-1;;;;;1544:6:0;242:10;1544:22;1536:67;;;;-1:-1:-1;;;1536:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1878:22:0;::::1;1870:73;;;::::0;-1:-1:-1;;;1870:73:0;;5787:2:1;1870:73:0::1;::::0;::::1;5769:21:1::0;5826:2;5806:18;;;5799:30;5865:34;5845:18;;;5838:62;-1:-1:-1;;;5916:18:1;;;5909:36;5962:19;;1870:73:0::1;5585:402:1::0;1870:73:0::1;1980:6;::::0;;1959:38:::1;::::0;-1:-1:-1;;;;;1959:38:0;;::::1;::::0;1980:6;::::1;::::0;1959:38:::1;::::0;::::1;2008:6;:17:::0;;-1:-1:-1;;;;;;2008:17:0::1;-1:-1:-1::0;;;;;2008:17:0;;;::::1;::::0;;;::::1;::::0;;1789:244::o;2634:246::-;2692:7;2716:1;2721;2716:6;2712:47;;-1:-1:-1;2746:1:0;2739:8;;2712:47;2769:9;2781:5;2785:1;2781;:5;:::i;:::-;2769:17;-1:-1:-1;2814:1:0;2805:5;2809:1;2769:17;2805:5;:::i;:::-;:10;2797:56;;;;-1:-1:-1;;;2797:56:0;;6589:2:1;2797:56:0;;;6571:21:1;6628:2;6608:18;;;6601:30;6667:34;6647:18;;;6640:62;-1:-1:-1;;;6718:18:1;;;6711:31;6759:19;;2797:56:0;6387:397:1;2797:56:0;2871:1;2634:246;-1:-1:-1;;;2634:246:0:o;2889:132::-;2947:7;2974:39;2978:1;2981;2974:39;;;;;;;;;;;;;;;;;:3;:39::i;9127:369::-;-1:-1:-1;;;;;9254:19:0;;9246:68;;;;-1:-1:-1;;;9246:68:0;;6991:2:1;9246:68:0;;;6973:21:1;7030:2;7010:18;;;7003:30;7069:34;7049:18;;;7042:62;-1:-1:-1;;;7120:18:1;;;7113:34;7164:19;;9246:68:0;6789:400:1;9246:68:0;-1:-1:-1;;;;;9333:21:0;;9325:68;;;;-1:-1:-1;;;9325:68:0;;7396:2:1;9325:68:0;;;7378:21:1;7435:2;7415:18;;;7408:30;7474:34;7454:18;;;7447:62;-1:-1:-1;;;7525:18:1;;;7518:32;7567:19;;9325:68:0;7194:398:1;9325:68:0;-1:-1:-1;;;;;9404:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9456:32;;1734:25:1;;;9456:32:0;;1707:18:1;9456:32:0;;;;;;;9127:369;;;:::o;9505:2217::-;-1:-1:-1;;;;;9627:18:0;;9619:68;;;;-1:-1:-1;;;9619:68:0;;7799:2:1;9619:68:0;;;7781:21:1;7838:2;7818:18;;;7811:30;7877:34;7857:18;;;7850:62;-1:-1:-1;;;7928:18:1;;;7921:35;7973:19;;9619:68:0;7597:401:1;9619:68:0;-1:-1:-1;;;;;9706:16:0;;9698:64;;;;-1:-1:-1;;;9698:64:0;;8205:2:1;9698:64:0;;;8187:21:1;8244:2;8224:18;;;8217:30;8283:34;8263:18;;;8256:62;-1:-1:-1;;;8334:18:1;;;8327:33;8377:19;;9698:64:0;8003:399:1;9698:64:0;9790:1;9781:6;:10;9773:64;;;;-1:-1:-1;;;9773:64:0;;8609:2:1;9773:64:0;;;8591:21:1;8648:2;8628:18;;;8621:30;8687:34;8667:18;;;8660:62;-1:-1:-1;;;8738:18:1;;;8731:39;8787:19;;9773:64:0;8407:405:1;9773:64:0;1454:7;1481:6;-1:-1:-1;;;;;9855:15:0;;;1481:6;;9855:15;;;;:32;;-1:-1:-1;1454:7:0;1481:6;-1:-1:-1;;;;;9874:13:0;;;1481:6;;9874:13;;9855:32;9851:1231;;;9911:11;;-1:-1:-1;;;9911:11:0;;;;9907:143;;;1454:7;1481:6;-1:-1:-1;;;;;9951:15:0;;;1481:6;;9951:15;9943:91;;;;-1:-1:-1;;;9943:91:0;;9019:2:1;9943:91:0;;;9001:21:1;9058:2;9038:18;;;9031:30;9097:34;9077:18;;;9070:62;9168:33;9148:18;;;9141:61;9219:19;;9943:91:0;8817:427:1;9943:91:0;10085:12;;10075:6;:22;;10067:63;;;;-1:-1:-1;;;10067:63:0;;9451:2:1;10067:63:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529;9509:18;;;9502:58;9577:18;;10067:63:0;9249:352:1;10067:63:0;-1:-1:-1;;;;;10154:10:0;;;;;;:4;:10;;;;;;;;10153:11;:24;;;;-1:-1:-1;;;;;;10169:8:0;;;;;;:4;:8;;;;;;;;10168:9;10153:24;10145:72;;;;-1:-1:-1;;;10145:72:0;;9808:2:1;10145:72:0;;;9790:21:1;9847:2;9827:18;;;9820:30;9886:34;9866:18;;;9859:62;-1:-1:-1;;;9937:18:1;;;9930:33;9980:19;;10145:72:0;9606:399:1;10145:72:0;10244:13;;-1:-1:-1;;;;;10238:19:0;;;10244:13;;10238:19;10235:146;;10311:14;;10302:6;10286:13;10296:2;-1:-1:-1;;;;;7272:16:0;7245:7;7272:16;;;:7;:16;;;;;;;7179:117;10286:13;:22;;;;:::i;:::-;:39;10278:87;;;;-1:-1:-1;;;10278:87:0;;10342:2:1;10278:87:0;;;10324:21:1;10381:2;10361:18;;;10354:30;10420:34;10400:18;;;10393:62;-1:-1:-1;;;10471:18:1;;;10464:33;10514:19;;10278:87:0;10140:399:1;10278:87:0;10447:4;10398:28;7272:16;;;:7;:16;;;;;;10507:19;;10571:12;;10483:43;;;;;10547:36;;10544:124;;10640:12;;10617:35;;10544:124;10689:7;:18;;;;-1:-1:-1;10701:6:0;;-1:-1:-1;;;10701:6:0;;;;10700:7;10689:18;:43;;;;-1:-1:-1;10719:13:0;;-1:-1:-1;;;;;10711:21:0;;;10719:13;;10711:21;;10689:43;:58;;;;-1:-1:-1;10736:11:0;;-1:-1:-1;;;10736:11:0;;;;10689:58;:87;;;;-1:-1:-1;;;;;;10752:24:0;;;;;;:18;:24;;;;;;;;10751:25;10689:87;:114;;;;-1:-1:-1;;;;;;10781:22:0;;;;;;:18;:22;;;;;;;;10780:23;10689:114;10685:386;;;10824:38;10841:20;10824:16;:38::i;:::-;10910:21;10954:22;;10950:106;;11001:35;11014:21;11001:12;:35::i;:::-;10805:266;10685:386;9889:1193;;9851:1231;-1:-1:-1;;;;;11133:24:0;;11095:12;11133:24;;;:18;:24;;;;;;11110:4;;11133:24;;;:50;;-1:-1:-1;;;;;;11161:22:0;;;;;;:18;:22;;;;;;;;11133:50;11132:102;;;-1:-1:-1;11197:13:0;;-1:-1:-1;;;;;11189:21:0;;;11197:13;;11189:21;;;;:44;;-1:-1:-1;11220:13:0;;-1:-1:-1;;;;;11214:19:0;;;11220:13;;11214:19;;11189:44;11128:532;;;-1:-1:-1;11261:5:0;11128:532;;;11313:13;;-1:-1:-1;;;;;11305:21:0;;;11313:13;;11305:21;:55;;;;-1:-1:-1;11344:15:0;;-1:-1:-1;;;;;11330:30:0;;;11344:15;;11330:30;;11305:55;11302:162;;;11393:14;;11381:9;:26;11436:12;;11426:7;:22;11302:162;11491:13;;-1:-1:-1;;;;;11485:19:0;;;11491:13;;11485:19;:55;;;;-1:-1:-1;11524:15:0;;-1:-1:-1;;;;;11508:32:0;;;11524:15;;11508:32;;11485:55;11481:165;;;11573:15;;11561:9;:27;11617:13;;11607:7;:23;11481:165;11673:41;11688:4;11694:2;11698:6;11706:7;11673:14;:41::i;:::-;9608:2114;9505:2217;;;:::o;2401:224::-;2521:7;2557:12;2549:6;;;;2541:29;;;;-1:-1:-1;;;2541:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2581:9:0;2593:5;2597:1;2593;:5;:::i;:::-;2581:17;2401:224;-1:-1:-1;;;;;2401:224:0:o;12223:160::-;12280:19;;-1:-1:-1;;;;;12280:19:0;:43;12309:13;:6;12320:1;12309:10;:13::i;:::-;12280:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12334:17:0;;-1:-1:-1;;;;;12334:17:0;:41;12361:13;:6;12372:1;12361:10;:13::i;:::-;12334:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12223:160;:::o;11731:483::-;6082:6;:13;;-1:-1:-1;;;;6082:13:0;-1:-1:-1;;;6082:13:0;;;11833:16:::1;::::0;;11847:1:::1;11833:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11833:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11833:16:0::1;11809:40;;11878:4;11860;11865:1;11860:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11860:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11904:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11904:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11860:7;;11904:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11894:4;11899:1;11894:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11894:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11969:15:::1;::::0;11937:62:::1;::::0;11954:4:::1;::::0;11969:15:::1;11987:11:::0;11937:8:::1;:62::i;:::-;12010:15;::::0;:196:::1;::::0;-1:-1:-1;;;12010:196:0;;-1:-1:-1;;;;;12010:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12091:11;;12010:15:::1;::::0;12133:4;;12160::::1;::::0;12180:15:::1;::::0;12010:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6118:6:0;:14;;-1:-1:-1;;;;6118:14:0;;;-1:-1:-1;;;;11731:483:0:o;3030:223::-;3150:7;3185:12;3178:5;3170:28;;;;-1:-1:-1;;;3170:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3209:9:0;3221:5;3225:1;3221;:5;:::i;13251:282::-;13407:7;13402:28;;13416:14;:12;:14::i;:::-;13441:44;13459:6;13467:9;13478:6;13441:17;:44::i;:::-;13501:7;13496:29;;13510:15;9057:17;;9045:9;:29;9095:15;;9085:7;:25;9001:117;8771:221;8818:9;;:14;:30;;;;-1:-1:-1;8836:7:0;;:12;8818:30;8814:43;;;8771:221::o;8814:43::-;8890:9;;;8870:17;:29;8928:7;;;8910:15;:25;-1:-1:-1;8949:13:0;;;;8973:11;8771:221::o;13542:610::-;13689:15;13719:23;13757:12;13784:23;13822:12;13849:13;13876:19;13887:7;13876:10;:19::i;:::-;-1:-1:-1;;;;;13924:15:0;;;;;;:7;:15;;;;;;13674:221;;-1:-1:-1;13674:221:0;;-1:-1:-1;13674:221:0;;-1:-1:-1;13674:221:0;-1:-1:-1;13674:221:0;-1:-1:-1;13674:221:0;-1:-1:-1;13924:28:0;;13674:221;13924:19;:28::i;:::-;-1:-1:-1;;;;;13906:15:0;;;;;;;:7;:15;;;;;;:46;;;;13984:18;;;;;;;:39;;14007:15;13984:22;:39::i;:::-;-1:-1:-1;;;;;13963:18:0;;;;;;:7;:18;;;;;:60;14034:16;14044:5;14034:9;:16::i;:::-;14061:23;14073:4;14079;14061:11;:23::i;:::-;14117:9;-1:-1:-1;;;;;14100:44:0;14109:6;-1:-1:-1;;;;;14100:44:0;;14128:15;14100:44;;;;1734:25:1;;1722:2;1707:18;;1588:177;14100:44:0;;;;;;;;13663:489;;;;;;13542:610;;;:::o;14575:618::-;14675:7;14697;14719;14741;14763;14785;14821:23;14846:12;14860:13;14890:40;14902:7;14911:9;;14922:7;;14890:11;:40::i;:::-;14820:110;;;;;;14941:19;14963:10;:8;:10::i;:::-;14941:32;;14985:15;15002:23;15027:12;15056:46;15068:7;15077:4;15083:5;15090:11;15056;:46::i;:::-;14984:118;;-1:-1:-1;14984:118:0;-1:-1:-1;14984:118:0;-1:-1:-1;15156:15:0;;-1:-1:-1;15173:4:0;;-1:-1:-1;15179:5:0;;-1:-1:-1;;;;;14575:618:0;;;;;;;:::o;2256:136::-;2314:7;2341:43;2345:1;2348;2341:43;;;;;;;;;;;;;;;;;:3;:43::i;2068:179::-;2126:7;;2158:5;2162:1;2158;:5;:::i;:::-;2146:17;;2187:1;2182;:6;;2174:46;;;;-1:-1:-1;;;2174:46:0;;12120:2:1;2174:46:0;;;12102:21:1;12159:2;12139:18;;;12132:30;12198:29;12178:18;;;12171:57;12245:18;;2174:46:0;11918:351:1;14161:211:0;14214:19;14236:10;:8;:10::i;:::-;14214:32;-1:-1:-1;14257:13:0;14273:22;:5;14214:32;14273:9;:22::i;:::-;14347:4;14331:22;;;;:7;:22;;;;;;14257:38;;-1:-1:-1;14331:33:0;;14257:38;14331:26;:33::i;:::-;14322:4;14306:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14161:211:0:o;14381:147::-;14459:7;;:17;;14471:4;14459:11;:17::i;:::-;14449:7;:27;14500:10;;:20;;14515:4;14500:14;:20::i;:::-;14487:10;:33;-1:-1:-1;;14381:147:0:o;15202:472::-;15371:7;;;;15465:30;15491:3;15465:21;:7;15477:8;15465:11;:21::i;:::-;:25;;:30::i;:::-;15450:45;-1:-1:-1;15506:13:0;15522:28;15546:3;15522:19;:7;15534:6;15522:11;:19::i;:28::-;15506:44;-1:-1:-1;15561:23:0;15587:28;15506:44;15587:17;:7;15599:4;15587:11;:17::i;:::-;:21;;:28::i;:::-;15561:54;15654:4;;-1:-1:-1;15660:5:0;;-1:-1:-1;15202:472:0;;-1:-1:-1;;;;;15202:472:0:o;16229:167::-;16271:7;16292:15;16309;16328:19;:17;:19::i;:::-;16291:56;;-1:-1:-1;16291:56:0;-1:-1:-1;16368:20:0;16291:56;;16368:11;:20::i;:::-;16361:27;;;;16229:167;:::o;15683:537::-;15877:7;;;;15974:24;:7;15986:11;15974;:24::i;:::-;15956:42;-1:-1:-1;16009:12:0;16024:21;:4;16033:11;16024:8;:21::i;:::-;16009:36;-1:-1:-1;16056:13:0;16072:22;:5;16082:11;16072:9;:22::i;:::-;16056:38;-1:-1:-1;16105:23:0;16131:28;16056:38;16131:17;:7;16143:4;16131:11;:17::i;:28::-;16181:7;;;;-1:-1:-1;16207:4:0;;-1:-1:-1;15683:537:0;;-1:-1:-1;;;;;;;15683:537:0:o;16565:260::-;16663:7;;16616;;;;4762:18;16731:20;16663:7;4762:18;16731:11;:20::i;:::-;16721:7;:30;16717:61;;;-1:-1:-1;;16761:7:0;;;4762:18;;-1:-1:-1;16565:260:0;-1:-1:-1;16565:260:0:o;16717:61::-;16800:7;;16809;;-1:-1:-1;16565:260:0;-1:-1:-1;16565:260:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1770:456::-;1847:6;1855;1863;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;1971:9;1958:23;1990:31;2015:5;1990:31;:::i;:::-;2040:5;-1:-1:-1;2097:2:1;2082:18;;2069:32;2110:33;2069:32;2110:33;:::i;:::-;1770:456;;2162:7;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1770:456::o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:1121;2447:6;2478:2;2521;2509:9;2500:7;2496:23;2492:32;2489:52;;;2537:1;2534;2527:12;2489:52;2577:9;2564:23;2606:18;2647:2;2639:6;2636:14;2633:34;;;2663:1;2660;2653:12;2633:34;2701:6;2690:9;2686:22;2676:32;;2746:7;2739:4;2735:2;2731:13;2727:27;2717:55;;2768:1;2765;2758:12;2717:55;2804:2;2791:16;2826:2;2822;2819:10;2816:36;;;2832:18;;:::i;:::-;2878:2;2875:1;2871:10;2910:2;2904:9;2973:2;2969:7;2964:2;2960;2956:11;2952:25;2944:6;2940:38;3028:6;3016:10;3013:22;3008:2;2996:10;2993:18;2990:46;2987:72;;;3039:18;;:::i;:::-;3075:2;3068:22;3125:18;;;3159:15;;;;-1:-1:-1;3201:11:1;;;3197:20;;;3229:19;;;3226:39;;;3261:1;3258;3251:12;3226:39;3285:11;;;;3305:148;3321:6;3316:3;3313:15;3305:148;;;3387:23;3406:3;3387:23;:::i;:::-;3375:36;;3338:12;;;;3431;;;;3305:148;;;3472:6;2363:1121;-1:-1:-1;;;;;;;;2363:1121:1:o;3886:247::-;3945:6;3998:2;3986:9;3977:7;3973:23;3969:32;3966:52;;;4014:1;4011;4004:12;3966:52;4053:9;4040:23;4072:31;4097:5;4072:31;:::i;4138:388::-;4206:6;4214;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;4322:9;4309:23;4341:31;4366:5;4341:31;:::i;:::-;4391:5;-1:-1:-1;4448:2:1;4433:18;;4420:32;4461:33;4420:32;4461:33;:::i;:::-;4513:7;4503:17;;;4138:388;;;;;:::o;4531:356::-;4733:2;4715:21;;;4752:18;;;4745:30;4811:34;4806:2;4791:18;;4784:62;4878:2;4863:18;;4531:356::o;4892:127::-;4953:10;4948:3;4944:20;4941:1;4934:31;4984:4;4981:1;4974:15;5008:4;5005:1;4998:15;5024:127;5085:10;5080:3;5076:20;5073:1;5066:31;5116:4;5113:1;5106:15;5140:4;5137:1;5130:15;5156:135;5195:3;5216:17;;;5213:43;;5236:18;;:::i;:::-;-1:-1:-1;5283:1:1;5272:13;;5156:135::o;5992:168::-;6065:9;;;6096;;6113:15;;;6107:22;;6093:37;6083:71;;6134:18;;:::i;6165:217::-;6205:1;6231;6221:132;;6275:10;6270:3;6266:20;6263:1;6256:31;6310:4;6307:1;6300:15;6338:4;6335:1;6328:15;6221:132;-1:-1:-1;6367:9:1;;6165:217::o;10010:125::-;10075:9;;;10096:10;;;10093:36;;;10109:18;;:::i;10544:128::-;10611:9;;;10632:11;;;10629:37;;;10646:18;;:::i;10677:251::-;10747:6;10800:2;10788:9;10779:7;10775:23;10771:32;10768:52;;;10816:1;10813;10806:12;10768:52;10848:9;10842:16;10867:31;10892:5;10867:31;:::i;10933:980::-;11195:4;11243:3;11232:9;11228:19;11274:6;11263:9;11256:25;11300:2;11338:6;11333:2;11322:9;11318:18;11311:34;11381:3;11376:2;11365:9;11361:18;11354:31;11405:6;11440;11434:13;11471:6;11463;11456:22;11509:3;11498:9;11494:19;11487:26;;11548:2;11540:6;11536:15;11522:29;;11569:1;11579:195;11593:6;11590:1;11587:13;11579:195;;;11658:13;;-1:-1:-1;;;;;11654:39:1;11642:52;;11749:15;;;;11714:12;;;;11690:1;11608:9;11579:195;;;-1:-1:-1;;;;;;;11830:32:1;;;;11825:2;11810:18;;11803:60;-1:-1:-1;;;11894:3:1;11879:19;11872:35;11791:3;10933:980;-1:-1:-1;;;10933:980:1:o
Swarm Source
ipfs://dd5272ff75451372ef70c5e9444cc9824d8ba4c06de609da1e1f1eab00e1b99c
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.