More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 61 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17695933 | 379 days ago | IN | 0 ETH | 0.00062253 | ||||
Approve | 17680825 | 381 days ago | IN | 0 ETH | 0.00110307 | ||||
Approve | 17672724 | 383 days ago | IN | 0 ETH | 0.00099991 | ||||
Approve | 17669994 | 383 days ago | IN | 0 ETH | 0.00084401 | ||||
Transfer | 17669990 | 383 days ago | IN | 0 ETH | 0.0010141 | ||||
Approve | 17669982 | 383 days ago | IN | 0 ETH | 0.00073599 | ||||
Transfer | 17669980 | 383 days ago | IN | 0 ETH | 0.00090168 | ||||
Transfer | 17669953 | 383 days ago | IN | 0 ETH | 0.00083767 | ||||
Transfer | 17669952 | 383 days ago | IN | 0 ETH | 0.0008541 | ||||
Transfer | 17669951 | 383 days ago | IN | 0 ETH | 0.00084066 | ||||
Approve | 17669949 | 383 days ago | IN | 0 ETH | 0.00072773 | ||||
Transfer | 17669949 | 383 days ago | IN | 0 ETH | 0.00089696 | ||||
Transfer | 17669944 | 383 days ago | IN | 0 ETH | 0.00097325 | ||||
Approve | 17669939 | 383 days ago | IN | 0 ETH | 0.00091788 | ||||
Approve | 17669908 | 383 days ago | IN | 0 ETH | 0.00074566 | ||||
Approve | 17669886 | 383 days ago | IN | 0 ETH | 0.00069779 | ||||
Approve | 17669886 | 383 days ago | IN | 0 ETH | 0.00078294 | ||||
Approve | 17669880 | 383 days ago | IN | 0 ETH | 0.0011576 | ||||
Approve | 17669880 | 383 days ago | IN | 0 ETH | 0.0011576 | ||||
Approve | 17669880 | 383 days ago | IN | 0 ETH | 0.0011576 | ||||
Approve | 17669880 | 383 days ago | IN | 0 ETH | 0.0011576 | ||||
Approve | 17669880 | 383 days ago | IN | 0 ETH | 0.0011576 | ||||
Approve | 17669876 | 383 days ago | IN | 0 ETH | 0.00078294 | ||||
Approve | 17669875 | 383 days ago | IN | 0 ETH | 0.0011576 | ||||
Approve | 17669866 | 383 days ago | IN | 0 ETH | 0.0011576 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17695942 | 379 days ago | 0.0001965 ETH | ||||
17695942 | 379 days ago | 0.0001965 ETH | ||||
17690137 | 380 days ago | 0.00028474 ETH | ||||
17690137 | 380 days ago | 0.00028474 ETH | ||||
17670398 | 383 days ago | 0.00064109 ETH | ||||
17670398 | 383 days ago | 0.00064109 ETH | ||||
17670018 | 383 days ago | 0.00044088 ETH | ||||
17670018 | 383 days ago | 0.00044088 ETH | ||||
17670002 | 383 days ago | 0.0017546 ETH | ||||
17670002 | 383 days ago | 0.0017546 ETH | ||||
17669893 | 383 days ago | 0.00034056 ETH | ||||
17669893 | 383 days ago | 0.00034056 ETH | ||||
17669890 | 383 days ago | 0.00035638 ETH | ||||
17669890 | 383 days ago | 0.00035638 ETH | ||||
17669887 | 383 days ago | 0.00035638 ETH | ||||
17669887 | 383 days ago | 0.00035638 ETH | ||||
17669887 | 383 days ago | 0.00037333 ETH | ||||
17669887 | 383 days ago | 0.00037333 ETH | ||||
17669882 | 383 days ago | 0.00039153 ETH | ||||
17669882 | 383 days ago | 0.00039153 ETH | ||||
17669882 | 383 days ago | 0.00041108 ETH | ||||
17669882 | 383 days ago | 0.00041108 ETH | ||||
17669882 | 383 days ago | 0.00043214 ETH | ||||
17669882 | 383 days ago | 0.00043214 ETH | ||||
17669882 | 383 days ago | 0.00045486 ETH |
Loading...
Loading
Contract Name:
WUNI
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-08 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() 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; } function getTime() public view returns (uint256) { return block.timestamp; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract WUNI is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "Wrapped Uni"; string private _symbol = "WUNI"; uint8 private _decimals = 18; address payable public marketingWalletAddress = payable(0x11170BA2FcDcA966cEa8970c6925c203086d5C3C); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; uint256 public _buyLiquidityFee; uint256 public _buyMarketingFee = 1; uint256 public _sellLiquidityFee; uint256 public _sellMarketingFee = 1; uint256 public _liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 public _marketingShare = _buyMarketingFee.add(_sellMarketingFee); uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 public _totalDistributionShares; uint256 private _totalSupply = 1000000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply.div(1); uint256 public _walletMax = _totalSupply.div(1); uint256 private minimumTokensBeforeSwap = _totalSupply.div(10000); IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee); _totalDistributionShares = _liquidityShare.add(_marketingShare); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } 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 setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } /* function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } */ function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, 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 _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity); if(amountETHMarketing > 0) transferToAddressETH(marketingWalletAddress, amountETHMarketing); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","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":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyByLimitOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uniswapPair","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":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600b60a08190526a5772617070656420556e6960a81b60c09081526200002e9160019190620006ce565b506040805180820190915260048082526357554e4960e01b60209092019182526200005c91600291620006ce565b50600380546001600160a81b0319167411170ba2fcdca966cea8970c6925c203086d5c3c121790556ddead0000000000000000000000006080526001600b819055600d55600c54600a54620000bd91620005d8602090811b620012e217901c565b600e55620000de600d54600b54620005d860201b620012e21790919060201c565b600f55600354620000f49060ff16600a62000878565b6200010490633b9aca0062000937565b6013556200012460016013546200064860201b620013411790919060201c565b6014556200014460016013546200064860201b620013411790919060201c565b601555620001656127106013546200064860201b620013411790919060201c565b6016556018805462ffffff60a81b19166201000160a81b1790553480156200018c57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022157600080fd5b505afa15801562000236573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025c919062000774565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a557600080fd5b505afa158015620002ba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e0919062000774565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200032957600080fd5b505af11580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000774565b601880546001600160a01b039283166001600160a01b03199182161790915560178054928416929091168217905560135430600090815260056020908152604080832094835293905291822055600190600690620003ca6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260068352208054909216600117909155600b54600a546200042692909190620012e2620005d8821b17901c565b6010819055506200044a600d54600c54620005d860201b620012e21790919060201c565b6011819055506200046e600f54600e54620005d860201b620012e21790919060201c565b6012556001600760006200048a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556018549091168152600790925280822080548416600190811790915530835290822080549093168117909255600890620004fa6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600884528281208054861660019081179091556018549092168152600990935290822080549093161790915560135490600490620005663390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601354604051620005c991815260200190565b60405180910390a350620009ac565b600080620005e78385620007f3565b9050838110156200063f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064015b60405180910390fd5b90505b92915050565b60006200063f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200069260201b60201c565b60008183620006b65760405162461bcd60e51b81526004016200063691906200079d565b506000620006c584866200080e565b95945050505050565b828054620006dc9062000959565b90600052602060002090601f0160209004810192826200070057600085556200074b565b82601f106200071b57805160ff19168380011785556200074b565b828001600101855582156200074b579182015b828111156200074b5782518255916020019190600101906200072e565b50620007599291506200075d565b5090565b5b808211156200075957600081556001016200075e565b60006020828403121562000786578081fd5b81516001600160a01b03811681146200063f578182fd5b6000602080835283518082850152825b81811015620007cb57858101830151858201604001528201620007ad565b81811115620007dd5783604083870101525b50601f01601f1916929092016040019392505050565b6000821982111562000809576200080962000996565b500190565b6000826200082a57634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156200087057816000190482111562000854576200085462000996565b808516156200086257918102915b93841c939080029062000834565b509250929050565b60006200063f60ff841683600082620008945750600162000642565b81620008a35750600062000642565b8160018114620008bc5760028114620008c757620008e7565b600191505062000642565b60ff841115620008db57620008db62000996565b50506001821b62000642565b5060208310610133831016604e8410600b84101617156200090c575081810a62000642565b6200091883836200082f565b80600019048211156200092f576200092f62000996565b029392505050565b600081600019048311821515161562000954576200095462000996565b500290565b600181811c908216806200096e57607f821691505b602082108114156200099057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c61236a620009d2600039600081816103e40152610abf015261236a6000f3fe6080604052600436106102b25760003560e01c8063844d591c11610175578063c5d24189116100dc578063dc44b6a011610095578063f0cd1dac1161006f578063f0cd1dac1461088c578063f2fde38b146108a2578063f84ba65d146108c2578063f872858a146108e257600080fd5b8063dc44b6a014610810578063dd62ed3e14610826578063ef422a181461086c57600080fd5b8063c5d241891461074e578063c816841b14610764578063c860795214610784578063c867d60b1461079a578063d158272d146107ca578063da00097d146107ef57600080fd5b8063a073d37f1161012e578063a073d37f146106a3578063a08e671f146106b8578063a457c2d7146106ce578063a5d69d1f146106ee578063a9059cbb1461070e578063c49b9a801461072e57600080fd5b8063844d591c146105f557806388790a68146106155780638b42507f1461062b5780638da5cb5b1461065b578063914eb66a1461067957806395d89b411461068e57600080fd5b80633ecad271116102195780635881f3ef116101d25780635881f3ef1461054757806361a23c691461056757806370a082311461057d5780637d1db4a5146105b3578063807c2d9c146105c957806382eefb43146105df57600080fd5b80633ecad2711461047d5780634a74bb02146104ad5780634cb80fd5146104ce5780635342acb4146104ee578063557ed1ba1461051e57806357a5802f1461053157600080fd5b80632563ae831161026b5780632563ae83146103b257806327c8f835146103d25780632b112e4914610406578063313ce5671461041b578063395093511461043d5780633b97084a1461045d57600080fd5b806306fdde03146102be578063095ea7b3146102e95780631694505e1461031957806318160ddd146103515780632198cf6c1461037057806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610903565b6040516102e0919061212b565b60405180910390f35b3480156102f557600080fd5b5061030961030436600461205e565b610995565b60405190151581526020016102e0565b34801561032557600080fd5b50601754610339906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561035d57600080fd5b506013545b6040519081526020016102e0565b34801561037c57600080fd5b5061039061038b36600461202a565b6109ac565b005b34801561039e57600080fd5b506103096103ad366004611fea565b610a0a565b3480156103be57600080fd5b506103906103cd366004612089565b610a75565b3480156103de57600080fd5b506103397f000000000000000000000000000000000000000000000000000000000000000081565b34801561041257600080fd5b50610362610abd565b34801561042757600080fd5b5060035460405160ff90911681526020016102e0565b34801561044957600080fd5b5061030961045836600461205e565b610b07565b34801561046957600080fd5b506103906104783660046120a3565b610b3d565b34801561048957600080fd5b50610309610498366004611f7a565b60096020526000908152604090205460ff1681565b3480156104b957600080fd5b5060185461030990600160a81b900460ff1681565b3480156104da57600080fd5b506103906104e9366004611f7a565b610b6c565b3480156104fa57600080fd5b50610309610509366004611f7a565b60066020526000908152604090205460ff1681565b34801561052a57600080fd5b5042610362565b34801561053d57600080fd5b50610362600e5481565b34801561055357600080fd5b50610339610562366004611f7a565b610bbe565b34801561057357600080fd5b50610362600f5481565b34801561058957600080fd5b50610362610598366004611f7a565b6001600160a01b031660009081526004602052604090205490565b3480156105bf57600080fd5b5061036260145481565b3480156105d557600080fd5b5061036260155481565b3480156105eb57600080fd5b5061036260115481565b34801561060157600080fd5b5061039061061036600461202a565b610f50565b34801561062157600080fd5b50610362600c5481565b34801561063757600080fd5b50610309610646366004611f7a565b60086020526000908152604090205460ff1681565b34801561066757600080fd5b506000546001600160a01b0316610339565b34801561068557600080fd5b50610390610fa5565b34801561069a57600080fd5b506102d3611019565b3480156106af57600080fd5b50601654610362565b3480156106c457600080fd5b5061036260125481565b3480156106da57600080fd5b506103096106e936600461205e565b611028565b3480156106fa57600080fd5b50610390610709366004612089565b611077565b34801561071a57600080fd5b5061030961072936600461205e565b6110bf565b34801561073a57600080fd5b50610390610749366004612089565b6110cc565b34801561075a57600080fd5b50610362600b5481565b34801561077057600080fd5b50601854610339906001600160a01b031681565b34801561079057600080fd5b50610362600d5481565b3480156107a657600080fd5b506103096107b5366004611f7a565b60076020526000908152604090205460ff1681565b3480156107d657600080fd5b506003546103399061010090046001600160a01b031681565b3480156107fb57600080fd5b5060185461030990600160b01b900460ff1681565b34801561081c57600080fd5b50610362600a5481565b34801561083257600080fd5b50610362610841366004611fb2565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561087857600080fd5b5061039061088736600461202a565b61114e565b34801561089857600080fd5b5061036260105481565b3480156108ae57600080fd5b506103906108bd366004611f7a565b6111a3565b3480156108ce57600080fd5b506103906108dd36600461202a565b61128d565b3480156108ee57600080fd5b5060185461030990600160b81b900460ff1681565b6060600180546109129061227e565b80601f016020809104026020016040519081016040528092919081815260200182805461093e9061227e565b801561098b5780601f106109605761010080835404028352916020019161098b565b820191906000526020600020905b81548152906001019060200180831161096e57829003601f168201915b5050505050905090565b60006109a2338484611383565b5060015b92915050565b6000546001600160a01b031633146109df5760405162461bcd60e51b81526004016109d69061217e565b60405180910390fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000610a178484846114a7565b50610a6a8433610a65856040518060600160405280602881526020016122e8602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061187c565b611383565b5060015b9392505050565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016109d69061217e565b60188054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260046020526040812054601354610b02916118b6565b905090565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109a2918590610a6590866112e2565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016109d69061217e565b601655565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016109d69061217e565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610be95760405162461bcd60e51b81526004016109d69061217e565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c2757600080fd5b505afa158015610c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5f9190611f96565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca757600080fd5b505afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190611f96565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610d2557600080fd5b505afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611f96565b91506001600160a01b038216610ee157806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190611f96565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2657600080fd5b505afa158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e9190611f96565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610ea657600080fd5b505af1158015610eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ede9190611f96565b91505b601880546001600160a01b03199081166001600160a01b03858116918217845560178054909316948116949094179091556000908152600760209081526040808320805460ff199081166001908117909255945490951683526009909152902080549091169091179055919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fcf5760405162461bcd60e51b81526004016109d69061217e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600280546109129061227e565b60006109a23384610a6585604051806060016040528060258152602001612310602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061187c565b6000546001600160a01b031633146110a15760405162461bcd60e51b81526004016109d69061217e565b60188054911515600160b01b0260ff60b01b19909216919091179055565b6000610a6a3384846114a7565b6000546001600160a01b031633146110f65760405162461bcd60e51b81526004016109d69061217e565b60188054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061114390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111785760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111cd5760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b0381166112325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112b75760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000806112ef8385612210565b905083811015610a6e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d6565b6000610a6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118f8565b6001600160a01b0383166113e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d6565b6001600160a01b0382166114465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661150d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d6565b6001600160a01b03831661156f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d6565b601854600160a01b900460ff16156115935761158c848484611926565b9050610a6e565b6001600160a01b03841660009081526008602052604090205460ff161580156115d557506001600160a01b03831660009081526008602052604090205460ff16155b1561163d5760145482111561163d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109d6565b306000908152600460205260409020546016548110801590819061166b5750601854600160a01b900460ff16155b801561169057506001600160a01b03861660009081526009602052604090205460ff16155b80156116a55750601854600160a81b900460ff165b156116cb57601854600160b01b900460ff16156116c25760165491505b6116cb82611a0c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526004909152919091205461171d91869061187c565b6001600160a01b038716600090815260046020908152604080832093909355600690529081205460ff168061176a57506001600160a01b03861660009081526006602052604090205460ff165b61177e57611779878787611b03565b611780565b845b601854909150600160b81b900460ff1680156117b557506001600160a01b03861660009081526007602052604090205460ff16155b156117f1576015546117e6826117e0896001600160a01b031660009081526004602052604090205490565b906112e2565b11156117f157600080fd5b6001600160a01b03861660009081526004602052604090205461181490826112e2565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118689085815260200190565b60405180910390a360019350505050610a6e565b600081848411156118a05760405162461bcd60e51b81526004016109d6919061212b565b5060006118ad8486612267565b95945050505050565b6000610a6e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187c565b600081836119195760405162461bcd60e51b81526004016109d6919061212b565b5060006118ad8486612228565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461197791849061187c565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546119a690836112e2565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119fa9086815260200190565b60405180910390a35060019392505050565b6018805460ff60a01b1916600160a01b179055601254600e54600091611a4291600291611a3c9182908790611c09565b90611341565b90506000611a5083836118b6565b9050611a5b81611c88565b600e544790600090611a7b90611a72906002611341565b601254906118b6565b90506000611a9d6002611a3c84611a3c600e5488611c0990919063ffffffff16565b90506000611aab84836118b6565b90508015611ace57600354611ace9061010090046001600160a01b031682611e46565b600082118015611ade5750600086115b15611aed57611aed8683611e81565b50506018805460ff60a01b191690555050505050565b6001600160a01b038316600090815260096020526040812054819060ff1615611b4757611b406064611a3c60105486611c0990919063ffffffff16565b9050611b85565b6001600160a01b03841660009081526009602052604090205460ff1615611b8557611b826064611a3c60115486611c0990919063ffffffff16565b90505b8015611bff5730600090815260046020526040902054611ba590826112e2565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf69085815260200190565b60405180910390a35b6118ad83826118b6565b600082611c18575060006109a6565b6000611c248385612248565b905082611c318583612228565b14610a6e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ccb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d1f57600080fd5b505afa158015611d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d579190611f96565b81600181518110611d7857634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601754611d9e9130911684611383565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd79085906000908690309042906004016121d4565b600060405180830381600087803b158015611df157600080fd5b505af1158015611e05573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e3a9291906121b3565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611e7c573d6000803e3d6000fd5b505050565b601754611e999030906001600160a01b031684611383565b6017546001600160a01b031663f305d719823085600080611ec26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611f2557600080fd5b505af1158015611f39573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f5e91906120bb565b5050505050565b80358015158114611f7557600080fd5b919050565b600060208284031215611f8b578081fd5b8135610a6e816122cf565b600060208284031215611fa7578081fd5b8151610a6e816122cf565b60008060408385031215611fc4578081fd5b8235611fcf816122cf565b91506020830135611fdf816122cf565b809150509250929050565b600080600060608486031215611ffe578081fd5b8335612009816122cf565b92506020840135612019816122cf565b929592945050506040919091013590565b6000806040838503121561203c578182fd5b8235612047816122cf565b915061205560208401611f65565b90509250929050565b60008060408385031215612070578182fd5b823561207b816122cf565b946020939093013593505050565b60006020828403121561209a578081fd5b610a6e82611f65565b6000602082840312156120b4578081fd5b5035919050565b6000806000606084860312156120cf578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156121205781516001600160a01b0316875295820195908201906001016120fb565b509495945050505050565b6000602080835283518082850152825b818110156121575785810183015185820160400152820161213b565b818111156121685783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006121cc60408301846120e8565b949350505050565b85815284602082015260a0604082015260006121f360a08301866120e8565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612223576122236122b9565b500190565b60008261224357634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612262576122626122b9565b500290565b600082821015612279576122796122b9565b500390565b600181811c9082168061229257607f821691505b602082108114156122b357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146122e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220111a9540fc782593b6820839393e018bf3eee323f49511a85724af1ab6d869c464736f6c63430008040033
Deployed Bytecode
0x6080604052600436106102b25760003560e01c8063844d591c11610175578063c5d24189116100dc578063dc44b6a011610095578063f0cd1dac1161006f578063f0cd1dac1461088c578063f2fde38b146108a2578063f84ba65d146108c2578063f872858a146108e257600080fd5b8063dc44b6a014610810578063dd62ed3e14610826578063ef422a181461086c57600080fd5b8063c5d241891461074e578063c816841b14610764578063c860795214610784578063c867d60b1461079a578063d158272d146107ca578063da00097d146107ef57600080fd5b8063a073d37f1161012e578063a073d37f146106a3578063a08e671f146106b8578063a457c2d7146106ce578063a5d69d1f146106ee578063a9059cbb1461070e578063c49b9a801461072e57600080fd5b8063844d591c146105f557806388790a68146106155780638b42507f1461062b5780638da5cb5b1461065b578063914eb66a1461067957806395d89b411461068e57600080fd5b80633ecad271116102195780635881f3ef116101d25780635881f3ef1461054757806361a23c691461056757806370a082311461057d5780637d1db4a5146105b3578063807c2d9c146105c957806382eefb43146105df57600080fd5b80633ecad2711461047d5780634a74bb02146104ad5780634cb80fd5146104ce5780635342acb4146104ee578063557ed1ba1461051e57806357a5802f1461053157600080fd5b80632563ae831161026b5780632563ae83146103b257806327c8f835146103d25780632b112e4914610406578063313ce5671461041b578063395093511461043d5780633b97084a1461045d57600080fd5b806306fdde03146102be578063095ea7b3146102e95780631694505e1461031957806318160ddd146103515780632198cf6c1461037057806323b872dd1461039257600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d3610903565b6040516102e0919061212b565b60405180910390f35b3480156102f557600080fd5b5061030961030436600461205e565b610995565b60405190151581526020016102e0565b34801561032557600080fd5b50601754610339906001600160a01b031681565b6040516001600160a01b0390911681526020016102e0565b34801561035d57600080fd5b506013545b6040519081526020016102e0565b34801561037c57600080fd5b5061039061038b36600461202a565b6109ac565b005b34801561039e57600080fd5b506103096103ad366004611fea565b610a0a565b3480156103be57600080fd5b506103906103cd366004612089565b610a75565b3480156103de57600080fd5b506103397f000000000000000000000000000000000000000000000000000000000000dead81565b34801561041257600080fd5b50610362610abd565b34801561042757600080fd5b5060035460405160ff90911681526020016102e0565b34801561044957600080fd5b5061030961045836600461205e565b610b07565b34801561046957600080fd5b506103906104783660046120a3565b610b3d565b34801561048957600080fd5b50610309610498366004611f7a565b60096020526000908152604090205460ff1681565b3480156104b957600080fd5b5060185461030990600160a81b900460ff1681565b3480156104da57600080fd5b506103906104e9366004611f7a565b610b6c565b3480156104fa57600080fd5b50610309610509366004611f7a565b60066020526000908152604090205460ff1681565b34801561052a57600080fd5b5042610362565b34801561053d57600080fd5b50610362600e5481565b34801561055357600080fd5b50610339610562366004611f7a565b610bbe565b34801561057357600080fd5b50610362600f5481565b34801561058957600080fd5b50610362610598366004611f7a565b6001600160a01b031660009081526004602052604090205490565b3480156105bf57600080fd5b5061036260145481565b3480156105d557600080fd5b5061036260155481565b3480156105eb57600080fd5b5061036260115481565b34801561060157600080fd5b5061039061061036600461202a565b610f50565b34801561062157600080fd5b50610362600c5481565b34801561063757600080fd5b50610309610646366004611f7a565b60086020526000908152604090205460ff1681565b34801561066757600080fd5b506000546001600160a01b0316610339565b34801561068557600080fd5b50610390610fa5565b34801561069a57600080fd5b506102d3611019565b3480156106af57600080fd5b50601654610362565b3480156106c457600080fd5b5061036260125481565b3480156106da57600080fd5b506103096106e936600461205e565b611028565b3480156106fa57600080fd5b50610390610709366004612089565b611077565b34801561071a57600080fd5b5061030961072936600461205e565b6110bf565b34801561073a57600080fd5b50610390610749366004612089565b6110cc565b34801561075a57600080fd5b50610362600b5481565b34801561077057600080fd5b50601854610339906001600160a01b031681565b34801561079057600080fd5b50610362600d5481565b3480156107a657600080fd5b506103096107b5366004611f7a565b60076020526000908152604090205460ff1681565b3480156107d657600080fd5b506003546103399061010090046001600160a01b031681565b3480156107fb57600080fd5b5060185461030990600160b01b900460ff1681565b34801561081c57600080fd5b50610362600a5481565b34801561083257600080fd5b50610362610841366004611fb2565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561087857600080fd5b5061039061088736600461202a565b61114e565b34801561089857600080fd5b5061036260105481565b3480156108ae57600080fd5b506103906108bd366004611f7a565b6111a3565b3480156108ce57600080fd5b506103906108dd36600461202a565b61128d565b3480156108ee57600080fd5b5060185461030990600160b81b900460ff1681565b6060600180546109129061227e565b80601f016020809104026020016040519081016040528092919081815260200182805461093e9061227e565b801561098b5780601f106109605761010080835404028352916020019161098b565b820191906000526020600020905b81548152906001019060200180831161096e57829003601f168201915b5050505050905090565b60006109a2338484611383565b5060015b92915050565b6000546001600160a01b031633146109df5760405162461bcd60e51b81526004016109d69061217e565b60405180910390fd5b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000610a178484846114a7565b50610a6a8433610a65856040518060600160405280602881526020016122e8602891396001600160a01b038a166000908152600560209081526040808320338452909152902054919061187c565b611383565b5060015b9392505050565b6000546001600160a01b03163314610a9f5760405162461bcd60e51b81526004016109d69061217e565b60188054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260046020526040812054601354610b02916118b6565b905090565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916109a2918590610a6590866112e2565b6000546001600160a01b03163314610b675760405162461bcd60e51b81526004016109d69061217e565b601655565b6000546001600160a01b03163314610b965760405162461bcd60e51b81526004016109d69061217e565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610be95760405162461bcd60e51b81526004016109d69061217e565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c2757600080fd5b505afa158015610c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5f9190611f96565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610ca757600080fd5b505afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf9190611f96565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015610d2557600080fd5b505afa158015610d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5d9190611f96565b91506001600160a01b038216610ee157806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190611f96565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e2657600080fd5b505afa158015610e3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5e9190611f96565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610ea657600080fd5b505af1158015610eba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ede9190611f96565b91505b601880546001600160a01b03199081166001600160a01b03858116918217845560178054909316948116949094179091556000908152600760209081526040808320805460ff199081166001908117909255945490951683526009909152902080549091169091179055919050565b6000546001600160a01b03163314610f7a5760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610fcf5760405162461bcd60e51b81526004016109d69061217e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600280546109129061227e565b60006109a23384610a6585604051806060016040528060258152602001612310602591393360009081526005602090815260408083206001600160a01b038d168452909152902054919061187c565b6000546001600160a01b031633146110a15760405162461bcd60e51b81526004016109d69061217e565b60188054911515600160b01b0260ff60b01b19909216919091179055565b6000610a6a3384846114a7565b6000546001600160a01b031633146110f65760405162461bcd60e51b81526004016109d69061217e565b60188054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061114390831515815260200190565b60405180910390a150565b6000546001600160a01b031633146111785760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111cd5760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b0381166112325760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109d6565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112b75760405162461bcd60e51b81526004016109d69061217e565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000806112ef8385612210565b905083811015610a6e5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016109d6565b6000610a6e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118f8565b6001600160a01b0383166113e55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109d6565b6001600160a01b0382166114465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109d6565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b03841661150d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109d6565b6001600160a01b03831661156f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109d6565b601854600160a01b900460ff16156115935761158c848484611926565b9050610a6e565b6001600160a01b03841660009081526008602052604090205460ff161580156115d557506001600160a01b03831660009081526008602052604090205460ff16155b1561163d5760145482111561163d5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016109d6565b306000908152600460205260409020546016548110801590819061166b5750601854600160a01b900460ff16155b801561169057506001600160a01b03861660009081526009602052604090205460ff16155b80156116a55750601854600160a81b900460ff165b156116cb57601854600160b01b900460ff16156116c25760165491505b6116cb82611a0c565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03891660009081526004909152919091205461171d91869061187c565b6001600160a01b038716600090815260046020908152604080832093909355600690529081205460ff168061176a57506001600160a01b03861660009081526006602052604090205460ff165b61177e57611779878787611b03565b611780565b845b601854909150600160b81b900460ff1680156117b557506001600160a01b03861660009081526007602052604090205460ff16155b156117f1576015546117e6826117e0896001600160a01b031660009081526004602052604090205490565b906112e2565b11156117f157600080fd5b6001600160a01b03861660009081526004602052604090205461181490826112e2565b6001600160a01b0380881660008181526004602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118689085815260200190565b60405180910390a360019350505050610a6e565b600081848411156118a05760405162461bcd60e51b81526004016109d6919061212b565b5060006118ad8486612267565b95945050505050565b6000610a6e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061187c565b600081836119195760405162461bcd60e51b81526004016109d6919061212b565b5060006118ad8486612228565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461197791849061187c565b6001600160a01b0380861660009081526004602052604080822093909355908516815220546119a690836112e2565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119fa9086815260200190565b60405180910390a35060019392505050565b6018805460ff60a01b1916600160a01b179055601254600e54600091611a4291600291611a3c9182908790611c09565b90611341565b90506000611a5083836118b6565b9050611a5b81611c88565b600e544790600090611a7b90611a72906002611341565b601254906118b6565b90506000611a9d6002611a3c84611a3c600e5488611c0990919063ffffffff16565b90506000611aab84836118b6565b90508015611ace57600354611ace9061010090046001600160a01b031682611e46565b600082118015611ade5750600086115b15611aed57611aed8683611e81565b50506018805460ff60a01b191690555050505050565b6001600160a01b038316600090815260096020526040812054819060ff1615611b4757611b406064611a3c60105486611c0990919063ffffffff16565b9050611b85565b6001600160a01b03841660009081526009602052604090205460ff1615611b8557611b826064611a3c60115486611c0990919063ffffffff16565b90505b8015611bff5730600090815260046020526040902054611ba590826112e2565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611bf69085815260200190565b60405180910390a35b6118ad83826118b6565b600082611c18575060006109a6565b6000611c248385612248565b905082611c318583612228565b14610a6e5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016109d6565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ccb57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d1f57600080fd5b505afa158015611d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d579190611f96565b81600181518110611d7857634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601754611d9e9130911684611383565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790611dd79085906000908690309042906004016121d4565b600060405180830381600087803b158015611df157600080fd5b505af1158015611e05573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a78282604051611e3a9291906121b3565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611e7c573d6000803e3d6000fd5b505050565b601754611e999030906001600160a01b031684611383565b6017546001600160a01b031663f305d719823085600080611ec26000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b158015611f2557600080fd5b505af1158015611f39573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f5e91906120bb565b5050505050565b80358015158114611f7557600080fd5b919050565b600060208284031215611f8b578081fd5b8135610a6e816122cf565b600060208284031215611fa7578081fd5b8151610a6e816122cf565b60008060408385031215611fc4578081fd5b8235611fcf816122cf565b91506020830135611fdf816122cf565b809150509250929050565b600080600060608486031215611ffe578081fd5b8335612009816122cf565b92506020840135612019816122cf565b929592945050506040919091013590565b6000806040838503121561203c578182fd5b8235612047816122cf565b915061205560208401611f65565b90509250929050565b60008060408385031215612070578182fd5b823561207b816122cf565b946020939093013593505050565b60006020828403121561209a578081fd5b610a6e82611f65565b6000602082840312156120b4578081fd5b5035919050565b6000806000606084860312156120cf578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156121205781516001600160a01b0316875295820195908201906001016120fb565b509495945050505050565b6000602080835283518082850152825b818110156121575785810183015185820160400152820161213b565b818111156121685783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006121cc60408301846120e8565b949350505050565b85815284602082015260a0604082015260006121f360a08301866120e8565b6001600160a01b0394909416606083015250608001529392505050565b60008219821115612223576122236122b9565b500190565b60008261224357634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615612262576122626122b9565b500290565b600082821015612279576122796122b9565b500390565b600181811c9082168061229257607f821691505b602082108114156122b357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146122e457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220111a9540fc782593b6820839393e018bf3eee323f49511a85724af1ab6d869c464736f6c63430008040033
Deployed Bytecode Sourcemap
14173:13054:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17604:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18898:161;;;;;;;;;;-1:-1:-1;18898:161:0;;;;;:::i;:::-;;:::i;:::-;;;4938:14:1;;4931:22;4913:41;;4901:2;4886:18;18898:161:0;4868:92:1;15680:41:0;;;;;;;;;;-1:-1:-1;15680:41:0;;;;-1:-1:-1;;;;;15680:41:0;;;;;;-1:-1:-1;;;;;3584:32:1;;;3566:51;;3554:2;3539:18;15680:41:0;3521:102:1;17881:100:0;;;;;;;;;;-1:-1:-1;17961:12:0;;17881:100;;;9507:25:1;;;9495:2;9480:18;17881:100:0;9462:76:1;19952:135:0;;;;;;;;;;-1:-1:-1;19952:135:0;;;;;:::i;:::-;;:::i;:::-;;22166:313;;;;;;;;;;-1:-1:-1;22166:313:0;;;;;:::i;:::-;;:::i;19831:113::-;;;;;;;;;;-1:-1:-1;19831:113:0;;;;;:::i;:::-;;:::i;14524:81::-;;;;;;;;;;;;;;;20808:128;;;;;;;;;;;;;:::i;17790:83::-;;;;;;;;;;-1:-1:-1;17856:9:0;;17790:83;;17856:9;;;;10609:36:1;;10597:2;10582:18;17790:83:0;10564:87:1;18267:218:0;;;;;;;;;;-1:-1:-1;18267:218:0;;;;;:::i;:::-;;:::i;20211:124::-;;;;;;;;;;-1:-1:-1;20211:124:0;;;;;:::i;:::-;;:::i;14916:45::-;;;;;;;;;;-1:-1:-1;14916:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;15795:40;;;;;;;;;;-1:-1:-1;15795:40:0;;;;-1:-1:-1;;;15795:40:0;;;;;;20343:139;;;;;;;;;;-1:-1:-1;20343:139:0;;;;;:::i;:::-;;:::i;14745:50::-;;;;;;;;;;-1:-1:-1;14745:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6236:90;;;;;;;;;;-1:-1:-1;6303:15:0;6236:90;;15143:72;;;;;;;;;;;;;;;;21082:807;;;;;;;;;;-1:-1:-1;21082:807:0;;;;;:::i;:::-;;:::i;15222:72::-;;;;;;;;;;;;;;;;17989:119;;;;;;;;;;-1:-1:-1;17989:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;18082:18:0;18055:7;18082:18;;;:9;:18;;;;;;;17989:119;15494:49;;;;;;;;;;;;;;;;15551:47;;;;;;;;;;;;;;;;15342:33;;;;;;;;;;;;;;;;19412:129;;;;;;;;;;-1:-1:-1;19412:129:0;;;;;:::i;:::-;;:::i;15059:32::-;;;;;;;;;;;;;;;;14861:48;;;;;;;;;;-1:-1:-1;14861:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5606:79;;;;;;;;;;-1:-1:-1;5644:7:0;5671:6;-1:-1:-1;;;;;5671:6:0;5606:79;;5831:145;;;;;;;;;;;;;:::i;17695:87::-;;;;;;;;;;;;;:::i;18770:120::-;;;;;;;;;;-1:-1:-1;18859:23:0;;18770:120;;15382:39;;;;;;;;;;;;;;;;18493:269;;;;;;;;;;-1:-1:-1;18493:269:0;;;;;:::i;:::-;;:::i;20671:125::-;;;;;;;;;;-1:-1:-1;20671:125:0;;;;;:::i;:::-;;:::i;21991:167::-;;;;;;;;;;-1:-1:-1;21991:167:0;;;;;:::i;:::-;;:::i;20492:171::-;;;;;;;;;;-1:-1:-1;20492:171:0;;;;;:::i;:::-;;:::i;15014:35::-;;;;;;;;;;;;;;;;15728:26;;;;;;;;;;-1:-1:-1;15728:26:0;;;;-1:-1:-1;;;;;15728:26:0;;;15098:36;;;;;;;;;;;;;;;;14802:52;;;;;;;;;;-1:-1:-1;14802:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14417:99;;;;;;;;;;-1:-1:-1;14417:99:0;;;;;;;-1:-1:-1;;;;;14417:99:0;;;15842:45;;;;;;;;;;-1:-1:-1;15842:45:0;;;;-1:-1:-1;;;15842:45:0;;;;;;14976:31;;;;;;;;;;;;;;;;18116:143;;;;;;;;;;-1:-1:-1;18116:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18224:18:0;;;18197:7;18224:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18116:143;19688:135;;;;;;;;;;-1:-1:-1;19688:135:0;;;;;:::i;:::-;;:::i;15303:32::-;;;;;;;;;;;;;;;;5984:244;;;;;;;;;;-1:-1:-1;5984:244:0;;;;;:::i;:::-;;:::i;19549:127::-;;;;;;;;;;-1:-1:-1;19549:127:0;;;;;:::i;:::-;;:::i;15894:35::-;;;;;;;;;;-1:-1:-1;15894:35:0;;;;-1:-1:-1;;;15894:35:0;;;;;;17604:83;17641:13;17674:5;17667:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17604:83;:::o;18898:161::-;18973:4;18990:39;191:10;19013:7;19022:6;18990:8;:39::i;:::-;-1:-1:-1;19047:4:0;18898:161;;;;;:::o;19952:135::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20043:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;20043:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19952:135::o;22166:313::-;22264:4;22281:36;22291:6;22299:9;22310:6;22281:9;:36::i;:::-;-1:-1:-1;22328:121:0;22337:6;191:10;22359:89;22397:6;22359:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22359:19:0;;;;;;:11;:19;;;;;;;;191:10;22359:33;;;;;;;;;;:37;:89::i;:::-;22328:8;:121::i;:::-;-1:-1:-1;22467:4:0;22166:313;;;;;;:::o;19831:113::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;19909:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;19909:27:0::1;-1:-1:-1::0;;;;19909:27:0;;::::1;::::0;;;::::1;::::0;;19831:113::o;20808:128::-;20915:11;-1:-1:-1;;;;;18082:18:0;20861:7;18082:18;;;:9;:18;;;;;;20888:12;;:40;;:16;:40::i;:::-;20881:47;;20808:128;:::o;18267:218::-;191:10;18355:4;18404:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18404:34:0;;;;;;;;;;18355:4;;18372:83;;18395:7;;18404:50;;18443:10;18404:38;:50::i;20211:124::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;20293:23:::1;:34:::0;20211:124::o;20343:139::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;20430:22:::1;:44:::0;;-1:-1:-1;;;;;20430:44:0;;::::1;;;-1:-1:-1::0;;;;;;20430:44:0;;::::1;::::0;;;::::1;::::0;;20343:139::o;21082:807::-;21162:22;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;21199:35:::1;21256:16;21199:74;;21322:16;-1:-1:-1::0;;;;;21322:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21304:53:0::1;;21366:4;21373:16;-1:-1:-1::0;;;;;21373:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21304:93;::::0;-1:-1:-1;;;;;;21304:93:0::1;::::0;;;;;;-1:-1:-1;;;;;4082:15:1;;;21304:93:0::1;::::0;::::1;4064:34:1::0;4134:15;;4114:18;;;4107:43;3999:18;;21304:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21287:110:::0;-1:-1:-1;;;;;;21413:28:0;::::1;21410:225;;21527:16;-1:-1:-1::0;;;;;21527:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21509:74:0::1;;21592:4;21599:16;-1:-1:-1::0;;;;;21599:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21509:114;::::0;-1:-1:-1;;;;;;21509:114:0::1;::::0;;;;;;-1:-1:-1;;;;;4082:15:1;;;21509:114:0::1;::::0;::::1;4064:34:1::0;4134:15;;4114:18;;;4107:43;3999:18;;21509:114:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21492:131;;21410:225;21647:11;:28:::0;;-1:-1:-1;;;;;;21647:28:0;;::::1;-1:-1:-1::0;;;;;21647:28:0;;::::1;::::0;;::::1;::::0;;21709:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;21781:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;21781:48:0;;::::1;-1:-1:-1::0;21781:48:0;;::::1;::::0;;;21861:11;;;;::::1;21840:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;21647:28;21661:14;-1:-1:-1;21082:807:0:o;19412:129::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19501:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;19501:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19412:129::o;5831:145::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;5935:1:::1;5919:6:::0;;5898:40:::1;::::0;-1:-1:-1;;;;;5919:6:0;;::::1;::::0;5898:40:::1;::::0;5935:1;;5898:40:::1;5966:1;5949:19:::0;;-1:-1:-1;;;;;;5949:19:0::1;::::0;;5831:145::o;17695:87::-;17734:13;17767:7;17760:14;;;;;:::i;18493:269::-;18586:4;18603:129;191:10;18626:7;18635:96;18674:15;18635:96;;;;;;;;;;;;;;;;;191:10;18635:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18635:34:0;;;;;;;;;;;;:38;:96::i;20671:125::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;20752:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;20752:36:0::1;-1:-1:-1::0;;;;20752:36:0;;::::1;::::0;;;::::1;::::0;;20671:125::o;21991:167::-;22069:4;22086:42;191:10;22110:9;22121:6;22086:9;:42::i;20492:171::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;20569:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;20569:32:0::1;-1:-1:-1::0;;;;20569:32:0;;::::1;;::::0;;20617:38:::1;::::0;::::1;::::0;::::1;::::0;20593:8;4938:14:1;4931:22;4913:41;;4901:2;4886:18;;4868:92;20617:38:0::1;;;;;;;;20492:171:::0;:::o;19688:135::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19778:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;19778:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19688:135::o;5984:244::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6073:22:0;::::1;6065:73;;;::::0;-1:-1:-1;;;6065:73:0;;6414:2:1;6065:73:0::1;::::0;::::1;6396:21:1::0;6453:2;6433:18;;;6426:30;6492:34;6472:18;;;6465:62;-1:-1:-1;;;6543:18:1;;;6536:36;6589:19;;6065:73:0::1;6386:228:1::0;6065:73:0::1;6175:6;::::0;;6154:38:::1;::::0;-1:-1:-1;;;;;6154:38:0;;::::1;::::0;6175:6;::::1;::::0;6154:38:::1;::::0;::::1;6203:6;:17:::0;;-1:-1:-1;;;;;;6203:17:0::1;-1:-1:-1::0;;;;;6203:17:0;;;::::1;::::0;;;::::1;::::0;;5984:244::o;19549:127::-;5740:6;;-1:-1:-1;;;;;5740:6:0;191:10;5740:22;5732:67;;;;-1:-1:-1;;;5732:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19636:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;19636:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19549:127::o;1045:181::-;1103:7;;1135:5;1139:1;1135;:5;:::i;:::-;1123:17;;1164:1;1159;:6;;1151:46;;;;-1:-1:-1;;;1151:46:0;;7224:2:1;1151:46:0;;;7206:21:1;7263:2;7243:18;;;7236:30;7302:29;7282:18;;;7275:57;7349:18;;1151:46:0;7196:177:1;1836:132:0;1894:7;1921:39;1925:1;1928;1921:39;;;;;;;;;;;;;;;;;:3;:39::i;19067:337::-;-1:-1:-1;;;;;19160:19:0;;19152:68;;;;-1:-1:-1;;;19152:68:0;;9158:2:1;19152:68:0;;;9140:21:1;9197:2;9177:18;;;9170:30;9236:34;9216:18;;;9209:62;-1:-1:-1;;;9287:18:1;;;9280:34;9331:19;;19152:68:0;9130:226:1;19152:68:0;-1:-1:-1;;;;;19239:21:0;;19231:68;;;;-1:-1:-1;;;19231:68:0;;6821:2:1;19231:68:0;;;6803:21:1;6860:2;6840:18;;;6833:30;6899:34;6879:18;;;6872:62;-1:-1:-1;;;6950:18:1;;;6943:32;6992:19;;19231:68:0;6793:224:1;19231:68:0;-1:-1:-1;;;;;19312:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19364:32;;9507:25:1;;;19364:32:0;;9480:18:1;19364:32:0;;;;;;;19067:337;;;:::o;22487:1711::-;22574:4;-1:-1:-1;;;;;22599:20:0;;22591:70;;;;-1:-1:-1;;;22591:70:0;;8752:2:1;22591:70:0;;;8734:21:1;8791:2;8771:18;;;8764:30;8830:34;8810:18;;;8803:62;-1:-1:-1;;;8881:18:1;;;8874:35;8926:19;;22591:70:0;8724:227:1;22591:70:0;-1:-1:-1;;;;;22680:23:0;;22672:71;;;;-1:-1:-1;;;22672:71:0;;6010:2:1;22672:71:0;;;5992:21:1;6049:2;6029:18;;;6022:30;6088:34;6068:18;;;6061:62;-1:-1:-1;;;6139:18:1;;;6132:33;6182:19;;22672:71:0;5982:225:1;22672:71:0;22765:16;;-1:-1:-1;;;22765:16:0;;;;22762:1429;;;22815:41;22830:6;22838:9;22849:6;22815:14;:41::i;:::-;22808:48;;;;22762:1429;-1:-1:-1;;;;;22912:23:0;;;;;;:15;:23;;;;;;;;22911:24;:55;;;;-1:-1:-1;;;;;;22940:26:0;;;;;;:15;:26;;;;;;;;22939:27;22911:55;22908:170;;;23005:12;;22995:6;:22;;22987:75;;;;-1:-1:-1;;;22987:75:0;;7580:2:1;22987:75:0;;;7562:21:1;7619:2;7599:18;;;7592:30;7658:34;7638:18;;;7631:62;-1:-1:-1;;;7709:18:1;;;7702:38;7757:19;;22987:75:0;7552:230:1;22987:75:0;23155:4;23106:28;18082:18;;;:9;:18;;;;;;23231:23;;23207:47;;;;;;;23287:44;;-1:-1:-1;23315:16:0;;-1:-1:-1;;;23315:16:0;;;;23314:17;23287:44;:69;;;;-1:-1:-1;;;;;;23336:20:0;;;;;;:12;:20;;;;;;;;23335:21;23287:69;:94;;;;-1:-1:-1;23360:21:0;;-1:-1:-1;;;23360:21:0;;;;23287:94;23283:305;;;23419:25;;-1:-1:-1;;;23419:25:0;;;;23416:97;;;23490:23;;23467:46;;23416:97;23532:36;23547:20;23532:14;:36::i;:::-;23624:53;;;;;;;;;;;-1:-1:-1;;;23624:53:0;;;;;;;;-1:-1:-1;;;;;23624:17:0;;-1:-1:-1;23624:17:0;;;:9;:17;;;;;;;;:53;;23646:6;;23624:21;:53::i;:::-;-1:-1:-1;;;;;23604:17:0;;;;;;:9;:17;;;;;;;;:73;;;;23717:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;23746:28:0;;;;;;:17;:28;;;;;;;;23717:57;23716:148;;23830:34;23838:6;23846:9;23857:6;23830:7;:34::i;:::-;23716:148;;;23821:6;23716:148;23884:16;;23694:170;;-1:-1:-1;;;;23884:16:0;;;;:51;;;;-1:-1:-1;;;;;;23905:30:0;;;;;;:19;:30;;;;;;;;23904:31;23884:51;23881:133;;;24003:10;;23962:37;23987:11;23962:20;23972:9;-1:-1:-1;;;;;18082:18:0;18055:7;18082:18;;;:9;:18;;;;;;;17989:119;23962:20;:24;;:37::i;:::-;:51;;23954:60;;;;;;-1:-1:-1;;;;;24054:20:0;;;;;;:9;:20;;;;;;:37;;24079:11;24054:24;:37::i;:::-;-1:-1:-1;;;;;24031:20:0;;;;;;;:9;:20;;;;;;;:60;;;;24113:40;;;;;;;;;;24141:11;9507:25:1;;9495:2;9480:18;;9462:76;24113:40:0;;;;;;;;24175:4;24168:11;;;;;;;1378:192;1464:7;1500:12;1492:6;;;;1484:29;;;;-1:-1:-1;;;1484:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1524:9:0;1536:5;1540:1;1536;:5;:::i;:::-;1524:17;1378:192;-1:-1:-1;;;;;1378:192:0:o;1234:136::-;1292:7;1319:43;1323:1;1326;1319:43;;;;;;;;;;;;;;;;;:3;:43::i;1976:278::-;2062:7;2097:12;2090:5;2082:28;;;;-1:-1:-1;;;2082:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2121:9:0;2133:5;2137:1;2133;:5;:::i;24206:330::-;24336:53;;;;;;;;;;;-1:-1:-1;;;24336:53:0;;;;;;;;-1:-1:-1;;;;;24336:17:0;;24299:4;24336:17;;;:9;:17;;;;;;;:53;;24358:6;;24336:21;:53::i;:::-;-1:-1:-1;;;;;24316:17:0;;;;;;;:9;:17;;;;;;:73;;;;24423:20;;;;;;;:32;;24448:6;24423:24;:32::i;:::-;-1:-1:-1;;;;;24400:20:0;;;;;;;:9;:20;;;;;;;:55;;;;24471:35;;;;;;;;;;24499:6;9507:25:1;;9495:2;9480:18;;9462:76;24471:35:0;;;;;;;;-1:-1:-1;24524:4:0;24206:330;;;;;:::o;24544:849::-;16352:16;:23;;-1:-1:-1;;;;16352:23:0;-1:-1:-1;;;16352:23:0;;;24681:24:::1;::::0;24660:15:::1;::::0;16352:23;;24648:65:::1;::::0;24711:1:::1;::::0;24648:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;24626:87:::0;-1:-1:-1;24724:21:0::1;24748:24;:7:::0;24626:87;24748:11:::1;:24::i;:::-;24724:48;;24785:31;24802:13;24785:16;:31::i;:::-;24937:15;::::0;24852:21:::1;::::0;24827:22:::1;::::0;24908:52:::1;::::0;24937:22:::1;::::0;24957:1:::1;24937:19;:22::i;:::-;24908:24;::::0;;:28:::1;:52::i;:::-;24886:74;;24981:26;25010:59;25067:1;25010:52;25050:11;25010:35;25029:15;;25010:14;:18;;:35;;;;:::i;:59::-;24981:88:::0;-1:-1:-1;25082:26:0::1;25111:38;:14:::0;24981:88;25111:18:::1;:38::i;:::-;25082:67:::0;-1:-1:-1;25165:22:0;;25162:104:::1;;25223:22;::::0;25202:64:::1;::::0;25223:22:::1;::::0;::::1;-1:-1:-1::0;;;;;25223:22:0::1;25247:18:::0;25202:20:::1;:64::i;:::-;25305:1;25284:18;:22;:41;;;;;25324:1;25310:11;:15;25284:41;25281:104;;;25340:45;25353:11;25366:18;25340:12;:45::i;:::-;-1:-1:-1::0;;16398:16:0;:24;;-1:-1:-1;;;;16398:24:0;;;-1:-1:-1;;;;;24544:849:0:o;26600:622::-;-1:-1:-1;;;;;26761:20:0;;26686:7;26761:20;;;:12;:20;;;;;;26686:7;;26761:20;;26758:223;;;26810:38;26844:3;26810:29;26821:17;;26810:6;:10;;:29;;;;:::i;:38::-;26798:50;;26758:223;;;-1:-1:-1;;;;;26878:23:0;;;;;;:12;:23;;;;;;;;26875:106;;;26930:39;26965:3;26930:30;26941:18;;26930:6;:10;;:30;;;;:::i;:39::-;26918:51;;26875:106;27004:13;;27001:173;;27079:4;27061:24;;;;:9;:24;;;;;;:39;;27090:9;27061:28;:39::i;:::-;27052:4;27034:24;;;;:9;:24;;;;;;;:66;;;;27120:42;;-1:-1:-1;;;;;27120:42:0;;;;;;;27152:9;9507:25:1;;9495:2;9480:18;;9462:76;27120:42:0;;;;;;;;27001:173;27193:21;:6;27204:9;27193:10;:21::i;1578:250::-;1636:7;1660:6;1656:47;;-1:-1:-1;1690:1:0;1683:8;;1656:47;1715:9;1727:5;1731:1;1727;:5;:::i;:::-;1715:17;-1:-1:-1;1760:1:0;1751:5;1755:1;1715:17;1751:5;:::i;:::-;:10;1743:56;;;;-1:-1:-1;;;1743:56:0;;7989:2:1;1743:56:0;;;7971:21:1;8028:2;8008:18;;;8001:30;8067:34;8047:18;;;8040:62;-1:-1:-1;;;8118:18:1;;;8111:31;8159:19;;1743:56:0;7961:223:1;25405:666:0;25555:16;;;25569:1;25555:16;;;;;;;;25531:21;;25555:16;;;;;;;;;;-1:-1:-1;25555:16:0;25531:40;;25600:4;25582;25587:1;25582:7;;;;;;-1:-1:-1;;;25582:7:0;;;;;;;;;-1:-1:-1;;;;;25582:23:0;;;:7;;;;;;;;;;:23;;;;25626:15;;:22;;;-1:-1:-1;;;25626:22:0;;;;:15;;;;;:20;;:22;;;;;25582:7;;25626:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25616:4;25621:1;25616:7;;;;;;-1:-1:-1;;;25616:7:0;;;;;;;;;-1:-1:-1;;;;;25616:32:0;;;:7;;;;;;;;;:32;25693:15;;25661:62;;25678:4;;25693:15;25711:11;25661:8;:62::i;:::-;25762:15;;:240;;-1:-1:-1;;;25762:240:0;;-1:-1:-1;;;;;25762:15:0;;;;:66;;:240;;25843:11;;25762:15;;25913:4;;25940;;25976:15;;25762:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26028:35;26045:11;26058:4;26028:35;;;;;;;:::i;:::-;;;;;;;;25405:666;;:::o;20944:126::-;21036:26;;-1:-1:-1;;;;;21036:18:0;;;:26;;;;;21055:6;;21036:26;;;;21055:6;21036:18;:26;;;;;;;;;;;;;;;;;;;;;20944:126;;:::o;26079:513::-;26259:15;;26227:62;;26244:4;;-1:-1:-1;;;;;26259:15:0;26277:11;26227:8;:62::i;:::-;26332:15;;-1:-1:-1;;;;;26332:15:0;:31;26371:9;26404:4;26424:11;26332:15;;26536:7;5644;5671:6;-1:-1:-1;;;;;5671:6:0;;5606:79;26536:7;26332:252;;;;;;-1:-1:-1;;;;;;26332:252:0;;;-1:-1:-1;;;;;4520:15:1;;;26332:252:0;;;4502:34:1;4552:18;;;4545:34;;;;4595:18;;;4588:34;;;;4638:18;;;4631:34;4702:15;;;4681:19;;;4674:44;26558:15:0;4734:19:1;;;4727:35;4436:19;;26332:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26079:513;;:::o;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1646:6;1654;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1728:6;1720;1713:22;1675:2;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1865:35:1;1896:2;1881:18;;1865:35;:::i;:::-;1855:45;;1665:241;;;;;:::o;1911:325::-;1979:6;1987;2040:2;2028:9;2019:7;2015:23;2011:32;2008:2;;;2061:6;2053;2046:22;2008:2;2105:9;2092:23;2124:31;2149:5;2124:31;:::i;:::-;2174:5;2226:2;2211:18;;;;2198:32;;-1:-1:-1;;;1998:238:1:o;2241:190::-;2297:6;2350:2;2338:9;2329:7;2325:23;2321:32;2318:2;;;2371:6;2363;2356:22;2318:2;2399:26;2415:9;2399:26;:::i;2436:190::-;2495:6;2548:2;2536:9;2527:7;2523:23;2519:32;2516:2;;;2569:6;2561;2554:22;2516:2;-1:-1:-1;2597:23:1;;2506:120;-1:-1:-1;2506:120:1:o;2631:316::-;2719:6;2727;2735;2788:2;2776:9;2767:7;2763:23;2759:32;2756:2;;;2809:6;2801;2794:22;2756:2;2843:9;2837:16;2827:26;;2893:2;2882:9;2878:18;2872:25;2862:35;;2937:2;2926:9;2922:18;2916:25;2906:35;;2746:201;;;;;:::o;2952:463::-;3005:3;3043:5;3037:12;3070:6;3065:3;3058:19;3096:4;3125:2;3120:3;3116:12;3109:19;;3162:2;3155:5;3151:14;3183:3;3195:195;3209:6;3206:1;3203:13;3195:195;;;3274:13;;-1:-1:-1;;;;;3270:39:1;3258:52;;3330:12;;;;3365:15;;;;3306:1;3224:9;3195:195;;;-1:-1:-1;3406:3:1;;3013:402;-1:-1:-1;;;;;3013:402:1:o;5200:603::-;5312:4;5341:2;5370;5359:9;5352:21;5402:6;5396:13;5445:6;5440:2;5429:9;5425:18;5418:34;5470:4;5483:140;5497:6;5494:1;5491:13;5483:140;;;5592:14;;;5588:23;;5582:30;5558:17;;;5577:2;5554:26;5547:66;5512:10;;5483:140;;;5641:6;5638:1;5635:13;5632:2;;;5711:4;5706:2;5697:6;5686:9;5682:22;5678:31;5671:45;5632:2;-1:-1:-1;5787:2:1;5766:15;-1:-1:-1;;5762:29:1;5747:45;;;;5794:2;5743:54;;5321:482;-1:-1:-1;;;5321:482:1:o;8189:356::-;8391:2;8373:21;;;8410:18;;;8403:30;8469:34;8464:2;8449:18;;8442:62;8536:2;8521:18;;8363:182::o;9543:332::-;9750:6;9739:9;9732:25;9793:2;9788;9777:9;9773:18;9766:30;9713:4;9813:56;9865:2;9854:9;9850:18;9842:6;9813:56;:::i;:::-;9805:64;9722:153;-1:-1:-1;;;;9722:153:1:o;9880:582::-;10179:6;10168:9;10161:25;10222:6;10217:2;10206:9;10202:18;10195:34;10265:3;10260:2;10249:9;10245:18;10238:31;10142:4;10286:57;10338:3;10327:9;10323:19;10315:6;10286:57;:::i;:::-;-1:-1:-1;;;;;10379:32:1;;;;10374:2;10359:18;;10352:60;-1:-1:-1;10443:3:1;10428:19;10421:35;10278:65;10151:311;-1:-1:-1;;;10151:311:1:o;10656:128::-;10696:3;10727:1;10723:6;10720:1;10717:13;10714:2;;;10733:18;;:::i;:::-;-1:-1:-1;10769:9:1;;10704:80::o;10789:217::-;10829:1;10855;10845:2;;-1:-1:-1;;;10880:31:1;;10934:4;10931:1;10924:15;10962:4;10887:1;10952:15;10845:2;-1:-1:-1;10991:9:1;;10835:171::o;11011:168::-;11051:7;11117:1;11113;11109:6;11105:14;11102:1;11099:21;11094:1;11087:9;11080:17;11076:45;11073:2;;;11124:18;;:::i;:::-;-1:-1:-1;11164:9:1;;11063:116::o;11184:125::-;11224:4;11252:1;11249;11246:8;11243:2;;;11257:18;;:::i;:::-;-1:-1:-1;11294:9:1;;11233:76::o;11314:380::-;11393:1;11389:12;;;;11436;;;11457:2;;11511:4;11503:6;11499:17;11489:27;;11457:2;11564;11556:6;11553:14;11533:18;11530:38;11527:2;;;11610:10;11605:3;11601:20;11598:1;11591:31;11645:4;11642:1;11635:15;11673:4;11670:1;11663:15;11527:2;;11369:325;;;:::o;11699:127::-;11760:10;11755:3;11751:20;11748:1;11741:31;11791:4;11788:1;11781:15;11815:4;11812:1;11805:15;11831:131;-1:-1:-1;;;;;11906:31:1;;11896:42;;11886:2;;11952:1;11949;11942:12;11886:2;11876:86;:::o
Swarm Source
ipfs://111a9540fc782593b6820839393e018bf3eee323f49511a85724af1ab6d869c4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.