Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000 VDT
Holders
10
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
14,569.009138147722429662 VDTValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Vendetta
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-10-25 */ /** https://vforvendetta.live/ https://twitter.com/VendettaERC https://t.me/vendetta_eth */ // 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) { 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; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0x000000000000000000000000000000000000dEaD)); _owner = address(0x000000000000000000000000000000000000dEaD); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 Vendetta is Context, IERC20, Ownable { using SafeMath for uint256; string private _name = "Vendetta"; string private _symbol = "VDT"; uint8 private _decimals = 18; address payable public marketingWallet = payable(0x74545645Dd4FFEa0645cD4bBC00A93538100A5A2); address payable public DeveloperWallet = payable(0x18C838AFEA49725F826C2f510FDA8490113Be917); //Community Sniper Wallet address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; address public immutable zeroAddress = 0x0000000000000000000000000000000000000000; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isMarketPair; mapping (address => bool) public blacklist; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; uint256 public _buyLiquidityFee = 0; uint256 public _buyMarketingFee = 3; uint256 public _buyDeveloperFee = 1; uint256 public _sellLiquidityFee = 0; uint256 public _sellMarketingFee = 3; uint256 public _sellDeveloperFee = 1; uint256 public _totalTaxIfBuying; uint256 public _totalTaxIfSelling; uint256 private _totalSupply = 1000000 * 10**_decimals; uint256 public minimumTokensBeforeSwap = _totalSupply.mul(1).div(100); uint256 public _maxTxAmount = _totalSupply.mul(2).div(100); uint256 public _walletMax = _totalSupply.mul(2).div(100); IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; bool public EnableTransactionLimit = 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)] = ~uint256(0); isExcludedFromFee[owner()] = true; isExcludedFromFee[marketingWallet] = true; isExcludedFromFee[DeveloperWallet] = true; isExcludedFromFee[address(this)] = true; isWalletLimitExempt[owner()] = true; isWalletLimitExempt[marketingWallet] = true; isWalletLimitExempt[DeveloperWallet] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[marketingWallet] = true; isTxLimitExempt[DeveloperWallet] = true; isTxLimitExempt[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); 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 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 setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function enableTxLimit(bool _status) external onlyOwner { EnableTransactionLimit = _status; } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWallet = payable(newAddress); } function setDeveloperWalletAddress(address newAddress) external onlyOwner() { DeveloperWallet = 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)).sub(balanceOf(zeroAddress)); } function setBlacklist(address _adr, bool _status) external onlyOwner { blacklist[_adr] = _status; } 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)) { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; uniswapV2Router = _uniswapV2Router; isMarketPair[address(uniswapPair)] = true; } function setBuyTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _buyLiquidityFee = _Liquidity; _buyMarketingFee = _Marketing; _buyDeveloperFee = _Developer; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyDeveloperFee); } function setSellTaxes(uint _Liquidity, uint _Marketing , uint _Developer) public onlyOwner { _sellLiquidityFee = _Liquidity; _sellMarketingFee = _Marketing; _sellDeveloperFee = _Developer; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellDeveloperFee); } //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"); require(!blacklist[sender] && !blacklist[recipient], "Bot Enemy address Restricted!"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient] && EnableTransactionLimit) { 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,"Amount Exceed From Max Wallet Limit!!"); } _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function rescueStuckedToken(address _token, uint _amount) external onlyOwner { IERC20(_token).transfer(msg.sender,_amount); } function rescueFunds() external onlyOwner { (bool os,) = payable(msg.sender).call{value: address(this).balance}(""); require(os); } 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 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling); uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee); uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee); // uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee); uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2); uint256 tokenForSwap = tAmount.sub(tokenForLp); uint256 initialBalance = address(this).balance; swapTokensForEth(tokenForSwap); uint256 recievedBalance = address(this).balance.sub(initialBalance); uint256 totalETHFee = totalShares.sub(liquidityShare.div(2)); uint256 amountETHLiquidity = recievedBalance.mul(liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = recievedBalance.mul(MarketingShare).div(totalETHFee); uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(amountETHMarketing); if(amountETHMarketing > 0) { payable(marketingWallet).transfer(amountETHMarketing); } if(amountETHDeveloper > 0) { payable(DeveloperWallet).transfer(amountETHDeveloper); } if(amountETHLiquidity > 0 && tokenForLp > 0) { addLiquidity(tokenForLp, 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); } /* AirDrop Function*/ function airdrop(address[] calldata _address,uint[] calldata _tokens) external onlyOwner { address account = msg.sender; require(_address.length == _tokens.length,"Error: Mismatch Length"); uint tokenCount; for(uint i = 0; i < _tokens.length; i++) { tokenCount += _tokens[i]; } require(balanceOf(account) >= tokenCount,"Error: Insufficient Error!!"); _balances[account] = _balances[account].sub(tokenCount); for(uint j = 0; j < _address.length; j++) { _balances[_address[j]] = _balances[_address[j]].add(_tokens[j]); emit Transfer(account, _address[j], _tokens[j]); } } }
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":"DeveloperWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","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":"_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":"_address","type":"address[]"},{"internalType":"uint256[]","name":"_tokens","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","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":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwap","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueStuckedToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adr","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setDeveloperWalletAddress","outputs":[],"stateMutability":"nonpayable","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":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_Liquidity","type":"uint256"},{"internalType":"uint256","name":"_Marketing","type":"uint256"},{"internalType":"uint256","name":"_Developer","type":"uint256"}],"name":"setSellTaxes","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":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","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":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
610100604052600860c09081526756656e646574746160c01b60e0526001906200002a9082620007f6565b5060408051808201909152600381526215911560ea1b6020820152600290620000549082620007f6565b50600380547474545645dd4ffea0645cd4bbc00a93538100a5a2126001600160a81b0319909116178155600480546001600160a01b0319167318c838afea49725f826c2f510fda8490113be91717905561dead6080525f60a0819052600c819055600d8290556001600e819055600f91909155601091909155601155620000de6012600a620009cb565b620000ed90620f4240620009db565b60148190556200010e9060649062000107906001620005de565b9062000671565b601555601454620001299060649062000107906002620005de565b601655601454620001449060649062000107906002620005de565b6017556019805463ffffffff60a81b1916630101000160a81b1790553480156200016c575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000202573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002289190620009f5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000274573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200029a9190620009f5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200030b9190620009f5565b601980546001600160a01b039283166001600160a01b031991821617909155601880549284169290911682179055305f9081526006602090815260408083209383529290529081205f1990556001906007906200036f5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905560035461010090048216815260079093528183208054851660019081179091556004549091168352818320805485168217905530835290822080549093168117909255600a90620003f45f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600354610100900482168152600a9093528183208054851660019081179091556004548216845282842080548616821790556019549091168352818320805485168217905530835290822080549093168117909255600b906200048b5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600354610100900482168152600b9093528183208054851660019081179091556004549091168352818320805485168217905530835291208054909216179055600e54600d54600c546200051a9291620005139190620006ba565b90620006ba565b601255601154601054600f54620005389291620005139190620006ba565b6013556019546001600160a01b03165f908152600860205260408120805460ff19166001179055601454906005906200056e3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601454604051620005cf91815260200190565b60405180910390a35062000aa0565b5f825f03620005ef57505f6200066b565b5f620005fc8385620009db565b9050826200060b858362000a1d565b14620006685760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f6200066883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200071c60201b60201c565b5f80620006c8838562000a3d565b905083811015620006685760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016200065f565b5f81836200073f5760405162461bcd60e51b81526004016200065f919062000a53565b505f6200074d848662000a1d565b95945050505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200077f57607f821691505b6020821081036200079e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620007f1575f81815260208120601f850160051c81016020861015620007cc5750805b601f850160051c820191505b81811015620007ed57828155600101620007d8565b5050505b505050565b81516001600160401b0381111562000812576200081262000756565b6200082a816200082384546200076a565b84620007a4565b602080601f83116001811462000860575f8415620008485750858301515b5f19600386901b1c1916600185901b178555620007ed565b5f85815260208120601f198616915b8281101562000890578886015182559484019460019091019084016200086f565b5085821015620008ae57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200091257815f1904821115620008f657620008f6620008be565b808516156200090457918102915b93841c9390800290620008d7565b509250929050565b5f826200092a575060016200066b565b816200093857505f6200066b565b81600181146200095157600281146200095c576200097c565b60019150506200066b565b60ff841115620009705762000970620008be565b50506001821b6200066b565b5060208310610133831016604e8410600b8410161715620009a1575081810a6200066b565b620009ad8383620008d2565b805f1904821115620009c357620009c3620008be565b029392505050565b5f6200066860ff8416836200091a565b80820281158282048414176200066b576200066b620008be565b5f6020828403121562000a06575f80fd5b81516001600160a01b038116811462000668575f80fd5b5f8262000a3857634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200066b576200066b620008be565b5f6020808352835180828501525f5b8181101562000a805785810183015185820160400152820162000a62565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a051612cc162000ad05f395f81816103fc0152610e0301525f81816105630152610e3d0152612cc15ff3fe608060405260043610610395575f3560e01c8063844d591c116101de578063da00097d11610108578063f1d5f5171161009d578063f872858a1161006d578063f872858a14610ac6578063f8f6329014610ae6578063f9f92be414610b05578063fb4b8e6c14610b33575f80fd5b8063f1d5f51714610a4a578063f2fde38b14610a69578063f455444614610a88578063f84ba65d14610aa7575f80fd5b8063ec28438a116100d8578063ec28438a146109d8578063ee828db3146109f7578063ef422a1814610a16578063f0cd1dac14610a35575f80fd5b8063da00097d1461094b578063dc44b6a01461096b578063dd62ed3e14610980578063e6b2603b146109c4575f80fd5b8063a5d69d1f1161017e578063c816841b1161014e578063c816841b146108d4578063c8607952146108f3578063c867d60b14610908578063d2d7ad8314610936575f80fd5b8063a5d69d1f14610862578063a9059cbb14610881578063c49b9a80146108a0578063c5d24189146108bf575f80fd5b80638b42507f116101b95780638b42507f146107e55780638da5cb5b1461081357806395d89b411461082f578063a457c2d714610843575f80fd5b8063844d591c1461079157806385261485146107b057806388790a68146107d0575f80fd5b806339509351116102bf5780635881f3ef1161025f57806375f0a8741161022f57806375f0a8741461072e5780637d1db4a514610752578063807c2d9c1461076757806382eefb431461077c575f80fd5b80635881f3ef146106a857806367243482146106c757806370a08231146106e6578063715018a61461071a575f80fd5b80634a74bb021161029a5780634a74bb02146106265780634cb80fd5146106465780635194f9bf146106655780635342acb41461067a575f80fd5b806339509351146105ba5780633b97084a146105d95780633ecad271146105f8575f80fd5b80631870517a116103355780632563ae83116103055780632563ae831461053357806327c8f835146105525780632b112e4914610585578063313ce56714610599575f80fd5b80631870517a146104c15780632198cf6c146104e057806323555d57146104ff57806323b872dd14610514575f80fd5b8063095ea7b311610370578063095ea7b314610436578063153b0d1e146104655780631694505e1461048457806318160ddd146104a3575f80fd5b806306fdde03146103a057806308733214146103ca5780630930907b146103eb575f80fd5b3661039c57005b5f80fd5b3480156103ab575f80fd5b506103b4610b52565b6040516103c191906127bb565b60405180910390f35b3480156103d5575f80fd5b506103e96103e4366004612806565b610be2565b005b3480156103f6575f80fd5b5061041e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103c1565b348015610441575f80fd5b50610455610450366004612843565b610c3f565b60405190151581526020016103c1565b348015610470575f80fd5b506103e961047f36600461287a565b610c55565b34801561048f575f80fd5b5060185461041e906001600160a01b031681565b3480156104ae575f80fd5b506014545b6040519081526020016103c1565b3480156104cc575f80fd5b506103e96104db366004612806565b610ca8565b3480156104eb575f80fd5b506103e96104fa36600461287a565b610cf6565b34801561050a575f80fd5b506104b3600e5481565b34801561051f575f80fd5b5061045561052e3660046128b1565b610d49565b34801561053e575f80fd5b506103e961054d3660046128ef565b610db2565b34801561055d575f80fd5b5061041e7f000000000000000000000000000000000000000000000000000000000000000081565b348015610590575f80fd5b506104b3610df9565b3480156105a4575f80fd5b5060035460405160ff90911681526020016103c1565b3480156105c5575f80fd5b506104556105d4366004612843565b610e8a565b3480156105e4575f80fd5b506103e96105f336600461290a565b610ebf565b348015610603575f80fd5b50610455610612366004612921565b60086020525f908152604090205460ff1681565b348015610631575f80fd5b5060195461045590600160a81b900460ff1681565b348015610651575f80fd5b506103e9610660366004612921565b610eed565b348015610670575f80fd5b506104b360115481565b348015610685575f80fd5b50610455610694366004612921565b60076020525f908152604090205460ff1681565b3480156106b3575f80fd5b5061041e6106c2366004612921565b610f3e565b3480156106d2575f80fd5b506103e96106e1366004612984565b611248565b3480156106f1575f80fd5b506104b3610700366004612921565b6001600160a01b03165f9081526005602052604090205490565b348015610725575f80fd5b506103e96114ec565b348015610739575f80fd5b5060035461041e9061010090046001600160a01b031681565b34801561075d575f80fd5b506104b360165481565b348015610772575f80fd5b506104b360175481565b348015610787575f80fd5b506104b360135481565b34801561079c575f80fd5b506103e96107ab36600461287a565b611563565b3480156107bb575f80fd5b5060195461045590600160c01b900460ff1681565b3480156107db575f80fd5b506104b3600f5481565b3480156107f0575f80fd5b506104556107ff366004612921565b600b6020525f908152604090205460ff1681565b34801561081e575f80fd5b505f546001600160a01b031661041e565b34801561083a575f80fd5b506103b46115b6565b34801561084e575f80fd5b5061045561085d366004612843565b6115c5565b34801561086d575f80fd5b506103e961087c3660046128ef565b611612565b34801561088c575f80fd5b5061045561089b366004612843565b611659565b3480156108ab575f80fd5b506103e96108ba3660046128ef565b611665565b3480156108ca575f80fd5b506104b3600d5481565b3480156108df575f80fd5b5060195461041e906001600160a01b031681565b3480156108fe575f80fd5b506104b360105481565b348015610913575f80fd5b50610455610922366004612921565b600a6020525f908152604090205460ff1681565b348015610941575f80fd5b506104b360155481565b348015610956575f80fd5b5060195461045590600160b01b900460ff1681565b348015610976575f80fd5b506104b3600c5481565b34801561098b575f80fd5b506104b361099a3660046129eb565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156109cf575f80fd5b506103e96116e6565b3480156109e3575f80fd5b506103e96109f236600461290a565b611763565b348015610a02575f80fd5b506103e9610a113660046128ef565b611791565b348015610a21575f80fd5b506103e9610a3036600461287a565b6117d8565b348015610a40575f80fd5b506104b360125481565b348015610a55575f80fd5b506103e9610a6436600461290a565b61182b565b348015610a74575f80fd5b506103e9610a83366004612921565b611859565b348015610a93575f80fd5b506103e9610aa2366004612843565b611940565b348015610ab2575f80fd5b506103e9610ac136600461287a565b6119dc565b348015610ad1575f80fd5b5060195461045590600160b81b900460ff1681565b348015610af1575f80fd5b5060045461041e906001600160a01b031681565b348015610b10575f80fd5b50610455610b1f366004612921565b60096020525f908152604090205460ff1681565b348015610b3e575f80fd5b506103e9610b4d366004612921565b611a2f565b606060018054610b6190612a17565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612a17565b8015610bd85780601f10610baf57610100808354040283529160200191610bd8565b820191905f5260205f20905b815481529060010190602001808311610bbb57829003601f168201915b5050505050905090565b5f546001600160a01b03163314610c145760405162461bcd60e51b8152600401610c0b90612a4f565b60405180910390fd5b600f83905560108290556011819055610c3781610c318585611a7a565b90611a7a565b601355505050565b5f610c4b338484611ad8565b5060015b92915050565b5f546001600160a01b03163314610c7e5760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cd15760405162461bcd60e51b8152600401610c0b90612a4f565b600c839055600d829055600e819055610cee81610c318585611a7a565b601255505050565b5f546001600160a01b03163314610d1f5760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f610d55848484611bfb565b50610da78433610da285604051806060016040528060288152602001612c1f602891396001600160a01b038a165f908152600660209081526040808320338452909152902054919061209d565b611ad8565b5060015b9392505050565b5f546001600160a01b03163314610ddb5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260056020526040812054610e8590610e7f610e767f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f9081526005602052604090205490565b601454906120d5565b906120d5565b905090565b335f8181526006602090815260408083206001600160a01b03871684529091528120549091610c4b918590610da29086611a7a565b5f546001600160a01b03163314610ee85760405162461bcd60e51b8152600401610c0b90612a4f565b601555565b5f546001600160a01b03163314610f165760405162461bcd60e51b8152600401610c0b90612a4f565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f80546001600160a01b03163314610f685760405162461bcd60e51b8152600401610c0b90612a4f565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcc9190612a84565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103b9190612a84565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611084573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a89190612a84565b91506001600160a01b0382166111f857806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111189190612a84565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111879190612a84565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156111d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f59190612a84565b91505b601980546001600160a01b038085166001600160a01b03199283168117909355601880549490911693909116929092179091555f908152600860205260409020805460ff19166001179055919050565b5f546001600160a01b031633146112715760405162461bcd60e51b8152600401610c0b90612a4f565b338382146112ba5760405162461bcd60e51b815260206004820152601660248201527508ae4e4dee474409ad2e6dac2e8c6d04098cadccee8d60531b6044820152606401610c0b565b5f805b838110156112fd578484828181106112d7576112d7612a9f565b90506020020135826112e99190612ac7565b9150806112f581612ada565b9150506112bd565b508061131d836001600160a01b03165f9081526005602052604090205490565b101561136b5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e74204572726f72212100000000006044820152606401610c0b565b6001600160a01b0382165f9081526005602052604090205461138d90826120d5565b6001600160a01b0383165f908152600560205260408120919091555b858110156114e3576114168585838181106113c6576113c6612a9f565b9050602002013560055f8a8a868181106113e2576113e2612a9f565b90506020020160208101906113f79190612921565b6001600160a01b0316815260208101919091526040015f205490611a7a565b60055f89898581811061142b5761142b612a9f565b90506020020160208101906114409190612921565b6001600160a01b0316815260208101919091526040015f205586868281811061146b5761146b612a9f565b90506020020160208101906114809190612921565b6001600160a01b0316836001600160a01b03165f80516020612c478339815191528787858181106114b3576114b3612a9f565b905060200201356040516114c991815260200190565b60405180910390a3806114db81612ada565b9150506113a9565b50505050505050565b5f546001600160a01b031633146115155760405162461bcd60e51b8152600401610c0b90612a4f565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b5f546001600160a01b0316331461158c5760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b606060028054610b6190612a17565b5f610c4b3384610da285604051806060016040528060258152602001612c6760259139335f9081526006602090815260408083206001600160a01b038d168452909152902054919061209d565b5f546001600160a01b0316331461163b5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054911515600160b01b0260ff60b01b19909216919091179055565b5f610da7338484611bfb565b5f546001600160a01b0316331461168e5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906116db90831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461170f5760405162461bcd60e51b8152600401610c0b90612a4f565b6040515f90339047908381818185875af1925050503d805f811461174e576040519150601f19603f3d011682016040523d82523d5f602084013e611753565b606091505b5050905080611760575f80fd5b50565b5f546001600160a01b0316331461178c5760405162461bcd60e51b8152600401610c0b90612a4f565b601655565b5f546001600160a01b031633146117ba5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054911515600160c01b0260ff60c01b19909216919091179055565b5f546001600160a01b031633146118015760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146118545760405162461bcd60e51b8152600401610c0b90612a4f565b601755565b5f546001600160a01b031633146118825760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b0381166118e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146119695760405162461bcd60e51b8152600401610c0b90612a4f565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303815f875af11580156119b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d79190612af2565b505050565b5f546001600160a01b03163314611a055760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314611a585760405162461bcd60e51b8152600401610c0b90612a4f565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f80611a868385612ac7565b905083811015610dab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c0b565b6001600160a01b038316611b3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0b565b6001600160a01b038216611b9b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0b565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416611c605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c0b565b6001600160a01b038316611cc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c0b565b6001600160a01b0384165f9081526009602052604090205460ff16158015611d0257506001600160a01b0383165f9081526009602052604090205460ff16155b611d4e5760405162461bcd60e51b815260206004820152601d60248201527f426f7420456e656d7920616464726573732052657374726963746564210000006044820152606401610c0b565b601954600160a01b900460ff1615611d7257611d6b848484612116565b9050610dab565b6001600160a01b0384165f908152600b602052604090205460ff16158015611db257506001600160a01b0383165f908152600b602052604090205460ff16155b8015611dc75750601954600160c01b900460ff165b15611e2f57601654821115611e2f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c0b565b305f9081526005602052604090205460155481108015908190611e5c5750601954600160a01b900460ff16155b8015611e8057506001600160a01b0386165f9081526008602052604090205460ff16155b8015611e955750601954600160a81b900460ff165b15611ebb57601954600160b01b900460ff1615611eb25760155491505b611ebb826121e6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260059091529190912054611f0c91869061209d565b6001600160a01b0387165f90815260056020908152604080832093909355600790529081205460ff1680611f5757506001600160a01b0386165f9081526007602052604090205460ff165b611f6b57611f66878787612387565b611f6d565b845b601954909150600160b81b900460ff168015611fa157506001600160a01b0386165f908152600a602052604090205460ff16155b1561202757601754611fcb82610c31896001600160a01b03165f9081526005602052604090205490565b11156120275760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610c0b565b6001600160a01b0386165f908152600560205260409020546120499082611a7a565b6001600160a01b038088165f8181526005602052604090819020939093559151908916905f80516020612c47833981519152906120899085815260200190565b60405180910390a360019350505050610dab565b5f81848411156120c05760405162461bcd60e51b8152600401610c0b91906127bb565b505f6120cc8486612b0d565b95945050505050565b5f610dab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260059091529182205461216691849061209d565b6001600160a01b038086165f9081526005602052604080822093909355908516815220546121949083611a7a565b6001600160a01b038085165f8181526005602052604090819020939093559151908616905f80516020612c47833981519152906121d49086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012545f9161220b9190611a7a565b90505f612225600f54600c54611a7a90919063ffffffff16565b90505f61223f601054600d54611a7a90919063ffffffff16565b90505f612259600261225386818988612476565b906124f4565b90505f61226686836120d5565b90504761227282612535565b5f61227d47836120d5565b90505f61229561228e8860026124f4565b89906120d5565b90505f6122a960026122538481878d612476565b90505f6122ba83612253868b612476565b90505f6122cb82610e7f87866120d5565b90508115612310576003546040516101009091046001600160a01b0316906108fc8415029084905f818181858888f1935050505015801561230e573d5f803e3d5ffd5b505b801561234f576004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561234d573d5f803e3d5ffd5b505b5f8311801561235d57505f88115b1561236c5761236c88846126be565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b0383165f90815260086020526040812054819060ff16156123ca576123c360646122536012548661247690919063ffffffff16565b9050612407565b6001600160a01b0384165f9081526008602052604090205460ff16156124075761240460646122536013548661247690919063ffffffff16565b90505b801561246c57305f908152600560205260409020546124269082611a7a565b305f81815260056020526040908190209290925590516001600160a01b038716905f80516020612c47833981519152906124639085815260200190565b60405180910390a35b6120cc83826120d5565b5f825f0361248557505f610c4f565b5f6124908385612b20565b90508261249d8583612b37565b14610dab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c0b565b5f610dab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061278f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061256857612568612a9f565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156125bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e39190612a84565b816001815181106125f6576125f6612a9f565b6001600160a01b03928316602091820292909201015260185461261c9130911684611ad8565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906126549085905f90869030904290600401612b98565b5f604051808303815f87803b15801561266b575f80fd5b505af115801561267d573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516126b2929190612bd3565b60405180910390a15050565b6018546126d69030906001600160a01b031684611ad8565b6018546001600160a01b031663f305d7198230855f806126fd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612763573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127889190612bf3565b5050505050565b5f81836127af5760405162461bcd60e51b8152600401610c0b91906127bb565b505f6120cc8486612b37565b5f6020808352835180828501525f5b818110156127e6578581018301518582016040015282016127ca565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215612818575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611760575f80fd5b5f8060408385031215612854575f80fd5b823561285f8161282f565b946020939093013593505050565b8015158114611760575f80fd5b5f806040838503121561288b575f80fd5b82356128968161282f565b915060208301356128a68161286d565b809150509250929050565b5f805f606084860312156128c3575f80fd5b83356128ce8161282f565b925060208401356128de8161282f565b929592945050506040919091013590565b5f602082840312156128ff575f80fd5b8135610dab8161286d565b5f6020828403121561291a575f80fd5b5035919050565b5f60208284031215612931575f80fd5b8135610dab8161282f565b5f8083601f84011261294c575f80fd5b50813567ffffffffffffffff811115612963575f80fd5b6020830191508360208260051b850101111561297d575f80fd5b9250929050565b5f805f8060408587031215612997575f80fd5b843567ffffffffffffffff808211156129ae575f80fd5b6129ba8883890161293c565b909650945060208701359150808211156129d2575f80fd5b506129df8782880161293c565b95989497509550505050565b5f80604083850312156129fc575f80fd5b8235612a078161282f565b915060208301356128a68161282f565b600181811c90821680612a2b57607f821691505b602082108103612a4957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612a94575f80fd5b8151610dab8161282f565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c4f57610c4f612ab3565b5f60018201612aeb57612aeb612ab3565b5060010190565b5f60208284031215612b02575f80fd5b8151610dab8161286d565b81810381811115610c4f57610c4f612ab3565b8082028115828204841417610c4f57610c4f612ab3565b5f82612b5157634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b83811015612b8d5781516001600160a01b031687529582019590820190600101612b68565b509495945050505050565b85815284602082015260a060408201525f612bb660a0830186612b56565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f612beb6040830184612b56565b949350505050565b5f805f60608486031215612c05575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205f4ee0f12213943e5f6479ea6d4a54f6f77ed2da7c6373d81731e68ff361f24464736f6c63430008150033
Deployed Bytecode
0x608060405260043610610395575f3560e01c8063844d591c116101de578063da00097d11610108578063f1d5f5171161009d578063f872858a1161006d578063f872858a14610ac6578063f8f6329014610ae6578063f9f92be414610b05578063fb4b8e6c14610b33575f80fd5b8063f1d5f51714610a4a578063f2fde38b14610a69578063f455444614610a88578063f84ba65d14610aa7575f80fd5b8063ec28438a116100d8578063ec28438a146109d8578063ee828db3146109f7578063ef422a1814610a16578063f0cd1dac14610a35575f80fd5b8063da00097d1461094b578063dc44b6a01461096b578063dd62ed3e14610980578063e6b2603b146109c4575f80fd5b8063a5d69d1f1161017e578063c816841b1161014e578063c816841b146108d4578063c8607952146108f3578063c867d60b14610908578063d2d7ad8314610936575f80fd5b8063a5d69d1f14610862578063a9059cbb14610881578063c49b9a80146108a0578063c5d24189146108bf575f80fd5b80638b42507f116101b95780638b42507f146107e55780638da5cb5b1461081357806395d89b411461082f578063a457c2d714610843575f80fd5b8063844d591c1461079157806385261485146107b057806388790a68146107d0575f80fd5b806339509351116102bf5780635881f3ef1161025f57806375f0a8741161022f57806375f0a8741461072e5780637d1db4a514610752578063807c2d9c1461076757806382eefb431461077c575f80fd5b80635881f3ef146106a857806367243482146106c757806370a08231146106e6578063715018a61461071a575f80fd5b80634a74bb021161029a5780634a74bb02146106265780634cb80fd5146106465780635194f9bf146106655780635342acb41461067a575f80fd5b806339509351146105ba5780633b97084a146105d95780633ecad271146105f8575f80fd5b80631870517a116103355780632563ae83116103055780632563ae831461053357806327c8f835146105525780632b112e4914610585578063313ce56714610599575f80fd5b80631870517a146104c15780632198cf6c146104e057806323555d57146104ff57806323b872dd14610514575f80fd5b8063095ea7b311610370578063095ea7b314610436578063153b0d1e146104655780631694505e1461048457806318160ddd146104a3575f80fd5b806306fdde03146103a057806308733214146103ca5780630930907b146103eb575f80fd5b3661039c57005b5f80fd5b3480156103ab575f80fd5b506103b4610b52565b6040516103c191906127bb565b60405180910390f35b3480156103d5575f80fd5b506103e96103e4366004612806565b610be2565b005b3480156103f6575f80fd5b5061041e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016103c1565b348015610441575f80fd5b50610455610450366004612843565b610c3f565b60405190151581526020016103c1565b348015610470575f80fd5b506103e961047f36600461287a565b610c55565b34801561048f575f80fd5b5060185461041e906001600160a01b031681565b3480156104ae575f80fd5b506014545b6040519081526020016103c1565b3480156104cc575f80fd5b506103e96104db366004612806565b610ca8565b3480156104eb575f80fd5b506103e96104fa36600461287a565b610cf6565b34801561050a575f80fd5b506104b3600e5481565b34801561051f575f80fd5b5061045561052e3660046128b1565b610d49565b34801561053e575f80fd5b506103e961054d3660046128ef565b610db2565b34801561055d575f80fd5b5061041e7f000000000000000000000000000000000000000000000000000000000000dead81565b348015610590575f80fd5b506104b3610df9565b3480156105a4575f80fd5b5060035460405160ff90911681526020016103c1565b3480156105c5575f80fd5b506104556105d4366004612843565b610e8a565b3480156105e4575f80fd5b506103e96105f336600461290a565b610ebf565b348015610603575f80fd5b50610455610612366004612921565b60086020525f908152604090205460ff1681565b348015610631575f80fd5b5060195461045590600160a81b900460ff1681565b348015610651575f80fd5b506103e9610660366004612921565b610eed565b348015610670575f80fd5b506104b360115481565b348015610685575f80fd5b50610455610694366004612921565b60076020525f908152604090205460ff1681565b3480156106b3575f80fd5b5061041e6106c2366004612921565b610f3e565b3480156106d2575f80fd5b506103e96106e1366004612984565b611248565b3480156106f1575f80fd5b506104b3610700366004612921565b6001600160a01b03165f9081526005602052604090205490565b348015610725575f80fd5b506103e96114ec565b348015610739575f80fd5b5060035461041e9061010090046001600160a01b031681565b34801561075d575f80fd5b506104b360165481565b348015610772575f80fd5b506104b360175481565b348015610787575f80fd5b506104b360135481565b34801561079c575f80fd5b506103e96107ab36600461287a565b611563565b3480156107bb575f80fd5b5060195461045590600160c01b900460ff1681565b3480156107db575f80fd5b506104b3600f5481565b3480156107f0575f80fd5b506104556107ff366004612921565b600b6020525f908152604090205460ff1681565b34801561081e575f80fd5b505f546001600160a01b031661041e565b34801561083a575f80fd5b506103b46115b6565b34801561084e575f80fd5b5061045561085d366004612843565b6115c5565b34801561086d575f80fd5b506103e961087c3660046128ef565b611612565b34801561088c575f80fd5b5061045561089b366004612843565b611659565b3480156108ab575f80fd5b506103e96108ba3660046128ef565b611665565b3480156108ca575f80fd5b506104b3600d5481565b3480156108df575f80fd5b5060195461041e906001600160a01b031681565b3480156108fe575f80fd5b506104b360105481565b348015610913575f80fd5b50610455610922366004612921565b600a6020525f908152604090205460ff1681565b348015610941575f80fd5b506104b360155481565b348015610956575f80fd5b5060195461045590600160b01b900460ff1681565b348015610976575f80fd5b506104b3600c5481565b34801561098b575f80fd5b506104b361099a3660046129eb565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b3480156109cf575f80fd5b506103e96116e6565b3480156109e3575f80fd5b506103e96109f236600461290a565b611763565b348015610a02575f80fd5b506103e9610a113660046128ef565b611791565b348015610a21575f80fd5b506103e9610a3036600461287a565b6117d8565b348015610a40575f80fd5b506104b360125481565b348015610a55575f80fd5b506103e9610a6436600461290a565b61182b565b348015610a74575f80fd5b506103e9610a83366004612921565b611859565b348015610a93575f80fd5b506103e9610aa2366004612843565b611940565b348015610ab2575f80fd5b506103e9610ac136600461287a565b6119dc565b348015610ad1575f80fd5b5060195461045590600160b81b900460ff1681565b348015610af1575f80fd5b5060045461041e906001600160a01b031681565b348015610b10575f80fd5b50610455610b1f366004612921565b60096020525f908152604090205460ff1681565b348015610b3e575f80fd5b506103e9610b4d366004612921565b611a2f565b606060018054610b6190612a17565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612a17565b8015610bd85780601f10610baf57610100808354040283529160200191610bd8565b820191905f5260205f20905b815481529060010190602001808311610bbb57829003601f168201915b5050505050905090565b5f546001600160a01b03163314610c145760405162461bcd60e51b8152600401610c0b90612a4f565b60405180910390fd5b600f83905560108290556011819055610c3781610c318585611a7a565b90611a7a565b601355505050565b5f610c4b338484611ad8565b5060015b92915050565b5f546001600160a01b03163314610c7e5760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610cd15760405162461bcd60e51b8152600401610c0b90612a4f565b600c839055600d829055600e819055610cee81610c318585611a7a565b601255505050565b5f546001600160a01b03163314610d1f5760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b5f610d55848484611bfb565b50610da78433610da285604051806060016040528060288152602001612c1f602891396001600160a01b038a165f908152600660209081526040808320338452909152902054919061209d565b611ad8565b5060015b9392505050565b5f546001600160a01b03163314610ddb5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054911515600160b81b0260ff60b81b19909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260056020526040812054610e8590610e7f610e767f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b03165f9081526005602052604090205490565b601454906120d5565b906120d5565b905090565b335f8181526006602090815260408083206001600160a01b03871684529091528120549091610c4b918590610da29086611a7a565b5f546001600160a01b03163314610ee85760405162461bcd60e51b8152600401610c0b90612a4f565b601555565b5f546001600160a01b03163314610f165760405162461bcd60e51b8152600401610c0b90612a4f565b600380546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f80546001600160a01b03163314610f685760405162461bcd60e51b8152600401610c0b90612a4f565b5f829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcc9190612a84565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611017573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103b9190612a84565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611084573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a89190612a84565b91506001600160a01b0382166111f857806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111189190612a84565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111879190612a84565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156111d1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f59190612a84565b91505b601980546001600160a01b038085166001600160a01b03199283168117909355601880549490911693909116929092179091555f908152600860205260409020805460ff19166001179055919050565b5f546001600160a01b031633146112715760405162461bcd60e51b8152600401610c0b90612a4f565b338382146112ba5760405162461bcd60e51b815260206004820152601660248201527508ae4e4dee474409ad2e6dac2e8c6d04098cadccee8d60531b6044820152606401610c0b565b5f805b838110156112fd578484828181106112d7576112d7612a9f565b90506020020135826112e99190612ac7565b9150806112f581612ada565b9150506112bd565b508061131d836001600160a01b03165f9081526005602052604090205490565b101561136b5760405162461bcd60e51b815260206004820152601b60248201527f4572726f723a20496e73756666696369656e74204572726f72212100000000006044820152606401610c0b565b6001600160a01b0382165f9081526005602052604090205461138d90826120d5565b6001600160a01b0383165f908152600560205260408120919091555b858110156114e3576114168585838181106113c6576113c6612a9f565b9050602002013560055f8a8a868181106113e2576113e2612a9f565b90506020020160208101906113f79190612921565b6001600160a01b0316815260208101919091526040015f205490611a7a565b60055f89898581811061142b5761142b612a9f565b90506020020160208101906114409190612921565b6001600160a01b0316815260208101919091526040015f205586868281811061146b5761146b612a9f565b90506020020160208101906114809190612921565b6001600160a01b0316836001600160a01b03165f80516020612c478339815191528787858181106114b3576114b3612a9f565b905060200201356040516114c991815260200190565b60405180910390a3806114db81612ada565b9150506113a9565b50505050505050565b5f546001600160a01b031633146115155760405162461bcd60e51b8152600401610c0b90612a4f565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b5f546001600160a01b0316331461158c5760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600860205260409020805460ff1916911515919091179055565b606060028054610b6190612a17565b5f610c4b3384610da285604051806060016040528060258152602001612c6760259139335f9081526006602090815260408083206001600160a01b038d168452909152902054919061209d565b5f546001600160a01b0316331461163b5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054911515600160b01b0260ff60b01b19909216919091179055565b5f610da7338484611bfb565b5f546001600160a01b0316331461168e5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906116db90831515815260200190565b60405180910390a150565b5f546001600160a01b0316331461170f5760405162461bcd60e51b8152600401610c0b90612a4f565b6040515f90339047908381818185875af1925050503d805f811461174e576040519150601f19603f3d011682016040523d82523d5f602084013e611753565b606091505b5050905080611760575f80fd5b50565b5f546001600160a01b0316331461178c5760405162461bcd60e51b8152600401610c0b90612a4f565b601655565b5f546001600160a01b031633146117ba5760405162461bcd60e51b8152600401610c0b90612a4f565b60198054911515600160c01b0260ff60c01b19909216919091179055565b5f546001600160a01b031633146118015760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146118545760405162461bcd60e51b8152600401610c0b90612a4f565b601755565b5f546001600160a01b031633146118825760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b0381166118e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c0b565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146119695760405162461bcd60e51b8152600401610c0b90612a4f565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303815f875af11580156119b3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d79190612af2565b505050565b5f546001600160a01b03163314611a055760405162461bcd60e51b8152600401610c0b90612a4f565b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314611a585760405162461bcd60e51b8152600401610c0b90612a4f565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f80611a868385612ac7565b905083811015610dab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c0b565b6001600160a01b038316611b3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c0b565b6001600160a01b038216611b9b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c0b565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6001600160a01b038416611c605760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c0b565b6001600160a01b038316611cc25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c0b565b6001600160a01b0384165f9081526009602052604090205460ff16158015611d0257506001600160a01b0383165f9081526009602052604090205460ff16155b611d4e5760405162461bcd60e51b815260206004820152601d60248201527f426f7420456e656d7920616464726573732052657374726963746564210000006044820152606401610c0b565b601954600160a01b900460ff1615611d7257611d6b848484612116565b9050610dab565b6001600160a01b0384165f908152600b602052604090205460ff16158015611db257506001600160a01b0383165f908152600b602052604090205460ff16155b8015611dc75750601954600160c01b900460ff165b15611e2f57601654821115611e2f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c0b565b305f9081526005602052604090205460155481108015908190611e5c5750601954600160a01b900460ff16155b8015611e8057506001600160a01b0386165f9081526008602052604090205460ff16155b8015611e955750601954600160a81b900460ff165b15611ebb57601954600160b01b900460ff1615611eb25760155491505b611ebb826121e6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389165f90815260059091529190912054611f0c91869061209d565b6001600160a01b0387165f90815260056020908152604080832093909355600790529081205460ff1680611f5757506001600160a01b0386165f9081526007602052604090205460ff165b611f6b57611f66878787612387565b611f6d565b845b601954909150600160b81b900460ff168015611fa157506001600160a01b0386165f908152600a602052604090205460ff16155b1561202757601754611fcb82610c31896001600160a01b03165f9081526005602052604090205490565b11156120275760405162461bcd60e51b815260206004820152602560248201527f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c696044820152646d6974212160d81b6064820152608401610c0b565b6001600160a01b0386165f908152600560205260409020546120499082611a7a565b6001600160a01b038088165f8181526005602052604090819020939093559151908916905f80516020612c47833981519152906120899085815260200190565b60405180910390a360019350505050610dab565b5f81848411156120c05760405162461bcd60e51b8152600401610c0b91906127bb565b505f6120cc8486612b0d565b95945050505050565b5f610dab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061209d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f90815260059091529182205461216691849061209d565b6001600160a01b038086165f9081526005602052604080822093909355908516815220546121949083611a7a565b6001600160a01b038085165f8181526005602052604090819020939093559151908616905f80516020612c47833981519152906121d49086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b1790556013546012545f9161220b9190611a7a565b90505f612225600f54600c54611a7a90919063ffffffff16565b90505f61223f601054600d54611a7a90919063ffffffff16565b90505f612259600261225386818988612476565b906124f4565b90505f61226686836120d5565b90504761227282612535565b5f61227d47836120d5565b90505f61229561228e8860026124f4565b89906120d5565b90505f6122a960026122538481878d612476565b90505f6122ba83612253868b612476565b90505f6122cb82610e7f87866120d5565b90508115612310576003546040516101009091046001600160a01b0316906108fc8415029084905f818181858888f1935050505015801561230e573d5f803e3d5ffd5b505b801561234f576004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561234d573d5f803e3d5ffd5b505b5f8311801561235d57505f88115b1561236c5761236c88846126be565b50506019805460ff60a01b1916905550505050505050505050565b6001600160a01b0383165f90815260086020526040812054819060ff16156123ca576123c360646122536012548661247690919063ffffffff16565b9050612407565b6001600160a01b0384165f9081526008602052604090205460ff16156124075761240460646122536013548661247690919063ffffffff16565b90505b801561246c57305f908152600560205260409020546124269082611a7a565b305f81815260056020526040908190209290925590516001600160a01b038716905f80516020612c47833981519152906124639085815260200190565b60405180910390a35b6120cc83826120d5565b5f825f0361248557505f610c4f565b5f6124908385612b20565b90508261249d8583612b37565b14610dab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c0b565b5f610dab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061278f565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061256857612568612a9f565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156125bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125e39190612a84565b816001815181106125f6576125f6612a9f565b6001600160a01b03928316602091820292909201015260185461261c9130911684611ad8565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac947906126549085905f90869030904290600401612b98565b5f604051808303815f87803b15801561266b575f80fd5b505af115801561267d573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516126b2929190612bd3565b60405180910390a15050565b6018546126d69030906001600160a01b031684611ad8565b6018546001600160a01b031663f305d7198230855f806126fd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612763573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127889190612bf3565b5050505050565b5f81836127af5760405162461bcd60e51b8152600401610c0b91906127bb565b505f6120cc8486612b37565b5f6020808352835180828501525f5b818110156127e6578581018301518582016040015282016127ca565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f60608486031215612818575f80fd5b505081359360208301359350604090920135919050565b6001600160a01b0381168114611760575f80fd5b5f8060408385031215612854575f80fd5b823561285f8161282f565b946020939093013593505050565b8015158114611760575f80fd5b5f806040838503121561288b575f80fd5b82356128968161282f565b915060208301356128a68161286d565b809150509250929050565b5f805f606084860312156128c3575f80fd5b83356128ce8161282f565b925060208401356128de8161282f565b929592945050506040919091013590565b5f602082840312156128ff575f80fd5b8135610dab8161286d565b5f6020828403121561291a575f80fd5b5035919050565b5f60208284031215612931575f80fd5b8135610dab8161282f565b5f8083601f84011261294c575f80fd5b50813567ffffffffffffffff811115612963575f80fd5b6020830191508360208260051b850101111561297d575f80fd5b9250929050565b5f805f8060408587031215612997575f80fd5b843567ffffffffffffffff808211156129ae575f80fd5b6129ba8883890161293c565b909650945060208701359150808211156129d2575f80fd5b506129df8782880161293c565b95989497509550505050565b5f80604083850312156129fc575f80fd5b8235612a078161282f565b915060208301356128a68161282f565b600181811c90821680612a2b57607f821691505b602082108103612a4957634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215612a94575f80fd5b8151610dab8161282f565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c4f57610c4f612ab3565b5f60018201612aeb57612aeb612ab3565b5060010190565b5f60208284031215612b02575f80fd5b8151610dab8161286d565b81810381811115610c4f57610c4f612ab3565b8082028115828204841417610c4f57610c4f612ab3565b5f82612b5157634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602080850194508084015f5b83811015612b8d5781516001600160a01b031687529582019590820190600101612b68565b509495945050505050565b85815284602082015260a060408201525f612bb660a0830186612b56565b6001600160a01b0394909416606083015250608001529392505050565b828152604060208201525f612beb6040830184612b56565b949350505050565b5f805f60608486031215612c05575f80fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205f4ee0f12213943e5f6479ea6d4a54f6f77ed2da7c6373d81731e68ff361f24464736f6c63430008150033
Deployed Bytecode Sourcemap
11536:16260:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15456:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20317:317;;;;;;;;;;-1:-1:-1;20317:317:0;;;;;:::i;:::-;;:::i;:::-;;12067:81;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1052:32:1;;;1034:51;;1022:2;1007:18;12067:81:0;888:203:1;16622:161:0;;;;;;;;;;-1:-1:-1;16622:161:0;;;;;:::i;:::-;;:::i;:::-;;;1717:14:1;;1710:22;1692:41;;1680:2;1665:18;16622:161:0;1552:187:1;19055:113:0;;;;;;;;;;-1:-1:-1;19055:113:0;;;;;:::i;:::-;;:::i;13178:41::-;;;;;;;;;;-1:-1:-1;13178:41:0;;;;-1:-1:-1;;;;;13178:41:0;;;15733:100;;;;;;;;;;-1:-1:-1;15813:12:0;;15733:100;;;2635:25:1;;;2623:2;2608:18;15733:100:0;2489:177:1;20000:309:0;;;;;;;;;;-1:-1:-1;20000:309:0;;;;;:::i;:::-;;:::i;17555:135::-;;;;;;;;;;-1:-1:-1;17555:135:0;;;;;:::i;:::-;;:::i;12642:35::-;;;;;;;;;;;;;;;;20911:313;;;;;;;;;;-1:-1:-1;20911:313:0;;;;;:::i;:::-;;:::i;17932:113::-;;;;;;;;;;-1:-1:-1;17932:113:0;;;;;:::i;:::-;;:::i;11979:81::-;;;;;;;;;;;;;;;18891:156;;;;;;;;;;;;;:::i;15642:83::-;;;;;;;;;;-1:-1:-1;15708:9:0;;15642:83;;15708:9;;;;3520:36:1;;3508:2;3493:18;15642:83:0;3378:184:1;16119:218:0;;;;;;;;;;-1:-1:-1;16119:218:0;;;;;:::i;:::-;;:::i;18163:124::-;;;;;;;;;;-1:-1:-1;18163:124:0;;;;;:::i;:::-;;:::i;12341:45::-;;;;;;;;;;-1:-1:-1;12341:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13293:40;;;;;;;;;;-1:-1:-1;13293:40:0;;;;-1:-1:-1;;;13293:40:0;;;;;;18295:132;;;;;;;;;;-1:-1:-1;18295:132:0;;;;;:::i;:::-;;:::i;12776:36::-;;;;;;;;;;;;;;;;12284:50;;;;;;;;;;-1:-1:-1;12284:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;19314:678;;;;;;;;;;-1:-1:-1;19314:678:0;;;;;:::i;:::-;;:::i;27088:697::-;;;;;;;;;;-1:-1:-1;27088:697:0;;;;;:::i;:::-;;:::i;15841:119::-;;;;;;;;;;-1:-1:-1;15841:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;15934:18:0;15907:7;15934:18;;;:9;:18;;;;;;;15841:119;3213:230;;;;;;;;;;;;;:::i;11748:92::-;;;;;;;;;;-1:-1:-1;11748:92:0;;;;;;;-1:-1:-1;;;;;11748:92:0;;;13043:59;;;;;;;;;;;;;;;;13109:58;;;;;;;;;;;;;;;;12860:33;;;;;;;;;;;;;;;;17136:129;;;;;;;;;;-1:-1:-1;17136:129:0;;;;;:::i;:::-;;:::i;13436:41::-;;;;;;;;;;-1:-1:-1;13436:41:0;;;;-1:-1:-1;;;13436:41:0;;;;;;12690:36;;;;;;;;;;;;;;;;12501:48;;;;;;;;;;-1:-1:-1;12501:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2988:79;;;;;;;;;;-1:-1:-1;3026:7:0;3053:6;-1:-1:-1;;;;;3053:6:0;2988:79;;15547:87;;;;;;;;;;;;;:::i;16345:269::-;;;;;;;;;;-1:-1:-1;16345:269:0;;;;;:::i;:::-;;:::i;18754:125::-;;;;;;;;;;-1:-1:-1;18754:125:0;;;;;:::i;:::-;;:::i;20736:167::-;;;;;;;;;;-1:-1:-1;20736:167:0;;;;;:::i;:::-;;:::i;18575:171::-;;;;;;;;;;-1:-1:-1;18575:171:0;;;;;:::i;:::-;;:::i;12600:35::-;;;;;;;;;;;;;;;;13226:26;;;;;;;;;;-1:-1:-1;13226:26:0;;;;-1:-1:-1;;;;;13226:26:0;;;12733:36;;;;;;;;;;;;;;;;12442:52;;;;;;;;;;-1:-1:-1;12442:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12965:69;;;;;;;;;;;;;;;;13340:45;;;;;;;;;;-1:-1:-1;13340:45:0;;;;-1:-1:-1;;;13340:45:0;;;;;;12558:35;;;;;;;;;;;;;;;;15968:143;;;;;;;;;;-1:-1:-1;15968:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;16076:18:0;;;16049:7;16076:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;15968:143;23273:154;;;;;;;;;;;;;:::i;17813:111::-;;;;;;;;;;-1:-1:-1;17813:111:0;;;;;:::i;:::-;;:::i;17698:107::-;;;;;;;;;;-1:-1:-1;17698:107:0;;;;;:::i;:::-;;:::i;17273:135::-;;;;;;;;;;-1:-1:-1;17273:135:0;;;;;:::i;:::-;;:::i;12821:32::-;;;;;;;;;;;;;;;;18053:102;;;;;;;;;;-1:-1:-1;18053:102:0;;;;;:::i;:::-;;:::i;3451:244::-;;;;;;;;;;-1:-1:-1;3451:244:0;;;;;:::i;:::-;;:::i;23126:139::-;;;;;;;;;;-1:-1:-1;23126:139:0;;;;;:::i;:::-;;:::i;17416:127::-;;;;;;;;;;-1:-1:-1;17416:127:0;;;;;:::i;:::-;;:::i;13394:35::-;;;;;;;;;;-1:-1:-1;13394:35:0;;;;-1:-1:-1;;;13394:35:0;;;;;;11848:92;;;;;;;;;;-1:-1:-1;11848:92:0;;;;-1:-1:-1;;;;;11848:92:0;;;12393:42;;;;;;;;;;-1:-1:-1;12393:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18435:132;;;;;;;;;;-1:-1:-1;18435:132:0;;;;;:::i;:::-;;:::i;15456:83::-;15493:13;15526:5;15519:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15456:83;:::o;20317:317::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;;;;;;;;;20419:17:::1;:30:::0;;;20460:17:::1;:30:::0;;;20501:17:::1;:30:::0;;;20563:63:::1;20521:10:::0;20563:40:::1;20439:10:::0;20480;20563:21:::1;:40::i;:::-;:44:::0;::::1;:63::i;:::-;20542:18;:84:::0;-1:-1:-1;;;20317:317:0:o;16622:161::-;16697:4;16714:39;294:10;16737:7;16746:6;16714:8;:39::i;:::-;-1:-1:-1;16771:4:0;16622:161;;;;;:::o;19055:113::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19135:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:25;;-1:-1:-1;;19135:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19055:113::o;20000:309::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;20101:16:::1;:29:::0;;;20141:16:::1;:29:::0;;;20181:16:::1;:29:::0;;;20241:60:::1;20200:10:::0;20241:38:::1;20120:10:::0;20160;20241:20:::1;:38::i;:60::-;20221:17;:80:::0;-1:-1:-1;;;20000:309:0:o;17555:135::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17646:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;17646:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17555:135::o;20911:313::-;21009:4;21026:36;21036:6;21044:9;21055:6;21026:9;:36::i;:::-;-1:-1:-1;21073:121:0;21082:6;294:10;21104:89;21142:6;21104:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21104:19:0;;;;;;:11;:19;;;;;;;;294:10;21104:33;;;;;;;;;;:37;:89::i;:::-;21073:8;:121::i;:::-;-1:-1:-1;21212:4:0;20911:313;;;;;;:::o;17932:113::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18010:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;18010:27:0::1;-1:-1:-1::0;;;;18010:27:0;;::::1;::::0;;;::::1;::::0;;17932:113::o;18891:156::-;-1:-1:-1;;;;;19026:11:0;15934:18;18944:7;15934:18;;;:9;:18;;;;;;18971:68;;:40;18988:22;18998:11;-1:-1:-1;;;;;15934:18:0;15907:7;15934:18;;;:9;:18;;;;;;;15841:119;18988:22;18971:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;18964:75;;18891:156;:::o;16119:218::-;294:10;16207:4;16256:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16256:34:0;;;;;;;;;;16207:4;;16224:83;;16247:7;;16256:50;;16295:10;16256:38;:50::i;18163:124::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18245:23:::1;:34:::0;18163:124::o;18295:132::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18382:15:::1;:37:::0;;-1:-1:-1;;;;;18382:37:0;;::::1;;;-1:-1:-1::0;;;;;;18382:37:0;;::::1;::::0;;;::::1;::::0;;18295:132::o;19314:678::-;19394:22;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;19431:35:::1;19488:16;19431:74;;19554:16;-1:-1:-1::0;;;;;19554:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19536:53:0::1;;19598:4;19605:16;-1:-1:-1::0;;;;;19605:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19536:93;::::0;-1:-1:-1;;;;;;19536:93:0::1;::::0;;;;;;-1:-1:-1;;;;;7003:15:1;;;19536:93:0::1;::::0;::::1;6985:34:1::0;7055:15;;7035:18;;;7028:43;6920:18;;19536:93:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19519:110:::0;-1:-1:-1;;;;;;19645:28:0;::::1;19642:201;;19735:16;-1:-1:-1::0;;;;;19735:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19717:74:0::1;;19800:4;19807:16;-1:-1:-1::0;;;;;19807:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19717:114;::::0;-1:-1:-1;;;;;;19717:114:0::1;::::0;;;;;;-1:-1:-1;;;;;7003:15:1;;;19717:114:0::1;::::0;::::1;6985:34:1::0;7055:15;;7035:18;;;7028:43;6920:18;;19717:114:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19700:131;;19642:201;19855:11;:28:::0;;-1:-1:-1;;;;;19855:28:0;;::::1;-1:-1:-1::0;;;;;;19855:28:0;;::::1;::::0;::::1;::::0;;;19895:15:::1;:34:::0;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;19855:11:::1;19943:34:::0;;;:12:::1;:34;::::0;;;;:41;;-1:-1:-1;;19943:41:0::1;19855:28:::0;19943:41:::1;::::0;;19869:14;19314:678;-1:-1:-1;19314:678:0:o;27088:697::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;27206:10:::1;27235:33:::0;;::::1;27227:67;;;::::0;-1:-1:-1;;;27227:67:0;;7284:2:1;27227:67:0::1;::::0;::::1;7266:21:1::0;7323:2;7303:18;;;7296:30;-1:-1:-1;;;7342:18:1;;;7335:52;7404:18;;27227:67:0::1;7082:346:1::0;27227:67:0::1;27305:15;::::0;27331:92:::1;27347:18:::0;;::::1;27331:92;;;27401:7;;27409:1;27401:10;;;;;;;:::i;:::-;;;;;;;27387:24;;;;;:::i;:::-;::::0;-1:-1:-1;27367:3:0;::::1;::::0;::::1;:::i;:::-;;;;27331:92;;;;27463:10;27441:18;27451:7;-1:-1:-1::0;;;;;15934:18:0;15907:7;15934:18;;;:9;:18;;;;;;;15841:119;27441:18:::1;:32;;27433:71;;;::::0;-1:-1:-1;;;27433:71:0;;8169:2:1;27433:71:0::1;::::0;::::1;8151:21:1::0;8208:2;8188:18;;;8181:30;8247:29;8227:18;;;8220:57;8294:18;;27433:71:0::1;7967:351:1::0;27433:71:0::1;-1:-1:-1::0;;;;;27536:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;;:34:::1;::::0;27559:10;27536:22:::1;:34::i;:::-;-1:-1:-1::0;;;;;27515:18:0;::::1;;::::0;;;:9:::1;:18;::::0;;;;:55;;;;27582:194:::1;27598:19:::0;;::::1;27582:194;;;27664:38;27691:7;;27699:1;27691:10;;;;;;;:::i;:::-;;;;;;;27664:9;:22;27674:8;;27683:1;27674:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27664:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;27664:22:0;;;:26:::1;:38::i;:::-;27639:9;:22;27649:8;;27658:1;27649:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27639:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;27639:22:0;:63;27740:8;;27749:1;27740:11;;::::1;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;27722:42:0::1;27731:7;-1:-1:-1::0;;;;;27722:42:0::1;-1:-1:-1::0;;;;;;;;;;;27753:7:0::1;;27761:1;27753:10;;;;;;;:::i;:::-;;;;;;;27722:42;;;;2635:25:1::0;;2623:2;2608:18;;2489:177;27722:42:0::1;;;;;;;;27619:3:::0;::::1;::::0;::::1;:::i;:::-;;;;27582:194;;;;27177:608;;27088:697:::0;;;;:::o;3213:230::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;3304:6:::1;::::0;;3283:81:::1;::::0;3320:42:::1;::::0;-1:-1:-1;;;;;3304:6:0;;::::1;::::0;3283:81:::1;::::0;::::1;3375:6;:60:::0;;-1:-1:-1;;;;;;3375:60:0::1;3392:42;3375:60;::::0;;3213:230::o;17136:129::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17225:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;17225:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17136:129::o;15547:87::-;15586:13;15619:7;15612:14;;;;;:::i;16345:269::-;16438:4;16455:129;294:10;16478:7;16487:96;16526:15;16487:96;;;;;;;;;;;;;;;;;294:10;16487:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;16487:34:0;;;;;;;;;;;;:38;:96::i;18754:125::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18835:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;18835:36:0::1;-1:-1:-1::0;;;;18835:36:0;;::::1;::::0;;;::::1;::::0;;18754:125::o;20736:167::-;20814:4;20831:42;294:10;20855:9;20866:6;20831:9;:42::i;18575:171::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18652:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;18652:32:0::1;-1:-1:-1::0;;;;18652:32:0;;::::1;;::::0;;18700:38:::1;::::0;::::1;::::0;::::1;::::0;18676:8;1717:14:1;1710:22;1692:41;;1680:2;1665:18;;1552:187;18700:38:0::1;;;;;;;;18575:171:::0;:::o;23273:154::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;23339:58:::1;::::0;23327:7:::1;::::0;23347:10:::1;::::0;23371:21:::1;::::0;23327:7;23339:58;23327:7;23339:58;23371:21;23347:10;23339:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23326:71;;;23416:2;23408:11;;;::::0;::::1;;23315:112;23273:154::o:0;17813:111::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;17890:12:::1;:26:::0;17813:111::o;17698:107::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;17765:22:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;17765:32:0::1;-1:-1:-1::0;;;;17765:32:0;;::::1;::::0;;;::::1;::::0;;17698:107::o;17273:135::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17363:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;17363:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17273:135::o;18053:102::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18125:10:::1;:22:::0;18053:102::o;3451:244::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3540:22:0;::::1;3532:73;;;::::0;-1:-1:-1;;;3532:73:0;;8735:2:1;3532:73:0::1;::::0;::::1;8717:21:1::0;8774:2;8754:18;;;8747:30;8813:34;8793:18;;;8786:62;-1:-1:-1;;;8864:18:1;;;8857:36;8910:19;;3532:73:0::1;8533:402:1::0;3532:73:0::1;3642:6;::::0;;3621:38:::1;::::0;-1:-1:-1;;;;;3621:38:0;;::::1;::::0;3642:6;::::1;::::0;3621:38:::1;::::0;::::1;3670:6;:17:::0;;-1:-1:-1;;;;;;3670:17:0::1;-1:-1:-1::0;;;;;3670:17:0;;;::::1;::::0;;;::::1;::::0;;3451:244::o;23126:139::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;23214:43:::1;::::0;-1:-1:-1;;;23214:43:0;;23238:10:::1;23214:43;::::0;::::1;9114:51:1::0;9181:18;;;9174:34;;;-1:-1:-1;;;;;23214:23:0;::::1;::::0;::::1;::::0;9087:18:1;;23214:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23126:139:::0;;:::o;17416:127::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17503:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;17503:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17416:127::o;18435:132::-;3122:6;;-1:-1:-1;;;;;3122:6:0;294:10;3122:22;3114:67;;;;-1:-1:-1;;;3114:67:0;;;;;;;:::i;:::-;18522:15:::1;:37:::0;;-1:-1:-1;;;;;;18522:37:0::1;-1:-1:-1::0;;;;;18522:37:0;;;::::1;::::0;;;::::1;::::0;;18435:132::o;1140:181::-;1198:7;;1230:5;1234:1;1230;:5;:::i;:::-;1218:17;;1259:1;1254;:6;;1246:46;;;;-1:-1:-1;;;1246:46:0;;9671:2:1;1246:46:0;;;9653:21:1;9710:2;9690:18;;;9683:30;9749:29;9729:18;;;9722:57;9796:18;;1246:46:0;9469:351:1;16791:337:0;-1:-1:-1;;;;;16884:19:0;;16876:68;;;;-1:-1:-1;;;16876:68:0;;10027:2:1;16876:68:0;;;10009:21:1;10066:2;10046:18;;;10039:30;10105:34;10085:18;;;10078:62;-1:-1:-1;;;10156:18:1;;;10149:34;10200:19;;16876:68:0;9825:400:1;16876:68:0;-1:-1:-1;;;;;16963:21:0;;16955:68;;;;-1:-1:-1;;;16955:68:0;;10432:2:1;16955:68:0;;;10414:21:1;10471:2;10451:18;;;10444:30;10510:34;10490:18;;;10483:62;-1:-1:-1;;;10561:18:1;;;10554:32;10603:19;;16955:68:0;10230:398:1;16955:68:0;-1:-1:-1;;;;;17036:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;17088:32;;2635:25:1;;;17088:32:0;;2608:18:1;17088:32:0;;;;;;;16791:337;;;:::o;21232:1886::-;21319:4;-1:-1:-1;;;;;21346:20:0;;21338:70;;;;-1:-1:-1;;;21338:70:0;;10835:2:1;21338:70:0;;;10817:21:1;10874:2;10854:18;;;10847:30;10913:34;10893:18;;;10886:62;-1:-1:-1;;;10964:18:1;;;10957:35;11009:19;;21338:70:0;10633:401:1;21338:70:0;-1:-1:-1;;;;;21427:23:0;;21419:71;;;;-1:-1:-1;;;21419:71:0;;11241:2:1;21419:71:0;;;11223:21:1;11280:2;11260:18;;;11253:30;11319:34;11299:18;;;11292:62;-1:-1:-1;;;11370:18:1;;;11363:33;11413:19;;21419:71:0;11039:399:1;21419:71:0;-1:-1:-1;;;;;21510:17:0;;;;;;:9;:17;;;;;;;;21509:18;:43;;;;-1:-1:-1;;;;;;21532:20:0;;;;;;:9;:20;;;;;;;;21531:21;21509:43;21501:85;;;;-1:-1:-1;;;21501:85:0;;11645:2:1;21501:85:0;;;11627:21:1;11684:2;11664:18;;;11657:30;11723:31;11703:18;;;11696:59;11772:18;;21501:85:0;11443:353:1;21501:85:0;21602:16;;-1:-1:-1;;;21602:16:0;;;;21599:1502;;;21652:41;21667:6;21675:9;21686:6;21652:14;:41::i;:::-;21645:48;;;;21599:1502;-1:-1:-1;;;;;21751:23:0;;;;;;:15;:23;;;;;;;;21750:24;:55;;;;-1:-1:-1;;;;;;21779:26:0;;;;;;:15;:26;;;;;;;;21778:27;21750:55;:81;;;;-1:-1:-1;21809:22:0;;-1:-1:-1;;;21809:22:0;;;;21750:81;21747:196;;;21870:12;;21860:6;:22;;21852:75;;;;-1:-1:-1;;;21852:75:0;;12003:2:1;21852:75:0;;;11985:21:1;12042:2;12022:18;;;12015:30;12081:34;12061:18;;;12054:62;-1:-1:-1;;;12132:18:1;;;12125:38;12180:19;;21852:75:0;11801:404:1;21852:75:0;22008:4;21959:28;15934:18;;;:9;:18;;;;;;22084:23;;22060:47;;;;;;;22140:44;;-1:-1:-1;22168:16:0;;-1:-1:-1;;;22168:16:0;;;;22167:17;22140:44;:69;;;;-1:-1:-1;;;;;;22189:20:0;;;;;;:12;:20;;;;;;;;22188:21;22140:69;:94;;;;-1:-1:-1;22213:21:0;;-1:-1:-1;;;22213:21:0;;;;22140:94;22136:305;;;22272:25;;-1:-1:-1;;;22272:25:0;;;;22269:97;;;22343:23;;22320:46;;22269:97;22385:36;22400:20;22385:14;:36::i;:::-;22477:53;;;;;;;;;;;-1:-1:-1;;;22477:53:0;;;;;;;;-1:-1:-1;;;;;22477:17:0;;-1:-1:-1;22477:17:0;;;:9;:17;;;;;;;;:53;;22499:6;;22477:21;:53::i;:::-;-1:-1:-1;;;;;22457:17:0;;;;;;:9;:17;;;;;;;;:73;;;;22570:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;22599:28:0;;;;;;:17;:28;;;;;;;;22570:57;22569:148;;22683:34;22691:6;22699:9;22710:6;22683:7;:34::i;:::-;22569:148;;;22674:6;22569:148;22737:16;;22547:170;;-1:-1:-1;;;;22737:16:0;;;;:51;;;;-1:-1:-1;;;;;;22758:30:0;;;;;;:19;:30;;;;;;;;22757:31;22737:51;22734:191;;;22858:10;;22817:37;22842:11;22817:20;22827:9;-1:-1:-1;;;;;15934:18:0;15907:7;15934:18;;;:9;:18;;;;;;;15841:119;22817:37;:51;;22809:100;;;;-1:-1:-1;;;22809:100:0;;12412:2:1;22809:100:0;;;12394:21:1;12451:2;12431:18;;;12424:30;12490:34;12470:18;;;12463:62;-1:-1:-1;;;12541:18:1;;;12534:35;12586:19;;22809:100:0;12210:401:1;22809:100:0;-1:-1:-1;;;;;22964:20:0;;;;;;:9;:20;;;;;;:37;;22989:11;22964:24;:37::i;:::-;-1:-1:-1;;;;;22941:20:0;;;;;;;:9;:20;;;;;;;:60;;;;23023:40;;;;;;-1:-1:-1;;;;;;;;;;;23023:40:0;;;23051:11;2635:25:1;;2623:2;2608:18;;2489:177;23023:40:0;;;;;;;;23085:4;23078:11;;;;;;;1473:192;1559:7;1595:12;1587:6;;;;1579:29;;;;-1:-1:-1;;;1579:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1619:9:0;1631:5;1635:1;1631;:5;:::i;:::-;1619:17;1473:192;-1:-1:-1;;;;;1473:192:0:o;1329:136::-;1387:7;1414:43;1418:1;1421;1414:43;;;;;;;;;;;;;;;;;:3;:43::i;23435:330::-;23565:53;;;;;;;;;;;-1:-1:-1;;;23565:53:0;;;;;;;;-1:-1:-1;;;;;23565:17:0;;23528:4;23565:17;;;:9;:17;;;;;;;:53;;23587:6;;23565:21;:53::i;:::-;-1:-1:-1;;;;;23545:17:0;;;;;;;:9;:17;;;;;;:73;;;;23652:20;;;;;;;:32;;23677:6;23652:24;:32::i;:::-;-1:-1:-1;;;;;23629:20:0;;;;;;;:9;:20;;;;;;;:55;;;;23700:35;;;;;;-1:-1:-1;;;;;;;;;;;23700:35:0;;;23728:6;2635:25:1;;2623:2;2608:18;;2489:177;23700:35:0;;;;;;;;-1:-1:-1;23753:4:0;23435:330;;;;;:::o;23773:1449::-;13902:16;:23;;-1:-1:-1;;;;13902:23:0;-1:-1:-1;;;13902:23:0;;;23891:18:::1;::::0;23869:17:::1;::::0;13902:23;;23869:41:::1;::::0;:17;:21:::1;:41::i;:::-;23847:63;;23923:22;23948:39;23969:17;;23948:16;;:20;;:39;;;;:::i;:::-;23923:64;;23998:22;24023:39;24044:17;;24023:16;;:20;;:39;;;;:::i;:::-;23998:64:::0;-1:-1:-1;24161:18:0::1;24182:51;24231:1;24182:44;24214:11:::0;24182:44;:7;24194:14;24182:11:::1;:27::i;:::-;:31:::0;::::1;:44::i;:51::-;24161:72:::0;-1:-1:-1;24244:20:0::1;24267:23;:7:::0;24161:72;24267:11:::1;:23::i;:::-;24244:46:::0;-1:-1:-1;24329:21:0::1;24361:30;24244:46:::0;24361:16:::1;:30::i;:::-;24402:23;24429:41;:21;24455:14:::0;24429:25:::1;:41::i;:::-;24402:68:::0;-1:-1:-1;24483:19:0::1;24505:38;24521:21;:14:::0;24540:1:::1;24521:18;:21::i;:::-;24505:11:::0;;:15:::1;:38::i;:::-;24483:60:::0;-1:-1:-1;24556:26:0::1;24585:59;24642:1;24585:52;24483:60:::0;24585:52;:15;24605:14;24585:19:::1;:35::i;:59::-;24556:88:::0;-1:-1:-1;24655:26:0::1;24684:52;24724:11:::0;24684:35:::1;:15:::0;24704:14;24684:19:::1;:35::i;:52::-;24655:81:::0;-1:-1:-1;24747:26:0::1;24776:63;24655:81:::0;24776:39:::1;:15:::0;24796:18;24776:19:::1;:39::i;:63::-;24747:92:::0;-1:-1:-1;24855:22:0;;24852:107:::1;;24902:15;::::0;24894:53:::1;::::0;24902:15:::1;::::0;;::::1;-1:-1:-1::0;;;;;24902:15:0::1;::::0;24894:53:::1;::::0;::::1;;::::0;;;::::1;::::0;;;;24902:15;24894:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24852:107;24974:22:::0;;24971:107:::1;;25021:15;::::0;25013:53:::1;::::0;-1:-1:-1;;;;;25021:15:0;;::::1;::::0;25013:53;::::1;;;::::0;25047:18;;25021:15:::1;25013:53:::0;25021:15;25013:53;25047:18;25021:15;25013:53;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24971:107;25123:1;25102:18;:22;:40;;;;;25141:1;25128:10;:14;25102:40;25099:116;;;25159:44;25172:10;25184:18;25159:12;:44::i;:::-;-1:-1:-1::0;;13948:16:0;:24;;-1:-1:-1;;;;13948:24:0;;;-1:-1:-1;;;;;;;;;;23773:1449:0:o;26429:622::-;-1:-1:-1;;;;;26590:20:0;;26515:7;26590:20;;;:12;:20;;;;;;26515:7;;26590:20;;26587:223;;;26639:38;26673:3;26639:29;26650:17;;26639:6;:10;;:29;;;;:::i;:38::-;26627:50;;26587:223;;;-1:-1:-1;;;;;26707:23:0;;;;;;:12;:23;;;;;;;;26704:106;;;26759:39;26794:3;26759:30;26770:18;;26759:6;:10;;:30;;;;:::i;:39::-;26747:51;;26704:106;26833:13;;26830:173;;26908:4;26890:24;;;;:9;:24;;;;;;:39;;26919:9;26890:28;:39::i;:::-;26881:4;26863:24;;;;:9;:24;;;;;;;:66;;;;26949:42;;-1:-1:-1;;;;;26949:42:0;;;-1:-1:-1;;;;;;;;;;;26949:42:0;;;26981:9;2635:25:1;;2623:2;2608:18;;2489:177;26949:42:0;;;;;;;;26830:173;27022:21;:6;27033:9;27022:10;:21::i;1673:250::-;1731:7;1755:1;1760;1755:6;1751:47;;-1:-1:-1;1785:1:0;1778:8;;1751:47;1810:9;1822:5;1826:1;1822;:5;:::i;:::-;1810:17;-1:-1:-1;1855:1:0;1846:5;1850:1;1810:17;1846:5;:::i;:::-;:10;1838:56;;;;-1:-1:-1;;;1838:56:0;;13346:2:1;1838:56:0;;;13328:21:1;13385:2;13365:18;;;13358:30;13424:34;13404:18;;;13397:62;-1:-1:-1;;;13475:18:1;;;13468:31;13516:19;;1838:56:0;13144:397:1;1931:132:0;1989:7;2016:39;2020:1;2023;2016:39;;;;;;;;;;;;;;;;;:3;:39::i;25234:666::-;25384:16;;;25398:1;25384:16;;;;;;;;25360:21;;25384:16;;;;;;;;;;-1:-1:-1;25384:16:0;25360:40;;25429:4;25411;25416:1;25411:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25411:23:0;;;:7;;;;;;;;;;:23;;;;25455:15;;:22;;;-1:-1:-1;;;25455:22:0;;;;:15;;;;;:20;;:22;;;;;25411:7;;25455:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25445:4;25450:1;25445:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25445:32:0;;;:7;;;;;;;;;:32;25522:15;;25490:62;;25507:4;;25522:15;25540:11;25490:8;:62::i;:::-;25591:15;;:240;;-1:-1:-1;;;25591:240:0;;-1:-1:-1;;;;;25591:15:0;;;;:66;;:240;;25672:11;;25591:15;;25742:4;;25769;;25805:15;;25591:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25857:35;25874:11;25887:4;25857:35;;;;;;;:::i;:::-;;;;;;;;25289:611;25234:666;:::o;25908:513::-;26088:15;;26056:62;;26073:4;;-1:-1:-1;;;;;26088:15:0;26106:11;26056:8;:62::i;:::-;26161:15;;-1:-1:-1;;;;;26161:15:0;:31;26200:9;26233:4;26253:11;26161:15;;26365:7;3026;3053:6;-1:-1:-1;;;;;3053:6:0;;2988:79;26365:7;26161:252;;;;;;-1:-1:-1;;;;;;26161:252:0;;;-1:-1:-1;;;;;15427:15:1;;;26161:252:0;;;15409:34:1;15459:18;;;15452:34;;;;15502:18;;;15495:34;;;;15545:18;;;15538:34;15609:15;;;15588:19;;;15581:44;26387:15:0;15641:19:1;;;15634:35;15343:19;;26161:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25908:513;;:::o;2071:278::-;2157:7;2192:12;2185:5;2177:28;;;;-1:-1:-1;;;2177:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2216:9:0;2228:5;2232:1;2228;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:316::-;644:6;652;660;713:2;701:9;692:7;688:23;684:32;681:52;;;729:1;726;719:12;681:52;-1:-1:-1;;752:23:1;;;822:2;807:18;;794:32;;-1:-1:-1;873:2:1;858:18;;;845:32;;567:316;-1:-1:-1;567:316:1:o;1096:131::-;-1:-1:-1;;;;;1171:31:1;;1161:42;;1151:70;;1217:1;1214;1207:12;1232:315;1300:6;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;1416:9;1403:23;1435:31;1460:5;1435:31;:::i;:::-;1485:5;1537:2;1522:18;;;;1509:32;;-1:-1:-1;;;1232:315:1:o;1744:118::-;1830:5;1823:13;1816:21;1809:5;1806:32;1796:60;;1852:1;1849;1842:12;1867:382;1932:6;1940;1993:2;1981:9;1972:7;1968:23;1964:32;1961:52;;;2009:1;2006;1999:12;1961:52;2048:9;2035:23;2067:31;2092:5;2067:31;:::i;:::-;2117:5;-1:-1:-1;2174:2:1;2159:18;;2146:32;2187:30;2146:32;2187:30;:::i;:::-;2236:7;2226:17;;;1867:382;;;;;:::o;2671:456::-;2748:6;2756;2764;2817:2;2805:9;2796:7;2792:23;2788:32;2785:52;;;2833:1;2830;2823:12;2785:52;2872:9;2859:23;2891:31;2916:5;2891:31;:::i;:::-;2941:5;-1:-1:-1;2998:2:1;2983:18;;2970:32;3011:33;2970:32;3011:33;:::i;:::-;2671:456;;3063:7;;-1:-1:-1;;;3117:2:1;3102:18;;;;3089:32;;2671:456::o;3132:241::-;3188:6;3241:2;3229:9;3220:7;3216:23;3212:32;3209:52;;;3257:1;3254;3247:12;3209:52;3296:9;3283:23;3315:28;3337:5;3315:28;:::i;3567:180::-;3626:6;3679:2;3667:9;3658:7;3654:23;3650:32;3647:52;;;3695:1;3692;3685:12;3647:52;-1:-1:-1;3718:23:1;;3567:180;-1:-1:-1;3567:180:1:o;3752:247::-;3811:6;3864:2;3852:9;3843:7;3839:23;3835:32;3832:52;;;3880:1;3877;3870:12;3832:52;3919:9;3906:23;3938:31;3963:5;3938:31;:::i;4004:367::-;4067:8;4077:6;4131:3;4124:4;4116:6;4112:17;4108:27;4098:55;;4149:1;4146;4139:12;4098:55;-1:-1:-1;4172:20:1;;4215:18;4204:30;;4201:50;;;4247:1;4244;4237:12;4201:50;4284:4;4276:6;4272:17;4260:29;;4344:3;4337:4;4327:6;4324:1;4320:14;4312:6;4308:27;4304:38;4301:47;4298:67;;;4361:1;4358;4351:12;4298:67;4004:367;;;;;:::o;4376:773::-;4498:6;4506;4514;4522;4575:2;4563:9;4554:7;4550:23;4546:32;4543:52;;;4591:1;4588;4581:12;4543:52;4631:9;4618:23;4660:18;4701:2;4693:6;4690:14;4687:34;;;4717:1;4714;4707:12;4687:34;4756:70;4818:7;4809:6;4798:9;4794:22;4756:70;:::i;:::-;4845:8;;-1:-1:-1;4730:96:1;-1:-1:-1;4933:2:1;4918:18;;4905:32;;-1:-1:-1;4949:16:1;;;4946:36;;;4978:1;4975;4968:12;4946:36;;5017:72;5081:7;5070:8;5059:9;5055:24;5017:72;:::i;:::-;4376:773;;;;-1:-1:-1;5108:8:1;-1:-1:-1;;;;4376:773:1:o;5378:388::-;5446:6;5454;5507:2;5495:9;5486:7;5482:23;5478:32;5475:52;;;5523:1;5520;5513:12;5475:52;5562:9;5549:23;5581:31;5606:5;5581:31;:::i;:::-;5631:5;-1:-1:-1;5688:2:1;5673:18;;5660:32;5701:33;5660:32;5701:33;:::i;5771:380::-;5850:1;5846:12;;;;5893;;;5914:61;;5968:4;5960:6;5956:17;5946:27;;5914:61;6021:2;6013:6;6010:14;5990:18;5987:38;5984:161;;6067:10;6062:3;6058:20;6055:1;6048:31;6102:4;6099:1;6092:15;6130:4;6127:1;6120:15;5984:161;;5771:380;;;:::o;6156:356::-;6358:2;6340:21;;;6377:18;;;6370:30;6436:34;6431:2;6416:18;;6409:62;6503:2;6488:18;;6156:356::o;6517:251::-;6587:6;6640:2;6628:9;6619:7;6615:23;6611:32;6608:52;;;6656:1;6653;6646:12;6608:52;6688:9;6682:16;6707:31;6732:5;6707:31;:::i;7433:127::-;7494:10;7489:3;7485:20;7482:1;7475:31;7525:4;7522:1;7515:15;7549:4;7546:1;7539:15;7565:127;7626:10;7621:3;7617:20;7614:1;7607:31;7657:4;7654:1;7647:15;7681:4;7678:1;7671:15;7697:125;7762:9;;;7783:10;;;7780:36;;;7796:18;;:::i;7827:135::-;7866:3;7887:17;;;7884:43;;7907:18;;:::i;:::-;-1:-1:-1;7954:1:1;7943:13;;7827:135::o;9219:245::-;9286:6;9339:2;9327:9;9318:7;9314:23;9310:32;9307:52;;;9355:1;9352;9345:12;9307:52;9387:9;9381:16;9406:28;9428:5;9406:28;:::i;12616:128::-;12683:9;;;12704:11;;;12701:37;;;12718:18;;:::i;12749:168::-;12822:9;;;12853;;12870:15;;;12864:22;;12850:37;12840:71;;12891:18;;:::i;12922:217::-;12962:1;12988;12978:132;;13032:10;13027:3;13023:20;13020:1;13013:31;13067:4;13064:1;13057:15;13095:4;13092:1;13085:15;12978:132;-1:-1:-1;13124:9:1;;12922:217::o;13678:461::-;13731:3;13769:5;13763:12;13796:6;13791:3;13784:19;13822:4;13851:2;13846:3;13842:12;13835:19;;13888:2;13881:5;13877:14;13909:1;13919:195;13933:6;13930:1;13927:13;13919:195;;;13998:13;;-1:-1:-1;;;;;13994:39:1;13982:52;;14054:12;;;;14089:15;;;;14030:1;13948:9;13919:195;;;-1:-1:-1;14130:3:1;;13678:461;-1:-1:-1;;;;;13678:461:1:o;14144:582::-;14443:6;14432:9;14425:25;14486:6;14481:2;14470:9;14466:18;14459:34;14529:3;14524:2;14513:9;14509:18;14502:31;14406:4;14550:57;14602:3;14591:9;14587:19;14579:6;14550:57;:::i;:::-;-1:-1:-1;;;;;14643:32:1;;;;14638:2;14623:18;;14616:60;-1:-1:-1;14707:3:1;14692:19;14685:35;14542:65;14144:582;-1:-1:-1;;;14144:582:1:o;14731:332::-;14938:6;14927:9;14920:25;14981:2;14976;14965:9;14961:18;14954:30;14901:4;15001:56;15053:2;15042:9;15038:18;15030:6;15001:56;:::i;:::-;14993:64;14731:332;-1:-1:-1;;;;14731:332:1:o;15680:306::-;15768:6;15776;15784;15837:2;15825:9;15816:7;15812:23;15808:32;15805:52;;;15853:1;15850;15843:12;15805:52;15882:9;15876:16;15866:26;;15932:2;15921:9;15917:18;15911:25;15901:35;;15976:2;15965:9;15961:18;15955:25;15945:35;;15680:306;;;;;:::o
Swarm Source
ipfs://5f4ee0f12213943e5f6479ea6d4a54f6f77ed2da7c6373d81731e68ff361f244
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.