ERC-20
Website Down
Overview
Max Total Supply
3,999,116,585,261.842239445085054345 P4C
Holders
438 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,079,834.668410222638120251 P4CValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
P4CToken
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-10 */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; /// @title Parts of Four Token contract P4CToken { string public constant name = "Parts of Four Coin"; string public constant symbol = "P4C"; uint8 public constant decimals = 18; event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); /// @notice The block number this contract was created in. Stored here so web3 scripts can easily access it and use /// @notice it to scan for InternalTransfer and NewRedistributedSupply events uint256 public immutable creationBlock; /// @notice This determines whether the 3% is deducted from transactions. bool public deductTaxes = true; /// @notice The original supply of P4C. uint256 public constant originalSupply = 4_000_000_000_000e18; /// @notice The current supply of internal P4C. This goes down when funds are burnt, as well as when supply is /// @notice redistributed. uint256 public totalInternalSupply = originalSupply; /// @notice This is the internal supply held in non-excluded addresses. uint256 public internalSupplyInNonExcludedAddresses; // @notice This 1e18 times a factor that adjusts internal balances to external balances. For example, if an account // @notice has an internal balance of 1e18 and this factor is 1.5e18, the external balance of that account will be // @notice 1.5e18. uint256 public adjustmentFactor = 1e18; // @notice The owner of the contract, set to the address that instantiated the contract. Only `contractOwner` may // @notice add or remove excluded addresses. address public immutable contractOwner; // @notice This is a list of excluded addresses. Transfers involving these addresses don't have the 3% tax taken out // @notice of them, and they don't receive token redistribution (ie. their balances are adjusted downwards every // @notice time `adjustmentFactor` is increased. address[] public excludedAddresses; // @notice A map where addresses in `excludedAddresses` map to `true`. mapping (address => bool) excludedAddressesMap; // @notice This is a mapping of addresses to the number of *internal* tokens they hold. This is *different* from the // @notice values that are used in contract calls, as those are adjusted by `adjustmentFactor`. mapping (address => uint256) public internalBalances; // @notice This event is emitted when tokens are transferred from `_from` to `_to`. `_internalSentValue` is the // @notice number of internal tokens transferred *before* any fees are deducted (ie. the recipient will actually get // @notice 3% less unless `_from` or `_to` is an excluded address). event InternalTransfer(address _from, address _to, uint256 _internalSentValue); // @notice This event is fired when an excluded address is added. event AddedExcludedAddress(address _addr); // @notice This event is fired when an address is removed from the excluded address list. event RemovedExcludedAddress(address _addr); // @notice Called when deduct taxes setting is changed. event SetDeductTaxes(bool _enabled); // Token authorisations. `_authorisee` can withdraw up to `allowed[_authoriser][_authroisee]` from `_authoriser`'s // account. Multiple transfers can be made so long as they do not cumulatively exceed the given amount. This is in // *EXTERNAL* tokens. mapping (address => mapping (address => uint256)) allowed; constructor() { creationBlock = block.number; contractOwner = msg.sender; addExcludedAddress(msg.sender); internalBalances[contractOwner] = originalSupply; } /// @notice Derive an external amount from an internal amount. (This will return a different result every time it's /// @notice called, as the amount it's being adjusted by changes when transfers are made.) function internalToExternalAmount(uint256 _internalAmount) view internal returns (uint256) { return (_internalAmount * adjustmentFactor) / 1e18; } /// @notice Derive an internal amount from an external amount. (This will return a different result every time it's /// @notice called, as the amount it's being adjusted by changes when transfers are made.) function externalToInternalAmount(uint256 _externalAmount) view internal returns (uint256) { return (_externalAmount * 1e18) / adjustmentFactor; } /// @notice The total external supply of the contract. function totalSupply() public view returns (uint256) { return internalToExternalAmount(totalInternalSupply); } /// @notice Designate an address as excluded. Transactions to and from excluded addresses don't incur taxes, and /// @notice they don't receive token redistribution either (which in practice means that their balances are adjusted /// @notice downwards every time `adjustmentFactor` is increased). This may only be called by `contractOwner`. function addExcludedAddress(address _addr) public { require(msg.sender == contractOwner, "This function is callable only by the contract owner."); require(!excludedAddressesMap[_addr], "_addr is already an excluded address."); internalSupplyInNonExcludedAddresses -= internalBalances[_addr]; excludedAddressesMap[_addr] = true; excludedAddresses.push(_addr); emit AddedExcludedAddress(_addr); } /// @notice Remove the designation of excluded address from `_addr`. Transactions to and from excluded addresses /// @notice don't incur taxes, and they don't receive token redistribution either (which in practice means that /// @notice their balances are adjusted downwards every time `adjustmentFactor` is increased). This may only be /// @notice called by `contractOwner`. function removeExcludedAddress(address _addr) public { require(msg.sender == contractOwner, "This function is callable only by the contract owner."); require(_addr != contractOwner, "contractOwner must be an excluded address for correct contract behaviour."); require(!!excludedAddressesMap[_addr], "_addr is not an excluded address."); internalSupplyInNonExcludedAddresses += internalBalances[_addr]; excludedAddressesMap[_addr] = false; for (uint i; i < excludedAddresses.length; i++) { if (excludedAddresses[i] == _addr) { if (i != excludedAddresses.length-1) excludedAddresses[i] = excludedAddresses[excludedAddresses.length-1]; excludedAddresses.pop(); break; } } emit RemovedExcludedAddress(_addr); } /// @notice Set whether or not we deduct 3% from every transaction. This may only be called by `contractOwner`. function setDeductTaxes(bool _deductTaxes) public { require(msg.sender == contractOwner, "This function is callable only by the contract owner."); require(_deductTaxes != deductTaxes, "deductTaxes is already that value"); deductTaxes = _deductTaxes; emit SetDeductTaxes(_deductTaxes); } /// @notice Get the external balance of `_owner`. function balanceOf(address _owner) public view returns (uint256 balance) { return internalToExternalAmount(internalBalances[_owner]); } /// @notice Approve `_spender` to remove up to `_value` in external tokens *at the time the withdraw happens* from /// @notice `msg.sender`'s account. Multiple withdraws may be made from a single `approve()` call so long as the /// @notice sum of the external values at the time of each individual call do not exceed `_value`. function approve(address _spender, uint256 _value) public returns (bool success) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /// @notice This returns the number of external tokens `_spender` is allowed to transfer on behalf of `_owner`. function allowance(address _owner, address _spender) public view returns (uint256 remaining) { return allowed[_owner][_spender]; } /// @notice Transfer `_value` external tokens from `msg.sender`'s account to `_to`'s account. If neither /// @notice `msg.sender` nor `_to` are excluded addresses, `_to` will receive only 97% of `_value`. 1% will be /// @notice burned, 1% will be redistributed equally among non-excluded addresses, and 1% will be sent to /// @notice `contractOwner`. function transfer(address _to, uint256 _value) public returns (bool success) { return transferCommon(msg.sender, _to, _value); } /// @notice Transfers `_value` from `_from` to `_to`, if `_from` has previously called `approve()` with the correct /// @notice arguments. Transfers work in the same way as `transfer()`. function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) { require(allowed[_from][msg.sender] >= _value, "Sender has insufficient authorisation."); allowed[_from][msg.sender] -= _value; return transferCommon(_from, _to, _value); } /// @notice This transfers `_value` from `_from` to `_to`, WITHOUT CHECKING FOR AUTHORISATION. function transferCommon(address _from, address _to, uint256 _value) internal returns (bool success) { uint256 internalValue = externalToInternalAmount(_value); require(internalValue <= internalBalances[_from], "Transfer source has insufficient balance."); uint256 internalReceivedValue; if (!excludedAddressesMap[_from] && !excludedAddressesMap[_to] && deductTaxes) { uint256 onePercent = internalValue / 100; internalReceivedValue = internalValue - onePercent * 3; internalSupplyInNonExcludedAddresses -= onePercent * 3; // This is the adjustment resulting from just this transaction. uint256 readjustmentFactor = ((internalSupplyInNonExcludedAddresses + onePercent) * 1e18) / internalSupplyInNonExcludedAddresses; adjustmentFactor = (adjustmentFactor * readjustmentFactor) / 1e18; internalBalances[contractOwner] += onePercent; uint256 removedFunds; for (uint i; i < excludedAddresses.length; i++) { // Because this is rounded down, excludedAddresses will slowly lose funds as more transactions are made. // However, due to the fact that transactions are expensive and we have such a high precision, this // doesn't make a difference in practice. uint256 oldBalance = internalBalances[excludedAddresses[i]]; uint256 newBalance = ((oldBalance * 1e18) / readjustmentFactor); internalBalances[excludedAddresses[i]] = newBalance; removedFunds += oldBalance - newBalance; } // Decrement the total supply by 2% of the transfer amount plus the internal amount that's been taken from // excludedAddresses. totalInternalSupply -= removedFunds + onePercent*2; } else { if (excludedAddressesMap[_from] && !excludedAddressesMap[_to]) internalSupplyInNonExcludedAddresses += internalValue; if (!excludedAddressesMap[_from] && excludedAddressesMap[_to]) internalSupplyInNonExcludedAddresses -= internalValue; internalReceivedValue = internalValue; } internalBalances[_to] += internalReceivedValue; internalBalances[_from] -= internalValue; emit Transfer(_from, _to, _value); emit InternalTransfer(_from, _to, internalValue); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"AddedExcludedAddress","type":"event"},{"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":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_internalSentValue","type":"uint256"}],"name":"InternalTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"RemovedExcludedAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"}],"name":"SetDeductTaxes","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":[{"internalType":"address","name":"_addr","type":"address"}],"name":"addExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"adjustmentFactor","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":"_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":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"creationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deductTaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"excludedAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"internalBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"internalSupplyInNonExcludedAddresses","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":"originalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"removeExcludedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_deductTaxes","type":"bool"}],"name":"setDeductTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInternalSupply","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":"_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
60c060405260016000806101000a81548160ff0219169083151502179055506c327cb2734119d3b7a900000000600155670de0b6b3a76400006003553480156200004857600080fd5b5043608081815250503373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200009633620000ef60201b60201c565b6c327cb2734119d3b7a9000000006006600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200055a565b60a05173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015990620003ca565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615620001f2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001e99062000462565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254620002459190620004bd565b925050819055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fefc0f92e52264fd936456c31bdd70fde3cea024938b2898278d521210c4aa948816040516200033891906200053d565b60405180910390a150565b600082825260208201905092915050565b7f546869732066756e6374696f6e2069732063616c6c61626c65206f6e6c79206260008201527f792074686520636f6e7472616374206f776e65722e0000000000000000000000602082015250565b6000620003b260358362000343565b9150620003bf8262000354565b604082019050919050565b60006020820190508181036000830152620003e581620003a3565b9050919050565b7f5f6164647220697320616c726561647920616e206578636c756465642061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b60006200044a60258362000343565b91506200045782620003ec565b604082019050919050565b600060208201905081810360008301526200047d816200043b565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004ca8262000484565b9150620004d78362000484565b925082821015620004ed57620004ec6200048e565b5b828203905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200052582620004f8565b9050919050565b620005378162000518565b82525050565b60006020820190506200055460008301846200052c565b92915050565b60805160a05161222e620005a36000396000818161077f0152818161093e015281816109cc01528181610d8d01528181610ffb01526112cf01526000610557015261222e6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80634b2ba0dd116100b8578063a646c35d1161007c578063a646c35d14610356578063a9059cbb14610372578063a9b54bcd146103a2578063cb6741ed146103be578063ce606ee0146103dc578063dd62ed3e146103fa57610137565b80634b2ba0dd146102b05780636215722c146102ce57806367b53108146102ec57806370a082311461030857806395d89b411461033857610137565b8063282a8708116100ff578063282a8708146101f65780632f4c467814610214578063313ce56714610244578063319ebed414610262578063451117ca1461028057610137565b806306fdde031461013c578063095ea7b31461015a578063176345141461018a57806318160ddd146101a857806323b872dd146101c6575b600080fd5b61014461042a565b6040516101519190611881565b60405180910390f35b610174600480360381019061016f919061193c565b610463565b6040516101819190611997565b60405180910390f35b610192610555565b60405161019f91906119c1565b60405180910390f35b6101b0610579565b6040516101bd91906119c1565b60405180910390f35b6101e060048036038101906101db91906119dc565b61058b565b6040516101ed9190611997565b60405180910390f35b6101fe6106f3565b60405161020b91906119c1565b60405180910390f35b61022e60048036038101906102299190611a2f565b6106f9565b60405161023b9190611a6b565b60405180910390f35b61024c610738565b6040516102599190611aa2565b60405180910390f35b61026a61073d565b60405161027791906119c1565b60405180910390f35b61029a60048036038101906102959190611abd565b610743565b6040516102a791906119c1565b60405180910390f35b6102b861075b565b6040516102c591906119c1565b60405180910390f35b6102d661076c565b6040516102e39190611997565b60405180910390f35b61030660048036038101906103019190611b16565b61077d565b005b610322600480360381019061031d9190611abd565b6108b2565b60405161032f91906119c1565b60405180910390f35b610340610903565b60405161034d9190611881565b60405180910390f35b610370600480360381019061036b9190611abd565b61093c565b005b61038c6004803603810190610387919061193c565b610d76565b6040516103999190611997565b60405180910390f35b6103bc60048036038101906103b79190611abd565b610d8b565b005b6103c6610ff3565b6040516103d391906119c1565b60405180910390f35b6103e4610ff9565b6040516103f19190611a6b565b60405180910390f35b610414600480360381019061040f9190611b43565b61101d565b60405161042191906119c1565b60405180910390f35b6040518060400160405280601281526020017f5061727473206f6620466f757220436f696e000000000000000000000000000081525081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161054391906119c1565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006105866001546110a4565b905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390611bf5565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d89190611c44565b925050819055506106ea8484846110ce565b90509392505050565b60015481565b6004818154811061070957600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60025481565b60066020528060005260406000206000915090505481565b6c327cb2734119d3b7a90000000081565b60008054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611cea565b60405180910390fd5b60008054906101000a900460ff161515811515141561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690611d7c565b60405180910390fd5b806000806101000a81548160ff0219169083151502179055507f744c6ee55b7201173cfb0b5e9c044c47efa528937eef0b86f17183a10c549f32816040516108a79190611997565b60405180910390a150565b60006108fc600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a4565b9050919050565b6040518060400160405280600381526020017f503443000000000000000000000000000000000000000000000000000000000081525081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190611cea565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5090611e34565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90611ec6565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610b369190611ee6565b925050819055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b600480549050811015610d3b578173ffffffffffffffffffffffffffffffffffffffff1660048281548110610bd057610bcf611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d28576001600480549050610c299190611c44565b8114610cdc5760046001600480549050610c439190611c44565b81548110610c5457610c53611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660048281548110610c9357610c92611f3c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6004805480610cee57610ced611f6b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d3b565b8080610d3390611f9a565b915050610b98565b507f28069ef55713875d75b84b6e0f77334a31803295be41049f09a5df64cb5e552b81604051610d6b9190611a6b565b60405180910390a150565b6000610d833384846110ce565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090611cea565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90612055565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610ef79190611c44565b925050819055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fefc0f92e52264fd936456c31bdd70fde3cea024938b2898278d521210c4aa94881604051610fe89190611a6b565b60405180910390a150565b60035481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000670de0b6b3a7640000600354836110bd9190612075565b6110c791906120fe565b9050919050565b6000806110da836117be565b9050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561115e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611155906121a1565b60405180910390fd5b6000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112045750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561121a575060008054906101000a900460ff165b156114dd57600060648361122e91906120fe565b905060038161123d9190612075565b836112489190611c44565b91506003816112579190612075565b600260008282546112689190611c44565b925050819055506000600254670de0b6b3a76400008360025461128b9190611ee6565b6112959190612075565b61129f91906120fe565b9050670de0b6b3a7640000816003546112b89190612075565b6112c291906120fe565b60038190555081600660007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113379190611ee6565b925050819055506000805b6004805490508110156114a4576000600660006004848154811061136957611368611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600084670de0b6b3a7640000836113e89190612075565b6113f291906120fe565b905080600660006004868154811061140d5761140c611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114829190611c44565b8461148d9190611ee6565b93505050808061149c90611f9a565b915050611342565b506002836114b29190612075565b816114bd9190611ee6565b600160008282546114ce9190611c44565b92505081905550505050611665565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115805750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159f5781600260008282546115979190611ee6565b925050819055505b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116425750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116615781600260008282546116599190611c44565b925050819055505b8190505b80600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116b49190611ee6565b9250508190555081600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461170a9190611c44565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161176e91906119c1565b60405180910390a37fe2080c8fc8d86c864d8dc081fadaebf2be7191086615e786f954420f13ed122a8686846040516117a9939291906121c1565b60405180910390a16001925050509392505050565b6000600354670de0b6b3a7640000836117d79190612075565b6117e191906120fe565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611822578082015181840152602081019050611807565b83811115611831576000848401525b50505050565b6000601f19601f8301169050919050565b6000611853826117e8565b61185d81856117f3565b935061186d818560208601611804565b61187681611837565b840191505092915050565b6000602082019050818103600083015261189b8184611848565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118d3826118a8565b9050919050565b6118e3816118c8565b81146118ee57600080fd5b50565b600081359050611900816118da565b92915050565b6000819050919050565b61191981611906565b811461192457600080fd5b50565b60008135905061193681611910565b92915050565b60008060408385031215611953576119526118a3565b5b6000611961858286016118f1565b925050602061197285828601611927565b9150509250929050565b60008115159050919050565b6119918161197c565b82525050565b60006020820190506119ac6000830184611988565b92915050565b6119bb81611906565b82525050565b60006020820190506119d660008301846119b2565b92915050565b6000806000606084860312156119f5576119f46118a3565b5b6000611a03868287016118f1565b9350506020611a14868287016118f1565b9250506040611a2586828701611927565b9150509250925092565b600060208284031215611a4557611a446118a3565b5b6000611a5384828501611927565b91505092915050565b611a65816118c8565b82525050565b6000602082019050611a806000830184611a5c565b92915050565b600060ff82169050919050565b611a9c81611a86565b82525050565b6000602082019050611ab76000830184611a93565b92915050565b600060208284031215611ad357611ad26118a3565b5b6000611ae1848285016118f1565b91505092915050565b611af38161197c565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118a3565b5b6000611b3a84828501611b01565b91505092915050565b60008060408385031215611b5a57611b596118a3565b5b6000611b68858286016118f1565b9250506020611b79858286016118f1565b9150509250929050565b7f53656e6465722068617320696e73756666696369656e7420617574686f72697360008201527f6174696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b6000611bdf6026836117f3565b9150611bea82611b83565b604082019050919050565b60006020820190508181036000830152611c0e81611bd2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c4f82611906565b9150611c5a83611906565b925082821015611c6d57611c6c611c15565b5b828203905092915050565b7f546869732066756e6374696f6e2069732063616c6c61626c65206f6e6c79206260008201527f792074686520636f6e7472616374206f776e65722e0000000000000000000000602082015250565b6000611cd46035836117f3565b9150611cdf82611c78565b604082019050919050565b60006020820190508181036000830152611d0381611cc7565b9050919050565b7f646564756374546178657320697320616c726561647920746861742076616c7560008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d666021836117f3565b9150611d7182611d0a565b604082019050919050565b60006020820190508181036000830152611d9581611d59565b9050919050565b7f636f6e74726163744f776e6572206d75737420626520616e206578636c75646560008201527f64206164647265737320666f7220636f727265637420636f6e7472616374206260208201527f65686176696f75722e0000000000000000000000000000000000000000000000604082015250565b6000611e1e6049836117f3565b9150611e2982611d9c565b606082019050919050565b60006020820190508181036000830152611e4d81611e11565b9050919050565b7f5f61646472206973206e6f7420616e206578636c75646564206164647265737360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611eb06021836117f3565b9150611ebb82611e54565b604082019050919050565b60006020820190508181036000830152611edf81611ea3565b9050919050565b6000611ef182611906565b9150611efc83611906565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f3157611f30611c15565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000611fa582611906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611fd857611fd7611c15565b5b600182019050919050565b7f5f6164647220697320616c726561647920616e206578636c756465642061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b600061203f6025836117f3565b915061204a82611fe3565b604082019050919050565b6000602082019050818103600083015261206e81612032565b9050919050565b600061208082611906565b915061208b83611906565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120c4576120c3611c15565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061210982611906565b915061211483611906565b925082612124576121236120cf565b5b828204905092915050565b7f5472616e7366657220736f757263652068617320696e73756666696369656e7460008201527f2062616c616e63652e0000000000000000000000000000000000000000000000602082015250565b600061218b6029836117f3565b91506121968261212f565b604082019050919050565b600060208201905081810360008301526121ba8161217e565b9050919050565b60006060820190506121d66000830186611a5c565b6121e36020830185611a5c565b6121f060408301846119b2565b94935050505056fea26469706673582212200f651931b1592cf7b704660139d53f526782979d2ad178c4a0ec8fb73e671a4c64736f6c63430008090033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c80634b2ba0dd116100b8578063a646c35d1161007c578063a646c35d14610356578063a9059cbb14610372578063a9b54bcd146103a2578063cb6741ed146103be578063ce606ee0146103dc578063dd62ed3e146103fa57610137565b80634b2ba0dd146102b05780636215722c146102ce57806367b53108146102ec57806370a082311461030857806395d89b411461033857610137565b8063282a8708116100ff578063282a8708146101f65780632f4c467814610214578063313ce56714610244578063319ebed414610262578063451117ca1461028057610137565b806306fdde031461013c578063095ea7b31461015a578063176345141461018a57806318160ddd146101a857806323b872dd146101c6575b600080fd5b61014461042a565b6040516101519190611881565b60405180910390f35b610174600480360381019061016f919061193c565b610463565b6040516101819190611997565b60405180910390f35b610192610555565b60405161019f91906119c1565b60405180910390f35b6101b0610579565b6040516101bd91906119c1565b60405180910390f35b6101e060048036038101906101db91906119dc565b61058b565b6040516101ed9190611997565b60405180910390f35b6101fe6106f3565b60405161020b91906119c1565b60405180910390f35b61022e60048036038101906102299190611a2f565b6106f9565b60405161023b9190611a6b565b60405180910390f35b61024c610738565b6040516102599190611aa2565b60405180910390f35b61026a61073d565b60405161027791906119c1565b60405180910390f35b61029a60048036038101906102959190611abd565b610743565b6040516102a791906119c1565b60405180910390f35b6102b861075b565b6040516102c591906119c1565b60405180910390f35b6102d661076c565b6040516102e39190611997565b60405180910390f35b61030660048036038101906103019190611b16565b61077d565b005b610322600480360381019061031d9190611abd565b6108b2565b60405161032f91906119c1565b60405180910390f35b610340610903565b60405161034d9190611881565b60405180910390f35b610370600480360381019061036b9190611abd565b61093c565b005b61038c6004803603810190610387919061193c565b610d76565b6040516103999190611997565b60405180910390f35b6103bc60048036038101906103b79190611abd565b610d8b565b005b6103c6610ff3565b6040516103d391906119c1565b60405180910390f35b6103e4610ff9565b6040516103f19190611a6b565b60405180910390f35b610414600480360381019061040f9190611b43565b61101d565b60405161042191906119c1565b60405180910390f35b6040518060400160405280601281526020017f5061727473206f6620466f757220436f696e000000000000000000000000000081525081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161054391906119c1565b60405180910390a36001905092915050565b7f0000000000000000000000000000000000000000000000000000000000cf512181565b60006105866001546110a4565b905090565b600081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561064c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064390611bf5565b60405180910390fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106d89190611c44565b925050819055506106ea8484846110ce565b90509392505050565b60015481565b6004818154811061070957600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601281565b60025481565b60066020528060005260406000206000915090505481565b6c327cb2734119d3b7a90000000081565b60008054906101000a900460ff1681565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461080b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080290611cea565b60405180910390fd5b60008054906101000a900460ff161515811515141561085f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085690611d7c565b60405180910390fd5b806000806101000a81548160ff0219169083151502179055507f744c6ee55b7201173cfb0b5e9c044c47efa528937eef0b86f17183a10c549f32816040516108a79190611997565b60405180910390a150565b60006108fc600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110a4565b9050919050565b6040518060400160405280600381526020017f503443000000000000000000000000000000000000000000000000000000000081525081565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c190611cea565b60405180910390fd5b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5090611e34565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc90611ec6565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610b369190611ee6565b925050819055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b600480549050811015610d3b578173ffffffffffffffffffffffffffffffffffffffff1660048281548110610bd057610bcf611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610d28576001600480549050610c299190611c44565b8114610cdc5760046001600480549050610c439190611c44565b81548110610c5457610c53611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660048281548110610c9357610c92611f3c565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6004805480610cee57610ced611f6b565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055610d3b565b8080610d3390611f9a565b915050610b98565b507f28069ef55713875d75b84b6e0f77334a31803295be41049f09a5df64cb5e552b81604051610d6b9190611a6b565b60405180910390a150565b6000610d833384846110ce565b905092915050565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1090611cea565b60405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d90612055565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460026000828254610ef79190611c44565b925050819055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fefc0f92e52264fd936456c31bdd70fde3cea024938b2898278d521210c4aa94881604051610fe89190611a6b565b60405180910390a150565b60035481565b7f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c281565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000670de0b6b3a7640000600354836110bd9190612075565b6110c791906120fe565b9050919050565b6000806110da836117be565b9050600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561115e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611155906121a1565b60405180910390fd5b6000600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112045750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561121a575060008054906101000a900460ff165b156114dd57600060648361122e91906120fe565b905060038161123d9190612075565b836112489190611c44565b91506003816112579190612075565b600260008282546112689190611c44565b925050819055506000600254670de0b6b3a76400008360025461128b9190611ee6565b6112959190612075565b61129f91906120fe565b9050670de0b6b3a7640000816003546112b89190612075565b6112c291906120fe565b60038190555081600660007f00000000000000000000000077cbed7275cee8435bfefe0e71c2773154c7b0c273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113379190611ee6565b925050819055506000805b6004805490508110156114a4576000600660006004848154811061136957611368611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600084670de0b6b3a7640000836113e89190612075565b6113f291906120fe565b905080600660006004868154811061140d5761140c611f3c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080826114829190611c44565b8461148d9190611ee6565b93505050808061149c90611f9a565b915050611342565b506002836114b29190612075565b816114bd9190611ee6565b600160008282546114ce9190611c44565b92505081905550505050611665565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156115805750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561159f5781600260008282546115979190611ee6565b925050819055505b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116425750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116615781600260008282546116599190611c44565b925050819055505b8190505b80600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116b49190611ee6565b9250508190555081600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461170a9190611c44565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161176e91906119c1565b60405180910390a37fe2080c8fc8d86c864d8dc081fadaebf2be7191086615e786f954420f13ed122a8686846040516117a9939291906121c1565b60405180910390a16001925050509392505050565b6000600354670de0b6b3a7640000836117d79190612075565b6117e191906120fe565b9050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611822578082015181840152602081019050611807565b83811115611831576000848401525b50505050565b6000601f19601f8301169050919050565b6000611853826117e8565b61185d81856117f3565b935061186d818560208601611804565b61187681611837565b840191505092915050565b6000602082019050818103600083015261189b8184611848565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006118d3826118a8565b9050919050565b6118e3816118c8565b81146118ee57600080fd5b50565b600081359050611900816118da565b92915050565b6000819050919050565b61191981611906565b811461192457600080fd5b50565b60008135905061193681611910565b92915050565b60008060408385031215611953576119526118a3565b5b6000611961858286016118f1565b925050602061197285828601611927565b9150509250929050565b60008115159050919050565b6119918161197c565b82525050565b60006020820190506119ac6000830184611988565b92915050565b6119bb81611906565b82525050565b60006020820190506119d660008301846119b2565b92915050565b6000806000606084860312156119f5576119f46118a3565b5b6000611a03868287016118f1565b9350506020611a14868287016118f1565b9250506040611a2586828701611927565b9150509250925092565b600060208284031215611a4557611a446118a3565b5b6000611a5384828501611927565b91505092915050565b611a65816118c8565b82525050565b6000602082019050611a806000830184611a5c565b92915050565b600060ff82169050919050565b611a9c81611a86565b82525050565b6000602082019050611ab76000830184611a93565b92915050565b600060208284031215611ad357611ad26118a3565b5b6000611ae1848285016118f1565b91505092915050565b611af38161197c565b8114611afe57600080fd5b50565b600081359050611b1081611aea565b92915050565b600060208284031215611b2c57611b2b6118a3565b5b6000611b3a84828501611b01565b91505092915050565b60008060408385031215611b5a57611b596118a3565b5b6000611b68858286016118f1565b9250506020611b79858286016118f1565b9150509250929050565b7f53656e6465722068617320696e73756666696369656e7420617574686f72697360008201527f6174696f6e2e0000000000000000000000000000000000000000000000000000602082015250565b6000611bdf6026836117f3565b9150611bea82611b83565b604082019050919050565b60006020820190508181036000830152611c0e81611bd2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611c4f82611906565b9150611c5a83611906565b925082821015611c6d57611c6c611c15565b5b828203905092915050565b7f546869732066756e6374696f6e2069732063616c6c61626c65206f6e6c79206260008201527f792074686520636f6e7472616374206f776e65722e0000000000000000000000602082015250565b6000611cd46035836117f3565b9150611cdf82611c78565b604082019050919050565b60006020820190508181036000830152611d0381611cc7565b9050919050565b7f646564756374546178657320697320616c726561647920746861742076616c7560008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d666021836117f3565b9150611d7182611d0a565b604082019050919050565b60006020820190508181036000830152611d9581611d59565b9050919050565b7f636f6e74726163744f776e6572206d75737420626520616e206578636c75646560008201527f64206164647265737320666f7220636f727265637420636f6e7472616374206260208201527f65686176696f75722e0000000000000000000000000000000000000000000000604082015250565b6000611e1e6049836117f3565b9150611e2982611d9c565b606082019050919050565b60006020820190508181036000830152611e4d81611e11565b9050919050565b7f5f61646472206973206e6f7420616e206578636c75646564206164647265737360008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b6000611eb06021836117f3565b9150611ebb82611e54565b604082019050919050565b60006020820190508181036000830152611edf81611ea3565b9050919050565b6000611ef182611906565b9150611efc83611906565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611f3157611f30611c15565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000611fa582611906565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611fd857611fd7611c15565b5b600182019050919050565b7f5f6164647220697320616c726561647920616e206578636c756465642061646460008201527f726573732e000000000000000000000000000000000000000000000000000000602082015250565b600061203f6025836117f3565b915061204a82611fe3565b604082019050919050565b6000602082019050818103600083015261206e81612032565b9050919050565b600061208082611906565b915061208b83611906565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156120c4576120c3611c15565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061210982611906565b915061211483611906565b925082612124576121236120cf565b5b828204905092915050565b7f5472616e7366657220736f757263652068617320696e73756666696369656e7460008201527f2062616c616e63652e0000000000000000000000000000000000000000000000602082015250565b600061218b6029836117f3565b91506121968261212f565b604082019050919050565b600060208201905081810360008301526121ba8161217e565b9050919050565b60006060820190506121d66000830186611a5c565b6121e36020830185611a5c565b6121f060408301846119b2565b94935050505056fea26469706673582212200f651931b1592cf7b704660139d53f526782979d2ad178c4a0ec8fb73e671a4c64736f6c63430008090033
Deployed Bytecode Sourcemap
99:11091:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:50;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7464:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;619:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4468:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8604:282;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1026:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2006:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;216:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1157:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2386:52;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;817:61;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;739:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6629:300;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6986:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;175:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5743:767;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8275:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4935:418;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1470:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1677;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7776:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;121:50;;;;;;;;;;;;;;;;;;;:::o;7464:193::-;7531:12;7582:6;7550:7;:19;7558:10;7550:19;;;;;;;;;;;;;;;:29;7570:8;7550:29;;;;;;;;;;;;;;;:38;;;;7619:8;7598:38;;7607:10;7598:38;;;7629:6;7598:38;;;;;;:::i;:::-;;;;;;;;7648:4;7641:11;;7464:193;;;;:::o;619:38::-;;;:::o;4468:115::-;4512:7;4533:45;4558:19;;4533:24;:45::i;:::-;4526:52;;4468:115;:::o;8604:282::-;8686:12;8743:6;8713:7;:14;8721:5;8713:14;;;;;;;;;;;;;;;:26;8728:10;8713:26;;;;;;;;;;;;;;;;:36;;8705:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8827:6;8797:7;:14;8805:5;8797:14;;;;;;;;;;;;;;;:26;8812:10;8797:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;8847:34;8862:5;8869:3;8874:6;8847:14;:34::i;:::-;8840:41;;8604:282;;;;;:::o;1026:51::-;;;;:::o;2006:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;216:35::-;249:2;216:35;:::o;1157:51::-;;;;:::o;2386:52::-;;;;;;;;;;;;;;;;;:::o;817:61::-;858:20;817:61;:::o;739:30::-;;;;;;;;;;;;:::o;6629:300::-;6706:13;6692:27;;:10;:27;;;6684:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;6806:11;;;;;;;;;;6790:27;;:12;:27;;;;6782:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6874:12;6860:11;;:26;;;;;;;;;;;;;;;;;;6896:28;6911:12;6896:28;;;;;;:::i;:::-;;;;;;;;6629:300;:::o;6986:140::-;7042:15;7071:50;7096:16;:24;7113:6;7096:24;;;;;;;;;;;;;;;;7071;:50::i;:::-;7064:57;;6986:140;;;:::o;175:37::-;;;;;;;;;;;;;;;;;;;:::o;5743:767::-;5823:13;5809:27;;:10;:27;;;5801:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;5916:13;5907:22;;:5;:22;;;;5899:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;6022:20;:27;6043:5;6022:27;;;;;;;;;;;;;;;;;;;;;;;;;6012:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;6134:16;:23;6151:5;6134:23;;;;;;;;;;;;;;;;6094:36;;:63;;;;;;;:::i;:::-;;;;;;;;6192:5;6162:20;:27;6183:5;6162:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;6207:6;6202:263;6219:17;:24;;;;6215:1;:28;6202:263;;;6284:5;6260:29;;:17;6278:1;6260:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:29;;;6256:204;;;6332:1;6307:17;:24;;;;:26;;;;:::i;:::-;6302:1;:31;6298:111;;6364:17;6407:1;6382:17;:24;;;;:26;;;;:::i;:::-;6364:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6341:17;6359:1;6341:20;;;;;;;;:::i;:::-;;;;;;;;;;:68;;;;;;;;;;;;;;;;;;6298:111;6418:17;:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6448:5;;6256:204;6245:3;;;;;:::i;:::-;;;;6202:263;;;;6476:29;6499:5;6476:29;;;;;;:::i;:::-;;;;;;;;5743:767;:::o;8275:133::-;8338:12;8364:39;8379:10;8391:3;8396:6;8364:14;:39::i;:::-;8357:46;;8275:133;;;;:::o;4935:418::-;5012:13;4998:27;;:10;:27;;;4990:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;5097:20;:27;5118:5;5097:27;;;;;;;;;;;;;;;;;;;;;;;;;5096:28;5088:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5213:16;:23;5230:5;5213:23;;;;;;;;;;;;;;;;5173:36;;:63;;;;;;;:::i;:::-;;;;;;;;5271:4;5241:20;:27;5262:5;5241:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;5280:17;5303:5;5280:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5321:27;5342:5;5321:27;;;;;;:::i;:::-;;;;;;;;4935:418;:::o;1470:38::-;;;;:::o;1677:::-;;;:::o;7776:135::-;7850:17;7881:7;:15;7889:6;7881:15;;;;;;;;;;;;;;;:25;7897:8;7881:25;;;;;;;;;;;;;;;;7874:32;;7776:135;;;;:::o;3888:151::-;3970:7;4030:4;4010:16;;3992:15;:34;;;;:::i;:::-;3991:43;;;;:::i;:::-;3984:50;;3888:151;;;:::o;8988:2199::-;9074:12;9093:21;9117:32;9142:6;9117:24;:32::i;:::-;9093:56;;9179:16;:23;9196:5;9179:23;;;;;;;;;;;;;;;;9162:13;:40;;9154:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;9255:29;9294:20;:27;9315:5;9294:27;;;;;;;;;;;;;;;;;;;;;;;;;9293:28;:58;;;;;9326:20;:25;9347:3;9326:25;;;;;;;;;;;;;;;;;;;;;;;;;9325:26;9293:58;:73;;;;;9355:11;;;;;;;;;;9293:73;9289:1685;;;9374:18;9411:3;9395:13;:19;;;;:::i;:::-;9374:40;;9473:1;9460:10;:14;;;;:::i;:::-;9444:13;:30;;;;:::i;:::-;9420:54;;9533:1;9520:10;:14;;;;:::i;:::-;9480:36;;:54;;;;;;;:::i;:::-;;;;;;;;9610:26;9712:36;;9699:4;9685:10;9646:36;;:49;;;;:::i;:::-;9645:58;;;;:::i;:::-;9644:104;;;;:::i;:::-;9610:138;;9815:4;9793:18;9774:16;;:37;;;;:::i;:::-;9773:46;;;;:::i;:::-;9754:16;:65;;;;9862:10;9827:16;:31;9844:13;9827:31;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;9880:20;9911:6;9906:557;9923:17;:24;;;;9919:1;:28;9906:557;;;10223:18;10244:16;:38;10261:17;10279:1;10261:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10244:38;;;;;;;;;;;;;;;;10223:59;;10289:18;10333;10325:4;10312:10;:17;;;;:::i;:::-;10311:40;;;;:::i;:::-;10289:63;;10400:10;10359:16;:38;10376:17;10394:1;10376:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10359:38;;;;;;;;;;;;;;;:51;;;;10446:10;10433;:23;;;;:::i;:::-;10417:39;;;;;:::i;:::-;;;9954:509;;9949:3;;;;;:::i;:::-;;;;9906:557;;;;10656:1;10645:10;:12;;;;:::i;:::-;10630;:27;;;;:::i;:::-;10607:19;;:50;;;;;;;:::i;:::-;;;;;;;;9368:1295;;;9289:1685;;;10679:20;:27;10700:5;10679:27;;;;;;;;;;;;;;;;;;;;;;;;;:57;;;;;10711:20;:25;10732:3;10711:25;;;;;;;;;;;;;;;;;;;;;;;;;10710:26;10679:57;10675:121;;;10783:13;10743:36;;:53;;;;;;;:::i;:::-;;;;;;;;10675:121;10807:20;:27;10828:5;10807:27;;;;;;;;;;;;;;;;;;;;;;;;;10806:28;:57;;;;;10838:20;:25;10859:3;10838:25;;;;;;;;;;;;;;;;;;;;;;;;;10806:57;10802:121;;;10910:13;10870:36;;:53;;;;;;;:::i;:::-;;;;;;;;10802:121;10955:13;10931:37;;9289:1685;11005:21;10980:16;:21;10997:3;10980:21;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;11058:13;11031:16;:23;11048:5;11031:23;;;;;;;;;;;;;;;;:40;;;;;;;:::i;:::-;;;;;;;;11099:3;11083:28;;11092:5;11083:28;;;11104:6;11083:28;;;;;;:::i;:::-;;;;;;;;11121:43;11138:5;11145:3;11150:13;11121:43;;;;;;;;:::i;:::-;;;;;;;;11178:4;11171:11;;;;8988:2199;;;;;:::o;4255:151::-;4337:7;4385:16;;4377:4;4359:15;:22;;;;:::i;:::-;4358:43;;;;:::i;:::-;4351:50;;4255:151;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:118::-;4893:24;4911:5;4893:24;:::i;:::-;4888:3;4881:37;4806:118;;:::o;4930:222::-;5023:4;5061:2;5050:9;5046:18;5038:26;;5074:71;5142:1;5131:9;5127:17;5118:6;5074:71;:::i;:::-;4930:222;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:323::-;6240:6;6289:2;6277:9;6268:7;6264:23;6260:32;6257:119;;;6295:79;;:::i;:::-;6257:119;6415:1;6440:50;6482:7;6473:6;6462:9;6458:22;6440:50;:::i;:::-;6430:60;;6386:114;6184:323;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:225::-;7133:34;7129:1;7121:6;7117:14;7110:58;7202:8;7197:2;7189:6;7185:15;7178:33;6993:225;:::o;7224:366::-;7366:3;7387:67;7451:2;7446:3;7387:67;:::i;:::-;7380:74;;7463:93;7552:3;7463:93;:::i;:::-;7581:2;7576:3;7572:12;7565:19;;7224:366;;;:::o;7596:419::-;7762:4;7800:2;7789:9;7785:18;7777:26;;7849:9;7843:4;7839:20;7835:1;7824:9;7820:17;7813:47;7877:131;8003:4;7877:131;:::i;:::-;7869:139;;7596:419;;;:::o;8021:180::-;8069:77;8066:1;8059:88;8166:4;8163:1;8156:15;8190:4;8187:1;8180:15;8207:191;8247:4;8267:20;8285:1;8267:20;:::i;:::-;8262:25;;8301:20;8319:1;8301:20;:::i;:::-;8296:25;;8340:1;8337;8334:8;8331:34;;;8345:18;;:::i;:::-;8331:34;8390:1;8387;8383:9;8375:17;;8207:191;;;;:::o;8404:240::-;8544:34;8540:1;8532:6;8528:14;8521:58;8613:23;8608:2;8600:6;8596:15;8589:48;8404:240;:::o;8650:366::-;8792:3;8813:67;8877:2;8872:3;8813:67;:::i;:::-;8806:74;;8889:93;8978:3;8889:93;:::i;:::-;9007:2;9002:3;8998:12;8991:19;;8650:366;;;:::o;9022:419::-;9188:4;9226:2;9215:9;9211:18;9203:26;;9275:9;9269:4;9265:20;9261:1;9250:9;9246:17;9239:47;9303:131;9429:4;9303:131;:::i;:::-;9295:139;;9022:419;;;:::o;9447:220::-;9587:34;9583:1;9575:6;9571:14;9564:58;9656:3;9651:2;9643:6;9639:15;9632:28;9447:220;:::o;9673:366::-;9815:3;9836:67;9900:2;9895:3;9836:67;:::i;:::-;9829:74;;9912:93;10001:3;9912:93;:::i;:::-;10030:2;10025:3;10021:12;10014:19;;9673:366;;;:::o;10045:419::-;10211:4;10249:2;10238:9;10234:18;10226:26;;10298:9;10292:4;10288:20;10284:1;10273:9;10269:17;10262:47;10326:131;10452:4;10326:131;:::i;:::-;10318:139;;10045:419;;;:::o;10470:297::-;10610:34;10606:1;10598:6;10594:14;10587:58;10679:34;10674:2;10666:6;10662:15;10655:59;10748:11;10743:2;10735:6;10731:15;10724:36;10470:297;:::o;10773:366::-;10915:3;10936:67;11000:2;10995:3;10936:67;:::i;:::-;10929:74;;11012:93;11101:3;11012:93;:::i;:::-;11130:2;11125:3;11121:12;11114:19;;10773:366;;;:::o;11145:419::-;11311:4;11349:2;11338:9;11334:18;11326:26;;11398:9;11392:4;11388:20;11384:1;11373:9;11369:17;11362:47;11426:131;11552:4;11426:131;:::i;:::-;11418:139;;11145:419;;;:::o;11570:220::-;11710:34;11706:1;11698:6;11694:14;11687:58;11779:3;11774:2;11766:6;11762:15;11755:28;11570:220;:::o;11796:366::-;11938:3;11959:67;12023:2;12018:3;11959:67;:::i;:::-;11952:74;;12035:93;12124:3;12035:93;:::i;:::-;12153:2;12148:3;12144:12;12137:19;;11796:366;;;:::o;12168:419::-;12334:4;12372:2;12361:9;12357:18;12349:26;;12421:9;12415:4;12411:20;12407:1;12396:9;12392:17;12385:47;12449:131;12575:4;12449:131;:::i;:::-;12441:139;;12168:419;;;:::o;12593:305::-;12633:3;12652:20;12670:1;12652:20;:::i;:::-;12647:25;;12686:20;12704:1;12686:20;:::i;:::-;12681:25;;12840:1;12772:66;12768:74;12765:1;12762:81;12759:107;;;12846:18;;:::i;:::-;12759:107;12890:1;12887;12883:9;12876:16;;12593:305;;;;:::o;12904:180::-;12952:77;12949:1;12942:88;13049:4;13046:1;13039:15;13073:4;13070:1;13063:15;13090:180;13138:77;13135:1;13128:88;13235:4;13232:1;13225:15;13259:4;13256:1;13249:15;13276:233;13315:3;13338:24;13356:5;13338:24;:::i;:::-;13329:33;;13384:66;13377:5;13374:77;13371:103;;;13454:18;;:::i;:::-;13371:103;13501:1;13494:5;13490:13;13483:20;;13276:233;;;:::o;13515:224::-;13655:34;13651:1;13643:6;13639:14;13632:58;13724:7;13719:2;13711:6;13707:15;13700:32;13515:224;:::o;13745:366::-;13887:3;13908:67;13972:2;13967:3;13908:67;:::i;:::-;13901:74;;13984:93;14073:3;13984:93;:::i;:::-;14102:2;14097:3;14093:12;14086:19;;13745:366;;;:::o;14117:419::-;14283:4;14321:2;14310:9;14306:18;14298:26;;14370:9;14364:4;14360:20;14356:1;14345:9;14341:17;14334:47;14398:131;14524:4;14398:131;:::i;:::-;14390:139;;14117:419;;;:::o;14542:348::-;14582:7;14605:20;14623:1;14605:20;:::i;:::-;14600:25;;14639:20;14657:1;14639:20;:::i;:::-;14634:25;;14827:1;14759:66;14755:74;14752:1;14749:81;14744:1;14737:9;14730:17;14726:105;14723:131;;;14834:18;;:::i;:::-;14723:131;14882:1;14879;14875:9;14864:20;;14542:348;;;;:::o;14896:180::-;14944:77;14941:1;14934:88;15041:4;15038:1;15031:15;15065:4;15062:1;15055:15;15082:185;15122:1;15139:20;15157:1;15139:20;:::i;:::-;15134:25;;15173:20;15191:1;15173:20;:::i;:::-;15168:25;;15212:1;15202:35;;15217:18;;:::i;:::-;15202:35;15259:1;15256;15252:9;15247:14;;15082:185;;;;:::o;15273:228::-;15413:34;15409:1;15401:6;15397:14;15390:58;15482:11;15477:2;15469:6;15465:15;15458:36;15273:228;:::o;15507:366::-;15649:3;15670:67;15734:2;15729:3;15670:67;:::i;:::-;15663:74;;15746:93;15835:3;15746:93;:::i;:::-;15864:2;15859:3;15855:12;15848:19;;15507:366;;;:::o;15879:419::-;16045:4;16083:2;16072:9;16068:18;16060:26;;16132:9;16126:4;16122:20;16118:1;16107:9;16103:17;16096:47;16160:131;16286:4;16160:131;:::i;:::-;16152:139;;15879:419;;;:::o;16304:442::-;16453:4;16491:2;16480:9;16476:18;16468:26;;16504:71;16572:1;16561:9;16557:17;16548:6;16504:71;:::i;:::-;16585:72;16653:2;16642:9;16638:18;16629:6;16585:72;:::i;:::-;16667;16735:2;16724:9;16720:18;16711:6;16667:72;:::i;:::-;16304:442;;;;;;:::o
Swarm Source
ipfs://0f651931b1592cf7b704660139d53f526782979d2ad178c4a0ec8fb73e671a4c
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.