More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 52 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Fee | 20851233 | 120 days ago | IN | 0 ETH | 0.00035441 | ||||
Fee | 20851224 | 120 days ago | IN | 0 ETH | 0.00021588 | ||||
Fee | 20851217 | 120 days ago | IN | 0 ETH | 0.00023009 | ||||
Fee | 20851212 | 120 days ago | IN | 0 ETH | 0.00024734 | ||||
Fee | 20851210 | 120 days ago | IN | 0 ETH | 0.00025039 | ||||
Fee | 20851208 | 120 days ago | IN | 0 ETH | 0.00027516 | ||||
Fee | 20851204 | 120 days ago | IN | 0 ETH | 0.00028425 | ||||
Approve | 20851201 | 120 days ago | IN | 0 ETH | 0.00032581 | ||||
Fee | 20851196 | 120 days ago | IN | 0 ETH | 0.00029007 | ||||
Fee | 20851192 | 120 days ago | IN | 0 ETH | 0.00028068 | ||||
Fee | 20851190 | 120 days ago | IN | 0 ETH | 0.00026474 | ||||
Update Max Txn | 20851187 | 120 days ago | IN | 0 ETH | 0.00022702 | ||||
Approve | 20851187 | 120 days ago | IN | 0 ETH | 0.00046218 | ||||
Approve | 20851187 | 120 days ago | IN | 0 ETH | 0.00046218 | ||||
Approve | 20851186 | 120 days ago | IN | 0 ETH | 0.00045559 | ||||
Approve | 20851186 | 120 days ago | IN | 0 ETH | 0.00045559 | ||||
Update Max Walle... | 20851185 | 120 days ago | IN | 0 ETH | 0.00022197 | ||||
Approve | 20851185 | 120 days ago | IN | 0 ETH | 0.00045388 | ||||
Approve | 20851185 | 120 days ago | IN | 0 ETH | 0.00045388 | ||||
Approve | 20851185 | 120 days ago | IN | 0 ETH | 0.00045388 | ||||
Approve | 20851185 | 120 days ago | IN | 0 ETH | 0.00045388 | ||||
Approve | 20851184 | 120 days ago | IN | 0 ETH | 0.00044842 | ||||
Approve | 20851184 | 120 days ago | IN | 0 ETH | 0.00058761 | ||||
Approve | 20851184 | 120 days ago | IN | 0 ETH | 0.00058761 | ||||
Fee | 20851183 | 120 days ago | IN | 0 ETH | 0.00027344 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
DOGGY
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-28 */ /* Telegram: https://t.me/DOGGY_ETH_PORTAL X: https://x.com/Doggy_ETH_X Website: https://doggyy.io/ */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.27; 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 DOGGY is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = unicode"DOGGY"; string private constant _symbol = unicode"DOGGY"; 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 = 690420000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 30; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 45; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0xEeB996C19D5D7DD33833f92339578BB278D7B02f); address payable private _marketingAddress = payable(0xEeB996C19D5D7DD33833f92339578BB278D7B02f); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 13808400 * 10**9; uint256 public _maxWalletSize = 13808400 * 10**9; uint256 public _swapTokensAtAmount = 13808400 * 10**9; event MaxTxAmountUpdate(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 removetaxes() 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"); 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; //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 openTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualunclogg() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function addbot(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unlockbot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removetaxes(); _transferStandard(sender, recipient, amount); if (!takeFee) removetaxes(); } 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 Fee(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 MinSwapTokenThresh(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function updateMaxTxn(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function updateMaxWallet(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeAccountsFromFee(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":"MaxTxAmountUpdate","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":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"Fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"MinSwapTokenThresh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"bots_","type":"address[]"}],"name":"addbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeAccountsFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualunclogg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unlockbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"updateMaxTxn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052610017670994dd54fdd340005f19610340565b610022905f1961035f565b6006555f6008819055601e600955600a819055602d600b819055600c829055600d819055600e91909155600f556012805473eeb996c19d5d7dd33833f92339578bb278d7b02f6001600160a01b031991821681179092556013805490911690911790556015805462ffffff60a01b19166201000160a01b17905566310eaaa8eaa000601681905560178190556018553480156100bc575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654335f9081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015610175573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101999190610384565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102089190610384565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610252573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102769190610384565b601580546001600160a01b0319166001600160a01b039283161790555f80548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601354909416835291208054909216179055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670994dd54fdd3400060405161033291815260200190565b60405180910390a3506103b1565b5f8261035a57634e487b7160e01b5f52601260045260245ffd5b500690565b8181038181111561037e57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215610394575f5ffd5b81516001600160a01b03811681146103aa575f5ffd5b9392505050565b611cbb806103be5f395ff3fe6080604052600436106101c8575f3560e01c80636feaf52a116100f257806395d89b4111610092578063ccfee5d611610062578063ccfee5d6146104fb578063dd62ed3e1461051a578063e2ee677d1461055e578063f2fde38b1461057d575f5ffd5b806395d89b41146101d3578063a9059cbb1461049a578063bfd79284146104b9578063c3c8cd80146104e7575f5ffd5b80637d1db4a5116100cd5780637d1db4a5146104295780637f2feddc1461043e5780638da5cb5b146104695780638f9a55c014610485575f5ffd5b80636feaf52a146103d757806370a08231146103f6578063715018a614610415575f5ffd5b80632bc4d48b1161016857806348b09ff21161013857806348b09ff21461035b57806349bd5a5e1461037a5780634c9b21c6146103995780636d8aa8f8146103b8575f5ffd5b80632bc4d48b146102f85780632ece88fb146103175780632fd689e31461032b578063313ce56714610340575f5ffd5b806318160ddd116101a357806318160ddd146102755780631c499ab01461029957806323b872dd146102ba5780632a9b8072146102d9575f5ffd5b806306fdde03146101d3578063095ea7b31461020f5780631694505e1461023e575f5ffd5b366101cf57005b5f5ffd5b3480156101de575f5ffd5b506040805180820182526005815264444f47475960d81b60208201529051610206919061183a565b60405180910390f35b34801561021a575f5ffd5b5061022e610229366004611893565b61059c565b6040519015158152602001610206565b348015610249575f5ffd5b5060145461025d906001600160a01b031681565b6040516001600160a01b039091168152602001610206565b348015610280575f5ffd5b50670994dd54fdd340005b604051908152602001610206565b3480156102a4575f5ffd5b506102b86102b33660046118bd565b6105b2565b005b3480156102c5575f5ffd5b5061022e6102d43660046118d4565b6105e9565b3480156102e4575f5ffd5b506102b86102f3366004611921565b610650565b348015610303575f5ffd5b506102b86103123660046118bd565b610697565b348015610322575f5ffd5b506102b86106c5565b348015610336575f5ffd5b5061028b60185481565b34801561034b575f5ffd5b5060405160098152602001610206565b348015610366575f5ffd5b506102b861037536600461193a565b61070f565b348015610385575f5ffd5b5060155461025d906001600160a01b031681565b3480156103a4575f5ffd5b506102b86103b3366004611969565b61074c565b3480156103c3575f5ffd5b506102b86103d2366004611921565b610795565b3480156103e2575f5ffd5b506102b86103f1366004611984565b6107dc565b348015610401575f5ffd5b5061028b610410366004611969565b61086f565b348015610420575f5ffd5b506102b8610890565b348015610434575f5ffd5b5061028b60165481565b348015610449575f5ffd5b5061028b610458366004611969565b60116020525f908152604090205481565b348015610474575f5ffd5b505f546001600160a01b031661025d565b348015610490575f5ffd5b5061028b60175481565b3480156104a5575f5ffd5b5061022e6104b4366004611893565b610901565b3480156104c4575f5ffd5b5061022e6104d3366004611969565b60106020525f908152604090205460ff1681565b3480156104f2575f5ffd5b506102b861090d565b348015610506575f5ffd5b506102b8610515366004611a17565b61095f565b348015610525575f5ffd5b5061028b610534366004611ae2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610569575f5ffd5b506102b86105783660046118bd565b6109e7565b348015610588575f5ffd5b506102b8610597366004611969565b610a15565b5f6105a8338484610afc565b5060015b92915050565b5f546001600160a01b031633146105e45760405162461bcd60e51b81526004016105db90611b19565b60405180910390fd5b601755565b5f6105f5848484610c1f565b610646843361064185604051806060016040528060288152602001611c5e602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061114f565b610afc565b5060019392505050565b5f546001600160a01b031633146106795760405162461bcd60e51b81526004016105db90611b19565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146106c05760405162461bcd60e51b81526004016105db90611b19565b601655565b6012546001600160a01b0316336001600160a01b031614806106fa57506013546001600160a01b0316336001600160a01b0316145b610702575f5ffd5b4761070c81611187565b50565b5f546001600160a01b031633146107385760405162461bcd60e51b81526004016105db90611b19565b600893909355600a91909155600955600b55565b5f546001600160a01b031633146107755760405162461bcd60e51b81526004016105db90611b19565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107be5760405162461bcd60e51b81526004016105db90611b19565b60158054911515600160b01b0260ff60b01b19909216919091179055565b5f546001600160a01b031633146108055760405162461bcd60e51b81526004016105db90611b19565b5f5b82811015610869578160055f86868581811061082557610825611b4e565b905060200201602081019061083a9190611969565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610807565b50505050565b6001600160a01b0381165f908152600260205260408120546105ac906111be565b5f546001600160a01b031633146108b95760405162461bcd60e51b81526004016105db90611b19565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6105a8338484610c1f565b6012546001600160a01b0316336001600160a01b0316148061094257506013546001600160a01b0316336001600160a01b0316145b61094a575f5ffd5b5f6109543061086f565b905061070c81611240565b5f546001600160a01b031633146109885760405162461bcd60e51b81526004016105db90611b19565b5f5b81518110156109e357600160105f8484815181106109aa576109aa611b4e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161098a565b5050565b5f546001600160a01b03163314610a105760405162461bcd60e51b81526004016105db90611b19565b601855565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016105db90611b19565b6001600160a01b038116610aa35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105db565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105db565b6001600160a01b038216610bbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105db565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c835760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105db565b6001600160a01b038216610ce55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105db565b5f8111610d465760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105db565b5f546001600160a01b03848116911614801590610d7057505f546001600160a01b03838116911614155b1561104b57601554600160a01b900460ff16610e08575f546001600160a01b03848116911614610e085760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105db565b601654811115610e5a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105db565b6001600160a01b0383165f9081526010602052604090205460ff16158015610e9a57506001600160a01b0382165f9081526010602052604090205460ff16155b610ef25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105db565b6015546001600160a01b03838116911614610f775760175481610f148461086f565b610f1e9190611b76565b10610f775760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105db565b5f610f813061086f565b601854601654919250821015908210610f9a5760165491505b808015610fb15750601554600160a81b900460ff16155b8015610fcb57506015546001600160a01b03868116911614155b8015610fe05750601554600160b01b900460ff165b801561100457506001600160a01b0385165f9081526005602052604090205460ff16155b801561102857506001600160a01b0384165f9081526005602052604090205460ff16155b156110485761103682611240565b4780156110465761104647611187565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061108b57506001600160a01b0383165f9081526005602052604090205460ff165b806110bd57506015546001600160a01b038581169116148015906110bd57506015546001600160a01b03848116911614155b156110c957505f611143565b6015546001600160a01b0385811691161480156110f457506014546001600160a01b03848116911614155b1561110657600854600c55600954600d555b6015546001600160a01b03848116911614801561113157506014546001600160a01b03858116911614155b1561114357600a54600c55600b54600d555b610869848484846113b0565b5f81848411156111725760405162461bcd60e51b81526004016105db919061183a565b505f61117e8486611b89565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109e3573d5f5f3e3d5ffd5b5f6006548211156112245760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105db565b5f61122d6113d5565b905061123983826113f6565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061128657611286611b4e565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113019190611b9c565b8160018151811061131457611314611b4e565b6001600160a01b03928316602091820292909201015260145461133a9130911684610afc565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113729085905f90869030904290600401611bb7565b5f604051808303815f87803b158015611389575f5ffd5b505af115801561139b573d5f5f3e3d5ffd5b50506015805460ff60a81b1916905550505050565b806113bd576113bd611437565b6113c8848484611464565b8061086957610869611437565b5f5f5f6113e0611555565b90925090506113ef82826113f6565b9250505090565b5f61123983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611594565b600c541580156114475750600d54155b1561144e57565b600c8054600e55600d8054600f555f9182905555565b5f5f5f5f5f5f611473876115c0565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506114a49087611615565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546114d29086611656565b6001600160a01b0389165f908152600260205260409020556114f3816116b4565b6114fd84836116fa565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161154291815260200190565b60405180910390a3505050505050505050565b6006545f908190670994dd54fdd3400061156f82826113f6565b82101561158b57505060065492670994dd54fdd3400092509050565b90939092509050565b5f81836115b45760405162461bcd60e51b81526004016105db919061183a565b505f61117e8486611c27565b5f5f5f5f5f5f5f5f5f6115d88a600c54600d5461171e565b9250925092505f6115e76113d5565b90505f5f5f6115f88e878787611770565b919e509c509a509598509396509194505050505091939550919395565b5f61123983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114f565b5f806116628385611b76565b9050838110156112395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105db565b5f6116bd6113d5565b90505f6116ca83836117bc565b305f908152600260205260409020549091506116e69082611656565b305f90815260026020526040902055505050565b6006546117079083611615565b6006556007546117179082611656565b6007555050565b5f808080611737606461173189896117bc565b906113f6565b90505f61174960646117318a896117bc565b90505f6117608261175a8b86611615565b90611615565b9992985090965090945050505050565b5f80808061177e88866117bc565b90505f61178b88876117bc565b90505f61179888886117bc565b90505f6117a98261175a8686611615565b939b939a50919850919650505050505050565b5f825f036117cb57505f6105ac565b5f6117d68385611c46565b9050826117e38583611c27565b146112395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105db565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461070c575f5ffd5b803561188e8161186f565b919050565b5f5f604083850312156118a4575f5ffd5b82356118af8161186f565b946020939093013593505050565b5f602082840312156118cd575f5ffd5b5035919050565b5f5f5f606084860312156118e6575f5ffd5b83356118f18161186f565b925060208401356119018161186f565b929592945050506040919091013590565b8035801515811461188e575f5ffd5b5f60208284031215611931575f5ffd5b61123982611912565b5f5f5f5f6080858703121561194d575f5ffd5b5050823594602084013594506040840135936060013592509050565b5f60208284031215611979575f5ffd5b81356112398161186f565b5f5f5f60408486031215611996575f5ffd5b833567ffffffffffffffff8111156119ac575f5ffd5b8401601f810186136119bc575f5ffd5b803567ffffffffffffffff8111156119d2575f5ffd5b8660208260051b84010111156119e6575f5ffd5b6020918201945092506119fa908501611912565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611a27575f5ffd5b813567ffffffffffffffff811115611a3d575f5ffd5b8201601f81018413611a4d575f5ffd5b803567ffffffffffffffff811115611a6757611a67611a03565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611a9457611a94611a03565b604052918252602081840181019290810187841115611ab1575f5ffd5b6020850194505b83851015611ad757611ac985611883565b815260209485019401611ab8565b509695505050505050565b5f5f60408385031215611af3575f5ffd5b8235611afe8161186f565b91506020830135611b0e8161186f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ac576105ac611b62565b818103818111156105ac576105ac611b62565b5f60208284031215611bac575f5ffd5b81516112398161186f565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611c075783516001600160a01b0316835260209384019390920191600101611be0565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611c4157634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105ac576105ac611b6256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203e5f85c96be70831cc611ef27020e162b2607fd6324433ede0354d27d308db9664736f6c634300081b0033
Deployed Bytecode
0x6080604052600436106101c8575f3560e01c80636feaf52a116100f257806395d89b4111610092578063ccfee5d611610062578063ccfee5d6146104fb578063dd62ed3e1461051a578063e2ee677d1461055e578063f2fde38b1461057d575f5ffd5b806395d89b41146101d3578063a9059cbb1461049a578063bfd79284146104b9578063c3c8cd80146104e7575f5ffd5b80637d1db4a5116100cd5780637d1db4a5146104295780637f2feddc1461043e5780638da5cb5b146104695780638f9a55c014610485575f5ffd5b80636feaf52a146103d757806370a08231146103f6578063715018a614610415575f5ffd5b80632bc4d48b1161016857806348b09ff21161013857806348b09ff21461035b57806349bd5a5e1461037a5780634c9b21c6146103995780636d8aa8f8146103b8575f5ffd5b80632bc4d48b146102f85780632ece88fb146103175780632fd689e31461032b578063313ce56714610340575f5ffd5b806318160ddd116101a357806318160ddd146102755780631c499ab01461029957806323b872dd146102ba5780632a9b8072146102d9575f5ffd5b806306fdde03146101d3578063095ea7b31461020f5780631694505e1461023e575f5ffd5b366101cf57005b5f5ffd5b3480156101de575f5ffd5b506040805180820182526005815264444f47475960d81b60208201529051610206919061183a565b60405180910390f35b34801561021a575f5ffd5b5061022e610229366004611893565b61059c565b6040519015158152602001610206565b348015610249575f5ffd5b5060145461025d906001600160a01b031681565b6040516001600160a01b039091168152602001610206565b348015610280575f5ffd5b50670994dd54fdd340005b604051908152602001610206565b3480156102a4575f5ffd5b506102b86102b33660046118bd565b6105b2565b005b3480156102c5575f5ffd5b5061022e6102d43660046118d4565b6105e9565b3480156102e4575f5ffd5b506102b86102f3366004611921565b610650565b348015610303575f5ffd5b506102b86103123660046118bd565b610697565b348015610322575f5ffd5b506102b86106c5565b348015610336575f5ffd5b5061028b60185481565b34801561034b575f5ffd5b5060405160098152602001610206565b348015610366575f5ffd5b506102b861037536600461193a565b61070f565b348015610385575f5ffd5b5060155461025d906001600160a01b031681565b3480156103a4575f5ffd5b506102b86103b3366004611969565b61074c565b3480156103c3575f5ffd5b506102b86103d2366004611921565b610795565b3480156103e2575f5ffd5b506102b86103f1366004611984565b6107dc565b348015610401575f5ffd5b5061028b610410366004611969565b61086f565b348015610420575f5ffd5b506102b8610890565b348015610434575f5ffd5b5061028b60165481565b348015610449575f5ffd5b5061028b610458366004611969565b60116020525f908152604090205481565b348015610474575f5ffd5b505f546001600160a01b031661025d565b348015610490575f5ffd5b5061028b60175481565b3480156104a5575f5ffd5b5061022e6104b4366004611893565b610901565b3480156104c4575f5ffd5b5061022e6104d3366004611969565b60106020525f908152604090205460ff1681565b3480156104f2575f5ffd5b506102b861090d565b348015610506575f5ffd5b506102b8610515366004611a17565b61095f565b348015610525575f5ffd5b5061028b610534366004611ae2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610569575f5ffd5b506102b86105783660046118bd565b6109e7565b348015610588575f5ffd5b506102b8610597366004611969565b610a15565b5f6105a8338484610afc565b5060015b92915050565b5f546001600160a01b031633146105e45760405162461bcd60e51b81526004016105db90611b19565b60405180910390fd5b601755565b5f6105f5848484610c1f565b610646843361064185604051806060016040528060288152602001611c5e602891396001600160a01b038a165f908152600460209081526040808320338452909152902054919061114f565b610afc565b5060019392505050565b5f546001600160a01b031633146106795760405162461bcd60e51b81526004016105db90611b19565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146106c05760405162461bcd60e51b81526004016105db90611b19565b601655565b6012546001600160a01b0316336001600160a01b031614806106fa57506013546001600160a01b0316336001600160a01b0316145b610702575f5ffd5b4761070c81611187565b50565b5f546001600160a01b031633146107385760405162461bcd60e51b81526004016105db90611b19565b600893909355600a91909155600955600b55565b5f546001600160a01b031633146107755760405162461bcd60e51b81526004016105db90611b19565b6001600160a01b03165f908152601060205260409020805460ff19169055565b5f546001600160a01b031633146107be5760405162461bcd60e51b81526004016105db90611b19565b60158054911515600160b01b0260ff60b01b19909216919091179055565b5f546001600160a01b031633146108055760405162461bcd60e51b81526004016105db90611b19565b5f5b82811015610869578160055f86868581811061082557610825611b4e565b905060200201602081019061083a9190611969565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610807565b50505050565b6001600160a01b0381165f908152600260205260408120546105ac906111be565b5f546001600160a01b031633146108b95760405162461bcd60e51b81526004016105db90611b19565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6105a8338484610c1f565b6012546001600160a01b0316336001600160a01b0316148061094257506013546001600160a01b0316336001600160a01b0316145b61094a575f5ffd5b5f6109543061086f565b905061070c81611240565b5f546001600160a01b031633146109885760405162461bcd60e51b81526004016105db90611b19565b5f5b81518110156109e357600160105f8484815181106109aa576109aa611b4e565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161098a565b5050565b5f546001600160a01b03163314610a105760405162461bcd60e51b81526004016105db90611b19565b601855565b5f546001600160a01b03163314610a3e5760405162461bcd60e51b81526004016105db90611b19565b6001600160a01b038116610aa35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105db565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b5e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105db565b6001600160a01b038216610bbf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105db565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c835760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105db565b6001600160a01b038216610ce55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105db565b5f8111610d465760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105db565b5f546001600160a01b03848116911614801590610d7057505f546001600160a01b03838116911614155b1561104b57601554600160a01b900460ff16610e08575f546001600160a01b03848116911614610e085760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016105db565b601654811115610e5a5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016105db565b6001600160a01b0383165f9081526010602052604090205460ff16158015610e9a57506001600160a01b0382165f9081526010602052604090205460ff16155b610ef25760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016105db565b6015546001600160a01b03838116911614610f775760175481610f148461086f565b610f1e9190611b76565b10610f775760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016105db565b5f610f813061086f565b601854601654919250821015908210610f9a5760165491505b808015610fb15750601554600160a81b900460ff16155b8015610fcb57506015546001600160a01b03868116911614155b8015610fe05750601554600160b01b900460ff165b801561100457506001600160a01b0385165f9081526005602052604090205460ff16155b801561102857506001600160a01b0384165f9081526005602052604090205460ff16155b156110485761103682611240565b4780156110465761104647611187565b505b50505b6001600160a01b0383165f9081526005602052604090205460019060ff168061108b57506001600160a01b0383165f9081526005602052604090205460ff165b806110bd57506015546001600160a01b038581169116148015906110bd57506015546001600160a01b03848116911614155b156110c957505f611143565b6015546001600160a01b0385811691161480156110f457506014546001600160a01b03848116911614155b1561110657600854600c55600954600d555b6015546001600160a01b03848116911614801561113157506014546001600160a01b03858116911614155b1561114357600a54600c55600b54600d555b610869848484846113b0565b5f81848411156111725760405162461bcd60e51b81526004016105db919061183a565b505f61117e8486611b89565b95945050505050565b6013546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156109e3573d5f5f3e3d5ffd5b5f6006548211156112245760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016105db565b5f61122d6113d5565b905061123983826113f6565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061128657611286611b4e565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156112dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113019190611b9c565b8160018151811061131457611314611b4e565b6001600160a01b03928316602091820292909201015260145461133a9130911684610afc565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906113729085905f90869030904290600401611bb7565b5f604051808303815f87803b158015611389575f5ffd5b505af115801561139b573d5f5f3e3d5ffd5b50506015805460ff60a81b1916905550505050565b806113bd576113bd611437565b6113c8848484611464565b8061086957610869611437565b5f5f5f6113e0611555565b90925090506113ef82826113f6565b9250505090565b5f61123983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611594565b600c541580156114475750600d54155b1561144e57565b600c8054600e55600d8054600f555f9182905555565b5f5f5f5f5f5f611473876115c0565b6001600160a01b038f165f90815260026020526040902054959b509399509197509550935091506114a49087611615565b6001600160a01b03808b165f9081526002602052604080822093909355908a16815220546114d29086611656565b6001600160a01b0389165f908152600260205260409020556114f3816116b4565b6114fd84836116fa565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161154291815260200190565b60405180910390a3505050505050505050565b6006545f908190670994dd54fdd3400061156f82826113f6565b82101561158b57505060065492670994dd54fdd3400092509050565b90939092509050565b5f81836115b45760405162461bcd60e51b81526004016105db919061183a565b505f61117e8486611c27565b5f5f5f5f5f5f5f5f5f6115d88a600c54600d5461171e565b9250925092505f6115e76113d5565b90505f5f5f6115f88e878787611770565b919e509c509a509598509396509194505050505091939550919395565b5f61123983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114f565b5f806116628385611b76565b9050838110156112395760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105db565b5f6116bd6113d5565b90505f6116ca83836117bc565b305f908152600260205260409020549091506116e69082611656565b305f90815260026020526040902055505050565b6006546117079083611615565b6006556007546117179082611656565b6007555050565b5f808080611737606461173189896117bc565b906113f6565b90505f61174960646117318a896117bc565b90505f6117608261175a8b86611615565b90611615565b9992985090965090945050505050565b5f80808061177e88866117bc565b90505f61178b88876117bc565b90505f61179888886117bc565b90505f6117a98261175a8686611615565b939b939a50919850919650505050505050565b5f825f036117cb57505f6105ac565b5f6117d68385611c46565b9050826117e38583611c27565b146112395760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105db565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461070c575f5ffd5b803561188e8161186f565b919050565b5f5f604083850312156118a4575f5ffd5b82356118af8161186f565b946020939093013593505050565b5f602082840312156118cd575f5ffd5b5035919050565b5f5f5f606084860312156118e6575f5ffd5b83356118f18161186f565b925060208401356119018161186f565b929592945050506040919091013590565b8035801515811461188e575f5ffd5b5f60208284031215611931575f5ffd5b61123982611912565b5f5f5f5f6080858703121561194d575f5ffd5b5050823594602084013594506040840135936060013592509050565b5f60208284031215611979575f5ffd5b81356112398161186f565b5f5f5f60408486031215611996575f5ffd5b833567ffffffffffffffff8111156119ac575f5ffd5b8401601f810186136119bc575f5ffd5b803567ffffffffffffffff8111156119d2575f5ffd5b8660208260051b84010111156119e6575f5ffd5b6020918201945092506119fa908501611912565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215611a27575f5ffd5b813567ffffffffffffffff811115611a3d575f5ffd5b8201601f81018413611a4d575f5ffd5b803567ffffffffffffffff811115611a6757611a67611a03565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715611a9457611a94611a03565b604052918252602081840181019290810187841115611ab1575f5ffd5b6020850194505b83851015611ad757611ac985611883565b815260209485019401611ab8565b509695505050505050565b5f5f60408385031215611af3575f5ffd5b8235611afe8161186f565b91506020830135611b0e8161186f565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156105ac576105ac611b62565b818103818111156105ac576105ac611b62565b5f60208284031215611bac575f5ffd5b81516112398161186f565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611c075783516001600160a01b0316835260209384019390920191600101611be0565b50506001600160a01b039590951660608401525050608001529392505050565b5f82611c4157634e487b7160e01b5f52601260045260245ffd5b500490565b80820281158282048414176105ac576105ac611b6256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203e5f85c96be70831cc611ef27020e162b2607fd6324433ede0354d27d308db9664736f6c634300081b0033
Deployed Bytecode Sourcemap
4177:13482:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6689:83;;;;;;;;;;-1:-1:-1;6759:5:0;;;;;;;;;;;-1:-1:-1;;;6759:5:0;;;;6689:83;;;;6759:5;6689:83;:::i;:::-;;;;;;;;7614:193;;;;;;;;;;-1:-1:-1;7614:193:0;;;;;:::i;:::-;;:::i;:::-;;;1249:14:1;;1242:22;1224:41;;1212:2;1197:18;7614:193:0;1084:187:1;5530:41:0;;;;;;;;;;-1:-1:-1;5530:41:0;;;;-1:-1:-1;;;;;5530:41:0;;;;;;-1:-1:-1;;;;;1466:32:1;;;1448:51;;1436:2;1421:18;5530:41:0;1276:229:1;6966:95:0;;;;;;;;;;-1:-1:-1;4734:17:0;6966:95;;;1656:25:1;;;1644:2;1629:18;6966:95:0;1510:177:1;17307:114:0;;;;;;;;;;-1:-1:-1;17307:114:0;;;;;:::i;:::-;;:::i;:::-;;7815:446;;;;;;;;;;-1:-1:-1;7815:446:0;;;;;:::i;:::-;;:::i;12262:102::-;;;;;;;;;;-1:-1:-1;12262:102:0;;;;;:::i;:::-;;:::i;17194:105::-;;;;;;;;;;-1:-1:-1;17194:105:0;;;;;:::i;:::-;;:::i;12616:238::-;;;;;;;;;;;;;:::i;5835:53::-;;;;;;;;;;;;;;;;6875:83;;;;;;;;;;-1:-1:-1;6875:83:0;;4407:1;2928:36:1;;2916:2;2901:18;6875:83:0;2786:184:1;16530:288:0;;;;;;;;;;-1:-1:-1;16530:288:0;;;;;:::i;:::-;;:::i;5578:28::-;;;;;;;;;;-1:-1:-1;5578:28:0;;;;-1:-1:-1;;;;;5578:28:0;;;13036:91;;;;;;;;;;-1:-1:-1;13036:91:0;;;;;:::i;:::-;;:::i;17054:101::-;;;;;;;;;;-1:-1:-1;17054:101:0;;;;;:::i;:::-;;:::i;17429:225::-;;;;;;;;;;-1:-1:-1;17429:225:0;;;;;:::i;:::-;;:::i;7069:138::-;;;;;;;;;;-1:-1:-1;7069:138:0;;;;;:::i;:::-;;:::i;1664:148::-;;;;;;;;;;;;;:::i;5727:46::-;;;;;;;;;;;;;;;;5272:43;;;;;;;;;;-1:-1:-1;5272:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1450:79;;;;;;;;;;-1:-1:-1;1488:7:0;1515:6;-1:-1:-1;;;;;1515:6:0;1450:79;;5780:48;;;;;;;;;;;;;;;;7215:199;;;;;;;;;;-1:-1:-1;7215:199:0;;;;;:::i;:::-;;:::i;5234:36::-;;;;;;;;;;-1:-1:-1;5234:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12372:236;;;;;;;;;;;;;:::i;12862:166::-;;;;;;;;;;-1:-1:-1;12862:166:0;;;;;:::i;:::-;;:::i;7422:184::-;;;;;;;;;;-1:-1:-1;7422:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7571:18:0;;;7539:7;7571:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7422:184;16870:132;;;;;;;;;;-1:-1:-1;16870:132:0;;;;;:::i;:::-;;:::i;1820:244::-;;;;;;;;;;-1:-1:-1;1820:244:0;;;;;:::i;:::-;;:::i;7614:193::-;7716:4;7738:39;289:10;7761:7;7770:6;7738:8;:39::i;:::-;-1:-1:-1;7795:4:0;7614:193;;;;;:::o;17307:114::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;;;;;;;;;17383:14:::1;:30:::0;17307:114::o;7815:446::-;7947:4;7964:36;7974:6;7982:9;7993:6;7964:9;:36::i;:::-;8011:220;8034:6;289:10;8082:138;8138:6;8082:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8082:19:0;;;;;;:11;:19;;;;;;;;289:10;8082:33;;;;;;;;;;:37;:138::i;:::-;8011:8;:220::i;:::-;-1:-1:-1;8249:4:0;7815:446;;;;;:::o;12262:102::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;12330:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12330:26:0::1;-1:-1:-1::0;;;;12330:26:0;;::::1;::::0;;;::::1;::::0;;12262:102::o;17194:105::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;17265:12:::1;:26:::0;17194:105::o;12616:238::-;12685:19;;-1:-1:-1;;;;;12685:19:0;289:10;-1:-1:-1;;;;;12669:35:0;;:72;;;-1:-1:-1;12724:17:0;;-1:-1:-1;;;;;12724:17:0;289:10;-1:-1:-1;;;;;12708:33:0;;12669:72;12661:81;;;;;;12782:21;12814:32;12782:21;12814:12;:32::i;:::-;12650:204;12616:238::o;16530:288::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;16661:14:::1;:30:::0;;;;16702:15:::1;:32:::0;;;;16745:12:::1;:26:::0;16782:13:::1;:28:::0;16530:288::o;13036:91::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13099:12:0::1;13114:5;13099:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13099:20:0::1;::::0;;13036:91::o;17054:101::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;17121:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17121:26:0::1;-1:-1:-1::0;;;;17121:26:0;;::::1;::::0;;;::::1;::::0;;17054:101::o;17429:225::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;17537:9:::1;17533:114;17552:19:::0;;::::1;17533:114;;;17627:8;17593:18;:31;17612:8;;17621:1;17612:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17593:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17593:31:0;:42;;-1:-1:-1;;17593:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17573:3:0::1;17533:114;;;;17429:225:::0;;;:::o;7069:138::-;-1:-1:-1;;;;;7182:16:0;;7135:7;7182:16;;;:7;:16;;;;;;7162: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;7215:199::-;7320:4;7342:42;289:10;7366:9;7377:6;7342:9;:42::i;12372:236::-;12438:19;;-1:-1:-1;;;;;12438:19:0;289:10;-1:-1:-1;;;;;12422:35:0;;:72;;;-1:-1:-1;12477:17:0;;-1:-1:-1;;;;;12477:17:0;289:10;-1:-1:-1;;;;;12461:33:0;;12422:72;12414:81;;;;;;12506:23;12532:24;12550:4;12532:9;:24::i;:::-;12506:50;;12567:33;12584:15;12567:16;:33::i;12862:166::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;12935:9:::1;12930:91;12954:5;:12;12950:1;:16;12930:91;;;13005:4;12988;:14;12993:5;12999:1;12993:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12988:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12988:14:0;:21;;-1:-1:-1;;12988:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12968:3:0::1;12930:91;;;;12862:166:::0;:::o;16870:132::-;1577:6;;-1:-1:-1;;;;;1577:6:0;289:10;1577:22;1569:67;;;;-1:-1:-1;;;1569:67:0;;;;;;;:::i;:::-;16954:19:::1;:40:::0;16870:132::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;;7068:2:1;1901:73:0::1;::::0;::::1;7050:21:1::0;7107:2;7087:18;;;7080:30;7146:34;7126:18;;;7119:62;-1:-1:-1;;;7197:18:1;;;7190:36;7243:19;;1901:73:0::1;6866: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;8951:369::-;-1:-1:-1;;;;;9078:19:0;;9070:68;;;;-1:-1:-1;;;9070:68:0;;7475:2:1;9070:68:0;;;7457:21:1;7514:2;7494:18;;;7487:30;7553:34;7533:18;;;7526:62;-1:-1:-1;;;7604:18:1;;;7597:34;7648:19;;9070:68:0;7273:400:1;9070:68:0;-1:-1:-1;;;;;9157:21:0;;9149:68;;;;-1:-1:-1;;;9149:68:0;;7880:2:1;9149:68:0;;;7862:21:1;7919:2;7899:18;;;7892:30;7958:34;7938:18;;;7931:62;-1:-1:-1;;;8009:18:1;;;8002:32;8051:19;;9149:68:0;7678:398:1;9149:68:0;-1:-1:-1;;;;;9228:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9280:32;;1656:25:1;;;9280:32:0;;1629:18:1;9280:32:0;;;;;;;8951:369;;;:::o;9328:2330::-;-1:-1:-1;;;;;9450:18:0;;9442:68;;;;-1:-1:-1;;;9442:68:0;;8283:2:1;9442:68:0;;;8265:21:1;8322:2;8302:18;;;8295:30;8361:34;8341:18;;;8334:62;-1:-1:-1;;;8412:18:1;;;8405:35;8457:19;;9442:68:0;8081:401:1;9442:68:0;-1:-1:-1;;;;;9529:16:0;;9521:64;;;;-1:-1:-1;;;9521:64:0;;8689:2:1;9521:64:0;;;8671:21:1;8728:2;8708:18;;;8701:30;8767:34;8747:18;;;8740:62;-1:-1:-1;;;8818:18:1;;;8811:33;8861:19;;9521:64:0;8487:399:1;9521:64:0;9613:1;9604:6;:10;9596:64;;;;-1:-1:-1;;;9596:64:0;;9093:2:1;9596:64:0;;;9075:21:1;9132:2;9112:18;;;9105:30;9171:34;9151:18;;;9144:62;-1:-1:-1;;;9222:18:1;;;9215:39;9271:19;;9596:64:0;8891:405:1;9596:64:0;1488:7;1515:6;-1:-1:-1;;;;;9677:15:0;;;1515:6;;9677:15;;;;:32;;-1:-1:-1;1488:7:0;1515:6;-1:-1:-1;;;;;9696:13:0;;;1515:6;;9696:13;;9677:32;9673:1259;;;9766:11;;-1:-1:-1;;;9766:11:0;;;;9761:144;;1488:7;1515:6;-1:-1:-1;;;;;9806:15:0;;;1515:6;;9806:15;9798:91;;;;-1:-1:-1;;;9798:91:0;;9503:2:1;9798:91:0;;;9485:21:1;9542:2;9522:18;;;9515:30;9581:34;9561:18;;;9554:62;9652:33;9632:18;;;9625:61;9703:19;;9798:91:0;9301:427:1;9798:91:0;9939:12;;9929:6;:22;;9921:63;;;;-1:-1:-1;;;9921:63:0;;9935:2:1;9921:63:0;;;9917:21:1;9974:2;9954:18;;;9947:30;10013;9993:18;;;9986:58;10061:18;;9921:63:0;9733:352:1;9921:63:0;-1:-1:-1;;;;;10008:10:0;;;;;;:4;:10;;;;;;;;10007:11;:24;;;;-1:-1:-1;;;;;;10023:8:0;;;;;;:4;:8;;;;;;;;10022:9;10007:24;9999:72;;;;-1:-1:-1;;;9999:72:0;;10292:2:1;9999:72:0;;;10274:21:1;10331:2;10311:18;;;10304:30;10370:34;10350:18;;;10343:62;-1:-1:-1;;;10421:18:1;;;10414:33;10464:19;;9999:72:0;10090:399:1;9999:72:0;10097:13;;-1:-1:-1;;;;;10091:19:0;;;10097:13;;10091:19;10088:146;;10164:14;;10155:6;10139:13;10149:2;10139:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10131:87;;;;-1:-1:-1;;;10131:87:0;;10958:2:1;10131:87:0;;;10940:21:1;10997:2;10977:18;;;10970:30;11036:34;11016:18;;;11009:62;-1:-1:-1;;;11087:18:1;;;11080:33;11130:19;;10131:87:0;10756:399:1;10131:87:0;10250:28;10281:24;10299:4;10281:9;:24::i;:::-;10359:19;;10422:12;;10250:55;;-1:-1:-1;10335:43:0;;;;10398:36;;10395:124;;10491:12;;10468:35;;10395:124;10539:7;:18;;;;-1:-1:-1;10551:6:0;;-1:-1:-1;;;10551:6:0;;;;10550:7;10539:18;:43;;;;-1:-1:-1;10569:13:0;;-1:-1:-1;;;;;10561:21:0;;;10569:13;;10561:21;;10539:43;:58;;;;-1:-1:-1;10586:11:0;;-1:-1:-1;;;10586:11:0;;;;10539:58;:87;;;;-1:-1:-1;;;;;;10602:24:0;;;;;;:18;:24;;;;;;;;10601:25;10539:87;:114;;;;-1:-1:-1;;;;;;10631:22:0;;;;;;:18;:22;;;;;;;;10630:23;10539:114;10535:386;;;10674:38;10691:20;10674:16;:38::i;:::-;10760:21;10804:22;;10800:106;;10851:35;10864:21;10851:12;:35::i;:::-;10655:266;10535:386;9711:1221;;9673:1259;-1:-1:-1;;;;;11008:24:0;;10944:12;11008:24;;;:18;:24;;;;;;10959:4;;11008:24;;;:50;;-1:-1:-1;;;;;;11036:22:0;;;;;;:18;:22;;;;;;;;11008:50;11007:102;;;-1:-1:-1;11072:13:0;;-1:-1:-1;;;;;11064:21:0;;;11072:13;;11064:21;;;;:44;;-1:-1:-1;11095:13:0;;-1:-1:-1;;;;;11089:19:0;;;11095:13;;11089:19;;11064:44;11003:594;;;-1:-1:-1;11136:5:0;11003:594;;;11219:13;;-1:-1:-1;;;;;11211:21:0;;;11219:13;;11211:21;:55;;;;-1:-1:-1;11250:15:0;;-1:-1:-1;;;;;11236:30:0;;;11250:15;;11236:30;;11211:55;11208:162;;;11299:14;;11287:9;:26;11342:12;;11332:7;:22;11208:162;11429:13;;-1:-1:-1;;;;;11423:19:0;;;11429:13;;11423:19;:55;;;;-1:-1:-1;11462:15:0;;-1:-1:-1;;;;;11446:32:0;;;11462:15;;11446:32;;11423:55;11419:165;;;11511:15;;11499:9;:27;11555:13;;11545:7;:23;11419:165;11609:41;11624:4;11630:2;11634:6;11642:7;11609: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;12155:99::-;12212:17;;:34;;-1:-1:-1;;;;;12212:17:0;;;;:34;;;;;12239:6;;12212:17;:34;:17;:34;12239:6;12212:17;:34;;;;;;;;;;;;;;;;;;;8269:323;8364:7;8422;;8411;:18;;8389:110;;;;-1:-1:-1;;;8389:110:0;;11495:2:1;8389:110:0;;;11477:21:1;11534:2;11514:18;;;11507:30;11573:34;11553:18;;;11546:62;-1:-1:-1;;;11624:18:1;;;11617:40;11674:19;;8389:110:0;11293:406:1;8389:110:0;8510:19;8532:10;:8;:10::i;:::-;8510:32;-1:-1:-1;8560:24:0;:7;8510:32;8560:11;:24::i;:::-;8553:31;8269:323;-1:-1:-1;;;8269:323:0:o;11666:483::-;5981:6;:13;;-1:-1:-1;;;;5981:13:0;-1:-1:-1;;;5981:13:0;;;11768:16:::1;::::0;;11782:1:::1;11768:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11768:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11768:16:0::1;11744:40;;11813:4;11795;11800:1;11795:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11795:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11839:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11839:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11795:7;;11839:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11829:4;11834:1;11829:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11829:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11904:15:::1;::::0;11872:62:::1;::::0;11889:4:::1;::::0;11904:15:::1;11922:11:::0;11872:8:::1;:62::i;:::-;11945:15;::::0;:196:::1;::::0;-1:-1:-1;;;11945:196:0;;-1:-1:-1;;;;;11945:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12026:11;;11945:15:::1;::::0;12068:4;;12095::::1;::::0;12115:15:::1;::::0;11945:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;6017:6:0;:14;;-1:-1:-1;;;;6017:14:0;;;-1:-1:-1;;;;11666:483:0:o;13135:279::-;13291:7;13286:27;;13300:13;:11;:13::i;:::-;13324:44;13342:6;13350:9;13361:6;13324:17;:44::i;:::-;13384:7;13379:27;;13393:13;:11;:13::i;16093:164::-;16135:7;16156:15;16173;16192:19;:17;:19::i;:::-;16155:56;;-1:-1:-1;16155:56:0;-1:-1:-1;16229:20:0;16155:56;;16229:11;:20::i;:::-;16222:27;;;;16093:164;:::o;2914:132::-;2972:7;2999:39;3003:1;3006;2999:39;;;;;;;;;;;;;;;;;:3;:39::i;8600:218::-;8646:9;;:14;:30;;;;-1:-1:-1;8664:7:0;;:12;8646:30;8642:43;;;8600:218::o;8642:43::-;8717:9;;;8697:17;:29;8755:7;;;8737:15;:25;-1:-1:-1;8775:13:0;;;;8799:11;8600:218::o;13422:610::-;13569:15;13599:23;13637:12;13664:23;13702:12;13729:13;13756:19;13767:7;13756:10;:19::i;:::-;-1:-1:-1;;;;;13804:15:0;;;;;;:7;:15;;;;;;13554:221;;-1:-1:-1;13554:221:0;;-1:-1:-1;13554:221:0;;-1:-1:-1;13554:221:0;-1:-1:-1;13554:221:0;-1:-1:-1;13554:221:0;-1:-1:-1;13804:28:0;;13554:221;13804:19;:28::i;:::-;-1:-1:-1;;;;;13786:15:0;;;;;;;:7;:15;;;;;;:46;;;;13864:18;;;;;;;:39;;13887:15;13864:22;:39::i;:::-;-1:-1:-1;;;;;13843:18:0;;;;;;:7;:18;;;;;:60;13914:16;13924:5;13914:9;:16::i;:::-;13941:23;13953:4;13959;13941:11;:23::i;:::-;13997:9;-1:-1:-1;;;;;13980:44:0;13989:6;-1:-1:-1;;;;;13980:44:0;;14008:15;13980:44;;;;1656:25:1;;1644:2;1629:18;;1510:177;13980:44:0;;;;;;;;13543:489;;;;;;13422:610;;;:::o;16265:257::-;16363:7;;16316;;;;4734:17;16431:20;16363:7;4734:17;16431:11;:20::i;:::-;16421:7;:30;16417:61;;;-1:-1:-1;;16461:7:0;;;4734:17;;-1:-1:-1;16265:257:0;-1:-1:-1;16265:257:0:o;16417:61::-;16497:7;;16506;;-1:-1:-1;16265:257:0;-1:-1:-1;16265: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;14451:615::-;14551:7;14573;14595;14617;14639;14661;14697:23;14722:12;14736:13;14766:40;14778:7;14787:9;;14798:7;;14766:11;:40::i;:::-;14696:110;;;;;;14817:19;14839:10;:8;:10::i;:::-;14817:32;;14861:15;14878:23;14903:12;14932:46;14944:7;14953:4;14959:5;14966:11;14932;:46::i;:::-;14860:118;;-1:-1:-1;14860:118:0;-1:-1:-1;14860:118:0;-1:-1:-1;15029:15:0;;-1:-1:-1;15046:4:0;;-1:-1:-1;15052:5:0;;-1:-1:-1;;;;;14451: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;;13348:2:1;2203:46:0;;;13330:21:1;13387:2;13367:18;;;13360:30;13426:29;13406:18;;;13399:57;13473:18;;2203:46:0;13146:351:1;14040:211:0;14093:19;14115:10;:8;:10::i;:::-;14093:32;-1:-1:-1;14136:13:0;14152:22;:5;14093:32;14152:9;:22::i;:::-;14226:4;14210:22;;;;:7;:22;;;;;;14136:38;;-1:-1:-1;14210:33:0;;14136:38;14210:26;:33::i;:::-;14201:4;14185:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14040:211:0:o;14259:147::-;14337:7;;:17;;14349:4;14337:11;:17::i;:::-;14327:7;:27;14378:10;;:20;;14393:4;14378:14;:20::i;:::-;14365:10;:33;-1:-1:-1;;14259:147:0:o;15074:469::-;15243:7;;;;15337:30;15363:3;15337:21;:7;15349:8;15337:11;:21::i;:::-;:25;;:30::i;:::-;15322:45;-1:-1:-1;15378:13:0;15394:28;15418:3;15394:19;:7;15406:6;15394:11;:19::i;:28::-;15378:44;-1:-1:-1;15433:23:0;15459:28;15378:44;15459:17;:7;15471:4;15459:11;:17::i;:::-;:21;;:28::i;:::-;15433:54;15523:4;;-1:-1:-1;15529:5:0;;-1:-1:-1;15074:469:0;;-1:-1:-1;;;;;15074:469:0:o;15551:534::-;15745:7;;;;15842:24;:7;15854:11;15842;:24::i;:::-;15824:42;-1:-1:-1;15877:12:0;15892:21;:4;15901:11;15892:8;:21::i;:::-;15877:36;-1:-1:-1;15924:13:0;15940:22;:5;15950:11;15940:9;:22::i;:::-;15924:38;-1:-1:-1;15973:23:0;15999:28;15924:38;15999:17;:7;16011:4;15999:11;:17::i;:28::-;16046:7;;;;-1:-1:-1;16072:4:0;;-1:-1:-1;15551:534:0;;-1:-1:-1;;;;;;;15551: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;;13877:2:1;2823:56:0;;;13859:21:1;13916:2;13896:18;;;13889:30;13955:34;13935:18;;;13928:62;-1:-1:-1;;;14006:18:1;;;13999:31;14047:19;;2823:56:0;13675: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:134;641:20;;670:31;641:20;670:31;:::i;:::-;573:134;;;:::o;712:367::-;780:6;788;841:2;829:9;820:7;816:23;812:32;809:52;;;857:1;854;847:12;809:52;896:9;883:23;915:31;940:5;915:31;:::i;:::-;965:5;1043:2;1028:18;;;;1015:32;;-1:-1:-1;;;712:367:1:o;1692:226::-;1751:6;1804:2;1792:9;1783:7;1779:23;1775:32;1772:52;;;1820:1;1817;1810:12;1772:52;-1:-1:-1;1865:23:1;;1692:226;-1:-1:-1;1692:226:1:o;1923:508::-;2000:6;2008;2016;2069:2;2057:9;2048:7;2044:23;2040:32;2037:52;;;2085:1;2082;2075:12;2037:52;2124:9;2111:23;2143:31;2168:5;2143:31;:::i;:::-;2193:5;-1:-1:-1;2250:2:1;2235:18;;2222:32;2263:33;2222:32;2263:33;:::i;:::-;1923:508;;2315:7;;-1:-1:-1;;;2395:2:1;2380:18;;;;2367:32;;1923:508::o;2436:160::-;2501:20;;2557:13;;2550:21;2540:32;;2530:60;;2586:1;2583;2576:12;2601:180;2657:6;2710:2;2698:9;2689:7;2685:23;2681:32;2678:52;;;2726:1;2723;2716:12;2678:52;2749:26;2765:9;2749:26;:::i;2975:587::-;3061:6;3069;3077;3085;3138:3;3126:9;3117:7;3113:23;3109:33;3106:53;;;3155:1;3152;3145:12;3106:53;-1:-1:-1;;3200:23:1;;;3320:2;3305:18;;3292:32;;-1:-1:-1;3423:2:1;3408:18;;3395:32;;3526:2;3511:18;3498:32;;-1:-1:-1;2975:587:1;-1:-1:-1;2975:587:1:o;3775:247::-;3834:6;3887:2;3875:9;3866:7;3862:23;3858:32;3855:52;;;3903:1;3900;3893:12;3855:52;3942:9;3929:23;3961:31;3986:5;3961:31;:::i;4027:684::-;4119:6;4127;4135;4188:2;4176:9;4167:7;4163:23;4159:32;4156:52;;;4204:1;4201;4194:12;4156:52;4244:9;4231:23;4277:18;4269:6;4266:30;4263:50;;;4309:1;4306;4299:12;4263:50;4332:22;;4385:4;4377:13;;4373:27;-1:-1:-1;4363:55:1;;4414:1;4411;4404:12;4363:55;4454:2;4441:16;4480:18;4472:6;4469:30;4466:50;;;4512:1;4509;4502:12;4466:50;4567:7;4560:4;4550:6;4547:1;4543:14;4539:2;4535:23;4531:34;4528:47;4525:67;;;4588:1;4585;4578:12;4525:67;4619:4;4611:13;;;;-1:-1:-1;4643:6:1;-1:-1:-1;4668:37:1;;4684:20;;4668:37;:::i;:::-;4658:47;;4027:684;;;;;:::o;4716:127::-;4777:10;4772:3;4768:20;4765:1;4758:31;4808:4;4805:1;4798:15;4832:4;4829:1;4822:15;4848:1127;4932:6;4985:2;4973:9;4964:7;4960:23;4956:32;4953:52;;;5001:1;4998;4991:12;4953:52;5041:9;5028:23;5074:18;5066:6;5063:30;5060:50;;;5106:1;5103;5096:12;5060:50;5129:22;;5182:4;5174:13;;5170:27;-1:-1:-1;5160:55:1;;5211:1;5208;5201:12;5160:55;5251:2;5238:16;5277:18;5269:6;5266:30;5263:56;;;5299:18;;:::i;:::-;5345:6;5342:1;5338:14;5381:2;5375:9;5444:2;5440:7;5435:2;5431;5427:11;5423:25;5415:6;5411:38;5515:6;5503:10;5500:22;5479:18;5467:10;5464:34;5461:62;5458:88;;;5526:18;;:::i;:::-;5562:2;5555:22;5612;;;5662:2;5692:11;;;5688:20;;;5612:22;5650:15;;5720:19;;;5717:39;;;5752:1;5749;5742:12;5717:39;5784:2;5780;5776:11;5765:22;;5796:148;5812:6;5807:3;5804:15;5796:148;;;5878:23;5897:3;5878:23;:::i;:::-;5866:36;;5931:2;5829:12;;;;5922;5796:148;;;-1:-1:-1;5963:6:1;4848:1127;-1:-1:-1;;;;;;4848:1127:1:o;5980:388::-;6048:6;6056;6109:2;6097:9;6088:7;6084:23;6080:32;6077:52;;;6125:1;6122;6115:12;6077:52;6164:9;6151:23;6183:31;6208:5;6183:31;:::i;:::-;6233:5;-1:-1:-1;6290:2:1;6275:18;;6262:32;6303:33;6262:32;6303:33;:::i;:::-;6355:7;6345:17;;;5980:388;;;;;:::o;6373:356::-;6575:2;6557:21;;;6594:18;;;6587:30;6653:34;6648:2;6633:18;;6626:62;6720:2;6705:18;;6373:356::o;6734:127::-;6795:10;6790:3;6786:20;6783:1;6776:31;6826:4;6823:1;6816:15;6850:4;6847:1;6840:15;10494:127;10555:10;10550:3;10546:20;10543:1;10536:31;10586:4;10583:1;10576:15;10610:4;10607:1;10600:15;10626:125;10691:9;;;10712:10;;;10709:36;;;10725:18;;:::i;11160:128::-;11227:9;;;11248:11;;;11245:37;;;11262:18;;:::i;11704:251::-;11774:6;11827:2;11815:9;11806:7;11802:23;11798:32;11795:52;;;11843:1;11840;11833:12;11795:52;11875:9;11869:16;11894:31;11919:5;11894:31;:::i;11960:959::-;12222:4;12270:3;12259:9;12255:19;12301:6;12290:9;12283:25;12344:6;12339:2;12328:9;12324:18;12317:34;12387:3;12382:2;12371:9;12367:18;12360:31;12411:6;12446;12440:13;12477:6;12469;12462:22;12515:3;12504:9;12500:19;12493:26;;12554:2;12546:6;12542:15;12528:29;;12575:1;12585:195;12599:6;12596:1;12593:13;12585:195;;;12664:13;;-1:-1:-1;;;;;12660:39:1;12648:52;;12729:2;12755:15;;;;12720:12;;;;12696:1;12614:9;12585:195;;;-1:-1:-1;;;;;;;12836:32:1;;;;12831:2;12816:18;;12809:60;-1:-1:-1;;12900:3:1;12885:19;12878:35;12797:3;11960:959;-1:-1:-1;;;11960:959:1:o;12924:217::-;12964:1;12990;12980:132;;13034:10;13029:3;13025:20;13022:1;13015:31;13069:4;13066:1;13059:15;13097:4;13094:1;13087:15;12980:132;-1:-1:-1;13126:9:1;;12924:217::o;13502:168::-;13575:9;;;13606;;13623:15;;;13617:22;;13603:37;13593:71;;13644:18;;:::i
Swarm Source
ipfs://3e5f85c96be70831cc611ef27020e162b2607fd6324433ede0354d27d308db96
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.