ERC-20
Overview
Max Total Supply
350,000,000 ABE
Holders
2
Total Transfers
-
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 Source Code Verified (Exact Match)
Contract Name:
ABE
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-08 */ /* Website: https://abe.lol Telegram: https://t.me/ABEportal X: https://x.com/abethebaldeagle */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.25; 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 ABE is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Abe"; string private constant _symbol = "ABE"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 350000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 25; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 25; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x93497ab51817878F73639A216e5f0459Adf9599f); address payable private _marketingAddress = payable(0xCE396A223871e15F03397A07467F3743791e554D); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 7000000 * 10**9; uint256 public _maxWalletSize = 7000000 * 10**9; uint256 public _swapTokensAtAmount = 3500000 * 10**9; 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 tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function 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()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); 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; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells 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 { _marketingAddress.transfer(amount); } function setTrading() public onlyOwner { require(tradingOpen == false, "Trading already open!"); tradingOpen = true; } 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 _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","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":"_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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526100176704db7325476300005f19610356565b610022905f19610375565b6006555f600881905560196009819055600a829055600b819055600c829055600d819055600e91909155600f55601180546001600160a01b03199081167393497ab51817878f73639a216e5f0459adf9599f179091556012805490911673ce396a223871e15f03397a07467f3743791e554d1790556014805462ffffff60a01b1916600160b01b1790556618de76816d80006015819055601655660c6f3b40b6c0006017553480156100d2575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801561018b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101af919061039a565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021e919061039a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610268573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061028c919061039a565b601480546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601154851684528284208054821683179055601254909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6704db73254763000060405161034891815260200190565b60405180910390a3506103c7565b5f8261037057634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561039457634e487b7160e01b5f52601160045260245ffd5b92915050565b5f602082840312156103aa575f80fd5b81516001600160a01b03811681146103c0575f80fd5b9392505050565b611a42806103d45f395ff3fe608060405260043610610198575f3560e01c80637c519ffb116100e7578063a2a957bb11610087578063c492f04611610062578063c492f04614610480578063dd62ed3e1461049f578063ea1644d5146104e3578063f2fde38b14610502575f80fd5b8063a2a957bb1461042e578063a9059cbb1461044d578063c3c8cd801461046c575f80fd5b80638da5cb5b116100c25780638da5cb5b146103b35780638f9a55c0146103cf57806395d89b41146103e457806398a5c3151461040f575f80fd5b80637c519ffb1461035f5780637d1db4a5146103735780637f2feddc14610388575f80fd5b8063313ce567116101525780636fc3eaec1161012d5780636fc3eaec146102f957806370a082311461030d578063715018a61461032c57806374010ece14610340575f80fd5b8063313ce5671461029e57806349bd5a5e146102b95780636d8aa8f8146102d8575f80fd5b806306fdde03146101a3578063095ea7b3146101e05780631694505e1461020f57806318160ddd1461024657806323b872dd1461026a5780632fd689e314610289575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600381526241626560e81b60208201525b6040516101d791906116ac565b60405180910390f35b3480156101eb575f80fd5b506101ff6101fa3660046116f5565b610521565b60405190151581526020016101d7565b34801561021a575f80fd5b5060135461022e906001600160a01b031681565b6040516001600160a01b0390911681526020016101d7565b348015610251575f80fd5b506704db7325476300005b6040519081526020016101d7565b348015610275575f80fd5b506101ff61028436600461171f565b610537565b348015610294575f80fd5b5061025c60175481565b3480156102a9575f80fd5b50604051600981526020016101d7565b3480156102c4575f80fd5b5060145461022e906001600160a01b031681565b3480156102e3575f80fd5b506102f76102f2366004611771565b61059e565b005b348015610304575f80fd5b506102f76105ee565b348015610318575f80fd5b5061025c61032736600461178a565b610638565b348015610337575f80fd5b506102f7610659565b34801561034b575f80fd5b506102f761035a3660046117a5565b6106ca565b34801561036a575f80fd5b506102f76106f8565b34801561037e575f80fd5b5061025c60155481565b348015610393575f80fd5b5061025c6103a236600461178a565b60106020525f908152604090205481565b3480156103be575f80fd5b505f546001600160a01b031661022e565b3480156103da575f80fd5b5061025c60165481565b3480156103ef575f80fd5b5060408051808201909152600381526241424560e81b60208201526101ca565b34801561041a575f80fd5b506102f76104293660046117a5565b610788565b348015610439575f80fd5b506102f76104483660046117bc565b6107b6565b348015610458575f80fd5b506101ff6104673660046116f5565b6107f3565b348015610477575f80fd5b506102f76107ff565b34801561048b575f80fd5b506102f761049a3660046117eb565b610851565b3480156104aa575f80fd5b5061025c6104b9366004611868565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156104ee575f80fd5b506102f76104fd3660046117a5565b6108e4565b34801561050d575f80fd5b506102f761051c36600461178a565b610912565b5f61052d3384846109f9565b5060015b92915050565b5f610543848484610b1c565b610594843361058f856040518060600160405280602881526020016119e5602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610fb4565b6109f9565b5060019392505050565b5f546001600160a01b031633146105d05760405162461bcd60e51b81526004016105c79061189f565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061062357506012546001600160a01b0316336001600160a01b0316145b61062b575f80fd5b4761063581610fec565b50565b6001600160a01b0381165f9081526002602052604081205461053190611027565b5f546001600160a01b031633146106825760405162461bcd60e51b81526004016105c79061189f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106f35760405162461bcd60e51b81526004016105c79061189f565b601555565b5f546001600160a01b031633146107215760405162461bcd60e51b81526004016105c79061189f565b601454600160a01b900460ff16156107735760405162461bcd60e51b815260206004820152601560248201527454726164696e6720616c7265616479206f70656e2160581b60448201526064016105c7565b6014805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146107b15760405162461bcd60e51b81526004016105c79061189f565b601755565b5f546001600160a01b031633146107df5760405162461bcd60e51b81526004016105c79061189f565b600893909355600a91909155600955600b55565b5f61052d338484610b1c565b6011546001600160a01b0316336001600160a01b0316148061083457506012546001600160a01b0316336001600160a01b0316145b61083c575f80fd5b5f61084630610638565b9050610635816110a9565b5f546001600160a01b0316331461087a5760405162461bcd60e51b81526004016105c79061189f565b5f5b828110156108de578160055f86868581811061089a5761089a6118d4565b90506020020160208101906108af919061178a565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161087c565b50505050565b5f546001600160a01b0316331461090d5760405162461bcd60e51b81526004016105c79061189f565b601655565b5f546001600160a01b0316331461093b5760405162461bcd60e51b81526004016105c79061189f565b6001600160a01b0381166109a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c7565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a5b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c7565b6001600160a01b038216610abc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c7565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c7565b6001600160a01b038216610be25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c7565b5f8111610c435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c7565b5f546001600160a01b03848116911614801590610c6d57505f546001600160a01b03838116911614155b15610eb057601454600160a01b900460ff16610d05575f546001600160a01b03848116911614610d055760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105c7565b601554811115610d575760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105c7565b6014546001600160a01b03838116911614610ddc5760165481610d7984610638565b610d8391906118fc565b10610ddc5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105c7565b5f610de630610638565b601754601554919250821015908210610dff5760155491505b808015610e165750601454600160a81b900460ff16155b8015610e3057506014546001600160a01b03868116911614155b8015610e455750601454600160b01b900460ff165b8015610e6957506001600160a01b0385165f9081526005602052604090205460ff16155b8015610e8d57506001600160a01b0384165f9081526005602052604090205460ff16155b15610ead57610e9b826110a9565b478015610eab57610eab47610fec565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610ef057506001600160a01b0383165f9081526005602052604090205460ff165b80610f2257506014546001600160a01b03858116911614801590610f2257506014546001600160a01b03848116911614155b15610f2e57505f610fa8565b6014546001600160a01b038581169116148015610f5957506013546001600160a01b03848116911614155b15610f6b57600854600c55600954600d555b6014546001600160a01b038481169116148015610f9657506013546001600160a01b03858116911614155b15610fa857600a54600c55600b54600d555b6108de84848484611219565b5f8184841115610fd75760405162461bcd60e51b81526004016105c791906116ac565b505f610fe3848661190f565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611023573d5f803e3d5ffd5b5050565b5f60065482111561108d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c7565b5f611096611247565b90506110a28382611268565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110ef576110ef6118d4565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611146573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116a9190611922565b8160018151811061117d5761117d6118d4565b6001600160a01b0392831660209182029290920101526013546111a391309116846109f9565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111db9085905f9086903090429060040161193d565b5f604051808303815f87803b1580156111f2575f80fd5b505af1158015611204573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b80611226576112266112a9565b6112318484846112d6565b806108de576108de600e54600c55600f54600d55565b5f805f6112526113c7565b90925090506112618282611268565b9250505090565b5f6110a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611406565b600c541580156112b95750600d54155b156112c057565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806112e587611432565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506113169087611487565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461134490866114c8565b6001600160a01b0389165f9081526002602052604090205561136581611526565b61136f848361156c565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113b491815260200190565b60405180910390a3505050505050505050565b6006545f9081906704db7325476300006113e18282611268565b8210156113fd575050600654926704db73254763000092509050565b90939092509050565b5f81836114265760405162461bcd60e51b81526004016105c791906116ac565b505f610fe384866119ae565b5f805f805f805f805f61144a8a600c54600d54611590565b9250925092505f611459611247565b90505f805f61146a8e8787876115e2565b919e509c509a509598509396509194505050505091939550919395565b5f6110a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fb4565b5f806114d483856118fc565b9050838110156110a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c7565b5f61152f611247565b90505f61153c838361162e565b305f9081526002602052604090205490915061155890826114c8565b305f90815260026020526040902055505050565b6006546115799083611487565b60065560075461158990826114c8565b6007555050565b5f8080806115a960646115a3898961162e565b90611268565b90505f6115bb60646115a38a8961162e565b90505f6115d2826115cc8b86611487565b90611487565b9992985090965090945050505050565b5f8080806115f0888661162e565b90505f6115fd888761162e565b90505f61160a888861162e565b90505f61161b826115cc8686611487565b939b939a50919850919650505050505050565b5f825f0361163d57505f610531565b5f61164883856119cd565b90508261165585836119ae565b146110a25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c7565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610635575f80fd5b5f8060408385031215611706575f80fd5b8235611711816116e1565b946020939093013593505050565b5f805f60608486031215611731575f80fd5b833561173c816116e1565b9250602084013561174c816116e1565b929592945050506040919091013590565b8035801515811461176c575f80fd5b919050565b5f60208284031215611781575f80fd5b6110a28261175d565b5f6020828403121561179a575f80fd5b81356110a2816116e1565b5f602082840312156117b5575f80fd5b5035919050565b5f805f80608085870312156117cf575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f604084860312156117fd575f80fd5b833567ffffffffffffffff80821115611814575f80fd5b818601915086601f830112611827575f80fd5b813581811115611835575f80fd5b8760208260051b8501011115611849575f80fd5b60209283019550935061185f918601905061175d565b90509250925092565b5f8060408385031215611879575f80fd5b8235611884816116e1565b91506020830135611894816116e1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610531576105316118e8565b81810381811115610531576105316118e8565b5f60208284031215611932575f80fd5b81516110a2816116e1565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561198d5784516001600160a01b031683529383019391830191600101611968565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119c857634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610531576105316118e856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220060fd53e60010fd5079e298756094af3948d561be167971e478c67a3e66de48564736f6c63430008190033
Deployed Bytecode
0x608060405260043610610198575f3560e01c80637c519ffb116100e7578063a2a957bb11610087578063c492f04611610062578063c492f04614610480578063dd62ed3e1461049f578063ea1644d5146104e3578063f2fde38b14610502575f80fd5b8063a2a957bb1461042e578063a9059cbb1461044d578063c3c8cd801461046c575f80fd5b80638da5cb5b116100c25780638da5cb5b146103b35780638f9a55c0146103cf57806395d89b41146103e457806398a5c3151461040f575f80fd5b80637c519ffb1461035f5780637d1db4a5146103735780637f2feddc14610388575f80fd5b8063313ce567116101525780636fc3eaec1161012d5780636fc3eaec146102f957806370a082311461030d578063715018a61461032c57806374010ece14610340575f80fd5b8063313ce5671461029e57806349bd5a5e146102b95780636d8aa8f8146102d8575f80fd5b806306fdde03146101a3578063095ea7b3146101e05780631694505e1461020f57806318160ddd1461024657806323b872dd1461026a5780632fd689e314610289575f80fd5b3661019f57005b5f80fd5b3480156101ae575f80fd5b5060408051808201909152600381526241626560e81b60208201525b6040516101d791906116ac565b60405180910390f35b3480156101eb575f80fd5b506101ff6101fa3660046116f5565b610521565b60405190151581526020016101d7565b34801561021a575f80fd5b5060135461022e906001600160a01b031681565b6040516001600160a01b0390911681526020016101d7565b348015610251575f80fd5b506704db7325476300005b6040519081526020016101d7565b348015610275575f80fd5b506101ff61028436600461171f565b610537565b348015610294575f80fd5b5061025c60175481565b3480156102a9575f80fd5b50604051600981526020016101d7565b3480156102c4575f80fd5b5060145461022e906001600160a01b031681565b3480156102e3575f80fd5b506102f76102f2366004611771565b61059e565b005b348015610304575f80fd5b506102f76105ee565b348015610318575f80fd5b5061025c61032736600461178a565b610638565b348015610337575f80fd5b506102f7610659565b34801561034b575f80fd5b506102f761035a3660046117a5565b6106ca565b34801561036a575f80fd5b506102f76106f8565b34801561037e575f80fd5b5061025c60155481565b348015610393575f80fd5b5061025c6103a236600461178a565b60106020525f908152604090205481565b3480156103be575f80fd5b505f546001600160a01b031661022e565b3480156103da575f80fd5b5061025c60165481565b3480156103ef575f80fd5b5060408051808201909152600381526241424560e81b60208201526101ca565b34801561041a575f80fd5b506102f76104293660046117a5565b610788565b348015610439575f80fd5b506102f76104483660046117bc565b6107b6565b348015610458575f80fd5b506101ff6104673660046116f5565b6107f3565b348015610477575f80fd5b506102f76107ff565b34801561048b575f80fd5b506102f761049a3660046117eb565b610851565b3480156104aa575f80fd5b5061025c6104b9366004611868565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156104ee575f80fd5b506102f76104fd3660046117a5565b6108e4565b34801561050d575f80fd5b506102f761051c36600461178a565b610912565b5f61052d3384846109f9565b5060015b92915050565b5f610543848484610b1c565b610594843361058f856040518060600160405280602881526020016119e5602891396001600160a01b038a165f9081526004602090815260408083203384529091529020549190610fb4565b6109f9565b5060019392505050565b5f546001600160a01b031633146105d05760405162461bcd60e51b81526004016105c79061189f565b60405180910390fd5b60148054911515600160b01b0260ff60b01b19909216919091179055565b6011546001600160a01b0316336001600160a01b0316148061062357506012546001600160a01b0316336001600160a01b0316145b61062b575f80fd5b4761063581610fec565b50565b6001600160a01b0381165f9081526002602052604081205461053190611027565b5f546001600160a01b031633146106825760405162461bcd60e51b81526004016105c79061189f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106f35760405162461bcd60e51b81526004016105c79061189f565b601555565b5f546001600160a01b031633146107215760405162461bcd60e51b81526004016105c79061189f565b601454600160a01b900460ff16156107735760405162461bcd60e51b815260206004820152601560248201527454726164696e6720616c7265616479206f70656e2160581b60448201526064016105c7565b6014805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146107b15760405162461bcd60e51b81526004016105c79061189f565b601755565b5f546001600160a01b031633146107df5760405162461bcd60e51b81526004016105c79061189f565b600893909355600a91909155600955600b55565b5f61052d338484610b1c565b6011546001600160a01b0316336001600160a01b0316148061083457506012546001600160a01b0316336001600160a01b0316145b61083c575f80fd5b5f61084630610638565b9050610635816110a9565b5f546001600160a01b0316331461087a5760405162461bcd60e51b81526004016105c79061189f565b5f5b828110156108de578160055f86868581811061089a5761089a6118d4565b90506020020160208101906108af919061178a565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161087c565b50505050565b5f546001600160a01b0316331461090d5760405162461bcd60e51b81526004016105c79061189f565b601655565b5f546001600160a01b0316331461093b5760405162461bcd60e51b81526004016105c79061189f565b6001600160a01b0381166109a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105c7565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610a5b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c7565b6001600160a01b038216610abc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c7565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c7565b6001600160a01b038216610be25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c7565b5f8111610c435760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105c7565b5f546001600160a01b03848116911614801590610c6d57505f546001600160a01b03838116911614155b15610eb057601454600160a01b900460ff16610d05575f546001600160a01b03848116911614610d055760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105c7565b601554811115610d575760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105c7565b6014546001600160a01b03838116911614610ddc5760165481610d7984610638565b610d8391906118fc565b10610ddc5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105c7565b5f610de630610638565b601754601554919250821015908210610dff5760155491505b808015610e165750601454600160a81b900460ff16155b8015610e3057506014546001600160a01b03868116911614155b8015610e455750601454600160b01b900460ff165b8015610e6957506001600160a01b0385165f9081526005602052604090205460ff16155b8015610e8d57506001600160a01b0384165f9081526005602052604090205460ff16155b15610ead57610e9b826110a9565b478015610eab57610eab47610fec565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff1680610ef057506001600160a01b0383165f9081526005602052604090205460ff165b80610f2257506014546001600160a01b03858116911614801590610f2257506014546001600160a01b03848116911614155b15610f2e57505f610fa8565b6014546001600160a01b038581169116148015610f5957506013546001600160a01b03848116911614155b15610f6b57600854600c55600954600d555b6014546001600160a01b038481169116148015610f9657506013546001600160a01b03858116911614155b15610fa857600a54600c55600b54600d555b6108de84848484611219565b5f8184841115610fd75760405162461bcd60e51b81526004016105c791906116ac565b505f610fe3848661190f565b95945050505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611023573d5f803e3d5ffd5b5050565b5f60065482111561108d5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105c7565b5f611096611247565b90506110a28382611268565b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110ef576110ef6118d4565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611146573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116a9190611922565b8160018151811061117d5761117d6118d4565b6001600160a01b0392831660209182029290920101526013546111a391309116846109f9565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906111db9085905f9086903090429060040161193d565b5f604051808303815f87803b1580156111f2575f80fd5b505af1158015611204573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b80611226576112266112a9565b6112318484846112d6565b806108de576108de600e54600c55600f54600d55565b5f805f6112526113c7565b90925090506112618282611268565b9250505090565b5f6110a283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611406565b600c541580156112b95750600d54155b156112c057565b600c8054600e55600d8054600f555f9182905555565b5f805f805f806112e587611432565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506113169087611487565b6001600160a01b03808b165f9081526002602052604080822093909355908a168152205461134490866114c8565b6001600160a01b0389165f9081526002602052604090205561136581611526565b61136f848361156c565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113b491815260200190565b60405180910390a3505050505050505050565b6006545f9081906704db7325476300006113e18282611268565b8210156113fd575050600654926704db73254763000092509050565b90939092509050565b5f81836114265760405162461bcd60e51b81526004016105c791906116ac565b505f610fe384866119ae565b5f805f805f805f805f61144a8a600c54600d54611590565b9250925092505f611459611247565b90505f805f61146a8e8787876115e2565b919e509c509a509598509396509194505050505091939550919395565b5f6110a283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fb4565b5f806114d483856118fc565b9050838110156110a25760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105c7565b5f61152f611247565b90505f61153c838361162e565b305f9081526002602052604090205490915061155890826114c8565b305f90815260026020526040902055505050565b6006546115799083611487565b60065560075461158990826114c8565b6007555050565b5f8080806115a960646115a3898961162e565b90611268565b90505f6115bb60646115a38a8961162e565b90505f6115d2826115cc8b86611487565b90611487565b9992985090965090945050505050565b5f8080806115f0888661162e565b90505f6115fd888761162e565b90505f61160a888861162e565b90505f61161b826115cc8686611487565b939b939a50919850919650505050505050565b5f825f0361163d57505f610531565b5f61164883856119cd565b90508261165585836119ae565b146110a25760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105c7565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610635575f80fd5b5f8060408385031215611706575f80fd5b8235611711816116e1565b946020939093013593505050565b5f805f60608486031215611731575f80fd5b833561173c816116e1565b9250602084013561174c816116e1565b929592945050506040919091013590565b8035801515811461176c575f80fd5b919050565b5f60208284031215611781575f80fd5b6110a28261175d565b5f6020828403121561179a575f80fd5b81356110a2816116e1565b5f602082840312156117b5575f80fd5b5035919050565b5f805f80608085870312156117cf575f80fd5b5050823594602084013594506040840135936060013592509050565b5f805f604084860312156117fd575f80fd5b833567ffffffffffffffff80821115611814575f80fd5b818601915086601f830112611827575f80fd5b813581811115611835575f80fd5b8760208260051b8501011115611849575f80fd5b60209283019550935061185f918601905061175d565b90509250925092565b5f8060408385031215611879575f80fd5b8235611884816116e1565b91506020830135611894816116e1565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610531576105316118e8565b81810381811115610531576105316118e8565b5f60208284031215611932575f80fd5b81516110a2816116e1565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561198d5784516001600160a01b031683529383019391830191600101611968565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826119c857634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610531576105316118e856fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220060fd53e60010fd5079e298756094af3948d561be167971e478c67a3e66de48564736f6c63430008190033
Deployed Bytecode Sourcemap
4177:13132:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6630:83;;;;;;;;;;-1:-1:-1;6700:5:0;;;;;;;;;;;;-1:-1:-1;;;6700:5:0;;;;6630:83;;;;;;;:::i;:::-;;;;;;;;7555:193;;;;;;;;;;-1:-1:-1;7555:193:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;7555:193:0;893:187:1;5472:41:0;;;;;;;;;;-1:-1:-1;5472:41:0;;;;-1:-1:-1;;;;;5472:41:0;;;;;;-1:-1:-1;;;;;1275:32:1;;;1257:51;;1245:2;1230:18;5472:41:0;1085:229:1;6907:95:0;;;;;;;;;;-1:-1:-1;4713:17:0;6907:95;;;1465:25:1;;;1453:2;1438:18;6907:95:0;1319:177:1;7756:446:0;;;;;;;;;;-1:-1:-1;7756:446:0;;;;;:::i;:::-;;:::i;5776:52::-;;;;;;;;;;;;;;;;6816:83;;;;;;;;;;-1:-1:-1;6816:83:0;;4387:1;2104:36:1;;2092:2;2077:18;6816:83:0;1962:184:1;5520:28:0;;;;;;;;;;-1:-1:-1;5520:28:0;;;;-1:-1:-1;;;;;5520:28:0;;;16691:101;;;;;;;;;;-1:-1:-1;16691:101:0;;;;;:::i;:::-;;:::i;:::-;;12516:235;;;;;;;;;;;;;:::i;7010:138::-;;;;;;;;;;-1:-1:-1;7010:138:0;;;;;:::i;:::-;;:::i;1664:148::-;;;;;;;;;;;;;:::i;16831:108::-;;;;;;;;;;-1:-1:-1;16831:108:0;;;;;:::i;:::-;;:::i;12119:141::-;;;;;;;;;;;;;:::i;5670:45::-;;;;;;;;;;;;;;;;5212:43;;;;;;;;;;-1:-1:-1;5212:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1450:79;;;;;;;;;;-1:-1:-1;1488:7:0;1515:6;-1:-1:-1;;;;;1515:6:0;1450:79;;5722:47;;;;;;;;;;;;;;;;6721:87;;;;;;;;;;-1:-1:-1;6793:7:0;;;;;;;;;;;;-1:-1:-1;;;6793:7:0;;;;6721:87;;16500:139;;;;;;;;;;-1:-1:-1;16500:139:0;;;;;:::i;:::-;;:::i;16157:291::-;;;;;;;;;;-1:-1:-1;16157:291:0;;;;;:::i;:::-;;:::i;7156:199::-;;;;;;;;;;-1:-1:-1;7156:199:0;;;;;:::i;:::-;;:::i;12272:236::-;;;;;;;;;;;;;:::i;17070:234::-;;;;;;;;;;-1:-1:-1;17070:234:0;;;;;:::i;:::-;;:::i;7363:184::-;;;;;;;;;;-1:-1:-1;7363:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7512:18:0;;;7480:7;7512:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7363:184;16947:115;;;;;;;;;;-1:-1:-1;16947:115:0;;;;;:::i;:::-;;:::i;1820:244::-;;;;;;;;;;-1:-1:-1;1820:244:0;;;;;:::i;:::-;;:::i;7555:193::-;7657:4;7679:39;289:10;7702:7;7711:6;7679:8;:39::i;:::-;-1:-1:-1;7736:4:0;7555:193;;;;;:::o;7756:446::-;7888:4;7905:36;7915:6;7923:9;7934:6;7905:9;:36::i;:::-;7952:220;7975:6;289:10;8023:138;8079:6;8023:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8023:19:0;;;;;;:11;:19;;;;;;;;289:10;8023:33;;;;;;;;;;:37;:138::i;:::-;7952:8;:220::i;:::-;-1:-1:-1;8190:4:0;7756:446;;;;;:::o;16691:101::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;;;;;;;;;16758:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16758:26:0::1;-1:-1:-1::0;;;;16758:26:0;;::::1;::::0;;;::::1;::::0;;16691:101::o;12516:235::-;12582:19;;-1:-1:-1;;;;;12582:19:0;289:10;-1:-1:-1;;;;;12566:35:0;;:72;;;-1:-1:-1;12621:17:0;;-1:-1:-1;;;;;12621:17:0;289:10;-1:-1:-1;;;;;12605:33:0;;12566:72;12558:81;;;;;;12679:21;12711:32;12679:21;12711:12;:32::i;:::-;12547:204;12516:235::o;7010:138::-;-1:-1:-1;;;;;7123:16:0;;7076:7;7123:16;;;:7;:16;;;;;;7103:37;;:19;:37::i;1664:148::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;1771:1:::1;1755:6:::0;;1734:40:::1;::::0;-1:-1:-1;;;;;1755:6:0;;::::1;::::0;1734:40:::1;::::0;1771:1;;1734:40:::1;1802:1;1785:19:::0;;-1:-1:-1;;;;;;1785:19:0::1;::::0;;1664:148::o;16831:108::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;16905:12:::1;:26:::0;16831:108::o;12119:141::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;12177:11:::1;::::0;-1:-1:-1;;;12177:11:0;::::1;;;:20;12169:54;;;::::0;-1:-1:-1;;;12169:54:0;;5186:2:1;12169:54:0::1;::::0;::::1;5168:21:1::0;5225:2;5205:18;;;5198:30;-1:-1:-1;;;5244:18:1;;;5237:51;5305:18;;12169:54:0::1;4984:345:1::0;12169:54:0::1;12234:11;:18:::0;;-1:-1:-1;;;;12234:18:0::1;-1:-1:-1::0;;;12234:18:0::1;::::0;;12119:141::o;16500:139::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;16591:19:::1;:40:::0;16500:139::o;16157:291::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;16291:14:::1;:30:::0;;;;16332:15:::1;:32:::0;;;;16375:12:::1;:26:::0;16412:13:::1;:28:::0;16157:291::o;7156:199::-;7261:4;7283:42;289:10;7307:9;7318:6;7283:9;:42::i;12272:236::-;12338:19;;-1:-1:-1;;;;;12338:19:0;289:10;-1:-1:-1;;;;;12322:35:0;;:72;;;-1:-1:-1;12377:17:0;;-1:-1:-1;;;;;12377:17:0;289:10;-1:-1:-1;;;;;12361:33:0;;12322:72;12314:81;;;;;;12406:23;12432:24;12450:4;12432:9;:24::i;:::-;12406:50;;12467:33;12484:15;12467:16;:33::i;17070:234::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;17187:9:::1;17183:114;17202:19:::0;;::::1;17183:114;;;17277:8;17243:18;:31;17262:8;;17271:1;17262:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17243:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17243:31:0;:42;;-1:-1:-1;;17243:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17223:3:0::1;17183:114;;;;17070:234:::0;;;:::o;16947:115::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;17024:14:::1;:30:::0;16947:115::o;1820:244::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1909:22:0;::::1;1901:73;;;::::0;-1:-1:-1;;;1901:73:0;;5668:2:1;1901:73:0::1;::::0;::::1;5650:21:1::0;5707:2;5687:18;;;5680:30;5746:34;5726:18;;;5719:62;-1:-1:-1;;;5797:18:1;;;5790:36;5843:19;;1901:73:0::1;5466:402:1::0;1901:73:0::1;2011:6;::::0;;1990:38:::1;::::0;-1:-1:-1;;;;;1990:38:0;;::::1;::::0;2011:6;::::1;::::0;1990:38:::1;::::0;::::1;2039:6;:17:::0;;-1:-1:-1;;;;;;2039:17:0::1;-1:-1:-1::0;;;;;2039:17:0;;;::::1;::::0;;;::::1;::::0;;1820:244::o;8893:369::-;-1:-1:-1;;;;;9020:19:0;;9012:68;;;;-1:-1:-1;;;9012:68:0;;6075:2:1;9012:68:0;;;6057:21:1;6114:2;6094:18;;;6087:30;6153:34;6133:18;;;6126:62;-1:-1:-1;;;6204:18:1;;;6197:34;6248:19;;9012:68:0;5873:400:1;9012:68:0;-1:-1:-1;;;;;9099:21:0;;9091:68;;;;-1:-1:-1;;;9091:68:0;;6480:2:1;9091:68:0;;;6462:21:1;6519:2;6499:18;;;6492:30;6558:34;6538:18;;;6531:62;-1:-1:-1;;;6609:18:1;;;6602:32;6651:19;;9091:68:0;6278:398:1;9091:68:0;-1:-1:-1;;;;;9170:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9222:32;;1465:25:1;;;9222:32:0;;1438:18:1;9222:32:0;;;;;;;8893:369;;;:::o;9270:2243::-;-1:-1:-1;;;;;9392:18:0;;9384:68;;;;-1:-1:-1;;;9384:68:0;;6883:2:1;9384:68:0;;;6865:21:1;6922:2;6902:18;;;6895:30;6961:34;6941:18;;;6934:62;-1:-1:-1;;;7012:18:1;;;7005:35;7057:19;;9384:68:0;6681:401:1;9384:68:0;-1:-1:-1;;;;;9471:16:0;;9463:64;;;;-1:-1:-1;;;9463:64:0;;7289:2:1;9463:64:0;;;7271:21:1;7328:2;7308:18;;;7301:30;7367:34;7347:18;;;7340:62;-1:-1:-1;;;7418:18:1;;;7411:33;7461:19;;9463:64:0;7087:399:1;9463:64:0;9555:1;9546:6;:10;9538:64;;;;-1:-1:-1;;;9538:64:0;;7693:2:1;9538:64:0;;;7675:21:1;7732:2;7712:18;;;7705:30;7771:34;7751:18;;;7744:62;-1:-1:-1;;;7822:18:1;;;7815:39;7871:19;;9538:64:0;7491:405:1;9538:64:0;1488:7;1515:6;-1:-1:-1;;;;;9619:15:0;;;1515:6;;9619:15;;;;:32;;-1:-1:-1;1488:7:0;1515:6;-1:-1:-1;;;;;9638:13:0;;;1515:6;;9638:13;;9619:32;9615:1172;;;9708:11;;-1:-1:-1;;;9708:11:0;;;;9703:144;;1488:7;1515:6;-1:-1:-1;;;;;9748:15:0;;;1515:6;;9748:15;9740:91;;;;-1:-1:-1;;;9740:91:0;;8103:2:1;9740:91:0;;;8085:21:1;8142:2;8122:18;;;8115:30;8181:34;8161:18;;;8154:62;8252:33;8232:18;;;8225:61;8303:19;;9740:91:0;7901:427:1;9740:91:0;9881:12;;9871:6;:22;;9863:63;;;;-1:-1:-1;;;9863:63:0;;8535:2:1;9863:63:0;;;8517:21:1;8574:2;8554:18;;;8547:30;8613;8593:18;;;8586:58;8661:18;;9863:63:0;8333:352:1;9863:63:0;9952:13;;-1:-1:-1;;;;;9946:19:0;;;9952:13;;9946:19;9943:146;;10019:14;;10010:6;9994:13;10004:2;9994:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9986:87;;;;-1:-1:-1;;;9986:87:0;;9154:2:1;9986:87:0;;;9136:21:1;9193:2;9173:18;;;9166:30;9232:34;9212:18;;;9205:62;-1:-1:-1;;;9283:18:1;;;9276:33;9326:19;;9986:87:0;8952:399:1;9986:87:0;10105:28;10136:24;10154:4;10136:9;:24::i;:::-;10214:19;;10277:12;;10105:55;;-1:-1:-1;10190:43:0;;;;10253:36;;10250:124;;10346:12;;10323:35;;10250:124;10394:7;:18;;;;-1:-1:-1;10406:6:0;;-1:-1:-1;;;10406:6:0;;;;10405:7;10394:18;:43;;;;-1:-1:-1;10424:13:0;;-1:-1:-1;;;;;10416:21:0;;;10424:13;;10416:21;;10394:43;:58;;;;-1:-1:-1;10441:11:0;;-1:-1:-1;;;10441:11:0;;;;10394:58;:87;;;;-1:-1:-1;;;;;;10457:24:0;;;;;;:18;:24;;;;;;;;10456:25;10394:87;:114;;;;-1:-1:-1;;;;;;10486:22:0;;;;;;:18;:22;;;;;;;;10485:23;10394:114;10390:386;;;10529:38;10546:20;10529:16;:38::i;:::-;10615:21;10659:22;;10655:106;;10706:35;10719:21;10706:12;:35::i;:::-;10510:266;10390:386;9653:1134;;9615:1172;-1:-1:-1;;;;;10863:24:0;;10799:12;10863:24;;;:18;:24;;;;;;10814:4;;10863:24;;;:50;;-1:-1:-1;;;;;;10891:22:0;;;;;;:18;:22;;;;;;;;10863:50;10862:102;;;-1:-1:-1;10927:13:0;;-1:-1:-1;;;;;10919:21:0;;;10927:13;;10919:21;;;;:44;;-1:-1:-1;10950:13:0;;-1:-1:-1;;;;;10944:19:0;;;10950:13;;10944:19;;10919:44;10858:594;;;-1:-1:-1;10991:5:0;10858:594;;;11074:13;;-1:-1:-1;;;;;11066:21:0;;;11074:13;;11066:21;:55;;;;-1:-1:-1;11105:15:0;;-1:-1:-1;;;;;11091:30:0;;;11105:15;;11091:30;;11066:55;11063:162;;;11154:14;;11142:9;:26;11197:12;;11187:7;:22;11063:162;11284:13;;-1:-1:-1;;;;;11278:19:0;;;11284:13;;11278:19;:55;;;;-1:-1:-1;11317:15:0;;-1:-1:-1;;;;;11301:32:0;;;11317:15;;11301:32;;11278:55;11274:165;;;11366:15;;11354:9;:27;11410:13;;11400:7;:23;11274:165;11464:41;11479:4;11485:2;11489:6;11497:7;11464:14;:41::i;2428:224::-;2548:7;2584:12;2576:6;;;;2568:29;;;;-1:-1:-1;;;2568:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2608:9:0;2620:5;2624:1;2620;:5;:::i;:::-;2608:17;2428:224;-1:-1:-1;;;;;2428:224:0:o;12012:99::-;12069:17;;:34;;-1:-1:-1;;;;;12069:17:0;;;;:34;;;;;12096:6;;12069:17;:34;:17;:34;12096:6;12069:17;:34;;;;;;;;;;;;;;;;;;;;;12012:99;:::o;8210:323::-;8305:7;8363;;8352;:18;;8330:110;;;;-1:-1:-1;;;8330:110:0;;9691:2:1;8330:110:0;;;9673:21:1;9730:2;9710:18;;;9703:30;9769:34;9749:18;;;9742:62;-1:-1:-1;;;9820:18:1;;;9813:40;9870:19;;8330:110:0;9489:406:1;8330:110:0;8451:19;8473:10;:8;:10::i;:::-;8451:32;-1:-1:-1;8501:24:0;:7;8451:32;8501:11;:24::i;:::-;8494:31;8210:323;-1:-1:-1;;;8210:323:0:o;11521:483::-;5922:6;:13;;-1:-1:-1;;;;5922:13:0;-1:-1:-1;;;5922:13:0;;;11623:16:::1;::::0;;11637:1:::1;11623:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11623:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11623:16:0::1;11599:40;;11668:4;11650;11655:1;11650:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11650:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11694:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11694:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11650:7;;11694:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11684:4;11689:1;11684:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11684:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11759:15:::1;::::0;11727:62:::1;::::0;11744:4:::1;::::0;11759:15:::1;11777:11:::0;11727:8:::1;:62::i;:::-;11800:15;::::0;:196:::1;::::0;-1:-1:-1;;;11800:196:0;;-1:-1:-1;;;;;11800:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11881:11;;11800:15:::1;::::0;11923:4;;11950::::1;::::0;11970:15:::1;::::0;11800:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5958:6:0;:14;;-1:-1:-1;;;;5958:14:0;;;-1:-1:-1;;;;11521:483:0:o;12759:282::-;12915:7;12910:28;;12924:14;:12;:14::i;:::-;12949:44;12967:6;12975:9;12986:6;12949:17;:44::i;:::-;13009:7;13004:29;;13018:15;8824:17;;8812:9;:29;8862:15;;8852:7;:25;8768:117;15720:164;15762:7;15783:15;15800;15819:19;:17;:19::i;:::-;15782:56;;-1:-1:-1;15782:56:0;-1:-1:-1;15856:20:0;15782:56;;15856:11;:20::i;:::-;15849:27;;;;15720:164;:::o;2914:132::-;2972:7;2999:39;3003:1;3006;2999:39;;;;;;;;;;;;;;;;;:3;:39::i;8541:219::-;8588:9;;:14;:30;;;;-1:-1:-1;8606:7:0;;:12;8588:30;8584:43;;;8541:219::o;8584:43::-;8659:9;;;8639:17;:29;8697:7;;;8679:15;:25;-1:-1:-1;8717:13:0;;;;8741:11;8541:219::o;13049:610::-;13196:15;13226:23;13264:12;13291:23;13329:12;13356:13;13383:19;13394:7;13383:10;:19::i;:::-;-1:-1:-1;;;;;13431:15:0;;;;;;:7;:15;;;;;;13181:221;;-1:-1:-1;13181:221:0;;-1:-1:-1;13181:221:0;;-1:-1:-1;13181:221:0;-1:-1:-1;13181:221:0;-1:-1:-1;13181:221:0;-1:-1:-1;13431:28:0;;13181:221;13431:19;:28::i;:::-;-1:-1:-1;;;;;13413:15:0;;;;;;;:7;:15;;;;;;:46;;;;13491:18;;;;;;;:39;;13514:15;13491:22;:39::i;:::-;-1:-1:-1;;;;;13470:18:0;;;;;;:7;:18;;;;;:60;13541:16;13551:5;13541:9;:16::i;:::-;13568:23;13580:4;13586;13568:11;:23::i;:::-;13624:9;-1:-1:-1;;;;;13607:44:0;13616:6;-1:-1:-1;;;;;13607:44:0;;13635:15;13607:44;;;;1465:25:1;;1453:2;1438:18;;1319:177;13607:44:0;;;;;;;;13170:489;;;;;;13049:610;;;:::o;15892:257::-;15990:7;;15943;;;;4713:17;16058:20;15990:7;4713:17;16058:11;:20::i;:::-;16048:7;:30;16044:61;;;-1:-1:-1;;16088:7:0;;;4713:17;;-1:-1:-1;15892:257:0;-1:-1:-1;15892:257:0:o;16044:61::-;16124:7;;16133;;-1:-1:-1;15892:257:0;-1:-1:-1;15892:257:0:o;3054:223::-;3174:7;3209:12;3202:5;3194:28;;;;-1:-1:-1;;;3194:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3233:9:0;3245:5;3249:1;3245;:5;:::i;14078:615::-;14178:7;14200;14222;14244;14266;14288;14324:23;14349:12;14363:13;14393:40;14405:7;14414:9;;14425:7;;14393:11;:40::i;:::-;14323:110;;;;;;14444:19;14466:10;:8;:10::i;:::-;14444:32;;14488:15;14505:23;14530:12;14559:46;14571:7;14580:4;14586:5;14593:11;14559;:46::i;:::-;14487:118;;-1:-1:-1;14487:118:0;-1:-1:-1;14487:118:0;-1:-1:-1;14656:15:0;;-1:-1:-1;14673:4:0;;-1:-1:-1;14679:5:0;;-1:-1:-1;;;;;14078:615:0;;;;;;;:::o;2284:136::-;2342:7;2369:43;2373:1;2376;2369:43;;;;;;;;;;;;;;;;;:3;:43::i;2097:179::-;2155:7;;2187:5;2191:1;2187;:5;:::i;:::-;2175:17;;2216:1;2211;:6;;2203:46;;;;-1:-1:-1;;;2203:46:0;;11697:2:1;2203:46:0;;;11679:21:1;11736:2;11716:18;;;11709:30;11775:29;11755:18;;;11748:57;11822:18;;2203:46:0;11495:351:1;13667:211:0;13720:19;13742:10;:8;:10::i;:::-;13720:32;-1:-1:-1;13763:13:0;13779:22;:5;13720:32;13779:9;:22::i;:::-;13853:4;13837:22;;;;:7;:22;;;;;;13763:38;;-1:-1:-1;13837:33:0;;13763:38;13837:26;:33::i;:::-;13828:4;13812:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13667:211:0:o;13886:147::-;13964:7;;:17;;13976:4;13964:11;:17::i;:::-;13954:7;:27;14005:10;;:20;;14020:4;14005:14;:20::i;:::-;13992:10;:33;-1:-1:-1;;13886:147:0:o;14701:469::-;14870:7;;;;14964:30;14990:3;14964:21;:7;14976:8;14964:11;:21::i;:::-;:25;;:30::i;:::-;14949:45;-1:-1:-1;15005:13:0;15021:28;15045:3;15021:19;:7;15033:6;15021:11;:19::i;:28::-;15005:44;-1:-1:-1;15060:23:0;15086:28;15005:44;15086:17;:7;15098:4;15086:11;:17::i;:::-;:21;;:28::i;:::-;15060:54;15150:4;;-1:-1:-1;15156:5:0;;-1:-1:-1;14701:469:0;;-1:-1:-1;;;;;14701:469:0:o;15178:534::-;15372:7;;;;15469:24;:7;15481:11;15469;:24::i;:::-;15451:42;-1:-1:-1;15504:12:0;15519:21;:4;15528:11;15519:8;:21::i;:::-;15504:36;-1:-1:-1;15551:13:0;15567:22;:5;15577:11;15567:9;:22::i;:::-;15551:38;-1:-1:-1;15600:23:0;15626:28;15551:38;15626:17;:7;15638:4;15626:11;:17::i;:28::-;15673:7;;;;-1:-1:-1;15699:4:0;;-1:-1:-1;15178:534:0;;-1:-1:-1;;;;;;;15178:534:0:o;2660:246::-;2718:7;2742:1;2747;2742:6;2738:47;;-1:-1:-1;2772:1:0;2765:8;;2738:47;2795:9;2807:5;2811:1;2807;:5;:::i;:::-;2795:17;-1:-1:-1;2840:1:0;2831:5;2835:1;2795:17;2831:5;:::i;:::-;:10;2823:56;;;;-1:-1:-1;;;2823:56:0;;12226:2:1;2823:56:0;;;12208:21:1;12265:2;12245:18;;;12238:30;12304:34;12284:18;;;12277:62;-1:-1:-1;;;12355:18:1;;;12348:31;12396:19;;2823:56:0;12024:397:1;14:418;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1501:456::-;1578:6;1586;1594;1647:2;1635:9;1626:7;1622:23;1618:32;1615:52;;;1663:1;1660;1653:12;1615:52;1702:9;1689:23;1721:31;1746:5;1721:31;:::i;:::-;1771:5;-1:-1:-1;1828:2:1;1813:18;;1800:32;1841:33;1800:32;1841:33;:::i;:::-;1501:456;;1893:7;;-1:-1:-1;;;1947:2:1;1932:18;;;;1919:32;;1501:456::o;2359:160::-;2424:20;;2480:13;;2473:21;2463:32;;2453:60;;2509:1;2506;2499:12;2453:60;2359:160;;;:::o;2524:180::-;2580:6;2633:2;2621:9;2612:7;2608:23;2604:32;2601:52;;;2649:1;2646;2639:12;2601:52;2672:26;2688:9;2672:26;:::i;2709:247::-;2768:6;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;2961:180::-;3020:6;3073:2;3061:9;3052:7;3048:23;3044:32;3041:52;;;3089:1;3086;3079:12;3041:52;-1:-1:-1;3112:23:1;;2961:180;-1:-1:-1;2961:180:1:o;3146:385::-;3232:6;3240;3248;3256;3309:3;3297:9;3288:7;3284:23;3280:33;3277:53;;;3326:1;3323;3316:12;3277:53;-1:-1:-1;;3349:23:1;;;3419:2;3404:18;;3391:32;;-1:-1:-1;3470:2:1;3455:18;;3442:32;;3521:2;3506:18;3493:32;;-1:-1:-1;3146:385:1;-1:-1:-1;3146:385:1:o;3536:689::-;3628:6;3636;3644;3697:2;3685:9;3676:7;3672:23;3668:32;3665:52;;;3713:1;3710;3703:12;3665:52;3753:9;3740:23;3782:18;3823:2;3815:6;3812:14;3809:34;;;3839:1;3836;3829:12;3809:34;3877:6;3866:9;3862:22;3852:32;;3922:7;3915:4;3911:2;3907:13;3903:27;3893:55;;3944:1;3941;3934:12;3893:55;3984:2;3971:16;4010:2;4002:6;3999:14;3996:34;;;4026:1;4023;4016:12;3996:34;4081:7;4074:4;4064:6;4061:1;4057:14;4053:2;4049:23;4045:34;4042:47;4039:67;;;4102:1;4099;4092:12;4039:67;4133:4;4125:13;;;;-1:-1:-1;4157:6:1;-1:-1:-1;4182:37:1;;4198:20;;;-1:-1:-1;4182:37:1;:::i;:::-;4172:47;;3536:689;;;;;:::o;4230:388::-;4298:6;4306;4359:2;4347:9;4338:7;4334:23;4330:32;4327:52;;;4375:1;4372;4365:12;4327:52;4414:9;4401:23;4433:31;4458:5;4433:31;:::i;:::-;4483:5;-1:-1:-1;4540:2:1;4525:18;;4512:32;4553:33;4512:32;4553:33;:::i;:::-;4605:7;4595:17;;;4230:388;;;;;:::o;4623:356::-;4825:2;4807:21;;;4844:18;;;4837:30;4903:34;4898:2;4883:18;;4876:62;4970:2;4955:18;;4623:356::o;5334:127::-;5395:10;5390:3;5386:20;5383:1;5376:31;5426:4;5423:1;5416:15;5450:4;5447:1;5440:15;8690:127;8751:10;8746:3;8742:20;8739:1;8732:31;8782:4;8779:1;8772:15;8806:4;8803:1;8796:15;8822:125;8887:9;;;8908:10;;;8905:36;;;8921:18;;:::i;9356:128::-;9423:9;;;9444:11;;;9441:37;;;9458:18;;:::i;10032:251::-;10102:6;10155:2;10143:9;10134:7;10130:23;10126:32;10123:52;;;10171:1;10168;10161:12;10123:52;10203:9;10197:16;10222:31;10247:5;10222:31;:::i;10288:980::-;10550:4;10598:3;10587:9;10583:19;10629:6;10618:9;10611:25;10655:2;10693:6;10688:2;10677:9;10673:18;10666:34;10736:3;10731:2;10720:9;10716:18;10709:31;10760:6;10795;10789:13;10826:6;10818;10811:22;10864:3;10853:9;10849:19;10842:26;;10903:2;10895:6;10891:15;10877:29;;10924:1;10934:195;10948:6;10945:1;10942:13;10934:195;;;11013:13;;-1:-1:-1;;;;;11009:39:1;10997:52;;11104:15;;;;11069:12;;;;11045:1;10963:9;10934:195;;;-1:-1:-1;;;;;;;11185:32:1;;;;11180:2;11165:18;;11158:60;-1:-1:-1;;;11249:3:1;11234:19;11227:35;11146:3;10288:980;-1:-1:-1;;;10288:980:1:o;11273:217::-;11313:1;11339;11329:132;;11383:10;11378:3;11374:20;11371:1;11364:31;11418:4;11415:1;11408:15;11446:4;11443:1;11436:15;11329:132;-1:-1:-1;11475:9:1;;11273:217::o;11851:168::-;11924:9;;;11955;;11972:15;;;11966:22;;11952:37;11942:71;;11993:18;;:::i
Swarm Source
ipfs://060fd53e60010fd5079e298756094af3948d561be167971e478c67a3e66de485
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.