Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
250,000,000 JOY
Holders
9
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
JOYToken
Compiler Version
v0.8.1+commit.df193b15
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-21 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } } interface ItokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes calldata _extraData) external returns (bool); } interface IERC20Token { function totalSupply() external view returns (uint256 supply); function transfer(address _to, uint256 _value) external returns (bool success); function transferFrom(address _from, address _to, uint256 _value) external returns (bool success); function balanceOf(address _owner) external view returns (uint256 balance); function approve(address _spender, uint256 _value) external returns (bool success); function allowance(address _owner, address _spender) external view returns (uint256 remaining); } contract Ownable { address private owner; event OwnerSet(address indexed oldOwner, address indexed newOwner); modifier onlyOwner() { require(msg.sender == owner, "Caller is not owner"); _; } constructor() { owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor emit OwnerSet(address(0), owner); } function changeOwner(address newOwner) public onlyOwner { emit OwnerSet(owner, newOwner); owner = newOwner; } function getOwner() external view returns (address) { return owner; } } contract StandardToken is IERC20Token { using SafeMath for uint256; mapping (address => uint256) public balances; mapping (address => mapping (address => uint256)) public allowed; uint256 public _totalSupply; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); function totalSupply() override public view returns (uint256 supply) { return _totalSupply; } function transfer(address _to, uint256 _value) override virtual public returns (bool success) { require(_to != address(0x0), "Use burn function instead"); require(_value >= 0, "Invalid amount"); require(balances[msg.sender] >= _value, "Not enough balance"); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } function transferFrom(address _from, address _to, uint256 _value) override virtual public returns (bool success) { require(_to != address(0x0), "Use burn function instead"); require(_value >= 0, "Invalid amount"); require(balances[_from] >= _value, "Not enough balance"); require(allowed[_from][msg.sender] >= _value, "You need to increase allowance"); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(_from, _to, _value); return true; } function balanceOf(address _owner) override public view returns (uint256 balance) { return balances[_owner]; } function approve(address _spender, uint256 _value) override public returns (bool success) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } function allowance(address _owner, address _spender) override public view returns (uint256 remaining) { return allowed[_owner][_spender]; } } contract JOYToken is Ownable, StandardToken { using SafeMath for uint256; string public name = "Joy City"; uint8 public decimals = 18; string public symbol = "JOY"; // Time lock for progressive release of team, marketing and platform balances struct TimeLock { uint256 totalAmount; uint256 lockedBalance; uint128 baseDate; uint64 step; uint64 tokensStep; } mapping (address => TimeLock) public timeLocks; // Prevent Bots - If true, limits transactions to 1 transfer per block (whitelisted can execute multiple transactions) bool public limitTransactions; mapping (address => bool) public contractsWhiteList; mapping (address => uint) public lastTXBlock; event Burn(address indexed from, uint256 value); // token sale // Wallet for the tokens to be sold, and receive ETH address payable public salesWallet; uint256 public soldOnCSale; uint256 public constant CROWDSALE_START = 1627956740; uint256 public constant CROWDSALE_END = 1628656740; uint256 public constant CSALE_WEI_FACTOR = 15000; uint256 public constant CSALE_HARDCAP = 7500000 ether; constructor() { _totalSupply = 250000000 ether; // Base date to calculate team, marketing and platform tokens lock uint256 lockStartDate = 1627956740; // Team wallet - 10000000 tokens // 0 tokens free, 10000000 tokens locked - progressive release of 5% every 30 days (after 180 days of waiting period) address team = 0x9dA43D2eC9D228327f435d7B9cDc6CBdC72Ac9f4; balances[team] = 10000000 ether; timeLocks[team] = TimeLock(10000000 ether, 10000000 ether, uint128(lockStartDate + (180 days)), 30 days, 500000); emit Transfer(address(0x0), team, balances[team]); // Marketing wallet - 5000000 tokens // 1000000 tokens free, 4000000 tokens locked - progressive release of 5% every 30 days address marketingWallet = 0x3522BBC527F758C8692984008e680679Baa36C55; balances[marketingWallet] = 5000000 ether; timeLocks[marketingWallet] = TimeLock(4000000 ether, 4000000 ether, uint128(lockStartDate), 30 days, 200000); emit Transfer(address(0x0), marketingWallet, balances[marketingWallet]); // Private sale wallet - 2500000 tokens address privateWallet = 0xC1989eA6f62935a4Fa3EF36F3B1dF977b589b600; balances[privateWallet] = 2500000 ether; emit Transfer(address(0x0), privateWallet, balances[privateWallet]); // Sales wallet, holds Pre-Sale balance - 7500000 tokens salesWallet = payable(0xbD01F9a24b5B4fFC00FAa52127Af037FC130c684); balances[salesWallet] = 7500000 ether; emit Transfer(address(0x0), salesWallet, balances[salesWallet]); // Exchanges - 25000000 tokens address exchanges = 0xB5cA62899086dd0a7CCfD294d1c45F080A5eec2b; balances[exchanges] = 25000000 ether; emit Transfer(address(0x0), exchanges, balances[exchanges]); // Platform wallet - 200000000 tokens // 50000000 tokens free, 150000000 tokens locked - progressive release of 25000000 every 90 days address platformWallet = 0xfE5B4AECd3e18dB44F6BAb09C2B23973f7a9e5Cb; balances[platformWallet] = 200000000 ether; timeLocks[platformWallet] = TimeLock(150000000 ether, 150000000 ether, uint128(lockStartDate), 90 days, 25000000); emit Transfer(address(0x0), platformWallet, balances[platformWallet]); } function transfer(address _to, uint256 _value) override public returns (bool success) { require(checkTransferLimit(), "Transfers are limited to 1 per block"); require(_value <= (balances[msg.sender] - timeLocks[msg.sender].lockedBalance)); return super.transfer(_to, _value); } function transferFrom(address _from, address _to, uint256 _value) override public returns (bool success) { require(checkTransferLimit(), "Transfers are limited to 1 per block"); require(_value <= (balances[_from] - timeLocks[_from].lockedBalance)); return super.transferFrom(_from, _to, _value); } function burn(uint256 _value) public returns (bool success) { require(balances[msg.sender] >= _value, "Not enough balance"); require(_value >= 0, "Invalid amount"); balances[msg.sender] = balances[msg.sender].sub(_value); _totalSupply = _totalSupply.sub(_value); emit Burn(msg.sender, _value); return true; } function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool success) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); ItokenRecipient recipient = ItokenRecipient(_spender); require(recipient.receiveApproval(msg.sender, _value, address(this), _extraData)); return true; } function releaseTokens(address _account) public { uint256 timeDiff = block.timestamp - uint256(timeLocks[_account].baseDate); require(timeDiff > uint256(timeLocks[_account].step), "Unlock point not reached yet"); uint256 steps = (timeDiff / uint256(timeLocks[_account].step)); uint256 unlockableAmount = ((uint256(timeLocks[_account].tokensStep) * 1 ether) * steps); if (unlockableAmount >= timeLocks[_account].totalAmount) { timeLocks[_account].lockedBalance = 0; } else { timeLocks[_account].lockedBalance = timeLocks[_account].totalAmount - unlockableAmount; } } function checkTransferLimit() internal returns (bool txAllowed) { address _caller = msg.sender; if (limitTransactions == true && contractsWhiteList[_caller] != true) { if (lastTXBlock[_caller] == block.number) { return false; } else { lastTXBlock[_caller] = block.number; return true; } } else { return true; } } function enableTXLimit() public onlyOwner { limitTransactions = true; } function disableTXLimit() public onlyOwner { limitTransactions = false; } function includeWhiteList(address _contractAddress) public onlyOwner { contractsWhiteList[_contractAddress] = true; } function removeWhiteList(address _contractAddress) public onlyOwner { contractsWhiteList[_contractAddress] = false; } function getLockedBalance(address _wallet) public view returns (uint256 lockedBalance) { return timeLocks[_wallet].lockedBalance; } function buy() public payable { require((block.timestamp > CROWDSALE_START) && (block.timestamp < CROWDSALE_END), "Contract is not selling tokens"); uint weiValue = msg.value; require(weiValue >= (5 * (10 ** 16)), "Minimum amount is 0.05 eth"); require(weiValue <= (20 ether), "Maximum amount is 20 eth"); uint amount = CSALE_WEI_FACTOR * weiValue; require((soldOnCSale) <= (CSALE_HARDCAP), "That quantity is not available"); soldOnCSale += amount; balances[salesWallet] = balances[salesWallet].sub(amount); balances[msg.sender] = balances[msg.sender].add(amount); require(salesWallet.send(weiValue)); emit Transfer(salesWallet, msg.sender, amount); } function burnUnsold() public onlyOwner { require(block.timestamp > CROWDSALE_END); uint currentBalance = balances[salesWallet]; balances[salesWallet] = 0; _totalSupply = _totalSupply.sub(currentBalance); emit Burn(salesWallet, currentBalance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CROWDSALE_END","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CROWDSALE_START","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CSALE_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CSALE_WEI_FACTOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnUnsold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"contractsWhiteList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableTXLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTXLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"getLockedBalance","outputs":[{"internalType":"uint256","name":"lockedBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"includeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTXBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"releaseTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractAddress","type":"address"}],"name":"removeWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"salesWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"soldOnCSale","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"timeLocks","outputs":[{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"uint256","name":"lockedBalance","type":"uint256"},{"internalType":"uint128","name":"baseDate","type":"uint128"},{"internalType":"uint64","name":"step","type":"uint64"},{"internalType":"uint64","name":"tokensStep","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c060405260086080819052674a6f79204369747960c01b60a09081526200002b9160049190620006ac565b506005805460ff19166012179055604080518082019091526003808252624a4f5960e81b60209092019182526200006591600691620006ac565b503480156200007357600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a735908290a36acecb8f27f4200f3a000000600355739da43d2ec9d228327f435d7b9cdc6cbdc72ac9f46000819052600160209081526a084595161401484a0000007f2688e3a70d360c4f17e7382016176d188b16e90c9630708b8a5f9138b3cfe5b28190556040805160a08101825282815292830191909152636108a60492919081016200014a8462ed4e006200075b565b6001600160801b03908116825262278d006020808401919091526207a1206040938401526001600160a01b0385166000818152600783528481208651815586840151600180830191909155878701516002909201805460608a01516080909a01516001600160801b03199091169390971692909217600160801b600160c01b031916600160801b6001600160401b03998a1602176001600160c01b0316600160c01b9890961697909702949094179093559390528181205491519091600080516020620021d98339815191529162000223919062000752565b60405180910390a36a0422ca8b0a00a4250000007f72e8269dd663f0fbd6824b44761d066d409973d5a8399f143ab4e3a0c8159e958190556040805160a0810182526a034f086f3b33b68400000080825260208083019182526001600160801b0387811684860190815262278d006060860190815262030d4060808701908152733522bbc527f758c8692984008e680679baa36c5560008181526007875297517fed1957113bbf7465792443e42132632d56024297c58727252c24603b7a860ff05595517fed1957113bbf7465792443e42132632d56024297c58727252c24603b7a860ff15591517fed1957113bbf7465792443e42132632d56024297c58727252c24603b7a860ff28054925193516001600160801b03199093169190941617600160801b600160c01b031916600160801b6001600160401b0393841602176001600160c01b0316600160c01b929091169190910217905560019052915191928392600080516020620021d983398151915291620003a19162000752565b60405180910390a373c1989ea6f62935a4fa3ef36f3b1df977b589b600600081815260016020526a02116545850052128000007f14017dd7557ca2f70d5de5545e82da5649fb3b69c95ae62d7e2dd764e28fef38819055604051839291600080516020620021d9833981519152916200041b919062000752565b60405180910390a3600b80546001600160a01b03191673bd01f9a24b5b4ffc00faa52127af037fc130c684178082556001600160a01b039081166000908152600160205260408082206a06342fd08f00f637800000905592549091168082528282205492519092600080516020620021d9833981519152916200049f919062000752565b60405180910390a373b5ca62899086dd0a7ccfd294d1c45f080a5eec2b600081815260016020526a14adf4b7320334b90000007fd79ffc13cc82318adaf8650676f8c54f15c827a7e2366e436fb71968fcda3c39819055604051839291600080516020620021d98339815191529162000519919062000752565b60405180910390a36aa56fa5b99019a5c80000007f58950eaadcde878403f9fdd32f4cbfe451b72feab41f3c8585467fac59dbce538190556040805160a0810182526a7c13bc4b2c133c5600000080825260208083019182526001600160801b038a81168486019081526276a7006060860190815263017d78406080870190815273fe5b4aecd3e18db44f6bab09c2b23973f7a9e5cb60008181526007875297517f4cd3a6002fe1163f509d05e9e6089e7abf974f39b60631b5a49f2fe4a629d0b05595517f4cd3a6002fe1163f509d05e9e6089e7abf974f39b60631b5a49f2fe4a629d0b15591517f4cd3a6002fe1163f509d05e9e6089e7abf974f39b60631b5a49f2fe4a629d0b28054925193516001600160801b03199093169190941617600160801b600160c01b031916600160801b6001600160401b0393841602176001600160c01b0316600160c01b929091169190910217905560019052915191928392600080516020620021d983398151915291620006989162000752565b60405180910390a3505050505050620007bd565b828054620006ba9062000780565b90600052602060002090601f016020900481019282620006de576000855562000729565b82601f10620006f957805160ff191683800117855562000729565b8280016001018555821562000729579182015b82811115620007295782518255916020019190600101906200070c565b50620007379291506200073b565b5090565b5b808211156200073757600081556001016200073c565b90815260200190565b600082198211156200077b57634e487b7160e01b81526011600452602481fd5b500190565b6002810460018216806200079557607f821691505b60208210811415620007b757634e487b7160e01b600052602260045260246000fd5b50919050565b611a0c80620007cd6000396000f3fe6080604052600436106101f95760003560e01c8063893d20e81161010d578063a7411c92116100a0578063c40868931161006f578063c408689314610549578063cae9ca5114610569578063dd62ed3e14610589578063df878f0b146105a9578063edf4d847146105be576101f9565b8063a7411c92146104df578063a9059cbb146104ff578063b52a58511461051f578063bdb97e8914610534576101f9565b806395d89b41116100dc57806395d89b4114610482578063a4b99ea814610497578063a6f2ae3a146104b7578063a6f9dae1146104bf576101f9565b8063893d20e8146104215780638b811719146104435780638e762ff914610458578063930d85e31461046d576101f9565b806337150140116101905780635c6581651161015f5780635c6581651461037b57806370a082311461039b5780637f76b223146103bb57806382870e30146103ec57806387b0be4814610401576101f9565b806337150140146103115780633eaaf86b1461032657806342966c681461033b5780634412d5521461035b576101f9565b80632042e5c2116101cc5780632042e5c21461028d57806323b872dd146102af57806327e235e3146102cf578063313ce567146102ef576101f9565b806306fdde03146101fe578063095ea7b31461022957806313ddb69a1461025657806318160ddd14610278575b600080fd5b34801561020a57600080fd5b506102136105d3565b6040516102209190611649565b60405180910390f35b34801561023557600080fd5b5061024961024436600461147b565b610661565b604051610220919061163e565b34801561026257600080fd5b5061026b6106cb565b60405161022091906118b1565b34801561028457600080fd5b5061026b6106d3565b34801561029957600080fd5b506102ad6102a83660046113f4565b6106da565b005b3480156102bb57600080fd5b506102496102ca366004611440565b61072e565b3480156102db57600080fd5b5061026b6102ea3660046113f4565b6107a4565b3480156102fb57600080fd5b506103046107b6565b60405161022091906118f3565b34801561031d57600080fd5b5061026b6107bf565b34801561033257600080fd5b5061026b6107c7565b34801561034757600080fd5b5061024961035636600461158a565b6107cd565b34801561036757600080fd5b506102ad6103763660046113f4565b610879565b34801561038757600080fd5b5061026b61039636600461140e565b6108c7565b3480156103a757600080fd5b5061026b6103b63660046113f4565b6108e4565b3480156103c757600080fd5b506103db6103d63660046113f4565b6108ff565b6040516102209594939291906118ba565b3480156103f857600080fd5b506102ad610946565b34801561040d57600080fd5b506102ad61041c3660046113f4565b61097c565b34801561042d57600080fd5b50610436610b09565b60405161022091906115ed565b34801561044f57600080fd5b50610249610b18565b34801561046457600080fd5b5061026b610b21565b34801561047957600080fd5b506102ad610b27565b34801561048e57600080fd5b50610213610b60565b3480156104a357600080fd5b506102496104b23660046113f4565b610b6d565b6102ad610b82565b3480156104cb57600080fd5b506102ad6104da3660046113f4565b610d3b565b3480156104eb57600080fd5b5061026b6104fa3660046113f4565b610dc0565b34801561050b57600080fd5b5061024961051a36600461147b565b610dd2565b34801561052b57600080fd5b506102ad610e3d565b34801561054057600080fd5b5061026b610ef0565b34801561055557600080fd5b5061026b6105643660046113f4565b610ef6565b34801561057557600080fd5b506102496105843660046114a4565b610f14565b34801561059557600080fd5b5061026b6105a436600461140e565b61100f565b3480156105b557600080fd5b5061026b61103a565b3480156105ca57600080fd5b50610436611049565b600480546105e09061196f565b80601f016020809104026020016040519081016040528092919081815260200182805461060c9061196f565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106ba9086906118b1565b60405180910390a350600192915050565b636108a60481565b6003545b90565b6000546001600160a01b0316331461070d5760405162461bcd60e51b8152600401610704906116ca565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000610738611058565b6107545760405162461bcd60e51b8152600401610704906117c8565b6001600160a01b03841660009081526007602090815260408083206001908101549252909120546107859190611958565b82111561079157600080fd5b61079c8484846110ed565b949350505050565b60016020526000908152604090205481565b60055460ff1681565b636113546481565b60035481565b336000908152600160205260408120548211156107fc5760405162461bcd60e51b815260040161070490611765565b336000908152600160205260409020546108169083611246565b336000908152600160205260409020556003546108339083611246565b60035560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906108689085906118b1565b60405180910390a25060015b919050565b6000546001600160a01b031633146108a35760405162461bcd60e51b8152600401610704906116ca565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b600260209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526001602052604090205490565b6007602052600090815260409020805460018201546002909201549091906001600160801b0381169067ffffffffffffffff600160801b8204811691600160c01b90041685565b6000546001600160a01b031633146109705760405162461bcd60e51b8152600401610704906116ca565b6008805460ff19169055565b6001600160a01b0381166000908152600760205260408120600201546109ab906001600160801b031642611958565b6001600160a01b038316600090815260076020526040902060020154909150600160801b900467ffffffffffffffff1681116109f95760405162461bcd60e51b815260040161070490611791565b6001600160a01b038216600090815260076020526040812060020154610a3090600160801b900467ffffffffffffffff1683611919565b6001600160a01b038416600090815260076020526040812060020154919250908290610a7590600160c01b900467ffffffffffffffff16670de0b6b3a7640000611939565b610a7f9190611939565b6001600160a01b0385166000908152600760205260409020549091508110610ac2576001600160a01b038416600090815260076020526040812060010155610b03565b6001600160a01b038416600090815260076020526040902054610ae6908290611958565b6001600160a01b0385166000908152600760205260409020600101555b50505050565b6000546001600160a01b031690565b60085460ff1681565b600c5481565b6000546001600160a01b03163314610b515760405162461bcd60e51b8152600401610704906116ca565b6008805460ff19166001179055565b600680546105e09061196f565b60096020526000908152604090205460ff1681565b636108a60442118015610b985750636113546442105b610bb45760405162461bcd60e51b8152600401610704906116f7565b3466b1a2bc2ec50000811015610bdc5760405162461bcd60e51b81526004016107049061180c565b6801158e460913d00000811115610c055760405162461bcd60e51b81526004016107049061165c565b6000610c1382613a98611939565b90506a06342fd08f00f637800000600c541115610c425760405162461bcd60e51b81526004016107049061187a565b80600c6000828254610c549190611901565b9091555050600b546001600160a01b0316600090815260016020526040902054610c7e9082611246565b600b546001600160a01b0316600090815260016020526040808220929092553381522054610cac9082611288565b3360009081526001602052604080822092909255600b5491516001600160a01b03909216916108fc85150291859190818181858888f19350505050610cf057600080fd5b600b5460405133916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d2f9085906118b1565b60405180910390a35050565b6000546001600160a01b03163314610d655760405162461bcd60e51b8152600401610704906116ca565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600a6020526000908152604090205481565b6000610ddc611058565b610df85760405162461bcd60e51b8152600401610704906117c8565b336000908152600760209081526040808320600190810154925290912054610e209190611958565b821115610e2c57600080fd5b610e3683836112b7565b9392505050565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610704906116ca565b63611354644211610e7757600080fd5b600b546001600160a01b031660009081526001602052604081208054919055600354610ea39082611246565b600355600b546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590610ee59084906118b1565b60405180910390a250565b613a9881565b6001600160a01b031660009081526007602052604090206001015490565b3360008181526002602090815260408083206001600160a01b038816808552925280832086905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f6d9087906118b1565b60405180910390a3604051638f4ffcb160e01b815284906001600160a01b03821690638f4ffcb190610fa9903390889030908990600401611601565b602060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb919061156a565b61100457600080fd5b506001949350505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6a06342fd08f00f63780000081565b600b546001600160a01b031681565b600854600090339060ff161515600114801561109257506001600160a01b03811660009081526009602052604090205460ff161515600114155b156110e3576001600160a01b0381166000908152600a60205260409020544314156110c15760009150506106d7565b6001600160a01b03166000908152600a602052604090204390555060016106d7565b60019150506106d7565b60006001600160a01b0383166111155760405162461bcd60e51b815260040161070490611843565b6001600160a01b03841660009081526001602052604090205482111561114d5760405162461bcd60e51b815260040161070490611765565b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156111905760405162461bcd60e51b815260040161070490611693565b6001600160a01b0384166000908152600160205260409020546111b39083611246565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546111e29083611288565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112349086906118b1565b60405180910390a35060019392505050565b6000610e3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a3565b6000806112958385611901565b905083811015610e365760405162461bcd60e51b81526004016107049061172e565b60006001600160a01b0383166112df5760405162461bcd60e51b815260040161070490611843565b3360009081526001602052604090205482111561130e5760405162461bcd60e51b815260040161070490611765565b336000908152600160205260409020546113289083611246565b33600090815260016020526040808220929092556001600160a01b038516815220546113549083611288565b6001600160a01b0384166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ba9086906118b1565b600081848411156113c75760405162461bcd60e51b81526004016107049190611649565b5060006113d48486611958565b95945050505050565b80356001600160a01b038116811461087457600080fd5b600060208284031215611405578081fd5b610e36826113dd565b60008060408385031215611420578081fd5b611429836113dd565b9150611437602084016113dd565b90509250929050565b600080600060608486031215611454578081fd5b61145d846113dd565b925061146b602085016113dd565b9150604084013590509250925092565b6000806040838503121561148d578182fd5b611496836113dd565b946020939093013593505050565b6000806000606084860312156114b8578283fd5b6114c1846113dd565b925060208401359150604084013567ffffffffffffffff808211156114e4578283fd5b818601915086601f8301126114f7578283fd5b813581811115611509576115096119c0565b604051601f8201601f19908116603f01168101908382118183101715611531576115316119c0565b81604052828152896020848701011115611549578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60006020828403121561157b578081fd5b81518015158114610e36578182fd5b60006020828403121561159b578081fd5b5035919050565b60008151808452815b818110156115c7576020818501810151868301820152016115ab565b818111156115d85782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682526020820185905283166040820152608060608201819052600090611634908301846115a2565b9695505050505050565b901515815260200190565b600060208252610e3660208301846115a2565b60208082526018908201527f4d6178696d756d20616d6f756e74206973203230206574680000000000000000604082015260600190565b6020808252601e908201527f596f75206e65656420746f20696e63726561736520616c6c6f77616e63650000604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601e908201527f436f6e7472616374206973206e6f742073656c6c696e6720746f6b656e730000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601c908201527f556e6c6f636b20706f696e74206e6f7420726561636865642079657400000000604082015260600190565b60208082526024908201527f5472616e736665727320617265206c696d6974656420746f20312070657220626040820152636c6f636b60e01b606082015260800190565b6020808252601a908201527f4d696e696d756d20616d6f756e7420697320302e303520657468000000000000604082015260600190565b60208082526019908201527f557365206275726e2066756e6374696f6e20696e737465616400000000000000604082015260600190565b6020808252601e908201527f54686174207175616e74697479206973206e6f7420617661696c61626c650000604082015260600190565b90815260200190565b94855260208501939093526001600160801b0391909116604084015267ffffffffffffffff908116606084015216608082015260a00190565b60ff91909116815260200190565b60008219821115611914576119146119aa565b500190565b60008261193457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611953576119536119aa565b500290565b60008282101561196a5761196a6119aa565b500390565b60028104600182168061198357607f821691505b602082108114156119a457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220a9e62b814aad6b33b4da813595f45aa61a71e58fb9cd98e0894bb94bc3831a7764736f6c63430008010033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x6080604052600436106101f95760003560e01c8063893d20e81161010d578063a7411c92116100a0578063c40868931161006f578063c408689314610549578063cae9ca5114610569578063dd62ed3e14610589578063df878f0b146105a9578063edf4d847146105be576101f9565b8063a7411c92146104df578063a9059cbb146104ff578063b52a58511461051f578063bdb97e8914610534576101f9565b806395d89b41116100dc57806395d89b4114610482578063a4b99ea814610497578063a6f2ae3a146104b7578063a6f9dae1146104bf576101f9565b8063893d20e8146104215780638b811719146104435780638e762ff914610458578063930d85e31461046d576101f9565b806337150140116101905780635c6581651161015f5780635c6581651461037b57806370a082311461039b5780637f76b223146103bb57806382870e30146103ec57806387b0be4814610401576101f9565b806337150140146103115780633eaaf86b1461032657806342966c681461033b5780634412d5521461035b576101f9565b80632042e5c2116101cc5780632042e5c21461028d57806323b872dd146102af57806327e235e3146102cf578063313ce567146102ef576101f9565b806306fdde03146101fe578063095ea7b31461022957806313ddb69a1461025657806318160ddd14610278575b600080fd5b34801561020a57600080fd5b506102136105d3565b6040516102209190611649565b60405180910390f35b34801561023557600080fd5b5061024961024436600461147b565b610661565b604051610220919061163e565b34801561026257600080fd5b5061026b6106cb565b60405161022091906118b1565b34801561028457600080fd5b5061026b6106d3565b34801561029957600080fd5b506102ad6102a83660046113f4565b6106da565b005b3480156102bb57600080fd5b506102496102ca366004611440565b61072e565b3480156102db57600080fd5b5061026b6102ea3660046113f4565b6107a4565b3480156102fb57600080fd5b506103046107b6565b60405161022091906118f3565b34801561031d57600080fd5b5061026b6107bf565b34801561033257600080fd5b5061026b6107c7565b34801561034757600080fd5b5061024961035636600461158a565b6107cd565b34801561036757600080fd5b506102ad6103763660046113f4565b610879565b34801561038757600080fd5b5061026b61039636600461140e565b6108c7565b3480156103a757600080fd5b5061026b6103b63660046113f4565b6108e4565b3480156103c757600080fd5b506103db6103d63660046113f4565b6108ff565b6040516102209594939291906118ba565b3480156103f857600080fd5b506102ad610946565b34801561040d57600080fd5b506102ad61041c3660046113f4565b61097c565b34801561042d57600080fd5b50610436610b09565b60405161022091906115ed565b34801561044f57600080fd5b50610249610b18565b34801561046457600080fd5b5061026b610b21565b34801561047957600080fd5b506102ad610b27565b34801561048e57600080fd5b50610213610b60565b3480156104a357600080fd5b506102496104b23660046113f4565b610b6d565b6102ad610b82565b3480156104cb57600080fd5b506102ad6104da3660046113f4565b610d3b565b3480156104eb57600080fd5b5061026b6104fa3660046113f4565b610dc0565b34801561050b57600080fd5b5061024961051a36600461147b565b610dd2565b34801561052b57600080fd5b506102ad610e3d565b34801561054057600080fd5b5061026b610ef0565b34801561055557600080fd5b5061026b6105643660046113f4565b610ef6565b34801561057557600080fd5b506102496105843660046114a4565b610f14565b34801561059557600080fd5b5061026b6105a436600461140e565b61100f565b3480156105b557600080fd5b5061026b61103a565b3480156105ca57600080fd5b50610436611049565b600480546105e09061196f565b80601f016020809104026020016040519081016040528092919081815260200182805461060c9061196f565b80156106595780601f1061062e57610100808354040283529160200191610659565b820191906000526020600020905b81548152906001019060200180831161063c57829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106ba9086906118b1565b60405180910390a350600192915050565b636108a60481565b6003545b90565b6000546001600160a01b0316331461070d5760405162461bcd60e51b8152600401610704906116ca565b60405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000610738611058565b6107545760405162461bcd60e51b8152600401610704906117c8565b6001600160a01b03841660009081526007602090815260408083206001908101549252909120546107859190611958565b82111561079157600080fd5b61079c8484846110ed565b949350505050565b60016020526000908152604090205481565b60055460ff1681565b636113546481565b60035481565b336000908152600160205260408120548211156107fc5760405162461bcd60e51b815260040161070490611765565b336000908152600160205260409020546108169083611246565b336000908152600160205260409020556003546108339083611246565b60035560405133907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5906108689085906118b1565b60405180910390a25060015b919050565b6000546001600160a01b031633146108a35760405162461bcd60e51b8152600401610704906116ca565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b600260209081526000928352604080842090915290825290205481565b6001600160a01b031660009081526001602052604090205490565b6007602052600090815260409020805460018201546002909201549091906001600160801b0381169067ffffffffffffffff600160801b8204811691600160c01b90041685565b6000546001600160a01b031633146109705760405162461bcd60e51b8152600401610704906116ca565b6008805460ff19169055565b6001600160a01b0381166000908152600760205260408120600201546109ab906001600160801b031642611958565b6001600160a01b038316600090815260076020526040902060020154909150600160801b900467ffffffffffffffff1681116109f95760405162461bcd60e51b815260040161070490611791565b6001600160a01b038216600090815260076020526040812060020154610a3090600160801b900467ffffffffffffffff1683611919565b6001600160a01b038416600090815260076020526040812060020154919250908290610a7590600160c01b900467ffffffffffffffff16670de0b6b3a7640000611939565b610a7f9190611939565b6001600160a01b0385166000908152600760205260409020549091508110610ac2576001600160a01b038416600090815260076020526040812060010155610b03565b6001600160a01b038416600090815260076020526040902054610ae6908290611958565b6001600160a01b0385166000908152600760205260409020600101555b50505050565b6000546001600160a01b031690565b60085460ff1681565b600c5481565b6000546001600160a01b03163314610b515760405162461bcd60e51b8152600401610704906116ca565b6008805460ff19166001179055565b600680546105e09061196f565b60096020526000908152604090205460ff1681565b636108a60442118015610b985750636113546442105b610bb45760405162461bcd60e51b8152600401610704906116f7565b3466b1a2bc2ec50000811015610bdc5760405162461bcd60e51b81526004016107049061180c565b6801158e460913d00000811115610c055760405162461bcd60e51b81526004016107049061165c565b6000610c1382613a98611939565b90506a06342fd08f00f637800000600c541115610c425760405162461bcd60e51b81526004016107049061187a565b80600c6000828254610c549190611901565b9091555050600b546001600160a01b0316600090815260016020526040902054610c7e9082611246565b600b546001600160a01b0316600090815260016020526040808220929092553381522054610cac9082611288565b3360009081526001602052604080822092909255600b5491516001600160a01b03909216916108fc85150291859190818181858888f19350505050610cf057600080fd5b600b5460405133916001600160a01b0316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d2f9085906118b1565b60405180910390a35050565b6000546001600160a01b03163314610d655760405162461bcd60e51b8152600401610704906116ca565b600080546040516001600160a01b03808516939216917f342827c97908e5e2f71151c08502a66d44b6f758e3ac2f1de95f02eb95f0a73591a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600a6020526000908152604090205481565b6000610ddc611058565b610df85760405162461bcd60e51b8152600401610704906117c8565b336000908152600760209081526040808320600190810154925290912054610e209190611958565b821115610e2c57600080fd5b610e3683836112b7565b9392505050565b6000546001600160a01b03163314610e675760405162461bcd60e51b8152600401610704906116ca565b63611354644211610e7757600080fd5b600b546001600160a01b031660009081526001602052604081208054919055600354610ea39082611246565b600355600b546040516001600160a01b03909116907fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca590610ee59084906118b1565b60405180910390a250565b613a9881565b6001600160a01b031660009081526007602052604090206001015490565b3360008181526002602090815260408083206001600160a01b038816808552925280832086905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610f6d9087906118b1565b60405180910390a3604051638f4ffcb160e01b815284906001600160a01b03821690638f4ffcb190610fa9903390889030908990600401611601565b602060405180830381600087803b158015610fc357600080fd5b505af1158015610fd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffb919061156a565b61100457600080fd5b506001949350505050565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6a06342fd08f00f63780000081565b600b546001600160a01b031681565b600854600090339060ff161515600114801561109257506001600160a01b03811660009081526009602052604090205460ff161515600114155b156110e3576001600160a01b0381166000908152600a60205260409020544314156110c15760009150506106d7565b6001600160a01b03166000908152600a602052604090204390555060016106d7565b60019150506106d7565b60006001600160a01b0383166111155760405162461bcd60e51b815260040161070490611843565b6001600160a01b03841660009081526001602052604090205482111561114d5760405162461bcd60e51b815260040161070490611765565b6001600160a01b03841660009081526002602090815260408083203384529091529020548211156111905760405162461bcd60e51b815260040161070490611693565b6001600160a01b0384166000908152600160205260409020546111b39083611246565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546111e29083611288565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112349086906118b1565b60405180910390a35060019392505050565b6000610e3683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113a3565b6000806112958385611901565b905083811015610e365760405162461bcd60e51b81526004016107049061172e565b60006001600160a01b0383166112df5760405162461bcd60e51b815260040161070490611843565b3360009081526001602052604090205482111561130e5760405162461bcd60e51b815260040161070490611765565b336000908152600160205260409020546113289083611246565b33600090815260016020526040808220929092556001600160a01b038516815220546113549083611288565b6001600160a01b0384166000818152600160205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906106ba9086906118b1565b600081848411156113c75760405162461bcd60e51b81526004016107049190611649565b5060006113d48486611958565b95945050505050565b80356001600160a01b038116811461087457600080fd5b600060208284031215611405578081fd5b610e36826113dd565b60008060408385031215611420578081fd5b611429836113dd565b9150611437602084016113dd565b90509250929050565b600080600060608486031215611454578081fd5b61145d846113dd565b925061146b602085016113dd565b9150604084013590509250925092565b6000806040838503121561148d578182fd5b611496836113dd565b946020939093013593505050565b6000806000606084860312156114b8578283fd5b6114c1846113dd565b925060208401359150604084013567ffffffffffffffff808211156114e4578283fd5b818601915086601f8301126114f7578283fd5b813581811115611509576115096119c0565b604051601f8201601f19908116603f01168101908382118183101715611531576115316119c0565b81604052828152896020848701011115611549578586fd5b82602086016020830137856020848301015280955050505050509250925092565b60006020828403121561157b578081fd5b81518015158114610e36578182fd5b60006020828403121561159b578081fd5b5035919050565b60008151808452815b818110156115c7576020818501810151868301820152016115ab565b818111156115d85782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0385811682526020820185905283166040820152608060608201819052600090611634908301846115a2565b9695505050505050565b901515815260200190565b600060208252610e3660208301846115a2565b60208082526018908201527f4d6178696d756d20616d6f756e74206973203230206574680000000000000000604082015260600190565b6020808252601e908201527f596f75206e65656420746f20696e63726561736520616c6c6f77616e63650000604082015260600190565b60208082526013908201527221b0b63632b91034b9903737ba1037bbb732b960691b604082015260600190565b6020808252601e908201527f436f6e7472616374206973206e6f742073656c6c696e6720746f6b656e730000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252601290820152714e6f7420656e6f7567682062616c616e636560701b604082015260600190565b6020808252601c908201527f556e6c6f636b20706f696e74206e6f7420726561636865642079657400000000604082015260600190565b60208082526024908201527f5472616e736665727320617265206c696d6974656420746f20312070657220626040820152636c6f636b60e01b606082015260800190565b6020808252601a908201527f4d696e696d756d20616d6f756e7420697320302e303520657468000000000000604082015260600190565b60208082526019908201527f557365206275726e2066756e6374696f6e20696e737465616400000000000000604082015260600190565b6020808252601e908201527f54686174207175616e74697479206973206e6f7420617661696c61626c650000604082015260600190565b90815260200190565b94855260208501939093526001600160801b0391909116604084015267ffffffffffffffff908116606084015216608082015260a00190565b60ff91909116815260200190565b60008219821115611914576119146119aa565b500190565b60008261193457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611953576119536119aa565b500290565b60008282101561196a5761196a6119aa565b500390565b60028104600182168061198357607f821691505b602082108114156119a457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220a9e62b814aad6b33b4da813595f45aa61a71e58fb9cd98e0894bb94bc3831a7764736f6c63430008010033
Deployed Bytecode Sourcemap
4143:7961:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4229:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3746:223;;;;;;;;;;-1:-1:-1;3746:223:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5119:52::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2437:107::-;;;;;;;;;;;;;:::i;10737:131::-;;;;;;;;;;-1:-1:-1;10737:131:0;;;;;:::i;:::-;;:::i;:::-;;8124:329;;;;;;;;;;-1:-1:-1;8124:329:0;;;;;:::i;:::-;;:::i;2101:44::-;;;;;;;;;;-1:-1:-1;2101:44:0;;;;;:::i;:::-;;:::i;4267:26::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5178:50::-;;;;;;;;;;;;;:::i;2223:27::-;;;;;;;;;;;;;:::i;8465:362::-;;;;;;;;;;-1:-1:-1;8465:362:0;;;;;:::i;:::-;;:::i;10594:131::-;;;;;;;;;;-1:-1:-1;10594:131:0;;;;;:::i;:::-;;:::i;2152:64::-;;;;;;;;;;-1:-1:-1;2152:64:0;;;;;:::i;:::-;;:::i;3614:124::-;;;;;;;;;;-1:-1:-1;3614:124:0;;;;;:::i;:::-;;:::i;4589:46::-;;;;;;;;;;-1:-1:-1;4589:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;:::i;10495:87::-;;;;;;;;;;;;;:::i;9255:660::-;;;;;;;;;;-1:-1:-1;9255:660:0;;;;;:::i;:::-;;:::i;1927:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4769:29::-;;;;;;;;;;;;;:::i;5086:26::-;;;;;;;;;;;;;:::i;10398:85::-;;;;;;;;;;;;;:::i;4300:28::-;;;;;;;;;;;;;:::i;4805:51::-;;;;;;;;;;-1:-1:-1;4805:51:0;;;;;:::i;:::-;;:::i;11037:757::-;;;:::i;1787:132::-;;;;;;;;;;-1:-1:-1;1787:132:0;;;;;:::i;:::-;;:::i;4863:44::-;;;;;;;;;;-1:-1:-1;4863:44:0;;;;;:::i;:::-;;:::i;7803:309::-;;;;;;;;;;-1:-1:-1;7803:309:0;;;;;:::i;:::-;;:::i;11806:295::-;;;;;;;;;;;;;:::i;5235:48::-;;;;;;;;;;;;;:::i;10880:145::-;;;;;;;;;;-1:-1:-1;10880:145:0;;;;;:::i;:::-;;:::i;8839:402::-;;;;;;;;;;-1:-1:-1;8839:402:0;;;;;:::i;:::-;;:::i;3977:153::-;;;;;;;;;;-1:-1:-1;3977:153:0;;;;;:::i;:::-;;:::i;5290:53::-;;;;;;;;;;;;;:::i;5045:34::-;;;;;;;;;;;;;:::i;4229:31::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3746:223::-;3855:10;3822:12;3847:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3847:29:0;;;;;;;;;;:38;;;3901;3822:12;;3847:29;;3901:38;;;;3879:6;;3901:38;:::i;:::-;;;;;;;;-1:-1:-1;3957:4:0;3746:223;;;;:::o;5119:52::-;5161:10;5119:52;:::o;2437:107::-;2524:12;;2437:107;;:::o;10737:131::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;10816:36:0::1;10855:5;10816:36:::0;;;:18:::1;:36;::::0;;;;:44;;-1:-1:-1;;10816:44:0::1;::::0;;10737:131::o;8124:329::-;8215:12;8248:20;:18;:20::i;:::-;8240:69;;;;-1:-1:-1;;;8240:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8357:16:0;;;;;;:9;:16;;;;;;;;:30;;;;;8339:15;;;;;;:48;;8357:30;8339:48;:::i;:::-;8328:6;:60;;8320:69;;;;;;8407:38;8426:5;8433:3;8438:6;8407:18;:38::i;:::-;8400:45;8124:329;-1:-1:-1;;;;8124:329:0:o;2101:44::-;;;;;;;;;;;;;:::o;4267:26::-;;;;;;:::o;5178:50::-;5218:10;5178:50;:::o;2223:27::-;;;;:::o;8465:362::-;8553:10;8511:12;8544:20;;;:8;:20;;;;;;:30;-1:-1:-1;8544:30:0;8536:61;;;;-1:-1:-1;;;8536:61:0;;;;;;;:::i;:::-;8684:10;8675:20;;;;:8;:20;;;;;;:32;;8700:6;8675:24;:32::i;:::-;8661:10;8652:20;;;;:8;:20;;;;;:55;8733:12;;:24;;8750:6;8733:16;:24::i;:::-;8718:12;:39;8773:24;;8778:10;;8773:24;;;;8790:6;;8773:24;:::i;:::-;;;;;;;;-1:-1:-1;8815:4:0;8465:362;;;;:::o;10594:131::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10674:36:0::1;;::::0;;;:18:::1;:36;::::0;;;;:43;;-1:-1:-1;;10674:43:0::1;10713:4;10674:43;::::0;;10594:131::o;2152:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;3614:124::-;-1:-1:-1;;;;;3714:16:0;3679:15;3714:16;;;:8;:16;;;;;;;3614:124::o;4589:46::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4589:46:0;;;;-1:-1:-1;;;4589:46:0;;;;;-1:-1:-1;;;4589:46:0;;;;:::o;10495:87::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;10549:17:::1;:25:::0;;-1:-1:-1;;10549:25:0::1;::::0;;10495:87::o;9255:660::-;-1:-1:-1;;;;;9359:19:0;;9314:16;9359:19;;;:9;:19;;;;;:28;;;9333:55;;-1:-1:-1;;;;;9359:28:0;9333:15;:55;:::i;:::-;-1:-1:-1;;;;;9426:19:0;;;;;;:9;:19;;;;;:24;;;9314:74;;-1:-1:-1;;;;9426:24:0;;;;9407:44;;9399:85;;;;-1:-1:-1;;;9399:85:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9531:19:0;;9495:13;9531:19;;;:9;:19;;;;;:24;;;9512:44;;-1:-1:-1;;;9531:24:0;;;;9512:8;:44;:::i;:::-;-1:-1:-1;;;;;9605:19:0;;9568:24;9605:19;;;:9;:19;;;;;:30;;;9495:62;;-1:-1:-1;9568:24:0;9495:62;;9597:49;;-1:-1:-1;;;9605:30:0;;;;9639:7;9597:49;:::i;:::-;9596:59;;;;:::i;:::-;-1:-1:-1;;;;;9692:19:0;;;;;;:9;:19;;;;;:31;9568:88;;-1:-1:-1;9671:52:0;;9667:241;;-1:-1:-1;;;;;9740:19:0;;9776:1;9740:19;;;:9;:19;;;;;:33;;:37;9667:241;;;-1:-1:-1;;;;;9846:19:0;;;;;;:9;:19;;;;;:31;:50;;9880:16;;9846:50;:::i;:::-;-1:-1:-1;;;;;9810:19:0;;;;;;:9;:19;;;;;:33;;:86;9667:241;9255:660;;;;:::o;1927:83::-;1970:7;1997:5;-1:-1:-1;;;;;1997:5:0;1927:83;:::o;4769:29::-;;;;;;:::o;5086:26::-;;;;:::o;10398:85::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;10451:17:::1;:24:::0;;-1:-1:-1;;10451:24:0::1;10471:4;10451:24;::::0;;10398:85::o;4300:28::-;;;;;;;:::i;4805:51::-;;;;;;;;;;;;;;;:::o;11037:757::-;5161:10;11087:15;:33;11086:72;;;;;5218:10;11126:15;:31;11086:72;11078:115;;;;-1:-1:-1;;;11078:115:0;;;;;;;:::i;:::-;11220:9;11261:14;11248:28;;;11240:67;;;;-1:-1:-1;;;11240:67:0;;;;;;;:::i;:::-;11339:8;11326;:22;;11318:59;;;;-1:-1:-1;;;11318:59:0;;;;;;;:::i;:::-;11388:11;11402:27;11421:8;5278:5;11402:27;:::i;:::-;11388:41;;5330:13;11449:11;;11448:32;;11440:75;;;;-1:-1:-1;;;11440:75:0;;;;;;;:::i;:::-;11541:6;11526:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;11591:11:0;;-1:-1:-1;;;;;11591:11:0;11582:21;;;;:8;:21;;;;;;:33;;11608:6;11582:25;:33::i;:::-;11567:11;;-1:-1:-1;;;;;11567:11:0;11558:21;;;;:8;:21;;;;;;:57;;;;11658:10;11649:20;;;;:32;;11674:6;11649:24;:32::i;:::-;11635:10;11626:20;;;;:8;:20;;;;;;:55;;;;11700:11;;:26;;-1:-1:-1;;;;;11700:11:0;;;;:26;;;;;;;;;11626:20;11700:26;;:11;:26;;;;;;;11692:35;;;;;;11752:11;;11743:41;;11765:10;;-1:-1:-1;;;;;11752:11:0;;11743:41;;;;11777:6;;11743:41;:::i;:::-;;;;;;;;11037:757;;:::o;1787:132::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;1868:5:::1;::::0;;1859:25:::1;::::0;-1:-1:-1;;;;;1859:25:0;;::::1;::::0;1868:5;::::1;::::0;1859:25:::1;::::0;::::1;1895:5;:16:::0;;-1:-1:-1;;;;;;1895:16:0::1;-1:-1:-1::0;;;;;1895:16:0;;;::::1;::::0;;;::::1;::::0;;1787:132::o;4863:44::-;;;;;;;;;;;;;:::o;7803:309::-;7875:12;7908:20;:18;:20::i;:::-;7900:69;;;;-1:-1:-1;;;7900:69:0;;;;;;;:::i;:::-;8032:10;8022:21;;;;:9;:21;;;;;;;;:35;;;;;7999:20;;;;;;:58;;8022:35;7999:58;:::i;:::-;7988:6;:70;;7980:79;;;;;;8077:27;8092:3;8097:6;8077:14;:27::i;:::-;8070:34;7803:309;-1:-1:-1;;;7803:309:0:o;11806:295::-;1547:5;;-1:-1:-1;;;;;1547:5:0;1533:10;:19;1525:51;;;;-1:-1:-1;;;1525:51:0;;;;;;;:::i;:::-;5218:10:::1;11864:15;:31;11856:40;;;::::0;::::1;;11938:11;::::0;-1:-1:-1;;;;;11938:11:0::1;11907:19;11929:21:::0;;;:8:::1;:21;::::0;;;;;;11961:25;;;12012:12:::1;::::0;:32:::1;::::0;11929:21;12012:16:::1;:32::i;:::-;11997:12;:47:::0;12065:11:::1;::::0;12060:33:::1;::::0;-1:-1:-1;;;;;12065:11:0;;::::1;::::0;12060:33:::1;::::0;::::1;::::0;12078:14;;12060:33:::1;:::i;:::-;;;;;;;;1587:1;11806:295::o:0;5235:48::-;5278:5;5235:48;:::o;10880:145::-;-1:-1:-1;;;;;10985:18:0;10944:21;10985:18;;;:9;:18;;;;;:32;;;;10880:145::o;8839:402::-;8971:10;8938:12;8963:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8963:29:0;;;;;;;;;;:38;;;9017;8938:12;;8963:29;;9017:38;;;;8995:6;;9017:38;:::i;:::-;;;;;;;;9138:72;;-1:-1:-1;;;9138:72:0;;9110:8;;-1:-1:-1;;;;;9138:25:0;;;;;:72;;9164:10;;9176:6;;9192:4;;9199:10;;9138:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9130:81;;;;;;-1:-1:-1;9229:4:0;;8839:402;-1:-1:-1;;;;8839:402:0:o;3977:153::-;-1:-1:-1;;;;;4097:15:0;;;4060:17;4097:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;3977:153::o;5290:53::-;5330:13;5290:53;:::o;5045:34::-;;;-1:-1:-1;;;;;5045:34:0;;:::o;9930:456::-;10048:17;;9978:14;;10023:10;;10048:17;;:25;;:17;:25;:64;;;;-1:-1:-1;;;;;;10077:27:0;;;;;;:18;:27;;;;;;;;:35;;:27;:35;;10048:64;10044:335;;;-1:-1:-1;;;;;10133:20:0;;;;;;:11;:20;;;;;;10157:12;10133:36;10129:195;;;10197:5;10190:12;;;;;10129:195;-1:-1:-1;;;;;10243:20:0;;;;;:11;:20;;;;;10266:12;10243:35;;-1:-1:-1;10304:4:0;10297:11;;10044:335;10363:4;10356:11;;;;;3041:565;3140:12;-1:-1:-1;;;;;3173:19:0;;3165:57;;;;-1:-1:-1;;;3165:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3310:15:0;;;;;;:8;:15;;;;;;:25;-1:-1:-1;3310:25:0;3302:56;;;;-1:-1:-1;;;3302:56:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3371:14:0;;;;;;:7;:14;;;;;;;;3386:10;3371:26;;;;;;;;:36;-1:-1:-1;3371:36:0;3363:79;;;;-1:-1:-1;;;3363:79:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3465:15:0;;;;;;:8;:15;;;;;;:27;;3485:6;3465:19;:27::i;:::-;-1:-1:-1;;;;;3447:15:0;;;;;;;:8;:15;;;;;;:45;;;;3513:13;;;;;;;:25;;3531:6;3513:17;:25::i;:::-;-1:-1:-1;;;;;3497:13:0;;;;;;;:8;:13;;;;;;;:41;;;;3548:28;;;;;;;;;;3569:6;;3548:28;:::i;:::-;;;;;;;;-1:-1:-1;3594:4:0;3041:565;;;;;:::o;277:136::-;335:7;362:43;366:1;369;362:43;;;;;;;;;;;;;;;;;:3;:43::i;88:181::-;146:7;;178:5;182:1;178;:5;:::i;:::-;166:17;;207:1;202;:6;;194:46;;;;-1:-1:-1;;;194:46:0;;;;;;;:::i;2552:481::-;2632:12;-1:-1:-1;;;;;2665:19:0;;2657:57;;;;-1:-1:-1;;;2657:57:0;;;;;;;:::i;:::-;2810:10;2801:20;;;;:8;:20;;;;;;:30;-1:-1:-1;2801:30:0;2793:61;;;;-1:-1:-1;;;2793:61:0;;;;;;;:::i;:::-;2891:10;2882:20;;;;:8;:20;;;;;;:32;;2907:6;2882:24;:32::i;:::-;2868:10;2859:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;2935:13:0;;;;;;:25;;2953:6;2935:17;:25::i;:::-;-1:-1:-1;;;;;2919:13:0;;;;;;:8;:13;;;;;;;:41;;;;2970:33;;2979:10;;2970:33;;;;2996:6;;2970:33;:::i;421:192::-;507:7;543:12;535:6;;;;527:29;;;;-1:-1:-1;;;527:29:0;;;;;;;;:::i;:::-;-1:-1:-1;567:9:0;579:5;583:1;579;:5;:::i;:::-;567:17;421:192;-1:-1:-1;;;;;421:192:0:o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:1110::-;;;;1449:2;1437:9;1428:7;1424:23;1420:32;1417:2;;;1470:6;1462;1455:22;1417:2;1498:31;1519:9;1498:31;:::i;:::-;1488:41;;1576:2;1565:9;1561:18;1548:32;1538:42;;1631:2;1620:9;1616:18;1603:32;1654:18;1695:2;1687:6;1684:14;1681:2;;;1716:6;1708;1701:22;1681:2;1759:6;1748:9;1744:22;1734:32;;1804:7;1797:4;1793:2;1789:13;1785:27;1775:2;;1831:6;1823;1816:22;1775:2;1872;1859:16;1894:2;1890;1887:10;1884:2;;;1900:18;;:::i;:::-;1975:2;1969:9;1943:2;2029:13;;-1:-1:-1;;2025:22:1;;;2049:2;2021:31;2017:40;2005:53;;;2073:18;;;2093:22;;;2070:46;2067:2;;;2119:18;;:::i;:::-;2159:10;2155:2;2148:22;2194:2;2186:6;2179:18;2234:7;2229:2;2224;2220;2216:11;2212:20;2209:33;2206:2;;;2260:6;2252;2245:22;2206:2;2321;2316;2312;2308:11;2303:2;2295:6;2291:15;2278:46;2366:6;2361:2;2356;2348:6;2344:15;2340:24;2333:40;2392:6;2382:16;;;;;;;1407:997;;;;;:::o;2409:297::-;;2529:2;2517:9;2508:7;2504:23;2500:32;2497:2;;;2550:6;2542;2535:22;2497:2;2587:9;2581:16;2640:5;2633:13;2626:21;2619:5;2616:32;2606:2;;2667:6;2659;2652:22;2711:190;;2823:2;2811:9;2802:7;2798:23;2794:32;2791:2;;;2844:6;2836;2829:22;2791:2;-1:-1:-1;2872:23:1;;2781:120;-1:-1:-1;2781:120:1:o;2906:477::-;;2987:5;2981:12;3014:6;3009:3;3002:19;3039:3;3051:162;3065:6;3062:1;3059:13;3051:162;;;3127:4;3183:13;;;3179:22;;3173:29;3155:11;;;3151:20;;3144:59;3080:12;3051:162;;;3231:6;3228:1;3225:13;3222:2;;;3297:3;3290:4;3281:6;3276:3;3272:16;3268:27;3261:40;3222:2;-1:-1:-1;3365:2:1;3344:15;-1:-1:-1;;3340:29:1;3331:39;;;;3372:4;3327:50;;2957:426;-1:-1:-1;;2957:426:1:o;3388:203::-;-1:-1:-1;;;;;3552:32:1;;;;3534:51;;3522:2;3507:18;;3489:102::o;3820:490::-;-1:-1:-1;;;;;4089:15:1;;;4071:34;;4136:2;4121:18;;4114:34;;;4184:15;;4179:2;4164:18;;4157:43;4236:3;4231:2;4216:18;;4209:31;;;3820:490;;4257:47;;4284:19;;4276:6;4257:47;:::i;:::-;4249:55;4023:287;-1:-1:-1;;;;;;4023:287:1:o;4315:187::-;4480:14;;4473:22;4455:41;;4443:2;4428:18;;4410:92::o;4507:221::-;;4656:2;4645:9;4638:21;4676:46;4718:2;4707:9;4703:18;4695:6;4676:46;:::i;4733:348::-;4935:2;4917:21;;;4974:2;4954:18;;;4947:30;5013:26;5008:2;4993:18;;4986:54;5072:2;5057:18;;4907:174::o;5086:354::-;5288:2;5270:21;;;5327:2;5307:18;;;5300:30;5366:32;5361:2;5346:18;;5339:60;5431:2;5416:18;;5260:180::o;5445:343::-;5647:2;5629:21;;;5686:2;5666:18;;;5659:30;-1:-1:-1;;;5720:2:1;5705:18;;5698:49;5779:2;5764:18;;5619:169::o;6136:354::-;6338:2;6320:21;;;6377:2;6357:18;;;6350:30;6416:32;6411:2;6396:18;;6389:60;6481:2;6466:18;;6310:180::o;6495:351::-;6697:2;6679:21;;;6736:2;6716:18;;;6709:30;6775:29;6770:2;6755:18;;6748:57;6837:2;6822:18;;6669:177::o;6851:342::-;7053:2;7035:21;;;7092:2;7072:18;;;7065:30;-1:-1:-1;;;7126:2:1;7111:18;;7104:48;7184:2;7169:18;;7025:168::o;7198:352::-;7400:2;7382:21;;;7439:2;7419:18;;;7412:30;7478;7473:2;7458:18;;7451:58;7541:2;7526:18;;7372:178::o;7555:400::-;7757:2;7739:21;;;7796:2;7776:18;;;7769:30;7835:34;7830:2;7815:18;;7808:62;-1:-1:-1;;;7901:2:1;7886:18;;7879:34;7945:3;7930:19;;7729:226::o;7960:350::-;8162:2;8144:21;;;8201:2;8181:18;;;8174:30;8240:28;8235:2;8220:18;;8213:56;8301:2;8286:18;;8134:176::o;8315:349::-;8517:2;8499:21;;;8556:2;8536:18;;;8529:30;8595:27;8590:2;8575:18;;8568:55;8655:2;8640:18;;8489:175::o;8669:354::-;8871:2;8853:21;;;8910:2;8890:18;;;8883:30;8949:32;8944:2;8929:18;;8922:60;9014:2;8999:18;;8843:180::o;9028:177::-;9174:25;;;9162:2;9147:18;;9129:76::o;9210:555::-;9465:25;;;9521:2;9506:18;;9499:34;;;;-1:-1:-1;;;;;9569:47:1;;;;9564:2;9549:18;;9542:75;9636:18;9690:15;;;9685:2;9670:18;;9663:43;9743:15;9737:3;9722:19;;9715:44;9452:3;9437:19;;9419:346::o;9770:184::-;9942:4;9930:17;;;;9912:36;;9900:2;9885:18;;9867:87::o;9959:128::-;;10030:1;10026:6;10023:1;10020:13;10017:2;;;10036:18;;:::i;:::-;-1:-1:-1;10072:9:1;;10007:80::o;10092:217::-;;10158:1;10148:2;;-1:-1:-1;;;10183:31:1;;10237:4;10234:1;10227:15;10265:4;10190:1;10255:15;10148:2;-1:-1:-1;10294:9:1;;10138:171::o;10314:168::-;;10420:1;10416;10412:6;10408:14;10405:1;10402:21;10397:1;10390:9;10383:17;10379:45;10376:2;;;10427:18;;:::i;:::-;-1:-1:-1;10467:9:1;;10366:116::o;10487:125::-;;10555:1;10552;10549:8;10546:2;;;10560:18;;:::i;:::-;-1:-1:-1;10597:9:1;;10536:76::o;10617:380::-;10702:1;10692:12;;10749:1;10739:12;;;10760:2;;10814:4;10806:6;10802:17;10792:27;;10760:2;10867;10859:6;10856:14;10836:18;10833:38;10830:2;;;10913:10;10908:3;10904:20;10901:1;10894:31;10948:4;10945:1;10938:15;10976:4;10973:1;10966:15;10830:2;;10672:325;;;:::o;11002:127::-;11063:10;11058:3;11054:20;11051:1;11044:31;11094:4;11091:1;11084:15;11118:4;11115:1;11108:15;11134:127;11195:10;11190:3;11186:20;11183:1;11176:31;11226:4;11223:1;11216:15;11250:4;11247:1;11240:15
Swarm Source
ipfs://a9e62b814aad6b33b4da813595f45aa61a71e58fb9cd98e0894bb94bc3831a77
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.