ERC-20
Overview
Max Total Supply
100,000,000 PPC
Holders
44
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 4 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
PepeCounter
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-09 */ /* PepeCounter (PPC) - t.me/Pepecounter */ // SPDX-License-Identifier: none pragma solidity ^0.8.19; library Math { /** * @dev Return the log in base 10, rounded down, of a positive value. * Returns 0 if given 0. */ function log10(uint256 value) internal pure returns (uint256) { uint256 result = 0; unchecked { if (value >= 10 ** 64) { value /= 10 ** 64; result += 64; } if (value >= 10 ** 32) { value /= 10 ** 32; result += 32; } if (value >= 10 ** 16) { value /= 10 ** 16; result += 16; } if (value >= 10 ** 8) { value /= 10 ** 8; result += 8; } if (value >= 10 ** 4) { value /= 10 ** 4; result += 4; } if (value >= 10 ** 2) { value /= 10 ** 2; result += 2; } if (value >= 10 ** 1) { result += 1; } } return result; } } library Strings { bytes16 private constant _SYMBOLS = "0123456789abcdef"; uint8 private constant _ADDRESS_LENGTH = 20; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { unchecked { uint256 length = Math.log10(value) + 1; string memory buffer = new string(length); uint256 ptr; /// @solidity memory-safe-assembly assembly { ptr := add(buffer, add(32, length)) } while (true) { ptr--; /// @solidity memory-safe-assembly assembly { mstore8(ptr, byte(mod(value, 10), _SYMBOLS)) } value /= 10; if (value == 0) break; } return buffer; } } } library SafeTransferLib { function safeTransferETH(address to, uint256 amount) internal { bool success; /// @solidity memory-safe-assembly assembly { success := call(gas(), to, amount, 0, 0, 0, 0) } require(success, "ETH_TRANSFER_FAILED"); } function safeTransfer(address token, address to, uint256 amount) internal { bool success; /// @solidity memory-safe-assembly assembly { // Get a pointer to some free memory. let freeMemoryPointer := mload(0x40) // Write the abi-encoded calldata into memory, beginning with the function selector. mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Append and mask the "to" argument. mstore(add(freeMemoryPointer, 36), amount) // Append the "amount" argument. Masking not required as it's a full 32 byte type. success := and( or(and(eq(mload(0), 1), gt(returndatasize(), 31)), iszero(returndatasize())), call(gas(), token, 0, freeMemoryPointer, 68, 0, 32) ) } require(success, "TRANSFER_FAILED"); } function balanceOf(address token, address wallet) internal view returns (uint256 result) { bool success; /// @solidity memory-safe-assembly assembly { let freeMemoryPointer := mload(0x40) // keccak256('balanceOf(address)') bitmasked to 4 bytes mstore(freeMemoryPointer, 0x70a0823100000000000000000000000000000000000000000000000000000000) mstore(add(freeMemoryPointer, 4), and(wallet, 0xffffffffffffffffffffffffffffffffffffffff)) success := staticcall(gas(), token, freeMemoryPointer, 36, freeMemoryPointer, 32) if eq(success, 1) { result := mload(freeMemoryPointer) } } require(success, "balanceOf_failed"); } } abstract contract Auth { event OwnershipTransferred(address owner); mapping (address => bool) internal authorizations; address public owner; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } modifier onlyOwner() { require(msg.sender == owner, "!OWNER"); _; } modifier authorized() { require(isAuthorized(msg.sender), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } function isOwner(address account) public view returns (bool) { return account == owner; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } } interface IDexFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface V2Pair { function token0() external view returns (address); function token1() external view returns (address); } contract DEPLOY_WITH_LIQUIDITY { constructor() payable { require(msg.value >= 1000, "minimum is 1000 wei"); address router; if (block.chainid == 56) { router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // PancakeSwap } else if (block.chainid == 97) { router = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; // PancakeSwap Testnet } else if (block.chainid == 1) { router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // UniswapV2 } else if (block.chainid == 137) { router = 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff; // QuickSwap } else if (block.chainid == 42161) { router = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; // SushiSwap } else revert(); // bytes memory bytecode = type(TEMPLATE_NAME).creationCode; PepeCounter _contract = new PepeCounter(); uint256 liquidityAmount = SafeTransferLib.balanceOf(address(_contract), address(this)); (bool success,) = router.call{gas : gasleft(), value: msg.value}( // addLiquidityETH(address,uint256,uint256,uint256,address,uint256) abi.encodeWithSelector( 0xf305d719, address(_contract), liquidityAmount, 0, 0, tx.origin, block.timestamp ) ); require(success, "ADD_LIQUIDITY_ETH_FAILED"); } } contract PepeCounter is Auth { using Strings for uint256; event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); address wrapped; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; uint8 constant public decimals = 4; string public name = "Pepe counter: 0"; string public symbol = "PPC"; uint256 public totalSupply = 100_000_000 * (10 ** decimals); uint256 public max_tx = totalSupply / 1000 * 10; // 1% of total supply initially uint256 public max_wallet = totalSupply / 1000 * 20; // 2% of total supply initially mapping (address => mapping(address => uint256)) public allowance; mapping (address => uint256) public balanceOf; mapping (address => bool) public isPair; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isLimitExempt; uint256 constant public feeDenominator = 1000; // 100% uint256 public projectFee = 100; // 10% fee address public feeReceiver; uint256 public pepes = 0; uint256 launchedAt = 0; address public router; address public factory; address public mainPair; address[] public pairs; modifier swapping() { inContractSwap = true; _; inContractSwap = false; } uint256 public smallSwapThreshold = totalSupply / 1000; // 0,1% of total supply initially uint256 public largeSwapThreshold = totalSupply / 500; // 0,2% of total supply initially uint256 public swapThreshold = smallSwapThreshold; bool public swapEnabled = true; bool inContractSwap; constructor() Auth(tx.origin) payable { if (block.chainid == 56) { // BSC Mainnet wrapped = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c; // WBNB factory = 0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73; // PancakeSwap router = 0x10ED43C718714eb63d5aA57B78B54704E256024E; // PancakeSwap } else if (block.chainid == 97) { // BSC Testnet wrapped = 0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd; // PancakeSwap Testnet factory = 0xB7926C0430Afb07AA7DEfDE6DA862aE0Bde767bc; // PancakeSwap Testnet router = 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3; // PancakeSwap Testnet } else if (block.chainid == 1) { // Ethereum Mainnet wrapped = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH factory = 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f; // UniswapV2 router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // UniswapV2 } else if (block.chainid == 137) { // Polygon Mainnet wrapped = 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270; // WMATIC factory = 0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32; // QuickSwap router = 0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff; // QuickSwap } else if (block.chainid == 42161) { // Arbitrum Mainnet wrapped = 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1; // WETH factory = 0xc35DADB65012eC5796536bD9864eD8773aBc74C4; // SushiSwap router = 0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506; // SushiSwap } else revert(); address deployer = tx.origin; address liquidityDeployer = msg.sender; allowance[address(this)][address(router)] = type(uint256).max; allowance[liquidityDeployer][address(router)] = type(uint256).max; mainPair = IDexFactory(factory).createPair(wrapped, address(this)); isPair[mainPair] = true; pairs.push(mainPair); feeReceiver = deployer; isFeeExempt[router] = true; isFeeExempt[deployer] = true; isFeeExempt[address(this)] = true; isLimitExempt[router] = true; isLimitExempt[deployer] = true; isLimitExempt[address(this)] = true; isLimitExempt[DEAD] = true; isLimitExempt[ZERO] = true; if (liquidityDeployer != deployer) { isFeeExempt[liquidityDeployer] = true; isLimitExempt[liquidityDeployer] = true; authorizations[liquidityDeployer] = true; uint256 liquidityAmount = totalSupply / 100 * 95; // 95% of totalSupply in liquidity uint256 deployerTokens = totalSupply - liquidityAmount; unchecked { balanceOf[deployer] += deployerTokens; balanceOf[liquidityDeployer] += liquidityAmount; emit Transfer(address(0), deployer, deployerTokens); emit Transfer(address(0), liquidityDeployer, liquidityAmount); } } else { unchecked { balanceOf[deployer] += totalSupply; emit Transfer(address(0), deployer, totalSupply); } } } receive() external payable {} function getCirculatingSupply() public view returns (uint256) { return totalSupply - balanceOf[DEAD] - balanceOf[ZERO]; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////// TRANSFER ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function approve(address spender, uint256 amount) public virtual returns (bool) { allowance[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function transfer(address recipient, uint256 amount) public virtual returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) public virtual returns (bool) { uint256 allowed = allowance[sender][msg.sender]; if (allowed != type(uint256).max) allowance[sender][msg.sender] = allowed - amount; return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (!launched() && isPair[recipient]) { require(isAuthorized(sender), "!OWNER"); launch(); } if (inContractSwap) return _basicTransfer(sender, recipient, amount); checkTxLimit(sender, recipient, amount); if (shouldSwapBack(recipient)) swapBack(recipient); balanceOf[sender] -= amount; uint256 amountReceived = amount; if (isPair[sender] || isPair[recipient]) { if (isPair[sender]) { pepes += 1; string memory count = pepes.toString(); name = string(abi.encodePacked("Pepe counter: ", count)); } amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; } unchecked { balanceOf[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); } return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { balanceOf[sender] -= amount; unchecked { balanceOf[recipient] += amount; emit Transfer(msg.sender, recipient, amount); } return true; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////// LIMITS ////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function checkTxLimit(address sender, address recipient, uint256 amount) internal view { // verify sender max_tx require(amount <= max_tx || isPair[sender] && isLimitExempt[recipient] || isLimitExempt[sender], "TRANSACTION_LIMIT_EXCEEDED"); // verify recipient max_wallet if (recipient != owner && !isLimitExempt[recipient] && !isPair[recipient]) { uint256 newBalance = balanceOf[recipient] + amount; require(newBalance <= max_wallet, "WALLET_LIMIT_EXCEEDED"); } } function changeMaxTx(uint256 percent, uint256 denominator) external authorized { max_tx = totalSupply * percent / denominator; require(max_tx >= totalSupply * 10 / 1000, "Max tx must be greater than 1%"); } function changeMaxWallet(uint256 percent, uint256 denominator) external authorized { max_wallet = totalSupply * percent / denominator; require(max_wallet >= totalSupply * 10 / 1000, "Max wallet must be greater than 1%"); } function setIsFeeExempt(address holder, bool exempt) external authorized { isFeeExempt[holder] = exempt; } function setIsLimitExempt(address holder, bool exempt) external authorized { isLimitExempt[holder] = exempt; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////// FEE /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function shouldTakeFee(address sender, address recipient) internal view returns (bool) { return !isFeeExempt[sender] && !isFeeExempt[recipient] && projectFee > 0; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount / feeDenominator * projectFee; unchecked { balanceOf[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); } return amount - feeAmount; } function adjustFees(uint256 _projectFee) external authorized { require(_projectFee < feeDenominator / 15); // projectFee must be less than 15% projectFee = _projectFee; } function setFeeReceivers(address _feeReceiver) external authorized { feeReceiver = _feeReceiver; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////// CONTRCT SWAP //////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function shouldSwapBack(address recipient) internal view returns (bool) { return ( swapEnabled && projectFee > 0 && isPair[recipient] && balanceOf[address(this)] >= swapThreshold && // This is to avoid having a large impact if there is little token in liquidity SafeTransferLib.balanceOf(address(this), recipient) > swapThreshold * 10 ); } function swapBack(address pairSwap) internal swapping { address[] memory path; uint256 amountToSwap = swapThreshold; if (pairSwap == mainPair) { // THIS_TOKEN -> WRAPPED path = new address[](2); path[0] = address(this); path[1] = wrapped; } else { V2Pair pair = V2Pair(pairSwap); address token0 = pair.token0(); address token1 = pair.token1(); // THIS_TOKEN -> UNKNOWN_TOKEN -> WRAPPED path = new address[](3); path[0] = address(this); // path[1] = UNKNOWN_TOKEN; path[2] = wrapped; if (token0 != address(this)) { path[1] = token0; } else { path[1] = token1; } } (bool success,) = router.call{gas : gasleft()}( //swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256) abi.encodeWithSelector( 0x791ac947, amountToSwap, 0, path, address(this), block.timestamp ) ); if (pairSwap == mainPair) require(success, "SWAPBACK_FAILED"); SafeTransferLib.safeTransferETH(feeReceiver, address(this).balance); swapThreshold = swapThreshold == smallSwapThreshold ? largeSwapThreshold : smallSwapThreshold; } function setSwapBackSettings(bool _enabled, uint256 _smallAmount, uint256 _largeAmount) external authorized { require(_smallAmount <= totalSupply * 25 / 10000, "Small swap threshold must be lower"); // smallSwapThreshold <= 0,25% of total supply require(_largeAmount <= totalSupply * 5 / 1000, "Large swap threshold must be lower"); // largeSwapThreshold <= 0,5% of total supply swapEnabled = _enabled; smallSwapThreshold = _smallAmount; largeSwapThreshold = _largeAmount; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////// OTHERS ///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function updateTokenDetails(string calldata newName, string calldata newSymbol) external authorized { name = newName; symbol = newSymbol; } function rescue() external authorized { SafeTransferLib.safeTransferETH(feeReceiver, address(this).balance); } function rescueToken(address _token, uint256 amount) external authorized { require(_token != address(this), "STOP"); SafeTransferLib.safeTransfer(_token, feeReceiver, amount); } function burnContractTokens(uint256 amount) external authorized { SafeTransferLib.safeTransfer(address(this), DEAD, amount); } function createNewPair(address token) external authorized { address new_pair = IDexFactory(factory).createPair(token, address(this)); isPair[new_pair] = true; pairs.push(new_pair); } function setNewPair(address pair) external authorized { isPair[pair] = true; pairs.push(pair); } function showPairList() public view returns(address[] memory){ return pairs; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_projectFee","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnContractTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"changeMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"createNewPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"largeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_tx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_wallet","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":"uint256","name":"","type":"uint256"}],"name":"pairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setNewPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_smallAmount","type":"uint256"},{"internalType":"uint256","name":"_largeAmount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"showPairList","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"smallSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newName","type":"string"},{"internalType":"string","name":"newSymbol","type":"string"}],"name":"updateTokenDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052600f60809081526e05065706520636f756e7465723a203608c1b60a052600390620000309082620007a7565b5060408051808201909152600381526250504360e81b60208201526004906200005a9082620007a7565b50620000696004600a62000988565b62000079906305f5e100620009a0565b6005556103e86005546200008e9190620009ba565b6200009b90600a620009a0565b6006556103e8600554620000b09190620009ba565b620000bd906014620009a0565b6007556064600d556000600f5560006010556103e8600554620000e19190620009ba565b6015556101f4600554620000f69190620009ba565b6016556015546017556018805460ff19908116600190811790925581546001600160a01b03191632908117835560009081526020819052604090208054909116909117905546603803620001b057600280546001600160a01b031990811673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1790915560128054821673ca143ce32fe78f1f7019d7d551a6402fc5350c73179055601180549091167310ed43c718714eb63d5aa57b78b54704e256024e1790556200038a565b466061036200022557600280546001600160a01b031990811673ae13d989dac2f0debff460ac112a837c89baa7cd1790915560128054821673b7926c0430afb07aa7defde6da862ae0bde767bc17905560118054909116739ac64cc6e4415144c455bd8e4837fea55603e5c31790556200038a565b466001036200029a57600280546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217909155601280548216735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f17905560118054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556200038a565b466089036200030f57600280546001600160a01b0319908116730d500b1d8e8ef31e21c99d1db9a6444d3adf127017909155601280548216735757371414417b8c6caad45baef941abc7d3ab321790556011805490911673a5e0829caced8ffdd4de3c43696c57f7d7a678ff1790556200038a565b4661a4b1036200038557600280546001600160a01b03199081167382af49447d8a07e3bd95bd0d56f35241523fbab11790915560128054821673c35dadb65012ec5796536bd9864ed8773abc74c417905560118054909116731b02da8cb0d097eb8d57a175b88c7d8b479975061790556200038a565b600080fd5b306000818152600860208181526040808420601180546001600160a01b03908116875291845282862060001990819055338088529585528387209154831687529352938190209190915560125460025491516364e329cb60e11b81529184166004830152602482019490945232939192919091169063c9c65396906044016020604051808303816000875af115801562000428573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044e9190620009dd565b601380546001600160a01b039283166001600160a01b0319918216811783556000908152600a60209081526040808320805460ff1990811660019081179092559554601480548084019091557fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180548716918916919091179055600e80548a89169616861790556011805488168552600b845282852080548816831790558585528285208054881683179055308086528386208054891684179055905488168552600c90935281842080548716821790558484528184208054871682179055918352822080548516821790557f45117a726ea4f344045dc210793664a28d2d320b7e03f6bffdae553d24c3586c80548516821790559080527f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e880549093161790915590821614620006a7576001600160a01b0381166000908152600b602090815260408083208054600160ff199182168117909255600c84528285208054821683179055928490529083208054909216179055600554620005f390606490620009ba565b6200060090605f620009a0565b905060008160055462000614919062000a08565b6001600160a01b0380861660008181526009602052604080822080548601905592871681528281208054870190559151929350916000805160206200301d83398151915290620006679085815260200190565b60405180910390a36040518281526001600160a01b038416906000906000805160206200301d8339815191529060200160405180910390a35050620006fa565b600580546001600160a01b0384166000818152600960205260408082208054909401909355925491519092916000805160206200301d83398151915291620006f191815260200190565b60405180910390a35b505062000a1e565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200072d57607f821691505b6020821081036200074e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007a257600081815260208120601f850160051c810160208610156200077d5750805b601f850160051c820191505b818110156200079e5782815560010162000789565b5050505b505050565b81516001600160401b03811115620007c357620007c362000702565b620007db81620007d4845462000718565b8462000754565b602080601f831160018114620008135760008415620007fa5750858301515b600019600386901b1c1916600185901b1785556200079e565b600085815260208120601f198616915b82811015620008445788860151825594840194600190910190840162000823565b5085821015620008635787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620008ca578160001904821115620008ae57620008ae62000873565b80851615620008bc57918102915b93841c93908002906200088e565b509250929050565b600082620008e35750600162000982565b81620008f25750600062000982565b81600181146200090b5760028114620009165762000936565b600191505062000982565b60ff8411156200092a576200092a62000873565b50506001821b62000982565b5060208310610133831016604e8410600b84101617156200095b575081810a62000982565b62000967838362000889565b80600019048211156200097e576200097e62000873565b0290505b92915050565b60006200099960ff841683620008d2565b9392505050565b808202811582820484141762000982576200098262000873565b600082620009d857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620009f057600080fd5b81516001600160a01b03811681146200099957600080fd5b8181038181111562000982576200098262000873565b6125ef8062000a2e6000396000f3fe60806040526004361061028c5760003560e01c806391f764191161015a578063d0889358116100c1578063e717fc301161007a578063e717fc30146107ed578063f0b37c0414610803578063f2fde38b14610823578063f75282e114610843578063f887ea4014610863578063fe9fbb801461088357600080fd5b8063d08893581461070f578063d58f2f271461072f578063d962cf5814610745578063dd62ed3e14610765578063e01bb6881461079d578063e5e31b13146107bd57600080fd5b8063b6a5d7de11610113578063b6a5d7de1461064f578063b91ac7881461066f578063bae192351461068f578063c45a0155146106af578063cfdf7643146106cf578063d0291d66146106ef57600080fd5b806391f764191461058a57806395d89b41146105aa5780639f5a5c39146105bf578063a9059cbb146105df578063b0c150af146105ff578063b3f006741461062f57600080fd5b806333f3d628116101fe5780636ddd1713116101b75780636ddd1713146104bf57806370a08231146104d957806370fbc7121461050657806379426c061461051c57806385af30c5146105325780638da5cb5b1461056a57600080fd5b806333f3d628146104035780633f4218e014610423578063414683a8146104535780635d03714614610469578063658d4b7f146104895780636a6bb892146104a957600080fd5b80631ab33ba1116102505780631ab33ba11461033f5780631fbe19791461036157806323b872dd146103785780632b112e49146103985780632f54bf6e146103ad578063313ce567146103dc57600080fd5b80630445b6671461029857806306fdde03146102c1578063095ea7b3146102e3578063180b0d7e1461031357806318160ddd1461032957600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae60175481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108a3565b6040516102b89190611f4e565b3480156102ef57600080fd5b506103036102fe366004611f96565b610931565b60405190151581526020016102b8565b34801561031f57600080fd5b506102ae6103e881565b34801561033557600080fd5b506102ae60055481565b34801561034b57600080fd5b5061035461099e565b6040516102b89190612006565b34801561036d57600080fd5b50610376610a00565b005b34801561038457600080fd5b50610303610393366004612019565b610a46565b3480156103a457600080fd5b506102ae610ab8565b3480156103b957600080fd5b506103036103c836600461205a565b6001546001600160a01b0391821691161490565b3480156103e857600080fd5b506103f1600481565b60405160ff90911681526020016102b8565b34801561040f57600080fd5b5061037661041e366004611f96565b610b28565b34801561042f57600080fd5b5061030361043e36600461205a565b600b6020526000908152604090205460ff1681565b34801561045f57600080fd5b506102ae60165481565b34801561047557600080fd5b50610376610484366004612077565b610baa565b34801561049557600080fd5b506103766104a43660046120a5565b610bdf565b3480156104b557600080fd5b506102ae600f5481565b3480156104cb57600080fd5b506018546103039060ff1681565b3480156104e557600080fd5b506102ae6104f436600461205a565b60096020526000908152604090205481565b34801561051257600080fd5b506102ae60065481565b34801561052857600080fd5b506102ae60155481565b34801561053e57600080fd5b50601354610552906001600160a01b031681565b6040516001600160a01b0390911681526020016102b8565b34801561057657600080fd5b50600154610552906001600160a01b031681565b34801561059657600080fd5b506103766105a5366004612077565b610c2f565b3480156105b657600080fd5b506102d6610c71565b3480156105cb57600080fd5b506103766105da36600461205a565b610c7e565b3480156105eb57600080fd5b506103036105fa366004611f96565b610d82565b34801561060b57600080fd5b5061030361061a36600461205a565b600c6020526000908152604090205460ff1681565b34801561063b57600080fd5b50600e54610552906001600160a01b031681565b34801561065b57600080fd5b5061037661066a36600461205a565b610d8f565b34801561067b57600080fd5b5061055261068a366004612077565b610ddd565b34801561069b57600080fd5b506103766106aa3660046120da565b610e07565b3480156106bb57600080fd5b50601254610552906001600160a01b031681565b3480156106db57600080fd5b506103766106ea36600461205a565b610ec0565b3480156106fb57600080fd5b5061037661070a366004612145565b610f4b565b34801561071b57600080fd5b5061037661072a3660046121b1565b610f92565b34801561073b57600080fd5b506102ae600d5481565b34801561075157600080fd5b506103766107603660046120a5565b6110bd565b34801561077157600080fd5b506102ae6107803660046121e4565b600860209081526000928352604080842090915290825290205481565b3480156107a957600080fd5b506103766107b836600461205a565b61110d565b3480156107c957600080fd5b506103036107d836600461205a565b600a6020526000908152604090205460ff1681565b3480156107f957600080fd5b506102ae60075481565b34801561080f57600080fd5b5061037661081e36600461205a565b611154565b34801561082f57600080fd5b5061037661083e36600461205a565b61119f565b34801561084f57600080fd5b5061037661085e3660046120da565b611234565b34801561086f57600080fd5b50601154610552906001600160a01b031681565b34801561088f57600080fd5b5061030361089e36600461205a565b6112e2565b600380546108b09061221d565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc9061221d565b80156109295780601f106108fe57610100808354040283529160200191610929565b820191906000526020600020905b81548152906001019060200180831161090c57829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061098c9086815260200190565b60405180910390a35060015b92915050565b606060148054806020026020016040519081016040528092919081815260200182805480156109f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d8575b5050505050905090565b610a09336112e2565b610a2e5760405162461bcd60e51b8152600401610a2590612257565b60405180910390fd5b600e54610a44906001600160a01b031647611300565b565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000198114610aa257610a7d8382612292565b6001600160a01b03861660009081526008602090815260408083203384529091529020555b610aad858585611356565b9150505b9392505050565b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b5461dead60009081527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378554600554919291610b199190612292565b610b239190612292565b905090565b610b31336112e2565b610b4d5760405162461bcd60e51b8152600401610a2590612257565b306001600160a01b03831603610b8e5760405162461bcd60e51b8152600401610a2590602080825260049082015263053544f560e41b604082015260600190565b600e54610ba69083906001600160a01b031683611577565b5050565b610bb3336112e2565b610bcf5760405162461bcd60e51b8152600401610a2590612257565b610bdc3061dead83611577565b50565b610be8336112e2565b610c045760405162461bcd60e51b8152600401610a2590612257565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610c38336112e2565b610c545760405162461bcd60e51b8152600401610a2590612257565b610c61600f6103e86122a5565b8110610c6c57600080fd5b600d55565b600480546108b09061221d565b610c87336112e2565b610ca35760405162461bcd60e51b8152600401610a2590612257565b6012546040516364e329cb60e11b81526001600160a01b038381166004830152306024830152600092169063c9c65396906044016020604051808303816000875af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a91906122c7565b6001600160a01b03166000818152600a60205260408120805460ff191660019081179091556014805491820181559091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b03191690911790555050565b6000610ab1338484611356565b6001546001600160a01b03163314610db95760405162461bcd60e51b8152600401610a25906122e4565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b60148181548110610ded57600080fd5b6000918252602090912001546001600160a01b0316905081565b610e10336112e2565b610e2c5760405162461bcd60e51b8152600401610a2590612257565b8082600554610e3b9190612304565b610e4591906122a5565b6007556005546103e890610e5a90600a612304565b610e6491906122a5565b6007541015610ba65760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b6064820152608401610a25565b610ec9336112e2565b610ee55760405162461bcd60e51b8152600401610a2590612257565b6001600160a01b03166000818152600a60205260408120805460ff191660019081179091556014805491820181559091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319169091179055565b610f54336112e2565b610f705760405162461bcd60e51b8152600401610a2590612257565b6003610f7d84868361237f565b506004610f8b82848361237f565b5050505050565b610f9b336112e2565b610fb75760405162461bcd60e51b8152600401610a2590612257565b6127106005546019610fc99190612304565b610fd391906122a5565b82111561102d5760405162461bcd60e51b815260206004820152602260248201527f536d616c6c2073776170207468726573686f6c64206d757374206265206c6f7760448201526132b960f11b6064820152608401610a25565b6103e8600554600561103f9190612304565b61104991906122a5565b8111156110a35760405162461bcd60e51b815260206004820152602260248201527f4c617267652073776170207468726573686f6c64206d757374206265206c6f7760448201526132b960f11b6064820152608401610a25565b6018805460ff191693151593909317909255601555601655565b6110c6336112e2565b6110e25760405162461bcd60e51b8152600401610a2590612257565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b611116336112e2565b6111325760405162461bcd60e51b8152600401610a2590612257565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461117e5760405162461bcd60e51b8152600401610a25906122e4565b6001600160a01b03166000908152602081905260409020805460ff19169055565b6001546001600160a01b031633146111c95760405162461bcd60e51b8152600401610a25906122e4565b600180546001600160a01b0319166001600160a01b038316908117825560008181526020818152604091829020805460ff1916909417909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61123d336112e2565b6112595760405162461bcd60e51b8152600401610a2590612257565b80826005546112689190612304565b61127291906122a5565b6006556005546103e89061128790600a612304565b61129191906122a5565b6006541015610ba65760405162461bcd60e51b815260206004820152601e60248201527f4d6178207478206d7573742062652067726561746572207468616e20312500006044820152606401610a25565b6001600160a01b031660009081526020819052604090205460ff1690565b600080600080600085875af19050806113515760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610a25565b505050565b6000611363601054151590565b15801561138857506001600160a01b0383166000908152600a602052604090205460ff165b156113bb57611396846112e2565b6113b25760405162461bcd60e51b8152600401610a25906122e4565b6113bb43601055565b601854610100900460ff16156113dd576113d68484846115fe565b9050610ab1565b6113e8848484611691565b6113f18361181d565b156113ff576113ff8361189b565b6001600160a01b03841660009081526009602052604081208054849290611427908490612292565b90915550506001600160a01b0384166000908152600a6020526040902054829060ff168061146d57506001600160a01b0384166000908152600a602052604090205460ff165b1561150e576001600160a01b0385166000908152600a602052604090205460ff16156114ed576001600f60008282546114a6919061243f565b9250508190555060006114ba600f54611c5d565b9050806040516020016114cd9190612452565b604051602081830303815290604052600390816114ea9190612488565b50505b6114f78585611cf0565b611501578261150b565b61150b8584611d45565b90505b6001600160a01b03808516600081815260096020526040908190208054850190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115649085815260200190565b60405180910390a3506001949350505050565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806115f85760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610a25565b50505050565b6001600160a01b038316600090815260096020526040812080548391908390611628908490612292565b90915550506001600160a01b038316600081815260096020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061167f9086815260200190565b60405180910390a35060019392505050565b600654811115806116dd57506001600160a01b0383166000908152600a602052604090205460ff1680156116dd57506001600160a01b0382166000908152600c602052604090205460ff165b8061170057506001600160a01b0383166000908152600c602052604090205460ff165b61174c5760405162461bcd60e51b815260206004820152601a60248201527f5452414e53414354494f4e5f4c494d49545f45584345454445440000000000006044820152606401610a25565b6001546001600160a01b0383811691161480159061178357506001600160a01b0382166000908152600c602052604090205460ff16155b80156117a857506001600160a01b0382166000908152600a602052604090205460ff16155b15611351576001600160a01b0382166000908152600960205260408120546117d190839061243f565b90506007548111156115f85760405162461bcd60e51b815260206004820152601560248201527415d05313115517d31253525517d15610d151511151605a1b6044820152606401610a25565b60185460009060ff16801561183457506000600d54115b801561185857506001600160a01b0382166000908152600a602052604090205460ff165b801561187557506017543060009081526009602052604090205410155b8015610998575060175461188a90600a612304565b6118943084611dd3565b1192915050565b6018805461ff001916610100179055601754601354606091906001600160a01b039081169084160361195157604080516002808252606082018352909160208301908036833701905050915030826000815181106118fb576118fb612548565b6001600160a01b03928316602091820292909201015260025483519116908390600190811061192c5761192c612548565b60200260200101906001600160a01b031690816001600160a01b031681525050611b17565b60008390506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ba91906122c7565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2091906122c7565b60408051600380825260808201909252919250602082016060803683370190505094503085600081518110611a5757611a57612548565b6001600160a01b0392831660209182029290920101526002805487519216918791908110611a8757611a87612548565b6001600160a01b03928316602091820292909201015282163014611ade578185600181518110611ab957611ab9612548565b60200260200101906001600160a01b031690816001600160a01b031681525050611b13565b8085600181518110611af257611af2612548565b60200260200101906001600160a01b031690816001600160a01b0316815250505b5050505b6011546000906001600160a01b03165a63791ac947846000873042604051602401611b4695949392919061255e565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611b7f919061259d565b60006040518083038160008787f1925050503d8060008114611bbd576040519150601f19603f3d011682016040523d82523d6000602084013e611bc2565b606091505b50506013549091506001600160a01b0390811690851603611c1c5780611c1c5760405162461bcd60e51b815260206004820152600f60248201526e14d5d054109050d2d7d19052531151608a1b6044820152606401610a25565b600e54611c32906001600160a01b031647611300565b60155460175414611c4557601554611c49565b6016545b60175550506018805461ff00191690555050565b60606000611c6a83611e52565b600101905060008167ffffffffffffffff811115611c8a57611c8a61231b565b6040519080825280601f01601f191660200182016040528015611cb4576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611cbe57509392505050565b6001600160a01b0382166000908152600b602052604081205460ff16158015611d3257506001600160a01b0382166000908152600b602052604090205460ff16155b8015610ab1575050600d54151592915050565b600080600d546103e884611d5991906122a5565b611d639190612304565b306000818152600960205260409081902080548401905551919250906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611db99085815260200190565b60405180910390a3611dcb8184612292565b949350505050565b6000806040516370a0823160e01b81526001600160a01b0384166004820152602081602483885afa915060018203611e0a57805192505b5080611e4b5760405162461bcd60e51b815260206004820152601060248201526f18985b185b98d953d997d9985a5b195960821b6044820152606401610a25565b5092915050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611e915772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611ebd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611edb57662386f26fc10000830492506010015b6305f5e1008310611ef3576305f5e100830492506008015b6127108310611f0757612710830492506004015b60648310611f19576064830492506002015b600a83106109985760010192915050565b60005b83811015611f45578181015183820152602001611f2d565b50506000910152565b6020815260008251806020840152611f6d816040850160208701611f2a565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610bdc57600080fd5b60008060408385031215611fa957600080fd5b8235611fb481611f81565b946020939093013593505050565b600081518084526020808501945080840160005b83811015611ffb5781516001600160a01b031687529582019590820190600101611fd6565b509495945050505050565b602081526000610ab16020830184611fc2565b60008060006060848603121561202e57600080fd5b833561203981611f81565b9250602084013561204981611f81565b929592945050506040919091013590565b60006020828403121561206c57600080fd5b8135610ab181611f81565b60006020828403121561208957600080fd5b5035919050565b803580151581146120a057600080fd5b919050565b600080604083850312156120b857600080fd5b82356120c381611f81565b91506120d160208401612090565b90509250929050565b600080604083850312156120ed57600080fd5b50508035926020909101359150565b60008083601f84011261210e57600080fd5b50813567ffffffffffffffff81111561212657600080fd5b60208301915083602082850101111561213e57600080fd5b9250929050565b6000806000806040858703121561215b57600080fd5b843567ffffffffffffffff8082111561217357600080fd5b61217f888389016120fc565b9096509450602087013591508082111561219857600080fd5b506121a5878288016120fc565b95989497509550505050565b6000806000606084860312156121c657600080fd5b6121cf84612090565b95602085013595506040909401359392505050565b600080604083850312156121f757600080fd5b823561220281611f81565b9150602083013561221281611f81565b809150509250929050565b600181811c9082168061223157607f821691505b60208210810361225157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156109985761099861227c565b6000826122c257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122d957600080fd5b8151610ab181611f81565b60208082526006908201526510a7aba722a960d11b604082015260600190565b80820281158282048414176109985761099861227c565b634e487b7160e01b600052604160045260246000fd5b601f82111561135157600081815260208120601f850160051c810160208610156123585750805b601f850160051c820191505b8181101561237757828155600101612364565b505050505050565b67ffffffffffffffff8311156123975761239761231b565b6123ab836123a5835461221d565b83612331565b6000601f8411600181146123df57600085156123c75750838201355b600019600387901b1c1916600186901b178355610f8b565b600083815260209020601f19861690835b8281101561241057868501358255602094850194600190920191016123f0565b508682101561242d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b808201808211156109985761099861227c565b6d02832b8329031b7bab73a32b91d160951b81526000825161247b81600e850160208701611f2a565b91909101600e0192915050565b815167ffffffffffffffff8111156124a2576124a261231b565b6124b6816124b0845461221d565b84612331565b602080601f8311600181146124eb57600084156124d35750858301515b600019600386901b1c1916600185901b178555612377565b600085815260208120601f198616915b8281101561251a578886015182559484019460019091019084016124fb565b50858210156125385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260ff8516602082015260a06040820152600061258060a0830186611fc2565b6001600160a01b0394909416606083015250608001529392505050565b600082516125af818460208701611f2a565b919091019291505056fea26469706673582212204757276332c4ae90e1c4283e37057ee5454177e192e162bbff13db917c328b5164736f6c63430008130033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x60806040526004361061028c5760003560e01c806391f764191161015a578063d0889358116100c1578063e717fc301161007a578063e717fc30146107ed578063f0b37c0414610803578063f2fde38b14610823578063f75282e114610843578063f887ea4014610863578063fe9fbb801461088357600080fd5b8063d08893581461070f578063d58f2f271461072f578063d962cf5814610745578063dd62ed3e14610765578063e01bb6881461079d578063e5e31b13146107bd57600080fd5b8063b6a5d7de11610113578063b6a5d7de1461064f578063b91ac7881461066f578063bae192351461068f578063c45a0155146106af578063cfdf7643146106cf578063d0291d66146106ef57600080fd5b806391f764191461058a57806395d89b41146105aa5780639f5a5c39146105bf578063a9059cbb146105df578063b0c150af146105ff578063b3f006741461062f57600080fd5b806333f3d628116101fe5780636ddd1713116101b75780636ddd1713146104bf57806370a08231146104d957806370fbc7121461050657806379426c061461051c57806385af30c5146105325780638da5cb5b1461056a57600080fd5b806333f3d628146104035780633f4218e014610423578063414683a8146104535780635d03714614610469578063658d4b7f146104895780636a6bb892146104a957600080fd5b80631ab33ba1116102505780631ab33ba11461033f5780631fbe19791461036157806323b872dd146103785780632b112e49146103985780632f54bf6e146103ad578063313ce567146103dc57600080fd5b80630445b6671461029857806306fdde03146102c1578063095ea7b3146102e3578063180b0d7e1461031357806318160ddd1461032957600080fd5b3661029357005b600080fd5b3480156102a457600080fd5b506102ae60175481565b6040519081526020015b60405180910390f35b3480156102cd57600080fd5b506102d66108a3565b6040516102b89190611f4e565b3480156102ef57600080fd5b506103036102fe366004611f96565b610931565b60405190151581526020016102b8565b34801561031f57600080fd5b506102ae6103e881565b34801561033557600080fd5b506102ae60055481565b34801561034b57600080fd5b5061035461099e565b6040516102b89190612006565b34801561036d57600080fd5b50610376610a00565b005b34801561038457600080fd5b50610303610393366004612019565b610a46565b3480156103a457600080fd5b506102ae610ab8565b3480156103b957600080fd5b506103036103c836600461205a565b6001546001600160a01b0391821691161490565b3480156103e857600080fd5b506103f1600481565b60405160ff90911681526020016102b8565b34801561040f57600080fd5b5061037661041e366004611f96565b610b28565b34801561042f57600080fd5b5061030361043e36600461205a565b600b6020526000908152604090205460ff1681565b34801561045f57600080fd5b506102ae60165481565b34801561047557600080fd5b50610376610484366004612077565b610baa565b34801561049557600080fd5b506103766104a43660046120a5565b610bdf565b3480156104b557600080fd5b506102ae600f5481565b3480156104cb57600080fd5b506018546103039060ff1681565b3480156104e557600080fd5b506102ae6104f436600461205a565b60096020526000908152604090205481565b34801561051257600080fd5b506102ae60065481565b34801561052857600080fd5b506102ae60155481565b34801561053e57600080fd5b50601354610552906001600160a01b031681565b6040516001600160a01b0390911681526020016102b8565b34801561057657600080fd5b50600154610552906001600160a01b031681565b34801561059657600080fd5b506103766105a5366004612077565b610c2f565b3480156105b657600080fd5b506102d6610c71565b3480156105cb57600080fd5b506103766105da36600461205a565b610c7e565b3480156105eb57600080fd5b506103036105fa366004611f96565b610d82565b34801561060b57600080fd5b5061030361061a36600461205a565b600c6020526000908152604090205460ff1681565b34801561063b57600080fd5b50600e54610552906001600160a01b031681565b34801561065b57600080fd5b5061037661066a36600461205a565b610d8f565b34801561067b57600080fd5b5061055261068a366004612077565b610ddd565b34801561069b57600080fd5b506103766106aa3660046120da565b610e07565b3480156106bb57600080fd5b50601254610552906001600160a01b031681565b3480156106db57600080fd5b506103766106ea36600461205a565b610ec0565b3480156106fb57600080fd5b5061037661070a366004612145565b610f4b565b34801561071b57600080fd5b5061037661072a3660046121b1565b610f92565b34801561073b57600080fd5b506102ae600d5481565b34801561075157600080fd5b506103766107603660046120a5565b6110bd565b34801561077157600080fd5b506102ae6107803660046121e4565b600860209081526000928352604080842090915290825290205481565b3480156107a957600080fd5b506103766107b836600461205a565b61110d565b3480156107c957600080fd5b506103036107d836600461205a565b600a6020526000908152604090205460ff1681565b3480156107f957600080fd5b506102ae60075481565b34801561080f57600080fd5b5061037661081e36600461205a565b611154565b34801561082f57600080fd5b5061037661083e36600461205a565b61119f565b34801561084f57600080fd5b5061037661085e3660046120da565b611234565b34801561086f57600080fd5b50601154610552906001600160a01b031681565b34801561088f57600080fd5b5061030361089e36600461205a565b6112e2565b600380546108b09061221d565b80601f01602080910402602001604051908101604052809291908181526020018280546108dc9061221d565b80156109295780601f106108fe57610100808354040283529160200191610929565b820191906000526020600020905b81548152906001019060200180831161090c57829003601f168201915b505050505081565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061098c9086815260200190565b60405180910390a35060015b92915050565b606060148054806020026020016040519081016040528092919081815260200182805480156109f657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109d8575b5050505050905090565b610a09336112e2565b610a2e5760405162461bcd60e51b8152600401610a2590612257565b60405180910390fd5b600e54610a44906001600160a01b031647611300565b565b6001600160a01b03831660009081526008602090815260408083203384529091528120546000198114610aa257610a7d8382612292565b6001600160a01b03861660009081526008602090815260408083203384529091529020555b610aad858585611356565b9150505b9392505050565b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b5461dead60009081527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378554600554919291610b199190612292565b610b239190612292565b905090565b610b31336112e2565b610b4d5760405162461bcd60e51b8152600401610a2590612257565b306001600160a01b03831603610b8e5760405162461bcd60e51b8152600401610a2590602080825260049082015263053544f560e41b604082015260600190565b600e54610ba69083906001600160a01b031683611577565b5050565b610bb3336112e2565b610bcf5760405162461bcd60e51b8152600401610a2590612257565b610bdc3061dead83611577565b50565b610be8336112e2565b610c045760405162461bcd60e51b8152600401610a2590612257565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b610c38336112e2565b610c545760405162461bcd60e51b8152600401610a2590612257565b610c61600f6103e86122a5565b8110610c6c57600080fd5b600d55565b600480546108b09061221d565b610c87336112e2565b610ca35760405162461bcd60e51b8152600401610a2590612257565b6012546040516364e329cb60e11b81526001600160a01b038381166004830152306024830152600092169063c9c65396906044016020604051808303816000875af1158015610cf6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1a91906122c7565b6001600160a01b03166000818152600a60205260408120805460ff191660019081179091556014805491820181559091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b03191690911790555050565b6000610ab1338484611356565b6001546001600160a01b03163314610db95760405162461bcd60e51b8152600401610a25906122e4565b6001600160a01b03166000908152602081905260409020805460ff19166001179055565b60148181548110610ded57600080fd5b6000918252602090912001546001600160a01b0316905081565b610e10336112e2565b610e2c5760405162461bcd60e51b8152600401610a2590612257565b8082600554610e3b9190612304565b610e4591906122a5565b6007556005546103e890610e5a90600a612304565b610e6491906122a5565b6007541015610ba65760405162461bcd60e51b815260206004820152602260248201527f4d61782077616c6c6574206d7573742062652067726561746572207468616e20604482015261312560f01b6064820152608401610a25565b610ec9336112e2565b610ee55760405162461bcd60e51b8152600401610a2590612257565b6001600160a01b03166000818152600a60205260408120805460ff191660019081179091556014805491820181559091527fce6d7b5282bd9a3661ae061feed1dbda4e52ab073b1f9285be6e155d9c38d4ec0180546001600160a01b0319169091179055565b610f54336112e2565b610f705760405162461bcd60e51b8152600401610a2590612257565b6003610f7d84868361237f565b506004610f8b82848361237f565b5050505050565b610f9b336112e2565b610fb75760405162461bcd60e51b8152600401610a2590612257565b6127106005546019610fc99190612304565b610fd391906122a5565b82111561102d5760405162461bcd60e51b815260206004820152602260248201527f536d616c6c2073776170207468726573686f6c64206d757374206265206c6f7760448201526132b960f11b6064820152608401610a25565b6103e8600554600561103f9190612304565b61104991906122a5565b8111156110a35760405162461bcd60e51b815260206004820152602260248201527f4c617267652073776170207468726573686f6c64206d757374206265206c6f7760448201526132b960f11b6064820152608401610a25565b6018805460ff191693151593909317909255601555601655565b6110c6336112e2565b6110e25760405162461bcd60e51b8152600401610a2590612257565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b611116336112e2565b6111325760405162461bcd60e51b8152600401610a2590612257565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0316331461117e5760405162461bcd60e51b8152600401610a25906122e4565b6001600160a01b03166000908152602081905260409020805460ff19169055565b6001546001600160a01b031633146111c95760405162461bcd60e51b8152600401610a25906122e4565b600180546001600160a01b0319166001600160a01b038316908117825560008181526020818152604091829020805460ff1916909417909355519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b61123d336112e2565b6112595760405162461bcd60e51b8152600401610a2590612257565b80826005546112689190612304565b61127291906122a5565b6006556005546103e89061128790600a612304565b61129191906122a5565b6006541015610ba65760405162461bcd60e51b815260206004820152601e60248201527f4d6178207478206d7573742062652067726561746572207468616e20312500006044820152606401610a25565b6001600160a01b031660009081526020819052604090205460ff1690565b600080600080600085875af19050806113515760405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606401610a25565b505050565b6000611363601054151590565b15801561138857506001600160a01b0383166000908152600a602052604090205460ff165b156113bb57611396846112e2565b6113b25760405162461bcd60e51b8152600401610a25906122e4565b6113bb43601055565b601854610100900460ff16156113dd576113d68484846115fe565b9050610ab1565b6113e8848484611691565b6113f18361181d565b156113ff576113ff8361189b565b6001600160a01b03841660009081526009602052604081208054849290611427908490612292565b90915550506001600160a01b0384166000908152600a6020526040902054829060ff168061146d57506001600160a01b0384166000908152600a602052604090205460ff165b1561150e576001600160a01b0385166000908152600a602052604090205460ff16156114ed576001600f60008282546114a6919061243f565b9250508190555060006114ba600f54611c5d565b9050806040516020016114cd9190612452565b604051602081830303815290604052600390816114ea9190612488565b50505b6114f78585611cf0565b611501578261150b565b61150b8584611d45565b90505b6001600160a01b03808516600081815260096020526040908190208054850190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115649085815260200190565b60405180910390a3506001949350505050565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806115f85760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606401610a25565b50505050565b6001600160a01b038316600090815260096020526040812080548391908390611628908490612292565b90915550506001600160a01b038316600081815260096020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061167f9086815260200190565b60405180910390a35060019392505050565b600654811115806116dd57506001600160a01b0383166000908152600a602052604090205460ff1680156116dd57506001600160a01b0382166000908152600c602052604090205460ff165b8061170057506001600160a01b0383166000908152600c602052604090205460ff165b61174c5760405162461bcd60e51b815260206004820152601a60248201527f5452414e53414354494f4e5f4c494d49545f45584345454445440000000000006044820152606401610a25565b6001546001600160a01b0383811691161480159061178357506001600160a01b0382166000908152600c602052604090205460ff16155b80156117a857506001600160a01b0382166000908152600a602052604090205460ff16155b15611351576001600160a01b0382166000908152600960205260408120546117d190839061243f565b90506007548111156115f85760405162461bcd60e51b815260206004820152601560248201527415d05313115517d31253525517d15610d151511151605a1b6044820152606401610a25565b60185460009060ff16801561183457506000600d54115b801561185857506001600160a01b0382166000908152600a602052604090205460ff165b801561187557506017543060009081526009602052604090205410155b8015610998575060175461188a90600a612304565b6118943084611dd3565b1192915050565b6018805461ff001916610100179055601754601354606091906001600160a01b039081169084160361195157604080516002808252606082018352909160208301908036833701905050915030826000815181106118fb576118fb612548565b6001600160a01b03928316602091820292909201015260025483519116908390600190811061192c5761192c612548565b60200260200101906001600160a01b031690816001600160a01b031681525050611b17565b60008390506000816001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119ba91906122c7565b90506000826001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2091906122c7565b60408051600380825260808201909252919250602082016060803683370190505094503085600081518110611a5757611a57612548565b6001600160a01b0392831660209182029290920101526002805487519216918791908110611a8757611a87612548565b6001600160a01b03928316602091820292909201015282163014611ade578185600181518110611ab957611ab9612548565b60200260200101906001600160a01b031690816001600160a01b031681525050611b13565b8085600181518110611af257611af2612548565b60200260200101906001600160a01b031690816001600160a01b0316815250505b5050505b6011546000906001600160a01b03165a63791ac947846000873042604051602401611b4695949392919061255e565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051611b7f919061259d565b60006040518083038160008787f1925050503d8060008114611bbd576040519150601f19603f3d011682016040523d82523d6000602084013e611bc2565b606091505b50506013549091506001600160a01b0390811690851603611c1c5780611c1c5760405162461bcd60e51b815260206004820152600f60248201526e14d5d054109050d2d7d19052531151608a1b6044820152606401610a25565b600e54611c32906001600160a01b031647611300565b60155460175414611c4557601554611c49565b6016545b60175550506018805461ff00191690555050565b60606000611c6a83611e52565b600101905060008167ffffffffffffffff811115611c8a57611c8a61231b565b6040519080825280601f01601f191660200182016040528015611cb4576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611cbe57509392505050565b6001600160a01b0382166000908152600b602052604081205460ff16158015611d3257506001600160a01b0382166000908152600b602052604090205460ff16155b8015610ab1575050600d54151592915050565b600080600d546103e884611d5991906122a5565b611d639190612304565b306000818152600960205260409081902080548401905551919250906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611db99085815260200190565b60405180910390a3611dcb8184612292565b949350505050565b6000806040516370a0823160e01b81526001600160a01b0384166004820152602081602483885afa915060018203611e0a57805192505b5080611e4b5760405162461bcd60e51b815260206004820152601060248201526f18985b185b98d953d997d9985a5b195960821b6044820152606401610a25565b5092915050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611e915772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611ebd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611edb57662386f26fc10000830492506010015b6305f5e1008310611ef3576305f5e100830492506008015b6127108310611f0757612710830492506004015b60648310611f19576064830492506002015b600a83106109985760010192915050565b60005b83811015611f45578181015183820152602001611f2d565b50506000910152565b6020815260008251806020840152611f6d816040850160208701611f2a565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610bdc57600080fd5b60008060408385031215611fa957600080fd5b8235611fb481611f81565b946020939093013593505050565b600081518084526020808501945080840160005b83811015611ffb5781516001600160a01b031687529582019590820190600101611fd6565b509495945050505050565b602081526000610ab16020830184611fc2565b60008060006060848603121561202e57600080fd5b833561203981611f81565b9250602084013561204981611f81565b929592945050506040919091013590565b60006020828403121561206c57600080fd5b8135610ab181611f81565b60006020828403121561208957600080fd5b5035919050565b803580151581146120a057600080fd5b919050565b600080604083850312156120b857600080fd5b82356120c381611f81565b91506120d160208401612090565b90509250929050565b600080604083850312156120ed57600080fd5b50508035926020909101359150565b60008083601f84011261210e57600080fd5b50813567ffffffffffffffff81111561212657600080fd5b60208301915083602082850101111561213e57600080fd5b9250929050565b6000806000806040858703121561215b57600080fd5b843567ffffffffffffffff8082111561217357600080fd5b61217f888389016120fc565b9096509450602087013591508082111561219857600080fd5b506121a5878288016120fc565b95989497509550505050565b6000806000606084860312156121c657600080fd5b6121cf84612090565b95602085013595506040909401359392505050565b600080604083850312156121f757600080fd5b823561220281611f81565b9150602083013561221281611f81565b809150509250929050565b600181811c9082168061223157607f821691505b60208210810361225157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156109985761099861227c565b6000826122c257634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122d957600080fd5b8151610ab181611f81565b60208082526006908201526510a7aba722a960d11b604082015260600190565b80820281158282048414176109985761099861227c565b634e487b7160e01b600052604160045260246000fd5b601f82111561135157600081815260208120601f850160051c810160208610156123585750805b601f850160051c820191505b8181101561237757828155600101612364565b505050505050565b67ffffffffffffffff8311156123975761239761231b565b6123ab836123a5835461221d565b83612331565b6000601f8411600181146123df57600085156123c75750838201355b600019600387901b1c1916600186901b178355610f8b565b600083815260209020601f19861690835b8281101561241057868501358255602094850194600190920191016123f0565b508682101561242d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b808201808211156109985761099861227c565b6d02832b8329031b7bab73a32b91d160951b81526000825161247b81600e850160208701611f2a565b91909101600e0192915050565b815167ffffffffffffffff8111156124a2576124a261231b565b6124b6816124b0845461221d565b84612331565b602080601f8311600181146124eb57600084156124d35750858301515b600019600386901b1c1916600185901b178555612377565b600085815260208120601f198616915b8281101561251a578886015182559484019460019091019084016124fb565b50858210156125385787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260ff8516602082015260a06040820152600061258060a0830186611fc2565b6001600160a01b0394909416606083015250608001529392505050565b600082516125af818460208701611f2a565b919091019291505056fea26469706673582212204757276332c4ae90e1c4283e37057ee5454177e192e162bbff13db917c328b5164736f6c63430008130033
Deployed Bytecode Sourcemap
7162:15226:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8826:49;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;8826:49:0;;;;;;;;7609:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12968:223::-;;;;;;;;;;-1:-1:-1;12968:223:0;;;;;:::i;:::-;;:::i;:::-;;;1473:14:1;;1466:22;1448:41;;1436:2;1421:18;12968:223:0;1308:187:1;8219:45:0;;;;;;;;;;;;8260:4;8219:45;;7691:59;;;;;;;;;;;;;;;;22293:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;21456:124::-;;;;;;;;;;;;;:::i;:::-;;13360:322;;;;;;;;;;-1:-1:-1;13360:322:0;;;;;:::i;:::-;;:::i;12271:135::-;;;;;;;;;;;;;:::i;4987:103::-;;;;;;;;;;-1:-1:-1;4987:103:0;;;;;:::i;:::-;5077:5;;-1:-1:-1;;;;;5066:16:0;;;5077:5;;5066:16;;4987:103;7568:34;;;;;;;;;;;;7601:1;7568:34;;;;;3117:4:1;3105:17;;;3087:36;;3075:2;3060:18;7568:34:0;2945:184:1;21588:200:0;;;;;;;;;;-1:-1:-1;21588:200:0;;;;;:::i;:::-;;:::i;8109:44::-;;;;;;;;;;-1:-1:-1;8109:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8731:53;;;;;;;;;;;;;;;;21796:140;;;;;;;;;;-1:-1:-1;21796:140:0;;;;;:::i;:::-;;:::i;16529:120::-;;;;;;;;;;-1:-1:-1;16529:120:0;;;;;:::i;:::-;;:::i;8379:24::-;;;;;;;;;;;;;;;;8882:30;;;;;;;;;;-1:-1:-1;8882:30:0;;;;;;;;8011:45;;;;;;;;;;-1:-1:-1;8011:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;7757:47;;;;;;;;;;;;;;;;8636:54;;;;;;;;;;;;;;;;8496:23;;;;;;;;;;-1:-1:-1;8496:23:0;;;;-1:-1:-1;;;;;8496:23:0;;;;;;-1:-1:-1;;;;;3968:32:1;;;3950:51;;3938:2;3923:18;8496:23:0;3804:203:1;4437:20:0;;;;;;;;;;-1:-1:-1;4437:20:0;;;;-1:-1:-1;;;;;4437:20:0;;;17701:193;;;;;;;;;;-1:-1:-1;17701:193:0;;;;;:::i;:::-;;:::i;7654:28::-;;;;;;;;;;;;;:::i;21944:214::-;;;;;;;;;;-1:-1:-1;21944:214:0;;;;;:::i;:::-;;:::i;13199:153::-;;;;;;;;;;-1:-1:-1;13199:153:0;;;;;:::i;:::-;;:::i;8160:46::-;;;;;;;;;;-1:-1:-1;8160:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8344:26;;;;;;;;;;-1:-1:-1;8344:26:0;;;;-1:-1:-1;;;;;8344:26:0;;;4780:94;;;;;;;;;;-1:-1:-1;4780:94:0;;;;;:::i;:::-;;:::i;8526:22::-;;;;;;;;;;-1:-1:-1;8526:22:0;;;;;:::i;:::-;;:::i;16276:245::-;;;;;;;;;;-1:-1:-1;16276:245:0;;;;;:::i;:::-;;:::i;8467:22::-;;;;;;;;;;-1:-1:-1;8467:22:0;;;;-1:-1:-1;;;;;8467:22:0;;;22166:119;;;;;;;;;;-1:-1:-1;22166:119:0;;;;;:::i;:::-;;:::i;21289:162::-;;;;;;;;;;-1:-1:-1;21289:162:0;;;;;:::i;:::-;;:::i;20374:530::-;;;;;;;;;;-1:-1:-1;20374:530:0;;;;;:::i;:::-;;:::i;8280:31::-;;;;;;;;;;;;;;;;16657:124;;;;;;;;;;-1:-1:-1;16657:124:0;;;;;:::i;:::-;;:::i;7939:65::-;;;;;;;;;;-1:-1:-1;7939:65:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;17902:112;;;;;;;;;;-1:-1:-1;17902:112:0;;;;;:::i;:::-;;:::i;8063:39::-;;;;;;;;;;-1:-1:-1;8063:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7847:51;;;;;;;;;;;;;;;;4882:97;;;;;;;;;;-1:-1:-1;4882:97:0;;;;;:::i;:::-;;:::i;5213:173::-;;;;;;;;;;-1:-1:-1;5213:173:0;;;;;:::i;:::-;;:::i;16034:230::-;;;;;;;;;;-1:-1:-1;16034:230:0;;;;;:::i;:::-;;:::i;8439:21::-;;;;;;;;;;-1:-1:-1;8439:21:0;;;;-1:-1:-1;;;;;8439:21:0;;;5098:107;;;;;;;;;;-1:-1:-1;5098:107:0;;;;;:::i;:::-;;:::i;7609:38::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12968:223::-;13069:10;13042:4;13059:21;;;:9;:21;;;;;;;;-1:-1:-1;;;;;13059:30:0;;;;;;;;;;:39;;;13114:37;13042:4;;13059:30;;13114:37;;;;13092:6;160:25:1;;148:2;133:18;;14:177;13114:37:0;;;;;;;;-1:-1:-1;13179:4:0;12968:223;;;;;:::o;22293:92::-;22337:16;22372:5;22365:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22365:12:0;;;;;;;;;;;;;;;;;;;;;;;22293:92;:::o;21456:124::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;;;;;;;;;21537:11:::1;::::0;21505:67:::1;::::0;-1:-1:-1;;;;;21537:11:0::1;21550:21;21505:31;:67::i;:::-;21456:124::o:0;13360:322::-;-1:-1:-1;;;;;13492:17:0;;13457:4;13492:17;;;:9;:17;;;;;;;;13510:10;13492:29;;;;;;;;-1:-1:-1;;13536:28:0;;13532:82;;13598:16;13608:6;13598:7;:16;:::i;:::-;-1:-1:-1;;;;;13566:17:0;;;;;;:9;:17;;;;;;;;13584:10;13566:29;;;;;;;:48;13532:82;13634:40;13648:6;13656:9;13667:6;13634:13;:40::i;:::-;13627:47;;;13360:322;;;;;;:::o;12271:135::-;12383:9;:15;;;;7444:42;12324:7;12365:15;;;;;12351:11;;12324:7;;12383:15;12351:29;;12365:15;12351:29;:::i;:::-;:47;;;;:::i;:::-;12344:54;;12271:135;:::o;21588:200::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;21698:4:::1;-1:-1:-1::0;;;;;21680:23:0;::::1;::::0;21672:40:::1;;;;-1:-1:-1::0;;;21672:40:0::1;;;;;;7510:2:1::0;7492:21;;;7549:1;7529:18;;;7522:29;-1:-1:-1;;;7582:2:1;7567:18;;7560:34;7626:2;7611:18;;7308:327;21672:40:0::1;21760:11;::::0;21723:57:::1;::::0;21752:6;;-1:-1:-1;;;;;21760:11:0::1;21773:6:::0;21723:28:::1;:57::i;:::-;21588:200:::0;;:::o;21796:140::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;21871:57:::1;21908:4;7444:42;21921:6;21871:28;:57::i;:::-;21796:140:::0;:::o;16529:120::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16613:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;16613:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16529:120::o;17701:193::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;17795:19:::1;17812:2;8260:4;17795:19;:::i;:::-;17781:11;:33;17773:42;;;::::0;::::1;;17862:10;:24:::0;17701:193::o;7654:28::-;;;;;;;:::i;21944:214::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;22044:7:::1;::::0;22032:53:::1;::::0;-1:-1:-1;;;22032:53:0;;-1:-1:-1;;;;;8224:15:1;;;22032:53:0::1;::::0;::::1;8206:34:1::0;22079:4:0::1;8256:18:1::0;;;8249:43;22013:16:0::1;::::0;22044:7:::1;::::0;22032:31:::1;::::0;8141:18:1;;22032:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22096:16:0::1;;::::0;;;:6:::1;:16;::::0;;;;:23;;-1:-1:-1;;22096:23:0::1;22115:4;22096:23:::0;;::::1;::::0;;;22130:5:::1;:20:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22130:20:0::1;::::0;;::::1;::::0;;-1:-1:-1;;21944:214:0:o;13199:153::-;13276:4;13300:44;13314:10;13326:9;13337:6;13300:13;:44::i;4780:94::-;4627:5;;-1:-1:-1;;;;;4627:5:0;4613:10;:19;4605:38;;;;-1:-1:-1;;;4605:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4840:19:0::1;:14;:19:::0;;;::::1;::::0;;;;;;:26;;-1:-1:-1;;4840:26:0::1;4862:4;4840:26;::::0;;4780:94::o;8526:22::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8526:22:0;;-1:-1:-1;8526:22:0;:::o;16276:245::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;16407:11:::1;16397:7;16383:11;;:21;;;;:::i;:::-;:35;;;;:::i;:::-;16370:10;:48:::0;16451:11:::1;::::0;16470:4:::1;::::0;16451:16:::1;::::0;16465:2:::1;16451:16;:::i;:::-;:23;;;;:::i;:::-;16437:10;;:37;;16429:84;;;::::0;-1:-1:-1;;;16429:84:0;;9268:2:1;16429:84:0::1;::::0;::::1;9250:21:1::0;9307:2;9287:18;;;9280:30;9346:34;9326:18;;;9319:62;-1:-1:-1;;;9397:18:1;;;9390:32;9439:19;;16429:84:0::1;9066:398:1::0;22166:119:0;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22231:12:0::1;;::::0;;;:6:::1;:12;::::0;;;;:19;;-1:-1:-1;;22231:19:0::1;22246:4;22231:19:::0;;::::1;::::0;;;22261:5:::1;:16:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22261:16:0::1;::::0;;::::1;::::0;;22166:119::o;21289:162::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;21400:4:::1;:14;21407:7:::0;;21400:4;:14:::1;:::i;:::-;-1:-1:-1::0;21425:6:0::1;:18;21434:9:::0;;21425:6;:18:::1;:::i;:::-;;21289:162:::0;;;;:::o;20374:530::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;20536:5:::1;20517:11;;20531:2;20517:16;;;;:::i;:::-;:24;;;;:::i;:::-;20501:12;:40;;20493:87;;;::::0;-1:-1:-1;;;20493:87:0;;11861:2:1;20493:87:0::1;::::0;::::1;11843:21:1::0;11900:2;11880:18;;;11873:30;11939:34;11919:18;;;11912:62;-1:-1:-1;;;11990:18:1;;;11983:32;12032:19;;20493:87:0::1;11659:398:1::0;20493:87:0::1;20681:4;20663:11;;20677:1;20663:15;;;;:::i;:::-;:22;;;;:::i;:::-;20647:12;:38;;20639:85;;;::::0;-1:-1:-1;;;20639:85:0;;12264:2:1;20639:85:0::1;::::0;::::1;12246:21:1::0;12303:2;12283:18;;;12276:30;12342:34;12322:18;;;12315:62;-1:-1:-1;;;12393:18:1;;;12386:32;12435:19;;20639:85:0::1;12062:398:1::0;20639:85:0::1;20786:11;:22:::0;;-1:-1:-1;;20786:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;20819:18:::1;:33:::0;20863:18:::1;:33:::0;20374:530::o;16657:124::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16743:21:0;;;::::1;;::::0;;;:13:::1;:21;::::0;;;;:30;;-1:-1:-1;;16743:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16657:124::o;17902:112::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;17980:11:::1;:26:::0;;-1:-1:-1;;;;;;17980:26:0::1;-1:-1:-1::0;;;;;17980:26:0;;;::::1;::::0;;;::::1;::::0;;17902:112::o;4882:97::-;4627:5;;-1:-1:-1;;;;;4627:5:0;4613:10;:19;4605:38;;;;-1:-1:-1;;;4605:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4944:19:0::1;4966:5;4944:19:::0;;;::::1;::::0;;;;;;:27;;-1:-1:-1;;4944:27:0::1;::::0;;4882:97::o;5213:173::-;4627:5;;-1:-1:-1;;;;;4627:5:0;4613:10;:19;4605:38;;;;-1:-1:-1;;;4605:38:0;;;;;;;:::i;:::-;5289:5:::1;:11:::0;;-1:-1:-1;;;;;;5289:11:0::1;-1:-1:-1::0;;;;;5289:11:0;::::1;::::0;;::::1;::::0;;-1:-1:-1;5311:19:0;;;::::1;::::0;;;;;;;;:26;;-1:-1:-1;;5311:26:0::1;::::0;;::::1;::::0;;;5353:25;3950:51:1;;;5353:25:0::1;::::0;3923:18:1;5353:25:0::1;;;;;;;5213:173:::0;:::o;16034:230::-;4712:24;4725:10;4712:12;:24::i;:::-;4704:48;;;;-1:-1:-1;;;4704:48:0;;;;;;;:::i;:::-;16158:11:::1;16148:7;16134:11;;:21;;;;:::i;:::-;:35;;;;:::i;:::-;16125:6;:44:::0;16198:11:::1;::::0;16217:4:::1;::::0;16198:16:::1;::::0;16212:2:::1;16198:16;:::i;:::-;:23;;;;:::i;:::-;16188:6;;:33;;16180:76;;;::::0;-1:-1:-1;;;16180:76:0;;12883:2:1;16180:76:0::1;::::0;::::1;12865:21:1::0;12922:2;12902:18;;;12895:30;12961:32;12941:18;;;12934:60;13011:18;;16180:76:0::1;12681:354:1::0;5098:107:0;-1:-1:-1;;;;;5178:19:0;5154:4;5178:19;;;;;;;;;;;;;;5098:107::o;2196:282::-;2269:12;2406:1;2403;2400;2397;2389:6;2385:2;2378:5;2373:35;2362:46;;2439:7;2431:39;;;;-1:-1:-1;;;2431:39:0;;13242:2:1;2431:39:0;;;13224:21:1;13281:2;13261:18;;;13254:30;-1:-1:-1;;;13300:18:1;;;13293:49;13359:18;;2431:39:0;13040:343:1;2431:39:0;2258:220;2196:282;;:::o;13690:1086::-;13782:4;13804:10;12481;;:15;;;12414:90;13804:10;13803:11;:32;;;;-1:-1:-1;;;;;;13818:17:0;;;;;;:6;:17;;;;;;;;13803:32;13799:127;;;13860:20;13873:6;13860:12;:20::i;:::-;13852:39;;;;-1:-1:-1;;;13852:39:0;;;;;;;:::i;:::-;13906:8;12563:12;12550:10;:25;12512:71;13906:8;13940:14;;;;;;;13936:68;;;13963:41;13978:6;13986:9;13997:6;13963:14;:41::i;:::-;13956:48;;;;13936:68;14017:39;14030:6;14038:9;14049:6;14017:12;:39::i;:::-;14071:25;14086:9;14071:14;:25::i;:::-;14067:50;;;14098:19;14107:9;14098:8;:19::i;:::-;-1:-1:-1;;;;;14130:17:0;;;;;;:9;:17;;;;;:27;;14151:6;;14130:17;:27;;14151:6;;14130:27;:::i;:::-;;;;-1:-1:-1;;;;;;;14224:14:0;;14168:22;14224:14;;;:6;:14;;;;;;14193:6;;14224:14;;;:35;;-1:-1:-1;;;;;;14242:17:0;;;;;;:6;:17;;;;;;;;14224:35;14220:367;;;-1:-1:-1;;;;;14280:14:0;;;;;;:6;:14;;;;;;;;14276:199;;;14324:1;14315:5;;:10;;;;;;;:::i;:::-;;;;;;;;14346:19;14368:16;:5;;:14;:16::i;:::-;14346:38;;14452:5;14417:41;;;;;;;;:::i;:::-;;;;;;;;;;;;;14403:4;:56;;;;;;:::i;:::-;;14296:179;14276:199;14508:32;14522:6;14530:9;14508:13;:32::i;:::-;:67;;14569:6;14508:67;;;14543:23;14551:6;14559;14543:7;:23::i;:::-;14491:84;;14220:367;-1:-1:-1;;;;;14624:20:0;;;;;;;:9;:20;;;;;;;:38;;;;;;14682:43;14624:20;;14682:43;;;;;;;14648:14;160:25:1;;148:2;133:18;;14:177;14682:43:0;;;;;;;;-1:-1:-1;14764:4:0;;13690:1086;-1:-1:-1;;;;13690:1086:0:o;2486:1025::-;2571:12;2746:4;2740:11;-1:-1:-1;;;2872:17:0;2865:93;-1:-1:-1;;;;;3010:2:0;3006:51;3002:1;2983:17;2979:25;2972:86;3145:6;3140:2;3121:17;3117:26;3110:42;3427:2;3424:1;3420:2;3401:17;3398:1;3391:5;3384;3379:51;3342:16;3335:24;3329:2;3311:16;3308:24;3304:1;3300;3294:8;3291:15;3287:46;3284:76;3262:183;3251:194;;;3476:7;3468:35;;;;-1:-1:-1;;;3468:35:0;;15528:2:1;3468:35:0;;;15510:21:1;15567:2;15547:18;;;15540:30;-1:-1:-1;;;15586:18:1;;;15579:45;15641:18;;3468:35:0;15326:339:1;3468:35:0;2560:951;2486:1025;;;:::o;14784:315::-;-1:-1:-1;;;;;14894:17:0;;14877:4;14894:17;;;:9;:17;;;;;:27;;14915:6;;14894:17;14877:4;;14894:27;;14915:6;;14894:27;:::i;:::-;;;;-1:-1:-1;;;;;;;14959:20:0;;;;;;:9;:20;;;;;;;:30;;;;;;15009:39;15018:10;;15009:39;;;;14983:6;160:25:1;;148:2;133:18;;14:177;15009:39:0;;;;;;;;-1:-1:-1;15087:4:0;14784:315;;;;;:::o;15484:542::-;15633:6;;15623;:16;;:62;;;-1:-1:-1;;;;;;15643:14:0;;;;;;:6;:14;;;;;;;;:42;;;;-1:-1:-1;;;;;;15661:24:0;;;;;;:13;:24;;;;;;;;15643:42;15623:87;;;-1:-1:-1;;;;;;15689:21:0;;;;;;:13;:21;;;;;;;;15623:87;15615:126;;;;-1:-1:-1;;;15615:126:0;;15872:2:1;15615:126:0;;;15854:21:1;15911:2;15891:18;;;15884:30;15950:28;15930:18;;;15923:56;15996:18;;15615:126:0;15670:350:1;15615:126:0;15811:5;;-1:-1:-1;;;;;15798:18:0;;;15811:5;;15798:18;;;;:47;;-1:-1:-1;;;;;;15821:24:0;;;;;;:13;:24;;;;;;;;15820:25;15798:47;:69;;;;-1:-1:-1;;;;;;15850:17:0;;;;;;:6;:17;;;;;;;;15849:18;15798:69;15794:225;;;-1:-1:-1;;;;;15905:20:0;;15884:18;15905:20;;;:9;:20;;;;;;:29;;15928:6;;15905:29;:::i;:::-;15884:50;;15971:10;;15957;:24;;15949:58;;;;-1:-1:-1;;;15949:58:0;;16227:2:1;15949:58:0;;;16209:21:1;16266:2;16246:18;;;16239:30;-1:-1:-1;;;16285:18:1;;;16278:51;16346:18;;15949:58:0;16025:345:1;18399:442:0;18504:11;;18465:4;;18504:11;;:42;;;;;18545:1;18532:10;;:14;18504:42;:76;;;;-1:-1:-1;;;;;;18563:17:0;;;;;;:6;:17;;;;;;;;18504:76;:134;;;;-1:-1:-1;18625:13:0;;18615:4;18597:24;;;;:9;:24;;;;;;:41;;18504:134;:318;;;;-1:-1:-1;18804:13:0;;:18;;18820:2;18804:18;:::i;:::-;18750:51;18784:4;18791:9;18750:25;:51::i;:::-;:72;18482:351;18399:442;-1:-1:-1;;18399:442:0:o;18849:1517::-;8579:14;:21;;-1:-1:-1;;8579:21:0;;;;;18969:13:::1;::::0;19011:8:::1;::::0;18914:21:::1;::::0;18969:13;-1:-1:-1;;;;;19011:8:0;;::::1;18999:20:::0;;::::1;::::0;18995:708:::1;;19081:16;::::0;;19095:1:::1;19081:16:::0;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19081:16:0::1;19074:23;;19130:4;19112;19117:1;19112:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19112:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19160:7:::1;::::0;19150;;19160;::::1;::::0;19150:4;;19160:7;;19150;::::1;;;;;:::i;:::-;;;;;;:17;-1:-1:-1::0;;;;;19150:17:0::1;;;-1:-1:-1::0;;;;;19150:17:0::1;;;::::0;::::1;18995:708;;;19200:11;19221:8;19200:30;;19245:14;19262:4;-1:-1:-1::0;;;;;19262:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19245:30;;19290:14;19307:4;-1:-1:-1::0;;;;;19307:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19411:16;::::0;;19425:1:::1;19411:16:::0;;;;;::::1;::::0;;;19290:30;;-1:-1:-1;19411:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;19411:16:0::1;19404:23;;19460:4;19442;19447:1;19442:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19442:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;19531:7:::1;::::0;;19521;;19531;::::1;::::0;19521:4;;19531:7;19521;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;19521:17:0;;::::1;:7;::::0;;::::1;::::0;;;;;:17;19559:23;::::1;19577:4;19559:23;19555:137;;19613:6;19603:4;19608:1;19603:7;;;;;;;;:::i;:::-;;;;;;:16;-1:-1:-1::0;;;;;19603:16:0::1;;;-1:-1:-1::0;;;;;19603:16:0::1;;;::::0;::::1;19555:137;;;19670:6;19660:4;19665:1;19660:7;;;;;;;;:::i;:::-;;;;;;:16;-1:-1:-1::0;;;;;19660:16:0::1;;;-1:-1:-1::0;;;;;19660:16:0::1;;;::::0;::::1;19555:137;19185:518;;;18995:708;19733:6;::::0;19716:12:::1;::::0;-1:-1:-1;;;;;19733:6:0::1;19751:9;19926:10;19955:12;19986:1;20006:4;20037;20061:15;19885:206;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19885:206:0::1;;;;;;;;;;;19733:369;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;20131:8:0::1;::::0;19715:387;;-1:-1:-1;;;;;;20131:8:0;;::::1;20119:20:::0;;::::1;::::0;20115:61:::1;;20149:7;20141:35;;;::::0;-1:-1:-1;;;20141:35:0;;17597:2:1;20141:35:0::1;::::0;::::1;17579:21:1::0;17636:2;17616:18;;;17609:30;-1:-1:-1;;;17655:18:1;;;17648:45;17710:18;;20141:35:0::1;17395:339:1::0;20141:35:0::1;20219:11;::::0;20187:67:::1;::::0;-1:-1:-1;;;;;20219:11:0::1;20232:21;20187:31;:67::i;:::-;20298:18;;20281:13;;:35;:77;;20340:18;;20281:77;;;20319:18;;20281:77;20265:13;:93:::0;-1:-1:-1;;8605:14:0;:22;;-1:-1:-1;;8605:22:0;;;-1:-1:-1;;18849:1517:0:o;1442:716::-;1498:13;1549:14;1566:17;1577:5;1566:10;:17::i;:::-;1586:1;1566:21;1549:38;;1602:20;1636:6;1625:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1625:18:0;-1:-1:-1;1602:41:0;-1:-1:-1;1767:28:0;;;1783:2;1767:28;1824:288;-1:-1:-1;;1856:5:0;-1:-1:-1;;;1993:2:0;1982:14;;1977:30;1856:5;1964:44;2054:2;2045:11;;;-1:-1:-1;2075:21:0;1824:288;2075:21;-1:-1:-1;2133:6:0;1442:716;-1:-1:-1;;;1442:716:0:o;17170:178::-;-1:-1:-1;;;;;17276:19:0;;17251:4;17276:19;;;:11;:19;;;;;;;;17275:20;:47;;;;-1:-1:-1;;;;;;17300:22:0;;;;;;:11;:22;;;;;;;;17299:23;17275:47;:65;;;;-1:-1:-1;;17326:10:0;;:14;;;17170:178;-1:-1:-1;;17170:178:0:o;17356:337::-;17423:7;17443:17;17489:10;;8260:4;17463:6;:23;;;;:::i;:::-;:36;;;;:::i;:::-;17555:4;17537:24;;;;:9;:24;;;;;;;:37;;;;;;17594:42;17443:56;;-1:-1:-1;17555:4:0;-1:-1:-1;;;;;17594:42:0;;;;;;;17443:56;160:25:1;;148:2;133:18;;14:177;17594:42:0;;;;;;;;17667:18;17676:9;17667:6;:18;:::i;:::-;17660:25;17356:337;-1:-1:-1;;;;17356:337:0:o;3519:775::-;3592:14;3619:12;3743:4;3737:11;-1:-1:-1;;;3840:17:0;3833:93;-1:-1:-1;;;;;3978:6:0;3974:55;3970:1;3951:17;3947:25;3940:90;4124:2;4105:17;4101:2;4082:17;4075:5;4068;4057:70;4046:81;;4156:1;4147:7;4144:14;4141:86;;4194:17;4188:24;4178:34;;4141:86;;4258:7;4250:36;;;;-1:-1:-1;;;4250:36:0;;17941:2:1;4250:36:0;;;17923:21:1;17980:2;17960:18;;;17953:30;-1:-1:-1;;;17999:18:1;;;17992:46;18055:18;;4250:36:0;17739:340:1;4250:36:0;3608:686;3519:775;;;;:::o;253:948::-;306:7;;-1:-1:-1;;;384:17:0;;380:106;;-1:-1:-1;;;422:17:0;;;-1:-1:-1;468:2:0;458:12;380:106;513:8;504:5;:17;500:106;;551:8;542:17;;;-1:-1:-1;588:2:0;578:12;500:106;633:8;624:5;:17;620:106;;671:8;662:17;;;-1:-1:-1;708:2:0;698:12;620:106;753:7;744:5;:16;740:103;;790:7;781:16;;;-1:-1:-1;826:1:0;816:11;740:103;870:7;861:5;:16;857:103;;907:7;898:16;;;-1:-1:-1;943:1:0;933:11;857:103;987:7;978:5;:16;974:103;;1024:7;1015:16;;;-1:-1:-1;1060:1:0;1050:11;974:103;1104:7;1095:5;:16;1091:68;;1142:1;1132:11;1187:6;253:948;-1:-1:-1;;253:948:0:o;196:250:1:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:1;420:16;;413:27;196:250::o;451:396::-;600:2;589:9;582:21;563:4;632:6;626:13;675:6;670:2;659:9;655:18;648:34;691:79;763:6;758:2;747:9;743:18;738:2;730:6;726:15;691:79;:::i;:::-;831:2;810:15;-1:-1:-1;;806:29:1;791:45;;;;838:2;787:54;;451:396;-1:-1:-1;;451:396:1:o;852:131::-;-1:-1:-1;;;;;927:31:1;;917:42;;907:70;;973:1;970;963:12;988:315;1056:6;1064;1117:2;1105:9;1096:7;1092:23;1088:32;1085:52;;;1133:1;1130;1123:12;1085:52;1172:9;1159:23;1191:31;1216:5;1191:31;:::i;:::-;1241:5;1293:2;1278:18;;;;1265:32;;-1:-1:-1;;;988:315:1:o;1500:461::-;1553:3;1591:5;1585:12;1618:6;1613:3;1606:19;1644:4;1673:2;1668:3;1664:12;1657:19;;1710:2;1703:5;1699:14;1731:1;1741:195;1755:6;1752:1;1749:13;1741:195;;;1820:13;;-1:-1:-1;;;;;1816:39:1;1804:52;;1876:12;;;;1911:15;;;;1852:1;1770:9;1741:195;;;-1:-1:-1;1952:3:1;;1500:461;-1:-1:-1;;;;;1500:461:1:o;1966:261::-;2145:2;2134:9;2127:21;2108:4;2165:56;2217:2;2206:9;2202:18;2194:6;2165:56;:::i;2232:456::-;2309:6;2317;2325;2378:2;2366:9;2357:7;2353:23;2349:32;2346:52;;;2394:1;2391;2384:12;2346:52;2433:9;2420:23;2452:31;2477:5;2452:31;:::i;:::-;2502:5;-1:-1:-1;2559:2:1;2544:18;;2531:32;2572:33;2531:32;2572:33;:::i;:::-;2232:456;;2624:7;;-1:-1:-1;;;2678:2:1;2663:18;;;;2650:32;;2232:456::o;2693:247::-;2752:6;2805:2;2793:9;2784:7;2780:23;2776:32;2773:52;;;2821:1;2818;2811:12;2773:52;2860:9;2847:23;2879:31;2904:5;2879:31;:::i;3134:180::-;3193:6;3246:2;3234:9;3225:7;3221:23;3217:32;3214:52;;;3262:1;3259;3252:12;3214:52;-1:-1:-1;3285:23:1;;3134:180;-1:-1:-1;3134:180:1:o;3319:160::-;3384:20;;3440:13;;3433:21;3423:32;;3413:60;;3469:1;3466;3459:12;3413:60;3319:160;;;:::o;3484:315::-;3549:6;3557;3610:2;3598:9;3589:7;3585:23;3581:32;3578:52;;;3626:1;3623;3616:12;3578:52;3665:9;3652:23;3684:31;3709:5;3684:31;:::i;:::-;3734:5;-1:-1:-1;3758:35:1;3789:2;3774:18;;3758:35;:::i;:::-;3748:45;;3484:315;;;;;:::o;4012:248::-;4080:6;4088;4141:2;4129:9;4120:7;4116:23;4112:32;4109:52;;;4157:1;4154;4147:12;4109:52;-1:-1:-1;;4180:23:1;;;4250:2;4235:18;;;4222:32;;-1:-1:-1;4012:248:1:o;4265:348::-;4317:8;4327:6;4381:3;4374:4;4366:6;4362:17;4358:27;4348:55;;4399:1;4396;4389:12;4348:55;-1:-1:-1;4422:20:1;;4465:18;4454:30;;4451:50;;;4497:1;4494;4487:12;4451:50;4534:4;4526:6;4522:17;4510:29;;4586:3;4579:4;4570:6;4562;4558:19;4554:30;4551:39;4548:59;;;4603:1;4600;4593:12;4548:59;4265:348;;;;;:::o;4618:721::-;4710:6;4718;4726;4734;4787:2;4775:9;4766:7;4762:23;4758:32;4755:52;;;4803:1;4800;4793:12;4755:52;4843:9;4830:23;4872:18;4913:2;4905:6;4902:14;4899:34;;;4929:1;4926;4919:12;4899:34;4968:59;5019:7;5010:6;4999:9;4995:22;4968:59;:::i;:::-;5046:8;;-1:-1:-1;4942:85:1;-1:-1:-1;5134:2:1;5119:18;;5106:32;;-1:-1:-1;5150:16:1;;;5147:36;;;5179:1;5176;5169:12;5147:36;;5218:61;5271:7;5260:8;5249:9;5245:24;5218:61;:::i;:::-;4618:721;;;;-1:-1:-1;5298:8:1;-1:-1:-1;;;;4618:721:1:o;5344:316::-;5418:6;5426;5434;5487:2;5475:9;5466:7;5462:23;5458:32;5455:52;;;5503:1;5500;5493:12;5455:52;5526:26;5542:9;5526:26;:::i;:::-;5516:36;5599:2;5584:18;;5571:32;;-1:-1:-1;5650:2:1;5635:18;;;5622:32;;5344:316;-1:-1:-1;;;5344:316:1:o;5665:388::-;5733:6;5741;5794:2;5782:9;5773:7;5769:23;5765:32;5762:52;;;5810:1;5807;5800:12;5762:52;5849:9;5836:23;5868:31;5893:5;5868:31;:::i;:::-;5918:5;-1:-1:-1;5975:2:1;5960:18;;5947:32;5988:33;5947:32;5988:33;:::i;:::-;6040:7;6030:17;;;5665:388;;;;;:::o;6318:380::-;6397:1;6393:12;;;;6440;;;6461:61;;6515:4;6507:6;6503:17;6493:27;;6461:61;6568:2;6560:6;6557:14;6537:18;6534:38;6531:161;;6614:10;6609:3;6605:20;6602:1;6595:31;6649:4;6646:1;6639:15;6677:4;6674:1;6667:15;6531:161;;6318:380;;;:::o;6703:335::-;6905:2;6887:21;;;6944:2;6924:18;;;6917:30;-1:-1:-1;;;6978:2:1;6963:18;;6956:41;7029:2;7014:18;;6703:335::o;7043:127::-;7104:10;7099:3;7095:20;7092:1;7085:31;7135:4;7132:1;7125:15;7159:4;7156:1;7149:15;7175:128;7242:9;;;7263:11;;;7260:37;;;7277:18;;:::i;7772:217::-;7812:1;7838;7828:132;;7882:10;7877:3;7873:20;7870:1;7863:31;7917:4;7914:1;7907:15;7945:4;7942:1;7935:15;7828:132;-1:-1:-1;7974:9:1;;7772:217::o;8303:251::-;8373:6;8426:2;8414:9;8405:7;8401:23;8397:32;8394:52;;;8442:1;8439;8432:12;8394:52;8474:9;8468:16;8493:31;8518:5;8493:31;:::i;8559:329::-;8761:2;8743:21;;;8800:1;8780:18;;;8773:29;-1:-1:-1;;;8833:2:1;8818:18;;8811:36;8879:2;8864:18;;8559:329::o;8893:168::-;8966:9;;;8997;;9014:15;;;9008:22;;8994:37;8984:71;;9035:18;;:::i;9469:127::-;9530:10;9525:3;9521:20;9518:1;9511:31;9561:4;9558:1;9551:15;9585:4;9582:1;9575:15;9727:545;9829:2;9824:3;9821:11;9818:448;;;9865:1;9890:5;9886:2;9879:17;9935:4;9931:2;9921:19;10005:2;9993:10;9989:19;9986:1;9982:27;9976:4;9972:38;10041:4;10029:10;10026:20;10023:47;;;-1:-1:-1;10064:4:1;10023:47;10119:2;10114:3;10110:12;10107:1;10103:20;10097:4;10093:31;10083:41;;10174:82;10192:2;10185:5;10182:13;10174:82;;;10237:17;;;10218:1;10207:13;10174:82;;;10178:3;;;9727:545;;;:::o;10448:1206::-;10572:18;10567:3;10564:27;10561:53;;;10594:18;;:::i;:::-;10623:94;10713:3;10673:38;10705:4;10699:11;10673:38;:::i;:::-;10667:4;10623:94;:::i;:::-;10743:1;10768:2;10763:3;10760:11;10785:1;10780:616;;;;11440:1;11457:3;11454:93;;;-1:-1:-1;11513:19:1;;;11500:33;11454:93;-1:-1:-1;;10405:1:1;10401:11;;;10397:24;10393:29;10383:40;10429:1;10425:11;;;10380:57;11560:78;;10753:895;;10780:616;9674:1;9667:14;;;9711:4;9698:18;;-1:-1:-1;;10816:17:1;;;10917:9;10939:229;10953:7;10950:1;10947:14;10939:229;;;11042:19;;;11029:33;11014:49;;11149:4;11134:20;;;;11102:1;11090:14;;;;10969:12;10939:229;;;10943:3;11196;11187:7;11184:16;11181:159;;;11320:1;11316:6;11310:3;11304;11301:1;11297:11;11293:21;11289:34;11285:39;11272:9;11267:3;11263:19;11250:33;11246:79;11238:6;11231:95;11181:159;;;11383:1;11377:3;11374:1;11370:11;11366:19;11360:4;11353:33;10753:895;;10448:1206;;;:::o;13388:125::-;13453:9;;;13474:10;;;13471:36;;;13487:18;;:::i;13518:446::-;-1:-1:-1;;;13775:3:1;13768:29;13750:3;13826:6;13820:13;13842:75;13910:6;13905:2;13900:3;13896:12;13889:4;13881:6;13877:17;13842:75;:::i;:::-;13937:16;;;;13955:2;13933:25;;13518:446;-1:-1:-1;;13518:446:1:o;13969:1352::-;14095:3;14089:10;14122:18;14114:6;14111:30;14108:56;;;14144:18;;:::i;:::-;14173:97;14263:6;14223:38;14255:4;14249:11;14223:38;:::i;:::-;14217:4;14173:97;:::i;:::-;14325:4;;14389:2;14378:14;;14406:1;14401:663;;;;15108:1;15125:6;15122:89;;;-1:-1:-1;15177:19:1;;;15171:26;15122:89;-1:-1:-1;;10405:1:1;10401:11;;;10397:24;10393:29;10383:40;10429:1;10425:11;;;10380:57;15224:81;;14371:944;;14401:663;9674:1;9667:14;;;9711:4;9698:18;;-1:-1:-1;;14437:20:1;;;14555:236;14569:7;14566:1;14563:14;14555:236;;;14658:19;;;14652:26;14637:42;;14750:27;;;;14718:1;14706:14;;;;14585:19;;14555:236;;;14559:3;14819:6;14810:7;14807:19;14804:201;;;14880:19;;;14874:26;-1:-1:-1;;14963:1:1;14959:14;;;14975:3;14955:24;14951:37;14947:42;14932:58;14917:74;;14804:201;-1:-1:-1;;;;;15051:1:1;15035:14;;;15031:22;15018:36;;-1:-1:-1;13969:1352:1:o;16375:127::-;16436:10;16431:3;16427:20;16424:1;16417:31;16467:4;16464:1;16457:15;16491:4;16488:1;16481:15;16507:591;16804:6;16793:9;16786:25;16859:4;16851:6;16847:17;16842:2;16831:9;16827:18;16820:45;16901:3;16896:2;16885:9;16881:18;16874:31;16767:4;16922:57;16974:3;16963:9;16959:19;16951:6;16922:57;:::i;:::-;-1:-1:-1;;;;;17015:32:1;;;;17010:2;16995:18;;16988:60;-1:-1:-1;17079:3:1;17064:19;17057:35;16914:65;16507:591;-1:-1:-1;;;16507:591:1:o;17103:287::-;17232:3;17270:6;17264:13;17286:66;17345:6;17340:3;17333:4;17325:6;17321:17;17286:66;:::i;:::-;17368:16;;;;;17103:287;-1:-1:-1;;17103:287:1:o
Swarm Source
ipfs://4757276332c4ae90e1c4283e37057ee5454177e192e162bbff13db917c328b51
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.