ERC-20
Overview
Max Total Supply
10,000,000,000 IMS
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
156,631,515.278049636035355252 IMSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
IronManSale
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-09 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.4; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } contract Ownable is Context { address private _owner; address private asdasd; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function waiveOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(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; } function getTime() public view returns (uint256) { return block.timestamp; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract IronManSale is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; string private _name = "IronManSale"; string private _symbol = "IMS"; uint8 private _decimals = 18; address payable public marketingWalletAddress = payable(0x1a1323fF8A6178C57020a8055BADb34E24f98387); address payable public liqWalletAddress = payable(0x1a1323fF8A6178C57020a8055BADb34E24f98387); address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public isExcludedFromFee; mapping (address => bool) public isWalletLimitExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isMarketPair; mapping(address => bool) public isbotBlackList; uint256 public _buyLiquidityFee = 1; uint256 public _buyMarketingFee = 2; uint256 public _sellLiquidityFee = 2; uint256 public _sellMarketingFee = 3; uint256 public _liquidityShare = 3; uint256 public _marketingShare = 5; uint256 public _totalTaxIfBuying = 3; uint256 public _totalTaxIfSelling = 5; uint256 public _totalDistributionShares = 8; uint256 private _totalSupply = 10000000000 * 10**_decimals; uint256 public _maxTxAmount = 10000000000 * 10**_decimals; uint256 public _walletMax = 10000000000 * 10**_decimals; uint256 private minimumTokensBeforeSwap = 10000000 * 10**_decimals; IUniswapV2Router02 public uniswapV2Router; address public uniswapPair; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool public checkWalletLimit = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); event SwapETHForTokens( uint256 amountIn, address[] path ); event SwapTokensForETH( uint256 amountIn, address[] path ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _allowances[address(this)][address(uniswapV2Router)] = _totalSupply; isExcludedFromFee[owner()] = true; isExcludedFromFee[address(this)] = true; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee); _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee); _totalDistributionShares = _liquidityShare.add(_marketingShare); isWalletLimitExempt[owner()] = true; isWalletLimitExempt[address(uniswapPair)] = true; isWalletLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[address(this)] = true; isMarketPair[address(uniswapPair)] = true; _balances[_msgSender()] = _totalSupply; emit Transfer(address(0), _msgSender(), _totalSupply); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function minimumTokensBeforeSwapAmount() public view returns (uint256) { return minimumTokensBeforeSwap; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function burnETH(address payable burnAddress) external onlyOwner { burnAddress.transfer(address(this).balance); } function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { return IERC20(tokenAddress).transfer(msg.sender, tokens); } function setMarketPairStatus(address account, bool newValue) public onlyOwner { isMarketPair[account] = newValue; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setIsExcludedFromFee(address account, bool newValue) public onlyOwner { isExcludedFromFee[account] = newValue; } function setBuyTaxes(uint256 newLiquidityTax, uint256 newMarketingTax) external onlyOwner() { _buyLiquidityFee = newLiquidityTax; _buyMarketingFee = newMarketingTax; _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee); } function setSelTaxes(uint256 newLiquidityTax, uint256 newMarketingTax) external onlyOwner() { _sellLiquidityFee = newLiquidityTax; _sellMarketingFee = newMarketingTax; _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee); } function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare) external onlyOwner() { _liquidityShare = newLiquidityShare; _marketingShare = newMarketingShare; _totalDistributionShares = _liquidityShare.add(_marketingShare); } function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner() { _maxTxAmount = maxTxAmount; } function enableDisableWalletLimit(bool newValue) external onlyOwner { checkWalletLimit = newValue; } function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner { isWalletLimitExempt[holder] = exempt; } function setWalletLimit(uint256 newLimit) external onlyOwner { _walletMax = newLimit; } function setNumTokensBeforeSwap(uint256 newLimit) external onlyOwner() { minimumTokensBeforeSwap = newLimit; } function setMarketingWalletAddress(address newAddress) external onlyOwner() { marketingWalletAddress = payable(newAddress); } function setliqWalletAddress(address newAddress) external onlyOwner() { liqWalletAddress = payable(newAddress); } function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner { swapAndLiquifyEnabled = _enabled; emit SwapAndLiquifyEnabledUpdated(_enabled); } function setSwapAndLiquifyByLimitOnly(bool newValue) public onlyOwner { swapAndLiquifyByLimitOnly = newValue; } function getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(deadAddress)); } function transferToAddressETH(address payable recipient, uint256 amount) private { recipient.transfer(amount); } function changeRouterVersion(address newRouterAddress) public onlyOwner returns(address newPairAddress) { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouterAddress); newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).getPair(address(this), _uniswapV2Router.WETH()); if(newPairAddress == address(0)) //Create If Doesnt exist { newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); } uniswapPair = newPairAddress; //Set new pair address uniswapV2Router = _uniswapV2Router; //Set new router address isWalletLimitExempt[address(uniswapPair)] = true; isMarketPair[address(uniswapPair)] = true; } //to recieve ETH from uniswapV2Router when swaping receive() external payable {} function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _transfer(address sender, address recipient, uint256 amount) private returns (bool) { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(!isbotBlackList[sender], "account is bot"); if(inSwapAndLiquify) { return _basicTransfer(sender, recipient, amount); } else { if(!isTxLimitExempt[sender] && !isTxLimitExempt[recipient]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap; if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) { if(swapAndLiquifyByLimitOnly) contractTokenBalance = minimumTokensBeforeSwap; swapAndLiquify(contractTokenBalance); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) ? amount : takeFee(sender, recipient, amount); if(checkWalletLimit && !isWalletLimitExempt[recipient]) require(balanceOf(recipient).add(finalAmount) <= _walletMax); _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function swapAndLiquify(uint256 tAmount) private lockTheSwap { uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2); uint256 tokensForSwap = tAmount.sub(tokensForLP); swapTokensForEth(tokensForSwap); uint256 amountReceived = address(this).balance; uint256 totalETHFee = _totalDistributionShares.sub(_liquidityShare.div(2)); uint256 amountETHLiquidity = amountReceived.mul(_liquidityShare).div(totalETHFee).div(2); uint256 amountETHMarketing = amountReceived.sub(amountETHLiquidity); if(amountETHMarketing > 0) transferToAddressETH(marketingWalletAddress, amountETHMarketing); if(amountETHLiquidity > 0 && tokensForLP > 0) addLiquidity(tokensForLP, amountETHLiquidity); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), // The contract block.timestamp ); emit SwapTokensForETH(tokenAmount, path); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable liqWalletAddress, block.timestamp ); } function setblacklist(address _account) external onlyOwner { if (isbotBlackList[_account]) { isbotBlackList[_account] = false; } else { isbotBlackList[_account] = true; } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeAmount = 0; if(isMarketPair[sender]) { feeAmount = amount.mul(_totalTaxIfBuying).div(100); } else if(isMarketPair[recipient]) { feeAmount = amount.mul(_totalTaxIfSelling).div(100); } if(feeAmount > 0) { _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); } return amount.sub(feeAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"burnAddress","type":"address"}],"name":"burnETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouterAddress","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPairAddress","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"enableDisableWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isbotBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liqWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWalletAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"}],"name":"setDistributionSettings","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":"newLiquidityTax","type":"uint256"},{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setSelTaxes","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":[{"internalType":"address","name":"_account","type":"address"}],"name":"setblacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setliqWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60e0604052600b60a08190526a49726f6e4d616e53616c6560a81b60c09081526200002e916003919062000661565b5060408051808201909152600380825262494d5360e81b60209092019182526200005b9160049162000661565b5060058054741a1323ff8a6178c57020a8055badb34e24f98387126001600160a81b0319909116178155600680546001600160a01b031916731a1323ff8a6178c57020a8055badb34e24f983871790556ddead0000000000000000000000006080526001600e556002600f81905560105560036011819055601281815560138390556014919091556015919091556008601655620000fb90600a62000794565b6200010c906402540be40062000860565b601755600554620001229060ff16600a62000794565b62000133906402540be40062000860565b601855600554620001499060ff16600a62000794565b6200015a906402540be40062000860565b601955600554620001709060ff16600a62000794565b6200017f906298968062000860565b601a55601c805462ffffff60a81b19166201000160a81b179055348015620001a657600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023b57600080fd5b505afa15801562000250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000276919062000707565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002bf57600080fd5b505afa158015620002d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fa919062000707565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200034357600080fd5b505af115801562000358573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200037e919062000707565b601c80546001600160a01b039283166001600160a01b031991821617909155601b8054928416929091168217905560175430600090815260086020908152604080832094835293905291822055600190600990620003e46000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260098352208054909216600117909155600f54600e5462000440929091906200185b620005f2821b17901c565b60148190555062000464601154601054620005f260201b6200185b1790919060201c565b60158190555062000488601354601254620005f260201b6200185b1790919060201c565b6016556001600a6000620004a46000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601c549091168152600a90925280822080548416600190811790915530835290822080549093168117909255600b90620005146000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600b8452828120805486166001908117909155601c549092168152600c90935290822080549093161790915560175490600790620005803390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601754604051620005e391815260200190565b60405180910390a350620008d5565b60008062000601838562000730565b905083811015620006585760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b8280546200066f9062000882565b90600052602060002090601f016020900481019282620006935760008555620006de565b82601f10620006ae57805160ff1916838001178555620006de565b82800160010185558215620006de579182015b82811115620006de578251825591602001919060010190620006c1565b50620006ec929150620006f0565b5090565b5b80821115620006ec5760008155600101620006f1565b60006020828403121562000719578081fd5b81516001600160a01b038116811462000658578182fd5b60008219821115620007465762000746620008bf565b500190565b600181815b808511156200078c578160001904821115620007705762000770620008bf565b808516156200077e57918102915b93841c939080029062000750565b509250929050565b6000620007a560ff841683620007ac565b9392505050565b600082620007bd575060016200065b565b81620007cc575060006200065b565b8160018114620007e55760028114620007f05762000810565b60019150506200065b565b60ff841115620008045762000804620008bf565b50506001821b6200065b565b5060208310610133831016604e8410600b841016171562000835575081810a6200065b565b6200084183836200074b565b8060001904821115620008585762000858620008bf565b029392505050565b60008160001904831182151516156200087d576200087d620008bf565b500290565b600181811c908216806200089757607f821691505b60208210811415620008b957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c61294a620008fb600039600081816104ed0152610d7b015261294a6000f3fe60806040526004361061039b5760003560e01c80638b42507f116101dc578063c816841b11610102578063ec28438a116100a0578063f1d5f5171161006f578063f1d5f51714610adb578063f2fde38b14610afb578063f84ba65d14610b1b578063f872858a14610b3b57600080fd5b8063ec28438a14610a65578063eea5b63f14610a85578063ef422a1814610aa5578063f0cd1dac14610ac557600080fd5b8063d158272d116100dc578063d158272d146109c3578063da00097d146109e8578063dc44b6a014610a09578063dd62ed3e14610a1f57600080fd5b8063c816841b1461095d578063c86079521461097d578063c867d60b1461099357600080fd5b8063a08e671f1161017a578063aa35822c11610149578063aa35822c146108d7578063bdfc2990146108f7578063c49b9a8014610927578063c5d241891461094757600080fd5b8063a08e671f14610861578063a457c2d714610877578063a5d69d1f14610897578063a9059cbb146108b757600080fd5b8063914eb66a116101b6578063914eb66a1461080257806395d89b41146108175780639df8131f1461082c578063a073d37f1461084c57600080fd5b80638b42507f146107945780638bc6f3a8146107c45780638da5cb5b146107e457600080fd5b80634a74bb02116102c157806361a23c691161025f578063807c2d9c1161022e578063807c2d9c1461073257806382eefb4314610748578063844d591c1461075e57806388790a681461077e57600080fd5b806361a23c69146106b057806361ced01d146106c657806370a08231146106e65780637d1db4a51461071c57600080fd5b8063557ed1ba1161029b578063557ed1ba1461064757806357a5802f1461065a5780635881f3ef146106705780635c5ba4481461069057600080fd5b80634a74bb02146105d65780634cb80fd5146105f75780635342acb41461061757600080fd5b80632563ae831161033957806333f3d6281161030857806333f3d6281461054657806339509351146105665780633b97084a146105865780633ecad271146105a657600080fd5b80632563ae83146104bb57806327c8f835146104db5780632b112e491461050f578063313ce5671461052457600080fd5b80631694505e116103755780631694505e1461042457806318160ddd1461045c5780632198cf6c1461047b57806323b872dd1461049b57600080fd5b806306fdde03146103a7578063095ea7b3146103d25780630b3032061461040257600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bc610b5c565b6040516103c99190612700565b60405180910390f35b3480156103de57600080fd5b506103f26103ed3660046125f4565b610bee565b60405190151581526020016103c9565b34801561040e57600080fd5b5061042261041d366004612517565b610c05565b005b34801561043057600080fd5b50601b54610444906001600160a01b031681565b6040516001600160a01b0390911681526020016103c9565b34801561046857600080fd5b506017545b6040519081526020016103c9565b34801561048757600080fd5b506104226104963660046125c7565b610c71565b3480156104a757600080fd5b506103f26104b6366004612587565b610cc6565b3480156104c757600080fd5b506104226104d636600461261f565b610d31565b3480156104e757600080fd5b506104447f000000000000000000000000000000000000000000000000000000000000000081565b34801561051b57600080fd5b5061046d610d79565b34801561053057600080fd5b5060055460405160ff90911681526020016103c9565b34801561055257600080fd5b506103f26105613660046125f4565b610dc3565b34801561057257600080fd5b506103f26105813660046125f4565b610e6e565b34801561059257600080fd5b506104226105a1366004612657565b610ea4565b3480156105b257600080fd5b506103f26105c1366004612517565b600c6020526000908152604090205460ff1681565b3480156105e257600080fd5b50601c546103f290600160a81b900460ff1681565b34801561060357600080fd5b50610422610612366004612517565b610ed3565b34801561062357600080fd5b506103f2610632366004612517565b60096020526000908152604090205460ff1681565b34801561065357600080fd5b504261046d565b34801561066657600080fd5b5061046d60125481565b34801561067c57600080fd5b5061044461068b366004612517565b610f25565b34801561069c57600080fd5b506104226106ab366004612517565b6112b7565b3480156106bc57600080fd5b5061046d60135481565b3480156106d257600080fd5b50600654610444906001600160a01b031681565b3480156106f257600080fd5b5061046d610701366004612517565b6001600160a01b031660009081526007602052604090205490565b34801561072857600080fd5b5061046d60185481565b34801561073e57600080fd5b5061046d60195481565b34801561075457600080fd5b5061046d60155481565b34801561076a57600080fd5b506104226107793660046125c7565b61134a565b34801561078a57600080fd5b5061046d60105481565b3480156107a057600080fd5b506103f26107af366004612517565b600b6020526000908152604090205460ff1681565b3480156107d057600080fd5b506104226107df366004612517565b61139f565b3480156107f057600080fd5b506000546001600160a01b0316610444565b34801561080e57600080fd5b506104226113eb565b34801561082357600080fd5b506103bc611465565b34801561083857600080fd5b5061042261084736600461266f565b611474565b34801561085857600080fd5b50601a5461046d565b34801561086d57600080fd5b5061046d60165481565b34801561088357600080fd5b506103f26108923660046125f4565b6114b9565b3480156108a357600080fd5b506104226108b236600461261f565b611508565b3480156108c357600080fd5b506103f26108d23660046125f4565b611550565b3480156108e357600080fd5b506104226108f236600461266f565b61155d565b34801561090357600080fd5b506103f2610912366004612517565b600d6020526000908152604090205460ff1681565b34801561093357600080fd5b5061042261094236600461261f565b6115a2565b34801561095357600080fd5b5061046d600f5481565b34801561096957600080fd5b50601c54610444906001600160a01b031681565b34801561098957600080fd5b5061046d60115481565b34801561099f57600080fd5b506103f26109ae366004612517565b600a6020526000908152604090205460ff1681565b3480156109cf57600080fd5b506005546104449061010090046001600160a01b031681565b3480156109f457600080fd5b50601c546103f290600160b01b900460ff1681565b348015610a1557600080fd5b5061046d600e5481565b348015610a2b57600080fd5b5061046d610a3a36600461254f565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a7157600080fd5b50610422610a80366004612657565b611624565b348015610a9157600080fd5b50610422610aa036600461266f565b611653565b348015610ab157600080fd5b50610422610ac03660046125c7565b611698565b348015610ad157600080fd5b5061046d60145481565b348015610ae757600080fd5b50610422610af6366004612657565b6116ed565b348015610b0757600080fd5b50610422610b16366004612517565b61171c565b348015610b2757600080fd5b50610422610b363660046125c7565b611806565b348015610b4757600080fd5b50601c546103f290600160b81b900460ff1681565b606060038054610b6b90612853565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9790612853565b8015610be45780601f10610bb957610100808354040283529160200191610be4565b820191906000526020600020905b815481529060010190602001808311610bc757829003601f168201915b5050505050905090565b6000610bfb3384846118ba565b5060015b92915050565b6000546001600160a01b03163314610c385760405162461bcd60e51b8152600401610c2f90612753565b60405180910390fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610c6d573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610cd38484846119de565b50610d268433610d21856040518060600160405280602881526020016128c8602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190611e0d565b6118ba565b5060015b9392505050565b6000546001600160a01b03163314610d5b5760405162461bcd60e51b8152600401610c2f90612753565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260076020526040812054601754610dbe91611e47565b905090565b600080546001600160a01b03163314610dee5760405162461bcd60e51b8152600401610c2f90612753565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610e3657600080fd5b505af1158015610e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2a919061263b565b3360008181526008602090815260408083206001600160a01b03871684529091528120549091610bfb918590610d21908661185b565b6000546001600160a01b03163314610ece5760405162461bcd60e51b8152600401610c2f90612753565b601a55565b6000546001600160a01b03163314610efd5760405162461bcd60e51b8152600401610c2f90612753565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610f505760405162461bcd60e51b8152600401610c2f90612753565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8e57600080fd5b505afa158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190612533565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561100e57600080fd5b505afa158015611022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110469190612533565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561108c57600080fd5b505afa1580156110a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c49190612533565b91506001600160a01b03821661124857806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190612533565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561118d57600080fd5b505afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c59190612533565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112459190612533565b91505b601c80546001600160a01b03199081166001600160a01b038581169182178455601b8054909316948116949094179091556000908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b6000546001600160a01b031633146112e15760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b0381166000908152600d602052604090205460ff1615611323576001600160a01b03166000908152600d60205260409020805460ff19169055565b6001600160a01b0381166000908152600d60205260409020805460ff191660011790555b50565b6000546001600160a01b031633146113745760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113c95760405162461bcd60e51b8152600401610c2f90612753565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114155760405162461bcd60e51b8152600401610c2f90612753565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060048054610b6b90612853565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610c2f90612753565b601082905560118190556114b2828261185b565b6015555050565b6000610bfb3384610d21856040518060600160405280602581526020016128f0602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190611e0d565b6000546001600160a01b031633146115325760405162461bcd60e51b8152600401610c2f90612753565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000610d263384846119de565b6000546001600160a01b031633146115875760405162461bcd60e51b8152600401610c2f90612753565b600e829055600f81905561159b828261185b565b6014555050565b6000546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610c2f90612753565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061161990831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461164e5760405162461bcd60e51b8152600401610c2f90612753565b601855565b6000546001600160a01b0316331461167d5760405162461bcd60e51b8152600401610c2f90612753565b60128290556013819055611691828261185b565b6016555050565b6000546001600160a01b031633146116c25760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117175760405162461bcd60e51b8152600401610c2f90612753565b601955565b6000546001600160a01b031633146117465760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b0381166117ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118305760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60008061186883856127e5565b905083811015610d2a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c2f565b6001600160a01b03831661191c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c2f565b6001600160a01b03821661197d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c2f565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611a445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c2f565b6001600160a01b038316611aa65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c2f565b6001600160a01b0384166000908152600d602052604090205460ff1615611b005760405162461bcd60e51b815260206004820152600e60248201526d1858d8dbdd5b9d081a5cc8189bdd60921b6044820152606401610c2f565b601c54600160a01b900460ff1615611b2457611b1d848484611e89565b9050610d2a565b6001600160a01b0384166000908152600b602052604090205460ff16158015611b6657506001600160a01b0383166000908152600b602052604090205460ff16155b15611bce57601854821115611bce5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c2f565b30600090815260076020526040902054601a5481108015908190611bfc5750601c54600160a01b900460ff16155b8015611c2157506001600160a01b0386166000908152600c602052604090205460ff16155b8015611c365750601c54600160a81b900460ff165b15611c5c57601c54600160b01b900460ff1615611c5357601a5491505b611c5c82611f6f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260079091529190912054611cae918690611e0d565b6001600160a01b038716600090815260076020908152604080832093909355600990529081205460ff1680611cfb57506001600160a01b03861660009081526009602052604090205460ff165b611d0f57611d0a878787612066565b611d11565b845b601c54909150600160b81b900460ff168015611d4657506001600160a01b0386166000908152600a602052604090205460ff16155b15611d8257601954611d7782611d71896001600160a01b031660009081526007602052604090205490565b9061185b565b1115611d8257600080fd5b6001600160a01b038616600090815260076020526040902054611da5908261185b565b6001600160a01b0380881660008181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df99085815260200190565b60405180910390a360019350505050610d2a565b60008184841115611e315760405162461bcd60e51b8152600401610c2f9190612700565b506000611e3e848661283c565b95945050505050565b6000610d2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611eda918490611e0d565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611f09908361185b565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f5d9086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b179055601654601254600091611fa591600291611f9f918290879061216c565b906121eb565b90506000611fb38383611e47565b9050611fbe8161222d565b6012544790600090611fde90611fd59060026121eb565b60165490611e47565b905060006120006002611f9f84611f9f6012548861216c90919063ffffffff16565b9050600061200e8483611e47565b90508015612031576005546120319061010090046001600160a01b0316826123eb565b6000821180156120415750600086115b15612050576120508683612426565b5050601c805460ff60a01b191690555050505050565b6001600160a01b0383166000908152600c6020526040812054819060ff16156120aa576120a36064611f9f6014548661216c90919063ffffffff16565b90506120e8565b6001600160a01b0384166000908152600c602052604090205460ff16156120e8576120e56064611f9f6015548661216c90919063ffffffff16565b90505b80156121625730600090815260076020526040902054612108908261185b565b30600081815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121599085815260200190565b60405180910390a35b611e3e8382611e47565b60008261217b57506000610bff565b6000612187838561281d565b90508261219485836127fd565b14610d2a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c2f565b6000610d2a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124e9565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061227057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122c457600080fd5b505afa1580156122d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fc9190612533565b8160018151811061231d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601b5461234391309116846118ba565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061237c9085906000908690309042906004016127a9565b600060405180830381600087803b15801561239657600080fd5b505af11580156123aa573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516123df929190612788565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612421573d6000803e3d6000fd5b505050565b601b5461243e9030906001600160a01b0316846118ba565b601b5460065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b1580156124a957600080fd5b505af11580156124bd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124e29190612690565b5050505050565b6000818361250a5760405162461bcd60e51b8152600401610c2f9190612700565b506000611e3e84866127fd565b600060208284031215612528578081fd5b8135610d2a816128a4565b600060208284031215612544578081fd5b8151610d2a816128a4565b60008060408385031215612561578081fd5b823561256c816128a4565b9150602083013561257c816128a4565b809150509250929050565b60008060006060848603121561259b578081fd5b83356125a6816128a4565b925060208401356125b6816128a4565b929592945050506040919091013590565b600080604083850312156125d9578182fd5b82356125e4816128a4565b9150602083013561257c816128b9565b60008060408385031215612606578182fd5b8235612611816128a4565b946020939093013593505050565b600060208284031215612630578081fd5b8135610d2a816128b9565b60006020828403121561264c578081fd5b8151610d2a816128b9565b600060208284031215612668578081fd5b5035919050565b60008060408385031215612681578182fd5b50508035926020909101359150565b6000806000606084860312156126a4578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126f55781516001600160a01b0316875295820195908201906001016126d0565b509495945050505050565b6000602080835283518082850152825b8181101561272c57858101830151858201604001528201612710565b8181111561273d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006127a160408301846126bd565b949350505050565b85815284602082015260a0604082015260006127c860a08301866126bd565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156127f8576127f861288e565b500190565b60008261281857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156128375761283761288e565b500290565b60008282101561284e5761284e61288e565b500390565b600181811c9082168061286757607f821691505b6020821081141561288857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461134757600080fd5b801515811461134757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f5691561c53cb64883f372cec7ee299392aeeffcd173a864944386dca7630d5c64736f6c63430008040033
Deployed Bytecode
0x60806040526004361061039b5760003560e01c80638b42507f116101dc578063c816841b11610102578063ec28438a116100a0578063f1d5f5171161006f578063f1d5f51714610adb578063f2fde38b14610afb578063f84ba65d14610b1b578063f872858a14610b3b57600080fd5b8063ec28438a14610a65578063eea5b63f14610a85578063ef422a1814610aa5578063f0cd1dac14610ac557600080fd5b8063d158272d116100dc578063d158272d146109c3578063da00097d146109e8578063dc44b6a014610a09578063dd62ed3e14610a1f57600080fd5b8063c816841b1461095d578063c86079521461097d578063c867d60b1461099357600080fd5b8063a08e671f1161017a578063aa35822c11610149578063aa35822c146108d7578063bdfc2990146108f7578063c49b9a8014610927578063c5d241891461094757600080fd5b8063a08e671f14610861578063a457c2d714610877578063a5d69d1f14610897578063a9059cbb146108b757600080fd5b8063914eb66a116101b6578063914eb66a1461080257806395d89b41146108175780639df8131f1461082c578063a073d37f1461084c57600080fd5b80638b42507f146107945780638bc6f3a8146107c45780638da5cb5b146107e457600080fd5b80634a74bb02116102c157806361a23c691161025f578063807c2d9c1161022e578063807c2d9c1461073257806382eefb4314610748578063844d591c1461075e57806388790a681461077e57600080fd5b806361a23c69146106b057806361ced01d146106c657806370a08231146106e65780637d1db4a51461071c57600080fd5b8063557ed1ba1161029b578063557ed1ba1461064757806357a5802f1461065a5780635881f3ef146106705780635c5ba4481461069057600080fd5b80634a74bb02146105d65780634cb80fd5146105f75780635342acb41461061757600080fd5b80632563ae831161033957806333f3d6281161030857806333f3d6281461054657806339509351146105665780633b97084a146105865780633ecad271146105a657600080fd5b80632563ae83146104bb57806327c8f835146104db5780632b112e491461050f578063313ce5671461052457600080fd5b80631694505e116103755780631694505e1461042457806318160ddd1461045c5780632198cf6c1461047b57806323b872dd1461049b57600080fd5b806306fdde03146103a7578063095ea7b3146103d25780630b3032061461040257600080fd5b366103a257005b600080fd5b3480156103b357600080fd5b506103bc610b5c565b6040516103c99190612700565b60405180910390f35b3480156103de57600080fd5b506103f26103ed3660046125f4565b610bee565b60405190151581526020016103c9565b34801561040e57600080fd5b5061042261041d366004612517565b610c05565b005b34801561043057600080fd5b50601b54610444906001600160a01b031681565b6040516001600160a01b0390911681526020016103c9565b34801561046857600080fd5b506017545b6040519081526020016103c9565b34801561048757600080fd5b506104226104963660046125c7565b610c71565b3480156104a757600080fd5b506103f26104b6366004612587565b610cc6565b3480156104c757600080fd5b506104226104d636600461261f565b610d31565b3480156104e757600080fd5b506104447f000000000000000000000000000000000000000000000000000000000000dead81565b34801561051b57600080fd5b5061046d610d79565b34801561053057600080fd5b5060055460405160ff90911681526020016103c9565b34801561055257600080fd5b506103f26105613660046125f4565b610dc3565b34801561057257600080fd5b506103f26105813660046125f4565b610e6e565b34801561059257600080fd5b506104226105a1366004612657565b610ea4565b3480156105b257600080fd5b506103f26105c1366004612517565b600c6020526000908152604090205460ff1681565b3480156105e257600080fd5b50601c546103f290600160a81b900460ff1681565b34801561060357600080fd5b50610422610612366004612517565b610ed3565b34801561062357600080fd5b506103f2610632366004612517565b60096020526000908152604090205460ff1681565b34801561065357600080fd5b504261046d565b34801561066657600080fd5b5061046d60125481565b34801561067c57600080fd5b5061044461068b366004612517565b610f25565b34801561069c57600080fd5b506104226106ab366004612517565b6112b7565b3480156106bc57600080fd5b5061046d60135481565b3480156106d257600080fd5b50600654610444906001600160a01b031681565b3480156106f257600080fd5b5061046d610701366004612517565b6001600160a01b031660009081526007602052604090205490565b34801561072857600080fd5b5061046d60185481565b34801561073e57600080fd5b5061046d60195481565b34801561075457600080fd5b5061046d60155481565b34801561076a57600080fd5b506104226107793660046125c7565b61134a565b34801561078a57600080fd5b5061046d60105481565b3480156107a057600080fd5b506103f26107af366004612517565b600b6020526000908152604090205460ff1681565b3480156107d057600080fd5b506104226107df366004612517565b61139f565b3480156107f057600080fd5b506000546001600160a01b0316610444565b34801561080e57600080fd5b506104226113eb565b34801561082357600080fd5b506103bc611465565b34801561083857600080fd5b5061042261084736600461266f565b611474565b34801561085857600080fd5b50601a5461046d565b34801561086d57600080fd5b5061046d60165481565b34801561088357600080fd5b506103f26108923660046125f4565b6114b9565b3480156108a357600080fd5b506104226108b236600461261f565b611508565b3480156108c357600080fd5b506103f26108d23660046125f4565b611550565b3480156108e357600080fd5b506104226108f236600461266f565b61155d565b34801561090357600080fd5b506103f2610912366004612517565b600d6020526000908152604090205460ff1681565b34801561093357600080fd5b5061042261094236600461261f565b6115a2565b34801561095357600080fd5b5061046d600f5481565b34801561096957600080fd5b50601c54610444906001600160a01b031681565b34801561098957600080fd5b5061046d60115481565b34801561099f57600080fd5b506103f26109ae366004612517565b600a6020526000908152604090205460ff1681565b3480156109cf57600080fd5b506005546104449061010090046001600160a01b031681565b3480156109f457600080fd5b50601c546103f290600160b01b900460ff1681565b348015610a1557600080fd5b5061046d600e5481565b348015610a2b57600080fd5b5061046d610a3a36600461254f565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a7157600080fd5b50610422610a80366004612657565b611624565b348015610a9157600080fd5b50610422610aa036600461266f565b611653565b348015610ab157600080fd5b50610422610ac03660046125c7565b611698565b348015610ad157600080fd5b5061046d60145481565b348015610ae757600080fd5b50610422610af6366004612657565b6116ed565b348015610b0757600080fd5b50610422610b16366004612517565b61171c565b348015610b2757600080fd5b50610422610b363660046125c7565b611806565b348015610b4757600080fd5b50601c546103f290600160b81b900460ff1681565b606060038054610b6b90612853565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9790612853565b8015610be45780601f10610bb957610100808354040283529160200191610be4565b820191906000526020600020905b815481529060010190602001808311610bc757829003601f168201915b5050505050905090565b6000610bfb3384846118ba565b5060015b92915050565b6000546001600160a01b03163314610c385760405162461bcd60e51b8152600401610c2f90612753565b60405180910390fd5b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610c6d573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610c9b5760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610cd38484846119de565b50610d268433610d21856040518060600160405280602881526020016128c8602891396001600160a01b038a1660009081526008602090815260408083203384529091529020549190611e0d565b6118ba565b5060015b9392505050565b6000546001600160a01b03163314610d5b5760405162461bcd60e51b8152600401610c2f90612753565b601c8054911515600160b81b0260ff60b81b19909216919091179055565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260076020526040812054601754610dbe91611e47565b905090565b600080546001600160a01b03163314610dee5760405162461bcd60e51b8152600401610c2f90612753565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610e3657600080fd5b505af1158015610e4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2a919061263b565b3360008181526008602090815260408083206001600160a01b03871684529091528120549091610bfb918590610d21908661185b565b6000546001600160a01b03163314610ece5760405162461bcd60e51b8152600401610c2f90612753565b601a55565b6000546001600160a01b03163314610efd5760405162461bcd60e51b8152600401610c2f90612753565b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610f505760405162461bcd60e51b8152600401610c2f90612753565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8e57600080fd5b505afa158015610fa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc69190612533565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561100e57600080fd5b505afa158015611022573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110469190612533565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b15801561108c57600080fd5b505afa1580156110a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c49190612533565b91506001600160a01b03821661124857806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190612533565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561118d57600080fd5b505afa1580156111a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c59190612533565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112459190612533565b91505b601c80546001600160a01b03199081166001600160a01b038581169182178455601b8054909316948116949094179091556000908152600a60209081526040808320805460ff19908116600190811790925594549095168352600c909152902080549091169091179055919050565b6000546001600160a01b031633146112e15760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b0381166000908152600d602052604090205460ff1615611323576001600160a01b03166000908152600d60205260409020805460ff19169055565b6001600160a01b0381166000908152600d60205260409020805460ff191660011790555b50565b6000546001600160a01b031633146113745760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146113c95760405162461bcd60e51b8152600401610c2f90612753565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146114155760405162461bcd60e51b8152600401610c2f90612753565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b606060048054610b6b90612853565b6000546001600160a01b0316331461149e5760405162461bcd60e51b8152600401610c2f90612753565b601082905560118190556114b2828261185b565b6015555050565b6000610bfb3384610d21856040518060600160405280602581526020016128f0602591393360009081526008602090815260408083206001600160a01b038d1684529091529020549190611e0d565b6000546001600160a01b031633146115325760405162461bcd60e51b8152600401610c2f90612753565b601c8054911515600160b01b0260ff60b01b19909216919091179055565b6000610d263384846119de565b6000546001600160a01b031633146115875760405162461bcd60e51b8152600401610c2f90612753565b600e829055600f81905561159b828261185b565b6014555050565b6000546001600160a01b031633146115cc5760405162461bcd60e51b8152600401610c2f90612753565b601c8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061161990831515815260200190565b60405180910390a150565b6000546001600160a01b0316331461164e5760405162461bcd60e51b8152600401610c2f90612753565b601855565b6000546001600160a01b0316331461167d5760405162461bcd60e51b8152600401610c2f90612753565b60128290556013819055611691828261185b565b6016555050565b6000546001600160a01b031633146116c25760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146117175760405162461bcd60e51b8152600401610c2f90612753565b601955565b6000546001600160a01b031633146117465760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b0381166117ab5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c2f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146118305760405162461bcd60e51b8152600401610c2f90612753565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b60008061186883856127e5565b905083811015610d2a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c2f565b6001600160a01b03831661191c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c2f565b6001600160a01b03821661197d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c2f565b6001600160a01b0383811660008181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b038416611a445760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c2f565b6001600160a01b038316611aa65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c2f565b6001600160a01b0384166000908152600d602052604090205460ff1615611b005760405162461bcd60e51b815260206004820152600e60248201526d1858d8dbdd5b9d081a5cc8189bdd60921b6044820152606401610c2f565b601c54600160a01b900460ff1615611b2457611b1d848484611e89565b9050610d2a565b6001600160a01b0384166000908152600b602052604090205460ff16158015611b6657506001600160a01b0383166000908152600b602052604090205460ff16155b15611bce57601854821115611bce5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610c2f565b30600090815260076020526040902054601a5481108015908190611bfc5750601c54600160a01b900460ff16155b8015611c2157506001600160a01b0386166000908152600c602052604090205460ff16155b8015611c365750601c54600160a81b900460ff165b15611c5c57601c54600160b01b900460ff1615611c5357601a5491505b611c5c82611f6f565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260079091529190912054611cae918690611e0d565b6001600160a01b038716600090815260076020908152604080832093909355600990529081205460ff1680611cfb57506001600160a01b03861660009081526009602052604090205460ff165b611d0f57611d0a878787612066565b611d11565b845b601c54909150600160b81b900460ff168015611d4657506001600160a01b0386166000908152600a602052604090205460ff16155b15611d8257601954611d7782611d71896001600160a01b031660009081526007602052604090205490565b9061185b565b1115611d8257600080fd5b6001600160a01b038616600090815260076020526040902054611da5908261185b565b6001600160a01b0380881660008181526007602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611df99085815260200190565b60405180910390a360019350505050610d2a565b60008184841115611e315760405162461bcd60e51b8152600401610c2f9190612700565b506000611e3e848661283c565b95945050505050565b6000610d2a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e0d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054611eda918490611e0d565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611f09908361185b565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f5d9086815260200190565b60405180910390a35060019392505050565b601c805460ff60a01b1916600160a01b179055601654601254600091611fa591600291611f9f918290879061216c565b906121eb565b90506000611fb38383611e47565b9050611fbe8161222d565b6012544790600090611fde90611fd59060026121eb565b60165490611e47565b905060006120006002611f9f84611f9f6012548861216c90919063ffffffff16565b9050600061200e8483611e47565b90508015612031576005546120319061010090046001600160a01b0316826123eb565b6000821180156120415750600086115b15612050576120508683612426565b5050601c805460ff60a01b191690555050505050565b6001600160a01b0383166000908152600c6020526040812054819060ff16156120aa576120a36064611f9f6014548661216c90919063ffffffff16565b90506120e8565b6001600160a01b0384166000908152600c602052604090205460ff16156120e8576120e56064611f9f6015548661216c90919063ffffffff16565b90505b80156121625730600090815260076020526040902054612108908261185b565b30600081815260076020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906121599085815260200190565b60405180910390a35b611e3e8382611e47565b60008261217b57506000610bff565b6000612187838561281d565b90508261219485836127fd565b14610d2a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c2f565b6000610d2a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124e9565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061227057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601b54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156122c457600080fd5b505afa1580156122d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fc9190612533565b8160018151811061231d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601b5461234391309116846118ba565b601b5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061237c9085906000908690309042906004016127a9565b600060405180830381600087803b15801561239657600080fd5b505af11580156123aa573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516123df929190612788565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612421573d6000803e3d6000fd5b505050565b601b5461243e9030906001600160a01b0316846118ba565b601b5460065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b1580156124a957600080fd5b505af11580156124bd573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124e29190612690565b5050505050565b6000818361250a5760405162461bcd60e51b8152600401610c2f9190612700565b506000611e3e84866127fd565b600060208284031215612528578081fd5b8135610d2a816128a4565b600060208284031215612544578081fd5b8151610d2a816128a4565b60008060408385031215612561578081fd5b823561256c816128a4565b9150602083013561257c816128a4565b809150509250929050565b60008060006060848603121561259b578081fd5b83356125a6816128a4565b925060208401356125b6816128a4565b929592945050506040919091013590565b600080604083850312156125d9578182fd5b82356125e4816128a4565b9150602083013561257c816128b9565b60008060408385031215612606578182fd5b8235612611816128a4565b946020939093013593505050565b600060208284031215612630578081fd5b8135610d2a816128b9565b60006020828403121561264c578081fd5b8151610d2a816128b9565b600060208284031215612668578081fd5b5035919050565b60008060408385031215612681578182fd5b50508035926020909101359150565b6000806000606084860312156126a4578283fd5b8351925060208401519150604084015190509250925092565b6000815180845260208085019450808401835b838110156126f55781516001600160a01b0316875295820195908201906001016126d0565b509495945050505050565b6000602080835283518082850152825b8181101561272c57858101830151858201604001528201612710565b8181111561273d5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006127a160408301846126bd565b949350505050565b85815284602082015260a0604082015260006127c860a08301866126bd565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156127f8576127f861288e565b500190565b60008261281857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156128375761283761288e565b500290565b60008282101561284e5761284e61288e565b500390565b600181811c9082168061286757607f821691505b6020821081141561288857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461134757600080fd5b801515811461134757600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f5691561c53cb64883f372cec7ee299392aeeffcd173a864944386dca7630d5c64736f6c63430008040033
Deployed Bytecode Sourcemap
14370:14687:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17856:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19150:161;;;;;;;;;;-1:-1:-1;19150:161:0;;;;;:::i;:::-;;:::i;:::-;;;5981:14:1;;5974:22;5956:41;;5944:2;5929:18;19150:161:0;5911:92:1;19664:127:0;;;;;;;;;;-1:-1:-1;19664:127:0;;;;;:::i;:::-;;:::i;:::-;;15981:41;;;;;;;;;;-1:-1:-1;15981:41:0;;;;-1:-1:-1;;;;;15981:41:0;;;;;;-1:-1:-1;;;;;4340:32:1;;;4322:51;;4310:2;4295:18;15981:41:0;4277:102:1;18133:100:0;;;;;;;;;;-1:-1:-1;18213:12:0;;18133:100;;;10893:25:1;;;10881:2;10866:18;18133:100:0;10848:76:1;21472:135:0;;;;;;;;;;-1:-1:-1;21472:135:0;;;;;:::i;:::-;;:::i;23801:315::-;;;;;;;;;;-1:-1:-1;23801:315:0;;;;;:::i;:::-;;:::i;21350:114::-;;;;;;;;;;-1:-1:-1;21350:114:0;;;;;:::i;:::-;;:::i;14820:81::-;;;;;;;;;;;;;;;22451:128;;;;;;;;;;;;;:::i;18042:83::-;;;;;;;;;;-1:-1:-1;18108:9:0;;18042:83;;18108:9;;;;11995:36:1;;11983:2;11968:18;18042:83:0;11950:87:1;19799:174:0;;;;;;;;;;-1:-1:-1;19799:174:0;;;;;:::i;:::-;;:::i;18519:218::-;;;;;;;;;;-1:-1:-1;18519:218:0;;;;;:::i;:::-;;:::i;21725:124::-;;;;;;;;;;-1:-1:-1;21725:124:0;;;;;:::i;:::-;;:::i;15204:45::-;;;;;;;;;;-1:-1:-1;15204:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16092:40;;;;;;;;;;-1:-1:-1;16092:40:0;;;;-1:-1:-1;;;16092:40:0;;;;;;21857:139;;;;;;;;;;-1:-1:-1;21857:139:0;;;;;:::i;:::-;;:::i;15033:50::-;;;;;;;;;;-1:-1:-1;15033:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6483:90;;;;;;;;;;-1:-1:-1;6550:15:0;6483:90;;15485:34;;;;;;;;;;;;;;;;22721:802;;;;;;;;;;-1:-1:-1;22721:802:0;;;;;:::i;:::-;;:::i;28214:230::-;;;;;;;;;;-1:-1:-1;28214:230:0;;;;;:::i;:::-;;:::i;15526:34::-;;;;;;;;;;;;;;;;14718:93;;;;;;;;;;-1:-1:-1;14718:93:0;;;;-1:-1:-1;;;;;14718:93:0;;;18241:119;;;;;;;;;;-1:-1:-1;18241:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;18334:18:0;18307:7;18334:18;;;:9;:18;;;;;;;18241:119;15774:59;;;;;;;;;;;;;;;;15840;;;;;;;;;;;;;;;;15612:37;;;;;;;;;;;;;;;;19981:129;;;;;;;;;;-1:-1:-1;19981:129:0;;;;;:::i;:::-;;:::i;15397:36::-;;;;;;;;;;;;;;;;15149:48;;;;;;;;;;-1:-1:-1;15149:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22004:127;;;;;;;;;;-1:-1:-1;22004:127:0;;;;;:::i;:::-;;:::i;5782:79::-;;;;;;;;;;-1:-1:-1;5820:7:0;5847:6;-1:-1:-1;;;;;5847:6:0;5782:79;;5996:227;;;;;;;;;;;;;:::i;17947:87::-;;;;;;;;;;;;;:::i;20665:266::-;;;;;;;;;;-1:-1:-1;20665:266:0;;;;;:::i;:::-;;:::i;19022:120::-;;;;;;;;;;-1:-1:-1;19111:23:0;;19022:120;;15656:43;;;;;;;;;;;;;;;;18745:269;;;;;;;;;;-1:-1:-1;18745:269:0;;;;;:::i;:::-;;:::i;22318:125::-;;;;;;;;;;-1:-1:-1;22318:125:0;;;;;:::i;:::-;;:::i;23624:169::-;;;;;;;;;;-1:-1:-1;23624:169:0;;;;;:::i;:::-;;:::i;20396:261::-;;;;;;;;;;-1:-1:-1;20396:261:0;;;;;:::i;:::-;;:::i;15256:46::-;;;;;;;;;;-1:-1:-1;15256:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22139:171;;;;;;;;;;-1:-1:-1;22139:171:0;;;;;:::i;:::-;;:::i;15353:35::-;;;;;;;;;;;;;;;;16029:26;;;;;;;;;;-1:-1:-1;16029:26:0;;;;-1:-1:-1;;;;;16029:26:0;;;15440:36;;;;;;;;;;;;;;;;15090:52;;;;;;;;;;-1:-1:-1;15090:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14612:99;;;;;;;;;;-1:-1:-1;14612:99:0;;;;;;;-1:-1:-1;;;;;14612:99:0;;;16139:45;;;;;;;;;;-1:-1:-1;16139:45:0;;;;-1:-1:-1;;;16139:45:0;;;;;;15311:35;;;;;;;;;;;;;;;;18368:143;;;;;;;;;;-1:-1:-1;18368:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18476:18:0;;;18449:7;18476:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18368:143;21231:111;;;;;;;;;;-1:-1:-1;21231:111:0;;;;;:::i;:::-;;:::i;20939:284::-;;;;;;;;;;-1:-1:-1;20939:284:0;;;;;:::i;:::-;;:::i;20253:135::-;;;;;;;;;;-1:-1:-1;20253:135:0;;;;;:::i;:::-;;:::i;15569:36::-;;;;;;;;;;;;;;;;21615:102;;;;;;;;;;-1:-1:-1;21615:102:0;;;;;:::i;:::-;;:::i;6231:244::-;;;;;;;;;;-1:-1:-1;6231:244:0;;;;;:::i;:::-;;:::i;20118:127::-;;;;;;;;;;-1:-1:-1;20118:127:0;;;;;:::i;:::-;;:::i;16191:35::-;;;;;;;;;;-1:-1:-1;16191:35:0;;;;-1:-1:-1;;;16191:35:0;;;;;;17856:83;17893:13;17926:5;17919:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17856:83;:::o;19150:161::-;19225:4;19242:39;198:10;19265:7;19274:6;19242:8;:39::i;:::-;-1:-1:-1;19299:4:0;19150:161;;;;;:::o;19664:127::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;;;;;;;;;19740:43:::1;::::0;-1:-1:-1;;;;;19740:20:0;::::1;::::0;19761:21:::1;19740:43:::0;::::1;;;::::0;::::1;::::0;;;19761:21;19740:20;:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;19664:127:::0;:::o;21472:135::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21563:27:0;;;::::1;;::::0;;;:19:::1;:27;::::0;;;;:36;;-1:-1:-1;;21563:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21472:135::o;23801:315::-;23899:4;23918:36;23928:6;23936:9;23947:6;23918:9;:36::i;:::-;-1:-1:-1;23965:121:0;23974:6;198:10;23996:89;24034:6;23996:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23996:19:0;;;;;;:11;:19;;;;;;;;198:10;23996:33;;;;;;;;;;:37;:89::i;:::-;23965:8;:121::i;:::-;-1:-1:-1;24104:4:0;23801:315;;;;;;:::o;21350:114::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;21429:16:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;21429:27:0::1;-1:-1:-1::0;;;;21429:27:0;;::::1;::::0;;;::::1;::::0;;21350:114::o;22451:128::-;22558:11;-1:-1:-1;;;;;18334:18:0;22504:7;18334:18;;;:9;:18;;;;;;22531:12;;:40;;:16;:40::i;:::-;22524:47;;22451:128;:::o;19799:174::-;19884:12;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;19916:49:::1;::::0;-1:-1:-1;;;19916:49:0;;19946:10:::1;19916:49;::::0;::::1;5091:51:1::0;5158:18;;;5151:34;;;-1:-1:-1;;;;;19916:29:0;::::1;::::0;::::1;::::0;5064:18:1;;19916:49:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;18519:218::-:0;198:10;18607:4;18656:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18656:34:0;;;;;;;;;;18607:4;;18624:83;;18647:7;;18656:50;;18695:10;18656:38;:50::i;21725:124::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;21807:23:::1;:34:::0;21725:124::o;21857:139::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;21944:22:::1;:44:::0;;-1:-1:-1;;;;;21944:44:0;;::::1;;;-1:-1:-1::0;;;;;;21944:44:0;;::::1;::::0;;;::::1;::::0;;21857:139::o;22721:802::-;22801:22;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;22838:35:::1;22895:16;22838:74;;22960:16;-1:-1:-1::0;;;;;22960:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22942:53:0::1;;23004:4;23011:16;-1:-1:-1::0;;;;;23011:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22942:93;::::0;-1:-1:-1;;;;;;22942:93:0::1;::::0;;;;;;-1:-1:-1;;;;;4838:15:1;;;22942:93:0::1;::::0;::::1;4820:34:1::0;4890:15;;4870:18;;;4863:43;4755:18;;22942:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22925:110:::0;-1:-1:-1;;;;;;23051:28:0;::::1;23048:221;;23165:16;-1:-1:-1::0;;;;;23165:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23147:70:0::1;;23226:4;23233:16;-1:-1:-1::0;;;;;23233:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23147:110;::::0;-1:-1:-1;;;;;;23147:110:0::1;::::0;;;;;;-1:-1:-1;;;;;4838:15:1;;;23147:110:0::1;::::0;::::1;4820:34:1::0;4890:15;;4870:18;;;4863:43;4755:18;;23147:110:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23130:127;;23048:221;23281:11;:28:::0;;-1:-1:-1;;;;;;23281:28:0;;::::1;-1:-1:-1::0;;;;;23281:28:0;;::::1;::::0;;::::1;::::0;;23343:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;23415:41:0;;;:19:::1;:41;::::0;;;;;;;:48;;-1:-1:-1;;23415:48:0;;::::1;-1:-1:-1::0;23415:48:0;;::::1;::::0;;;23495:11;;;;::::1;23474:34:::0;;:12:::1;:34:::0;;;;;:41;;;;::::1;::::0;;::::1;::::0;;23281:28;23295:14;-1:-1:-1;22721:802:0:o;28214:230::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;28288:24:0;::::1;;::::0;;;:14:::1;:24;::::0;;;;;::::1;;28284:153;;;-1:-1:-1::0;;;;;28329:24:0::1;28356:5;28329:24:::0;;;:14:::1;:24;::::0;;;;:32;;-1:-1:-1;;28329:32:0::1;::::0;;28214:230::o;28284:153::-:1;-1:-1:-1::0;;;;;28394:24:0;::::1;;::::0;;;:14:::1;:24;::::0;;;;:31;;-1:-1:-1;;28394:31:0::1;28421:4;28394:31;::::0;;28284:153:::1;28214:230:::0;:::o;19981:129::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20070:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;20070:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19981:129::o;22004:127::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;22085:16:::1;:38:::0;;-1:-1:-1;;;;;;22085:38:0::1;-1:-1:-1::0;;;;;22085:38:0;;;::::1;::::0;;;::::1;::::0;;22004:127::o;5996:227::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;6084:6:::1;::::0;;6063:81:::1;::::0;6100:42:::1;::::0;-1:-1:-1;;;;;6084:6:0;;::::1;::::0;6063:81:::1;::::0;::::1;6155:6;:60:::0;;-1:-1:-1;;;;;;6155:60:0::1;6172:42;6155:60;::::0;;5996:227::o;17947:87::-;17986:13;18019:7;18012:14;;;;;:::i;20665:266::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;20768:17:::1;:35:::0;;;20814:17:::1;:35:::0;;;20883:40:::1;20788:15:::0;20834;20883:21:::1;:40::i;:::-;20862:18;:61:::0;-1:-1:-1;;20665:266:0:o;18745:269::-;18838:4;18855:129;198:10;18878:7;18887:96;18926:15;18887:96;;;;;;;;;;;;;;;;;198:10;18887:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18887:34:0;;;;;;;;;;;;:38;:96::i;22318:125::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;22399:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;22399:36:0::1;-1:-1:-1::0;;;;22399:36:0;;::::1;::::0;;;::::1;::::0;;22318:125::o;23624:169::-;23702:4;23721:42;198:10;23745:9;23756:6;23721:9;:42::i;20396:261::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;20499:16:::1;:34:::0;;;20544:16:::1;:34:::0;;;20611:38:::1;20518:15:::0;20563;20611:20:::1;:38::i;:::-;20591:17;:58:::0;-1:-1:-1;;20396:261:0:o;22139:171::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;22216:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;22216:32:0::1;-1:-1:-1::0;;;;22216:32:0;;::::1;;::::0;;22264:38:::1;::::0;::::1;::::0;::::1;::::0;22240:8;5981:14:1;5974:22;5956:41;;5944:2;5929:18;;5911:92;22264:38:0::1;;;;;;;;22139:171:::0;:::o;21231:111::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;21308:12:::1;:26:::0;21231:111::o;20939:284::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;21058:15:::1;:35:::0;;;21104:15:::1;:35:::0;;;21179:36:::1;21076:17:::0;21122;21179:19:::1;:36::i;:::-;21152:24;:63:::0;-1:-1:-1;;20939:284:0:o;20253:135::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20343:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;20343:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20253:135::o;21615:102::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;21687:10:::1;:22:::0;21615:102::o;6231:244::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6320:22:0;::::1;6312:73;;;::::0;-1:-1:-1;;;6312:73:0;;7800:2:1;6312:73:0::1;::::0;::::1;7782:21:1::0;7839:2;7819:18;;;7812:30;7878:34;7858:18;;;7851:62;-1:-1:-1;;;7929:18:1;;;7922:36;7975:19;;6312:73:0::1;7772:228:1::0;6312:73:0::1;6422:6;::::0;;6401:38:::1;::::0;-1:-1:-1;;;;;6401:38:0;;::::1;::::0;6422:6;::::1;::::0;6401:38:::1;::::0;::::1;6450:6;:17:::0;;-1:-1:-1;;;;;;6450:17:0::1;-1:-1:-1::0;;;;;6450:17:0;;;::::1;::::0;;;::::1;::::0;;6231:244::o;20118:127::-;5909:6;;-1:-1:-1;;;;;5909:6:0;198:10;5909:22;5901:67;;;;-1:-1:-1;;;5901:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20205:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;20205:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20118:127::o;1170:181::-;1228:7;;1260:5;1264:1;1260;:5;:::i;:::-;1248:17;;1289:1;1284;:6;;1276:46;;;;-1:-1:-1;;;1276:46:0;;8610:2:1;1276:46:0;;;8592:21:1;8649:2;8629:18;;;8622:30;8688:29;8668:18;;;8661:57;8735:18;;1276:46:0;8582:177:1;19319:337:0;-1:-1:-1;;;;;19412:19:0;;19404:68;;;;-1:-1:-1;;;19404:68:0;;10544:2:1;19404:68:0;;;10526:21:1;10583:2;10563:18;;;10556:30;10622:34;10602:18;;;10595:62;-1:-1:-1;;;10673:18:1;;;10666:34;10717:19;;19404:68:0;10516:226:1;19404:68:0;-1:-1:-1;;;;;19491:21:0;;19483:68;;;;-1:-1:-1;;;19483:68:0;;8207:2:1;19483:68:0;;;8189:21:1;8246:2;8226:18;;;8219:30;8285:34;8265:18;;;8258:62;-1:-1:-1;;;8336:18:1;;;8329:32;8378:19;;19483:68:0;8179:224:1;19483:68:0;-1:-1:-1;;;;;19564:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19616:32;;10893:25:1;;;19616:32:0;;10866:18:1;19616:32:0;;;;;;;19319:337;;;:::o;24124:1707::-;24211:4;-1:-1:-1;;;;;24238:20:0;;24230:70;;;;-1:-1:-1;;;24230:70:0;;10138:2:1;24230:70:0;;;10120:21:1;10177:2;10157:18;;;10150:30;10216:34;10196:18;;;10189:62;-1:-1:-1;;;10267:18:1;;;10260:35;10312:19;;24230:70:0;10110:227:1;24230:70:0;-1:-1:-1;;;;;24319:23:0;;24311:71;;;;-1:-1:-1;;;24311:71:0;;7053:2:1;24311:71:0;;;7035:21:1;7092:2;7072:18;;;7065:30;7131:34;7111:18;;;7104:62;-1:-1:-1;;;7182:18:1;;;7175:33;7225:19;;24311:71:0;7025:225:1;24311:71:0;-1:-1:-1;;;;;24402:22:0;;;;;;:14;:22;;;;;;;;24401:23;24393:50;;;;-1:-1:-1;;;24393:50:0;;7457:2:1;24393:50:0;;;7439:21:1;7496:2;7476:18;;;7469:30;-1:-1:-1;;;7515:18:1;;;7508:44;7569:18;;24393:50:0;7429:164:1;24393:50:0;24459:16;;-1:-1:-1;;;24459:16:0;;;;24456:1368;;;24508:41;24523:6;24531:9;24542:6;24508:14;:41::i;:::-;24501:48;;;;24456:1368;-1:-1:-1;;;;;24604:23:0;;;;;;:15;:23;;;;;;;;24603:24;:55;;;;-1:-1:-1;;;;;;24632:26:0;;;;;;:15;:26;;;;;;;;24631:27;24603:55;24600:170;;;24697:12;;24687:6;:22;;24679:75;;;;-1:-1:-1;;;24679:75:0;;8966:2:1;24679:75:0;;;8948:21:1;9005:2;8985:18;;;8978:30;9044:34;9024:18;;;9017:62;-1:-1:-1;;;9095:18:1;;;9088:38;9143:19;;24679:75:0;8938:230:1;24679:75:0;24835:4;24786:28;18334:18;;;:9;:18;;;;;;24911:23;;24887:47;;;;;;;24955:44;;-1:-1:-1;24983:16:0;;-1:-1:-1;;;24983:16:0;;;;24982:17;24955:44;:69;;;;-1:-1:-1;;;;;;25004:20:0;;;;;;:12;:20;;;;;;;;25003:21;24955:69;:94;;;;-1:-1:-1;25028:21:0;;-1:-1:-1;;;25028:21:0;;;;24955:94;24951:300;;;25086:25;;-1:-1:-1;;;25086:25:0;;;;25083:97;;;25157:23;;25134:46;;25083:97;25199:36;25214:20;25199:14;:36::i;:::-;25287:53;;;;;;;;;;;-1:-1:-1;;;25287:53:0;;;;;;;;-1:-1:-1;;;;;25287:17:0;;-1:-1:-1;25287:17:0;;;:9;:17;;;;;;;;:53;;25309:6;;25287:21;:53::i;:::-;-1:-1:-1;;;;;25267:17:0;;;;;;:9;:17;;;;;;;;:73;;;;25380:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;25409:28:0;;;;;;:17;:28;;;;;;;;25380:57;25379:118;;25463:34;25471:6;25479:9;25490:6;25463:7;:34::i;:::-;25379:118;;;25454:6;25379:118;25517:16;;25357:140;;-1:-1:-1;;;;25517:16:0;;;;:51;;;;-1:-1:-1;;;;;;25538:30:0;;;;;;:19;:30;;;;;;;;25537:31;25517:51;25514:133;;;25636:10;;25595:37;25620:11;25595:20;25605:9;-1:-1:-1;;;;;18334:18:0;18307:7;18334:18;;;:9;:18;;;;;;;18241:119;25595:20;:24;;:37::i;:::-;:51;;25587:60;;;;;;-1:-1:-1;;;;;25687:20:0;;;;;;:9;:20;;;;;;:37;;25712:11;25687:24;:37::i;:::-;-1:-1:-1;;;;;25664:20:0;;;;;;;:9;:20;;;;;;;:60;;;;25746:40;;;;;;;;;;25774:11;10893:25:1;;10881:2;10866:18;;10848:76;25746:40:0;;;;;;;;25808:4;25801:11;;;;;;;1503:192;1589:7;1625:12;1617:6;;;;1609:29;;;;-1:-1:-1;;;1609:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1649:9:0;1661:5;1665:1;1661;:5;:::i;:::-;1649:17;1503:192;-1:-1:-1;;;;;1503:192:0:o;1359:136::-;1417:7;1444:43;1448:1;1451;1444:43;;;;;;;;;;;;;;;;;:3;:43::i;25839:330::-;25969:53;;;;;;;;;;;-1:-1:-1;;;25969:53:0;;;;;;;;-1:-1:-1;;;;;25969:17:0;;25932:4;25969:17;;;:9;:17;;;;;;;:53;;25991:6;;25969:21;:53::i;:::-;-1:-1:-1;;;;;25949:17:0;;;;;;;:9;:17;;;;;;:73;;;;26056:20;;;;;;;:32;;26081:6;26056:24;:32::i;:::-;-1:-1:-1;;;;;26033:20:0;;;;;;;:9;:20;;;;;;;:55;;;;26104:35;;;;;;;;;;26132:6;10893:25:1;;10881:2;10866:18;;10848:76;26104:35:0;;;;;;;;-1:-1:-1;26157:4:0;25839:330;;;;;:::o;26177:829::-;16637:16;:23;;-1:-1:-1;;;;16637:23:0;-1:-1:-1;;;16637:23:0;;;26306:24:::1;::::0;26285:15:::1;::::0;16637:23;;26273:65:::1;::::0;26336:1:::1;::::0;26273:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;26251:87:::0;-1:-1:-1;26349:21:0::1;26373:24;:7:::0;26251:87;26373:11:::1;:24::i;:::-;26349:48;;26410:31;26427:13;26410:16;:31::i;:::-;26562:15;::::0;26477:21:::1;::::0;26452:22:::1;::::0;26533:52:::1;::::0;26562:22:::1;::::0;26582:1:::1;26562:19;:22::i;:::-;26533:24;::::0;;:28:::1;:52::i;:::-;26511:74;;26598:26;26627:59;26684:1;26627:52;26667:11;26627:35;26646:15;;26627:14;:18;;:35;;;;:::i;:59::-;26598:88:::0;-1:-1:-1;26697:26:0::1;26726:38;:14:::0;26598:88;26726:18:::1;:38::i;:::-;26697:67:::0;-1:-1:-1;26780:22:0;;26777:104:::1;;26838:22;::::0;26817:64:::1;::::0;26838:22:::1;::::0;::::1;-1:-1:-1::0;;;;;26838:22:0::1;26862:18:::0;26817:20:::1;:64::i;:::-;26918:1;26897:18;:22;:41;;;;;26937:1;26923:11;:15;26897:41;26894:104;;;26953:45;26966:11;26979:18;26953:12;:45::i;:::-;-1:-1:-1::0;;16683:16:0;:24;;-1:-1:-1;;;;16683:24:0;;;-1:-1:-1;;;;;26177:829:0:o;28454:598::-;-1:-1:-1;;;;;28599:20:0;;28540:7;28599:20;;;:12;:20;;;;;;28540:7;;28599:20;;28596:223;;;28648:38;28682:3;28648:29;28659:17;;28648:6;:10;;:29;;;;:::i;:38::-;28636:50;;28596:223;;;-1:-1:-1;;;;;28716:23:0;;;;;;:12;:23;;;;;;;;28713:106;;;28768:39;28803:3;28768:30;28779:18;;28768:6;:10;;:30;;;;:::i;:39::-;28756:51;;28713:106;28834:13;;28831:173;;28909:4;28891:24;;;;:9;:24;;;;;;:39;;28920:9;28891:28;:39::i;:::-;28882:4;28864:24;;;;:9;:24;;;;;;;:66;;;;28950:42;;-1:-1:-1;;;;;28950:42:0;;;;;;;28982:9;10893:25:1;;10881:2;10866:18;;10848:76;28950:42:0;;;;;;;;28831:173;29023:21;:6;29034:9;29023:10;:21::i;1703:250::-;1761:7;1785:6;1781:47;;-1:-1:-1;1815:1:0;1808:8;;1781:47;1840:9;1852:5;1856:1;1852;:5;:::i;:::-;1840:17;-1:-1:-1;1885:1:0;1876:5;1880:1;1840:17;1876:5;:::i;:::-;:10;1868:56;;;;-1:-1:-1;;;1868:56:0;;9375:2:1;1868:56:0;;;9357:21:1;9414:2;9394:18;;;9387:30;9453:34;9433:18;;;9426:62;-1:-1:-1;;;9504:18:1;;;9497:31;9545:19;;1868:56:0;9347:223:1;1961:132:0;2019:7;2046:39;2050:1;2053;2046:39;;;;;;;;;;;;;;;;;:3;:39::i;27014:658::-;27164:16;;;27178:1;27164:16;;;;;;;;27140:21;;27164:16;;;;;;;;;;-1:-1:-1;27164:16:0;27140:40;;27209:4;27191;27196:1;27191:7;;;;;;-1:-1:-1;;;27191:7:0;;;;;;;;;-1:-1:-1;;;;;27191:23:0;;;:7;;;;;;;;;;:23;;;;27235:15;;:22;;;-1:-1:-1;;;27235:22:0;;;;:15;;;;;:20;;:22;;;;;27191:7;;27235:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27225:4;27230:1;27225:7;;;;;;-1:-1:-1;;;27225:7:0;;;;;;;;;-1:-1:-1;;;;;27225:32:0;;;:7;;;;;;;;;:32;27302:15;;27270:62;;27287:4;;27302:15;27320:11;27270:8;:62::i;:::-;27371:15;;:240;;-1:-1:-1;;;27371:240:0;;-1:-1:-1;;;;;27371:15:0;;;;:66;;:240;;27452:11;;27371:15;;27522:4;;27549;;27585:15;;27371:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27629:35;27646:11;27659:4;27629:35;;;;;;;:::i;:::-;;;;;;;;27014:658;;:::o;22587:126::-;22679:26;;-1:-1:-1;;;;;22679:18:0;;;:26;;;;;22698:6;;22679:26;;;;22698:6;22679:18;:26;;;;;;;;;;;;;;;;;;;;;22587:126;;:::o;27680:522::-;27860:15;;27828:62;;27845:4;;-1:-1:-1;;;;;27860:15:0;27878:11;27828:8;:62::i;:::-;27933:15;;28137:16;;27933:261;;-1:-1:-1;;;27933:261:0;;28005:4;27933:261;;;5545:34:1;5595:18;;;5588:34;;;27933:15:0;5638:18:1;;;5631:34;;;5681:18;;;5674:34;-1:-1:-1;;;;;28137:16:0;;;5724:19:1;;;5717:44;28168:15:0;5777:19:1;;;5770:35;27933:15:0;;;:31;;27972:9;;5479:19:1;;27933:261:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27680:522;;:::o;2101:278::-;2187:7;2222:12;2215:5;2207:28;;;;-1:-1:-1;;;2207:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2246:9:0;2258:5;2262:1;2258;:5;:::i;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;812:398::-;880:6;888;941:2;929:9;920:7;916:23;912:32;909:2;;;962:6;954;947:22;909:2;1006:9;993:23;1025:31;1050:5;1025:31;:::i;:::-;1075:5;-1:-1:-1;1132:2:1;1117:18;;1104:32;1145:33;1104:32;1145:33;:::i;:::-;1197:7;1187:17;;;899:311;;;;;:::o;1215:466::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:2;;;1382:6;1374;1367:22;1329:2;1426:9;1413:23;1445:31;1470:5;1445:31;:::i;:::-;1495:5;-1:-1:-1;1552:2:1;1537:18;;1524:32;1565:33;1524:32;1565:33;:::i;:::-;1319:362;;1617:7;;-1:-1:-1;;;1671:2:1;1656:18;;;;1643:32;;1319:362::o;1686:392::-;1751:6;1759;1812:2;1800:9;1791:7;1787:23;1783:32;1780:2;;;1833:6;1825;1818:22;1780:2;1877:9;1864:23;1896:31;1921:5;1896:31;:::i;:::-;1946:5;-1:-1:-1;2003:2:1;1988:18;;1975:32;2016:30;1975:32;2016:30;:::i;2083:325::-;2151:6;2159;2212:2;2200:9;2191:7;2187:23;2183:32;2180:2;;;2233:6;2225;2218:22;2180:2;2277:9;2264:23;2296:31;2321:5;2296:31;:::i;:::-;2346:5;2398:2;2383:18;;;;2370:32;;-1:-1:-1;;;2170:238:1:o;2413:251::-;2469:6;2522:2;2510:9;2501:7;2497:23;2493:32;2490:2;;;2543:6;2535;2528:22;2490:2;2587:9;2574:23;2606:28;2628:5;2606:28;:::i;2669:255::-;2736:6;2789:2;2777:9;2768:7;2764:23;2760:32;2757:2;;;2810:6;2802;2795:22;2757:2;2847:9;2841:16;2866:28;2888:5;2866:28;:::i;2929:190::-;2988:6;3041:2;3029:9;3020:7;3016:23;3012:32;3009:2;;;3062:6;3054;3047:22;3009:2;-1:-1:-1;3090:23:1;;2999:120;-1:-1:-1;2999:120:1:o;3124:258::-;3192:6;3200;3253:2;3241:9;3232:7;3228:23;3224:32;3221:2;;;3274:6;3266;3259:22;3221:2;-1:-1:-1;;3302:23:1;;;3372:2;3357:18;;;3344:32;;-1:-1:-1;3211:171:1:o;3387:316::-;3475:6;3483;3491;3544:2;3532:9;3523:7;3519:23;3515:32;3512:2;;;3565:6;3557;3550:22;3512:2;3599:9;3593:16;3583:26;;3649:2;3638:9;3634:18;3628:25;3618:35;;3693:2;3682:9;3678:18;3672:25;3662:35;;3502:201;;;;;:::o;3708:463::-;3761:3;3799:5;3793:12;3826:6;3821:3;3814:19;3852:4;3881:2;3876:3;3872:12;3865:19;;3918:2;3911:5;3907:14;3939:3;3951:195;3965:6;3962:1;3959:13;3951:195;;;4030:13;;-1:-1:-1;;;;;4026:39:1;4014:52;;4086:12;;;;4121:15;;;;4062:1;3980:9;3951:195;;;-1:-1:-1;4162:3:1;;3769:402;-1:-1:-1;;;;;3769:402:1:o;6243:603::-;6355:4;6384:2;6413;6402:9;6395:21;6445:6;6439:13;6488:6;6483:2;6472:9;6468:18;6461:34;6513:4;6526:140;6540:6;6537:1;6534:13;6526:140;;;6635:14;;;6631:23;;6625:30;6601:17;;;6620:2;6597:26;6590:66;6555:10;;6526:140;;;6684:6;6681:1;6678:13;6675:2;;;6754:4;6749:2;6740:6;6729:9;6725:22;6721:31;6714:45;6675:2;-1:-1:-1;6830:2:1;6809:15;-1:-1:-1;;6805:29:1;6790:45;;;;6837:2;6786:54;;6364:482;-1:-1:-1;;;6364:482:1:o;9575:356::-;9777:2;9759:21;;;9796:18;;;9789:30;9855:34;9850:2;9835:18;;9828:62;9922:2;9907:18;;9749:182::o;10929:332::-;11136:6;11125:9;11118:25;11179:2;11174;11163:9;11159:18;11152:30;11099:4;11199:56;11251:2;11240:9;11236:18;11228:6;11199:56;:::i;:::-;11191:64;11108:153;-1:-1:-1;;;;11108:153:1:o;11266:582::-;11565:6;11554:9;11547:25;11608:6;11603:2;11592:9;11588:18;11581:34;11651:3;11646:2;11635:9;11631:18;11624:31;11528:4;11672:57;11724:3;11713:9;11709:19;11701:6;11672:57;:::i;:::-;-1:-1:-1;;;;;11765:32:1;;;;11760:2;11745:18;;11738:60;-1:-1:-1;11829:3:1;11814:19;11807:35;11664:65;11537:311;-1:-1:-1;;;11537:311:1:o;12042:128::-;12082:3;12113:1;12109:6;12106:1;12103:13;12100:2;;;12119:18;;:::i;:::-;-1:-1:-1;12155:9:1;;12090:80::o;12175:217::-;12215:1;12241;12231:2;;-1:-1:-1;;;12266:31:1;;12320:4;12317:1;12310:15;12348:4;12273:1;12338:15;12231:2;-1:-1:-1;12377:9:1;;12221:171::o;12397:168::-;12437:7;12503:1;12499;12495:6;12491:14;12488:1;12485:21;12480:1;12473:9;12466:17;12462:45;12459:2;;;12510:18;;:::i;:::-;-1:-1:-1;12550:9:1;;12449:116::o;12570:125::-;12610:4;12638:1;12635;12632:8;12629:2;;;12643:18;;:::i;:::-;-1:-1:-1;12680:9:1;;12619:76::o;12700:380::-;12779:1;12775:12;;;;12822;;;12843:2;;12897:4;12889:6;12885:17;12875:27;;12843:2;12950;12942:6;12939:14;12919:18;12916:38;12913:2;;;12996:10;12991:3;12987:20;12984:1;12977:31;13031:4;13028:1;13021:15;13059:4;13056:1;13049:15;12913:2;;12755:325;;;:::o;13085:127::-;13146:10;13141:3;13137:20;13134:1;13127:31;13177:4;13174:1;13167:15;13201:4;13198:1;13191:15;13217:131;-1:-1:-1;;;;;13292:31:1;;13282:42;;13272:2;;13338:1;13335;13328:12;13353:118;13439:5;13432:13;13425:21;13418:5;13415:32;13405:2;;13461:1;13458;13451:12
Swarm Source
ipfs://f5691561c53cb64883f372cec7ee299392aeeffcd173a864944386dca7630d5c
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.