ERC-20
MEME
Overview
Max Total Supply
100,000,000,000 CAT
Holders
15,503
Total Transfers
-
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$36,230.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
CAT
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at scrollscan.com on 2024-01-10 */ /** */ // SPDX-License-Identifier: Unidentified // File: @openzeppelin\contracts\token\ERC20\IERC20.sol //https://twitter.com/DanjuanCat //https://t.me/DanjuanScrollCat // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } // File: @openzeppelin\contracts\token\ERC20\extensions\IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin\contracts\utils\Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin\contracts\token\ERC20\ERC20.sol // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * The default value of {decimals} is 18. To change this, you should override * this function so it returns a different value. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the default value returned by this function, unless * it's overridden. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer(address from, address to, uint256 amount) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance(address owner, address spender, uint256 amount) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {} } pragma solidity ^0.8.0; contract CAT is Context, ERC20 { address public owner; address private liquidityPoolAddress; uint256 public constant _maxTotalSupply = 100_000_000_000 * 1e18; uint256 private maxWalletToken; // Define var event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event LiquidityPoolAddressChanged(address indexed newLiquidityPoolAddress); modifier onlyOwner() { require(_msgSender() == owner, "CAT: caller is not the owner"); _; } constructor() ERC20("Danjuan Cat", "CAT") { owner = _msgSender(); _mint(_msgSender(), 100_000_000_000 * 1e18); // Initial mint emit OwnershipTransferred(address(0), _msgSender()); maxWalletToken = _maxTotalSupply * 100 / 100; // Initial MaxWallet } function setMaxWalletToken(uint256 newMaxWalletTokenPercentage) public onlyOwner { require(newMaxWalletTokenPercentage > 0 && newMaxWalletTokenPercentage <= 100, "invalid percent"); maxWalletToken = _maxTotalSupply * newMaxWalletTokenPercentage / 100; } function getMaxWalletToken() public view returns (uint256) { return maxWalletToken; } // Transfer ownership to a new address function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0), "CAT: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } // Function to set the liquidity pool address function setLiquidityPoolAddress(address _liquidityPoolAddress) public onlyOwner { require(_liquidityPoolAddress != address(0), "CAT: liquidity pool address is the zero address"); liquidityPoolAddress = _liquidityPoolAddress; emit LiquidityPoolAddressChanged(_liquidityPoolAddress); } // Renounce ownership of the contract function renounceOwnership() public onlyOwner { emit OwnershipTransferred(owner, address(0)); owner = address(0); } // Override the transfer function function transfer(address to, uint256 amount) public virtual override returns (bool) { require(balanceOf(to) + amount <= maxWalletToken, "CAT: transfer amount exceeds the maxWalletToken limit"); return super.transfer(to, amount); } // Override the transferFrom function function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) { if (to != liquidityPoolAddress) { require(balanceOf(to) + amount <= maxWalletToken, "CAT: transfer amount exceeds the maxWalletToken limit"); } return super.transferFrom(from, to, amount); } }
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":"newLiquidityPoolAddress","type":"address"}],"name":"LiquidityPoolAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getMaxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityPoolAddress","type":"address"}],"name":"setLiquidityPoolAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletTokenPercentage","type":"uint256"}],"name":"setMaxWalletToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600b81526020017f44616e6a75616e204361740000000000000000000000000000000000000000008152506040518060400160405280600381526020017f43415400000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200034f565b508060049080519060200190620000af9291906200034f565b505050620000c2620001cf60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200013062000116620001cf60201b60201c565b6c01431e0fae6d7217caa0000000620001d760201b60201c565b62000140620001cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36064806c01431e0fae6d7217caa0000000620001b7919062000537565b620001c39190620004ff565b60078190555062000665565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002419062000452565b60405180910390fd5b6200025e600083836200034560201b60201c565b8060026000828254620002729190620004a2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000325919062000474565b60405180910390a362000341600083836200034a60201b60201c565b5050565b505050565b505050565b8280546200035d90620005a2565b90600052602060002090601f016020900481019282620003815760008555620003cd565b82601f106200039c57805160ff1916838001178555620003cd565b82800160010185558215620003cd579182015b82811115620003cc578251825591602001919060010190620003af565b5b509050620003dc9190620003e0565b5090565b5b80821115620003fb576000816000905550600101620003e1565b5090565b60006200040e601f8362000491565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b6200044c8162000598565b82525050565b600060208201905081810360008301526200046d81620003ff565b9050919050565b60006020820190506200048b600083018462000441565b92915050565b600082825260208201905092915050565b6000620004af8262000598565b9150620004bc8362000598565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004f457620004f3620005d8565b5b828201905092915050565b60006200050c8262000598565b9150620005198362000598565b9250826200052c576200052b62000607565b5b828204905092915050565b6000620005448262000598565b9150620005518362000598565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200058d576200058c620005d8565b5b828202905092915050565b6000819050919050565b60006002820490506001821680620005bb57607f821691505b60208210811415620005d257620005d162000636565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b611dad80620006756000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102d1578063a457c2d7146102ef578063a9059cbb1461031f578063dd62ed3e1461034f578063f2fde38b1461037f57610116565b806370a082311461025d578063715018a61461028d5780638da5cb5b1461029757806391d55f41146102b557610116565b8063313ce567116100e9578063313ce567146101b75780633730837c146101d557806339509351146101f35780635587964e1461022357806363986aba1461024157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b61012361039b565b604051610130919061191c565b60405180910390f35b610153600480360381019061014e91906113b6565b61042d565b6040516101609190611901565b60405180910390f35b610171610450565b60405161017e9190611abe565b60405180910390f35b6101a1600480360381019061019c9190611367565b61045a565b6040516101ae9190611901565b60405180910390f35b6101bf61051e565b6040516101cc9190611ad9565b60405180910390f35b6101dd610527565b6040516101ea9190611abe565b60405180910390f35b61020d600480360381019061020891906113b6565b610538565b60405161021a9190611901565b60405180910390f35b61022b61056f565b6040516102389190611abe565b60405180910390f35b61025b60048036038101906102569190611302565b610579565b005b61027760048036038101906102729190611302565b610707565b6040516102849190611abe565b60405180910390f35b61029561074f565b005b61029f6108a7565b6040516102ac91906118e6565b60405180910390f35b6102cf60048036038101906102ca91906113f2565b6108cd565b005b6102d96109e2565b6040516102e6919061191c565b60405180910390f35b610309600480360381019061030491906113b6565b610a74565b6040516103169190611901565b60405180910390f35b610339600480360381019061033491906113b6565b610aeb565b6040516103469190611901565b60405180910390f35b6103696004803603810190610364919061132b565b610b57565b6040516103769190611abe565b60405180910390f35b61039960048036038101906103949190611302565b610bde565b005b6060600380546103aa90611c79565b80601f01602080910402602001604051908101604052809291908181526020018280546103d690611c79565b80156104235780601f106103f857610100808354040283529160200191610423565b820191906000526020600020905b81548152906001019060200180831161040657829003601f168201915b5050505050905090565b600080610438610da5565b9050610445818585610dad565b600191505092915050565b6000600254905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461050a57600754826104be85610707565b6104c89190611b10565b1115610509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105009061195e565b60405180910390fd5b5b610515848484610f78565b90509392505050565b60006012905090565b6c01431e0fae6d7217caa000000081565b600080610543610da5565b90506105648185856105558589610b57565b61055f9190611b10565b610dad565b600191505092915050565b6000600754905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ba610da5565b73ffffffffffffffffffffffffffffffffffffffff1614610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790611a1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067790611a7e565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f13ef15815f72600feb0456a2b1dd0abf68442ff89dc454ccb656f16bc9cf177160405160405180910390a250565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610790610da5565b73ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd90611a1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661090e610da5565b73ffffffffffffffffffffffffffffffffffffffff1614610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90611a1e565b60405180910390fd5b600081118015610975575060648111155b6109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab9061199e565b60405180910390fd5b6064816c01431e0fae6d7217caa00000006109cf9190611b97565b6109d99190611b66565b60078190555050565b6060600480546109f190611c79565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1d90611c79565b8015610a6a5780601f10610a3f57610100808354040283529160200191610a6a565b820191906000526020600020905b815481529060010190602001808311610a4d57829003601f168201915b5050505050905090565b600080610a7f610da5565b90506000610a8d8286610b57565b905083811015610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac990611a9e565b60405180910390fd5b610adf8286868403610dad565b60019250505092915050565b600060075482610afa85610707565b610b049190611b10565b1115610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c9061195e565b60405180910390fd5b610b4f8383610fa7565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1f610da5565b73ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90611a1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906119fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490611a5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061197e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f6b9190611abe565b60405180910390a3505050565b600080610f83610da5565b9050610f90858285610fca565b610f9b858585611056565b60019150509392505050565b600080610fb2610da5565b9050610fbf818585611056565b600191505092915050565b6000610fd68484610b57565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110505781811015611042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611039906119be565b60405180910390fd5b61104f8484848403610dad565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90611a3e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d9061193e565b60405180910390fd5b6111418383836112ce565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be906119de565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112b59190611abe565b60405180910390a36112c88484846112d3565b50505050565b505050565b505050565b6000813590506112e781611d49565b92915050565b6000813590506112fc81611d60565b92915050565b60006020828403121561131457600080fd5b6000611322848285016112d8565b91505092915050565b6000806040838503121561133e57600080fd5b600061134c858286016112d8565b925050602061135d858286016112d8565b9150509250929050565b60008060006060848603121561137c57600080fd5b600061138a868287016112d8565b935050602061139b868287016112d8565b92505060406113ac868287016112ed565b9150509250925092565b600080604083850312156113c957600080fd5b60006113d7858286016112d8565b92505060206113e8858286016112ed565b9150509250929050565b60006020828403121561140457600080fd5b6000611412848285016112ed565b91505092915050565b61142481611bf1565b82525050565b61143381611c03565b82525050565b600061144482611af4565b61144e8185611aff565b935061145e818560208601611c46565b61146781611d38565b840191505092915050565b600061147f602383611aff565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114e5603583611aff565b91507f4341543a207472616e7366657220616d6f756e7420657863656564732074686560008301527f206d617857616c6c6574546f6b656e206c696d697400000000000000000000006020830152604082019050919050565b600061154b602283611aff565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115b1600f83611aff565b91507f696e76616c69642070657263656e7400000000000000000000000000000000006000830152602082019050919050565b60006115f1601d83611aff565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611631602683611aff565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611697602283611aff565b91507f4341543a206e6577206f776e657220697320746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116fd601c83611aff565b91507f4341543a2063616c6c6572206973206e6f7420746865206f776e6572000000006000830152602082019050919050565b600061173d602583611aff565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117a3602483611aff565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611809602f83611aff565b91507f4341543a206c697175696469747920706f6f6c2061646472657373206973207460008301527f6865207a65726f206164647265737300000000000000000000000000000000006020830152604082019050919050565b600061186f602583611aff565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6118d181611c2f565b82525050565b6118e081611c39565b82525050565b60006020820190506118fb600083018461141b565b92915050565b6000602082019050611916600083018461142a565b92915050565b600060208201905081810360008301526119368184611439565b905092915050565b6000602082019050818103600083015261195781611472565b9050919050565b60006020820190508181036000830152611977816114d8565b9050919050565b600060208201905081810360008301526119978161153e565b9050919050565b600060208201905081810360008301526119b7816115a4565b9050919050565b600060208201905081810360008301526119d7816115e4565b9050919050565b600060208201905081810360008301526119f781611624565b9050919050565b60006020820190508181036000830152611a178161168a565b9050919050565b60006020820190508181036000830152611a37816116f0565b9050919050565b60006020820190508181036000830152611a5781611730565b9050919050565b60006020820190508181036000830152611a7781611796565b9050919050565b60006020820190508181036000830152611a97816117fc565b9050919050565b60006020820190508181036000830152611ab781611862565b9050919050565b6000602082019050611ad360008301846118c8565b92915050565b6000602082019050611aee60008301846118d7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b1b82611c2f565b9150611b2683611c2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b5b57611b5a611cab565b5b828201905092915050565b6000611b7182611c2f565b9150611b7c83611c2f565b925082611b8c57611b8b611cda565b5b828204905092915050565b6000611ba282611c2f565b9150611bad83611c2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611be657611be5611cab565b5b828202905092915050565b6000611bfc82611c0f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c64578082015181840152602081019050611c49565b83811115611c73576000848401525b50505050565b60006002820490506001821680611c9157607f821691505b60208210811415611ca557611ca4611d09565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611d5281611bf1565b8114611d5d57600080fd5b50565b611d6981611c2f565b8114611d7457600080fd5b5056fea2646970667358221220ac82aebdbd22dfb9a867fdeeb4711af591c6d6a159a5f5663539f6bca01af46c64736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a257806395d89b411161007157806395d89b41146102d1578063a457c2d7146102ef578063a9059cbb1461031f578063dd62ed3e1461034f578063f2fde38b1461037f57610116565b806370a082311461025d578063715018a61461028d5780638da5cb5b1461029757806391d55f41146102b557610116565b8063313ce567116100e9578063313ce567146101b75780633730837c146101d557806339509351146101f35780635587964e1461022357806363986aba1461024157610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b61012361039b565b604051610130919061191c565b60405180910390f35b610153600480360381019061014e91906113b6565b61042d565b6040516101609190611901565b60405180910390f35b610171610450565b60405161017e9190611abe565b60405180910390f35b6101a1600480360381019061019c9190611367565b61045a565b6040516101ae9190611901565b60405180910390f35b6101bf61051e565b6040516101cc9190611ad9565b60405180910390f35b6101dd610527565b6040516101ea9190611abe565b60405180910390f35b61020d600480360381019061020891906113b6565b610538565b60405161021a9190611901565b60405180910390f35b61022b61056f565b6040516102389190611abe565b60405180910390f35b61025b60048036038101906102569190611302565b610579565b005b61027760048036038101906102729190611302565b610707565b6040516102849190611abe565b60405180910390f35b61029561074f565b005b61029f6108a7565b6040516102ac91906118e6565b60405180910390f35b6102cf60048036038101906102ca91906113f2565b6108cd565b005b6102d96109e2565b6040516102e6919061191c565b60405180910390f35b610309600480360381019061030491906113b6565b610a74565b6040516103169190611901565b60405180910390f35b610339600480360381019061033491906113b6565b610aeb565b6040516103469190611901565b60405180910390f35b6103696004803603810190610364919061132b565b610b57565b6040516103769190611abe565b60405180910390f35b61039960048036038101906103949190611302565b610bde565b005b6060600380546103aa90611c79565b80601f01602080910402602001604051908101604052809291908181526020018280546103d690611c79565b80156104235780601f106103f857610100808354040283529160200191610423565b820191906000526020600020905b81548152906001019060200180831161040657829003601f168201915b5050505050905090565b600080610438610da5565b9050610445818585610dad565b600191505092915050565b6000600254905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461050a57600754826104be85610707565b6104c89190611b10565b1115610509576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105009061195e565b60405180910390fd5b5b610515848484610f78565b90509392505050565b60006012905090565b6c01431e0fae6d7217caa000000081565b600080610543610da5565b90506105648185856105558589610b57565b61055f9190611b10565b610dad565b600191505092915050565b6000600754905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ba610da5565b73ffffffffffffffffffffffffffffffffffffffff1614610610576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060790611a1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067790611a7e565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f13ef15815f72600feb0456a2b1dd0abf68442ff89dc454ccb656f16bc9cf177160405160405180910390a250565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610790610da5565b73ffffffffffffffffffffffffffffffffffffffff16146107e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dd90611a1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661090e610da5565b73ffffffffffffffffffffffffffffffffffffffff1614610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90611a1e565b60405180910390fd5b600081118015610975575060648111155b6109b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ab9061199e565b60405180910390fd5b6064816c01431e0fae6d7217caa00000006109cf9190611b97565b6109d99190611b66565b60078190555050565b6060600480546109f190611c79565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1d90611c79565b8015610a6a5780601f10610a3f57610100808354040283529160200191610a6a565b820191906000526020600020905b815481529060010190602001808311610a4d57829003601f168201915b5050505050905090565b600080610a7f610da5565b90506000610a8d8286610b57565b905083811015610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac990611a9e565b60405180910390fd5b610adf8286868403610dad565b60019250505092915050565b600060075482610afa85610707565b610b049190611b10565b1115610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c9061195e565b60405180910390fd5b610b4f8383610fa7565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c1f610da5565b73ffffffffffffffffffffffffffffffffffffffff1614610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c90611a1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc906119fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1490611a5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061197e565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f6b9190611abe565b60405180910390a3505050565b600080610f83610da5565b9050610f90858285610fca565b610f9b858585611056565b60019150509392505050565b600080610fb2610da5565b9050610fbf818585611056565b600191505092915050565b6000610fd68484610b57565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146110505781811015611042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611039906119be565b60405180910390fd5b61104f8484848403610dad565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90611a3e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611136576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112d9061193e565b60405180910390fd5b6111418383836112ce565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111be906119de565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112b59190611abe565b60405180910390a36112c88484846112d3565b50505050565b505050565b505050565b6000813590506112e781611d49565b92915050565b6000813590506112fc81611d60565b92915050565b60006020828403121561131457600080fd5b6000611322848285016112d8565b91505092915050565b6000806040838503121561133e57600080fd5b600061134c858286016112d8565b925050602061135d858286016112d8565b9150509250929050565b60008060006060848603121561137c57600080fd5b600061138a868287016112d8565b935050602061139b868287016112d8565b92505060406113ac868287016112ed565b9150509250925092565b600080604083850312156113c957600080fd5b60006113d7858286016112d8565b92505060206113e8858286016112ed565b9150509250929050565b60006020828403121561140457600080fd5b6000611412848285016112ed565b91505092915050565b61142481611bf1565b82525050565b61143381611c03565b82525050565b600061144482611af4565b61144e8185611aff565b935061145e818560208601611c46565b61146781611d38565b840191505092915050565b600061147f602383611aff565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114e5603583611aff565b91507f4341543a207472616e7366657220616d6f756e7420657863656564732074686560008301527f206d617857616c6c6574546f6b656e206c696d697400000000000000000000006020830152604082019050919050565b600061154b602283611aff565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115b1600f83611aff565b91507f696e76616c69642070657263656e7400000000000000000000000000000000006000830152602082019050919050565b60006115f1601d83611aff565b91507f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006000830152602082019050919050565b6000611631602683611aff565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611697602283611aff565b91507f4341543a206e6577206f776e657220697320746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116fd601c83611aff565b91507f4341543a2063616c6c6572206973206e6f7420746865206f776e6572000000006000830152602082019050919050565b600061173d602583611aff565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006117a3602483611aff565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611809602f83611aff565b91507f4341543a206c697175696469747920706f6f6c2061646472657373206973207460008301527f6865207a65726f206164647265737300000000000000000000000000000000006020830152604082019050919050565b600061186f602583611aff565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6118d181611c2f565b82525050565b6118e081611c39565b82525050565b60006020820190506118fb600083018461141b565b92915050565b6000602082019050611916600083018461142a565b92915050565b600060208201905081810360008301526119368184611439565b905092915050565b6000602082019050818103600083015261195781611472565b9050919050565b60006020820190508181036000830152611977816114d8565b9050919050565b600060208201905081810360008301526119978161153e565b9050919050565b600060208201905081810360008301526119b7816115a4565b9050919050565b600060208201905081810360008301526119d7816115e4565b9050919050565b600060208201905081810360008301526119f781611624565b9050919050565b60006020820190508181036000830152611a178161168a565b9050919050565b60006020820190508181036000830152611a37816116f0565b9050919050565b60006020820190508181036000830152611a5781611730565b9050919050565b60006020820190508181036000830152611a7781611796565b9050919050565b60006020820190508181036000830152611a97816117fc565b9050919050565b60006020820190508181036000830152611ab781611862565b9050919050565b6000602082019050611ad360008301846118c8565b92915050565b6000602082019050611aee60008301846118d7565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611b1b82611c2f565b9150611b2683611c2f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611b5b57611b5a611cab565b5b828201905092915050565b6000611b7182611c2f565b9150611b7c83611c2f565b925082611b8c57611b8b611cda565b5b828204905092915050565b6000611ba282611c2f565b9150611bad83611c2f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611be657611be5611cab565b5b828202905092915050565b6000611bfc82611c0f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611c64578082015181840152602081019050611c49565b83811115611c73576000848401525b50505050565b60006002820490506001821680611c9157607f821691505b60208210811415611ca557611ca4611d09565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611d5281611bf1565b8114611d5d57600080fd5b50565b611d6981611c2f565b8114611d7457600080fd5b5056fea2646970667358221220ac82aebdbd22dfb9a867fdeeb4711af591c6d6a159a5f5663539f6bca01af46c64736f6c63430008000033
Deployed Bytecode Sourcemap
17753:2752:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6731:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9091:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7860:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20162:340;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7702:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17861:64;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10542:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18861:99;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19296:320;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8031:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19675:138;;;:::i;:::-;;17791:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18577:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6950:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11283:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19860:254;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8620:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19010:230;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6731:100;6785:13;6818:5;6811:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6731:100;:::o;9091:201::-;9174:4;9191:13;9207:12;:10;:12::i;:::-;9191:28;;9230:32;9239:5;9246:7;9255:6;9230:8;:32::i;:::-;9280:4;9273:11;;;9091:201;;;;:::o;7860:108::-;7921:7;7948:12;;7941:19;;7860:108;:::o;20162:340::-;20259:4;20286:20;;;;;;;;;;;20280:26;;:2;:26;;;20276:165;;20357:14;;20347:6;20331:13;20341:2;20331:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;20323:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;20276:165;20458:36;20477:4;20483:2;20487:6;20458:18;:36::i;:::-;20451:43;;20162:340;;;;;:::o;7702:93::-;7760:5;7785:2;7778:9;;7702:93;:::o;17861:64::-;17903:22;17861:64;:::o;10542:238::-;10630:4;10647:13;10663:12;:10;:12::i;:::-;10647:28;;10686:64;10695:5;10702:7;10739:10;10711:25;10721:5;10728:7;10711:9;:25::i;:::-;:38;;;;:::i;:::-;10686:8;:64::i;:::-;10768:4;10761:11;;;10542:238;;;;:::o;18861:99::-;18911:7;18938:14;;18931:21;;18861:99;:::o;19296:320::-;18216:5;;;;;;;;;;;18200:21;;:12;:10;:12::i;:::-;:21;;;18192:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19429:1:::1;19396:35;;:21;:35;;;;19388:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;19517:21;19494:20;;:44;;;;;;;;;;;;;;;;;;19582:21;19554:50;;;;;;;;;;;;19296:320:::0;:::o;8031:127::-;8105:7;8132:9;:18;8142:7;8132:18;;;;;;;;;;;;;;;;8125:25;;8031:127;;;:::o;19675:138::-;18216:5;;;;;;;;;;;18200:21;;:12;:10;:12::i;:::-;:21;;;18192:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19773:1:::1;19737:39;;19758:5;;;;;;;;;;;19737:39;;;;;;;;;;;;19803:1;19787:5;;:18;;;;;;;;;;;;;;;;;;19675:138::o:0;17791:20::-;;;;;;;;;;;;;:::o;18577:276::-;18216:5;;;;;;;;;;;18200:21;;:12;:10;:12::i;:::-;:21;;;18192:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18707:1:::1;18677:27;:31;:69;;;;;18743:3;18712:27;:34;;18677:69;18669:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;18842:3;18812:27;17903:22;18794:45;;;;:::i;:::-;:51;;;;:::i;:::-;18777:14;:68;;;;18577:276:::0;:::o;6950:104::-;7006:13;7039:7;7032:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6950:104;:::o;11283:436::-;11376:4;11393:13;11409:12;:10;:12::i;:::-;11393:28;;11432:24;11459:25;11469:5;11476:7;11459:9;:25::i;:::-;11432:52;;11523:15;11503:16;:35;;11495:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11616:60;11625:5;11632:7;11660:15;11641:16;:34;11616:8;:60::i;:::-;11707:4;11700:11;;;;11283:436;;;;:::o;19860:254::-;19939:4;19990:14;;19980:6;19964:13;19974:2;19964:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;19956:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;20080:26;20095:2;20099:6;20080:14;:26::i;:::-;20073:33;;19860:254;;;;:::o;8620:151::-;8709:7;8736:11;:18;8748:5;8736:18;;;;;;;;;;;;;;;:27;8755:7;8736:27;;;;;;;;;;;;;;;;8729:34;;8620:151;;;;:::o;19010:230::-;18216:5;;;;;;;;;;;18200:21;;:12;:10;:12::i;:::-;:21;;;18192:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19111:1:::1;19091:22;;:8;:22;;;;19083:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;19196:8;19168:37;;19189:5;;;;;;;;;;;19168:37;;;;;;;;;;;;19224:8;19216:5;;:16;;;;;;;;;;;;;;;;;;19010:230:::0;:::o;4373:98::-;4426:7;4453:10;4446:17;;4373:98;:::o;15276:346::-;15395:1;15378:19;;:5;:19;;;;15370:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15476:1;15457:21;;:7;:21;;;;15449:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15560:6;15530:11;:18;15542:5;15530:18;;;;;;;;;;;;;;;:27;15549:7;15530:27;;;;;;;;;;;;;;;:36;;;;15598:7;15582:32;;15591:5;15582:32;;;15607:6;15582:32;;;;;;:::i;:::-;;;;;;;;15276:346;;;:::o;9872:261::-;9969:4;9986:15;10004:12;:10;:12::i;:::-;9986:30;;10027:38;10043:4;10049:7;10058:6;10027:15;:38::i;:::-;10076:27;10086:4;10092:2;10096:6;10076:9;:27::i;:::-;10121:4;10114:11;;;9872:261;;;;;:::o;8364:193::-;8443:4;8460:13;8476:12;:10;:12::i;:::-;8460:28;;8499;8509:5;8516:2;8520:6;8499:9;:28::i;:::-;8545:4;8538:11;;;8364:193;;;;:::o;15913:419::-;16014:24;16041:25;16051:5;16058:7;16041:9;:25::i;:::-;16014:52;;16101:17;16081:16;:37;16077:248;;16163:6;16143:16;:26;;16135:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16247:51;16256:5;16263:7;16291:6;16272:16;:25;16247:8;:51::i;:::-;16077:248;15913:419;;;;:::o;12189:806::-;12302:1;12286:18;;:4;:18;;;;12278:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12379:1;12365:16;;:2;:16;;;;12357:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12434:38;12455:4;12461:2;12465:6;12434:20;:38::i;:::-;12485:19;12507:9;:15;12517:4;12507:15;;;;;;;;;;;;;;;;12485:37;;12556:6;12541:11;:21;;12533:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12673:6;12659:11;:20;12641:9;:15;12651:4;12641:15;;;;;;;;;;;;;;;:38;;;;12876:6;12859:9;:13;12869:2;12859:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;12926:2;12911:26;;12920:4;12911:26;;;12930:6;12911:26;;;;;;:::i;:::-;;;;;;;;12950:37;12970:4;12976:2;12980:6;12950:19;:37::i;:::-;12189:806;;;;:::o;16932:91::-;;;;:::o;17627:90::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2282:53;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2400:50;;:::o;2456:364::-;;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;;;;;:::o;2826:367::-;;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3086:34;3082:1;3077:3;3073:11;3066:55;3152:5;3147:2;3142:3;3138:12;3131:27;3184:2;3179:3;3175:12;3168:19;;2972:221;;;:::o;3199:385::-;;3362:67;3426:2;3421:3;3362:67;:::i;:::-;3355:74;;3459:34;3455:1;3450:3;3446:11;3439:55;3525:23;3520:2;3515:3;3511:12;3504:45;3575:2;3570:3;3566:12;3559:19;;3345:239;;;:::o;3590:366::-;;3753:67;3817:2;3812:3;3753:67;:::i;:::-;3746:74;;3850:34;3846:1;3841:3;3837:11;3830:55;3916:4;3911:2;3906:3;3902:12;3895:26;3947:2;3942:3;3938:12;3931:19;;3736:220;;;:::o;3962:313::-;;4125:67;4189:2;4184:3;4125:67;:::i;:::-;4118:74;;4222:17;4218:1;4213:3;4209:11;4202:38;4266:2;4261:3;4257:12;4250:19;;4108:167;;;:::o;4281:327::-;;4444:67;4508:2;4503:3;4444:67;:::i;:::-;4437:74;;4541:31;4537:1;4532:3;4528:11;4521:52;4599:2;4594:3;4590:12;4583:19;;4427:181;;;:::o;4614:370::-;;4777:67;4841:2;4836:3;4777:67;:::i;:::-;4770:74;;4874:34;4870:1;4865:3;4861:11;4854:55;4940:8;4935:2;4930:3;4926:12;4919:30;4975:2;4970:3;4966:12;4959:19;;4760:224;;;:::o;4990:366::-;;5153:67;5217:2;5212:3;5153:67;:::i;:::-;5146:74;;5250:34;5246:1;5241:3;5237:11;5230:55;5316:4;5311:2;5306:3;5302:12;5295:26;5347:2;5342:3;5338:12;5331:19;;5136:220;;;:::o;5362:326::-;;5525:67;5589:2;5584:3;5525:67;:::i;:::-;5518:74;;5622:30;5618:1;5613:3;5609:11;5602:51;5679:2;5674:3;5670:12;5663:19;;5508:180;;;:::o;5694:369::-;;5857:67;5921:2;5916:3;5857:67;:::i;:::-;5850:74;;5954:34;5950:1;5945:3;5941:11;5934:55;6020:7;6015:2;6010:3;6006:12;5999:29;6054:2;6049:3;6045:12;6038:19;;5840:223;;;:::o;6069:368::-;;6232:67;6296:2;6291:3;6232:67;:::i;:::-;6225:74;;6329:34;6325:1;6320:3;6316:11;6309:55;6395:6;6390:2;6385:3;6381:12;6374:28;6428:2;6423:3;6419:12;6412:19;;6215:222;;;:::o;6443:379::-;;6606:67;6670:2;6665:3;6606:67;:::i;:::-;6599:74;;6703:34;6699:1;6694:3;6690:11;6683:55;6769:17;6764:2;6759:3;6755:12;6748:39;6813:2;6808:3;6804:12;6797:19;;6589:233;;;:::o;6828:369::-;;6991:67;7055:2;7050:3;6991:67;:::i;:::-;6984:74;;7088:34;7084:1;7079:3;7075:11;7068:55;7154:7;7149:2;7144:3;7140:12;7133:29;7188:2;7183:3;7179:12;7172:19;;6974:223;;;:::o;7203:118::-;7290:24;7308:5;7290:24;:::i;:::-;7285:3;7278:37;7268:53;;:::o;7327:112::-;7410:22;7426:5;7410:22;:::i;:::-;7405:3;7398:35;7388:51;;:::o;7445:222::-;;7576:2;7565:9;7561:18;7553:26;;7589:71;7657:1;7646:9;7642:17;7633:6;7589:71;:::i;:::-;7543:124;;;;:::o;7673:210::-;;7798:2;7787:9;7783:18;7775:26;;7811:65;7873:1;7862:9;7858:17;7849:6;7811:65;:::i;:::-;7765:118;;;;:::o;7889:313::-;;8040:2;8029:9;8025:18;8017:26;;8089:9;8083:4;8079:20;8075:1;8064:9;8060:17;8053:47;8117:78;8190:4;8181:6;8117:78;:::i;:::-;8109:86;;8007:195;;;;:::o;8208:419::-;;8412:2;8401:9;8397:18;8389:26;;8461:9;8455:4;8451:20;8447:1;8436:9;8432:17;8425:47;8489:131;8615:4;8489:131;:::i;:::-;8481:139;;8379:248;;;:::o;8633:419::-;;8837:2;8826:9;8822:18;8814:26;;8886:9;8880:4;8876:20;8872:1;8861:9;8857:17;8850:47;8914:131;9040:4;8914:131;:::i;:::-;8906:139;;8804:248;;;:::o;9058:419::-;;9262:2;9251:9;9247:18;9239:26;;9311:9;9305:4;9301:20;9297:1;9286:9;9282:17;9275:47;9339:131;9465:4;9339:131;:::i;:::-;9331:139;;9229:248;;;:::o;9483:419::-;;9687:2;9676:9;9672:18;9664:26;;9736:9;9730:4;9726:20;9722:1;9711:9;9707:17;9700:47;9764:131;9890:4;9764:131;:::i;:::-;9756:139;;9654:248;;;:::o;9908:419::-;;10112:2;10101:9;10097:18;10089:26;;10161:9;10155:4;10151:20;10147:1;10136:9;10132:17;10125:47;10189:131;10315:4;10189:131;:::i;:::-;10181:139;;10079:248;;;:::o;10333:419::-;;10537:2;10526:9;10522:18;10514:26;;10586:9;10580:4;10576:20;10572:1;10561:9;10557:17;10550:47;10614:131;10740:4;10614:131;:::i;:::-;10606:139;;10504:248;;;:::o;10758:419::-;;10962:2;10951:9;10947:18;10939:26;;11011:9;11005:4;11001:20;10997:1;10986:9;10982:17;10975:47;11039:131;11165:4;11039:131;:::i;:::-;11031:139;;10929:248;;;:::o;11183:419::-;;11387:2;11376:9;11372:18;11364:26;;11436:9;11430:4;11426:20;11422:1;11411:9;11407:17;11400:47;11464:131;11590:4;11464:131;:::i;:::-;11456:139;;11354:248;;;:::o;11608:419::-;;11812:2;11801:9;11797:18;11789:26;;11861:9;11855:4;11851:20;11847:1;11836:9;11832:17;11825:47;11889:131;12015:4;11889:131;:::i;:::-;11881:139;;11779:248;;;:::o;12033:419::-;;12237:2;12226:9;12222:18;12214:26;;12286:9;12280:4;12276:20;12272:1;12261:9;12257:17;12250:47;12314:131;12440:4;12314:131;:::i;:::-;12306:139;;12204:248;;;:::o;12458:419::-;;12662:2;12651:9;12647:18;12639:26;;12711:9;12705:4;12701:20;12697:1;12686:9;12682:17;12675:47;12739:131;12865:4;12739:131;:::i;:::-;12731:139;;12629:248;;;:::o;12883:419::-;;13087:2;13076:9;13072:18;13064:26;;13136:9;13130:4;13126:20;13122:1;13111:9;13107:17;13100:47;13164:131;13290:4;13164:131;:::i;:::-;13156:139;;13054:248;;;:::o;13308:222::-;;13439:2;13428:9;13424:18;13416:26;;13452:71;13520:1;13509:9;13505:17;13496:6;13452:71;:::i;:::-;13406:124;;;;:::o;13536:214::-;;13663:2;13652:9;13648:18;13640:26;;13676:67;13740:1;13729:9;13725:17;13716:6;13676:67;:::i;:::-;13630:120;;;;:::o;13756:99::-;;13842:5;13836:12;13826:22;;13815:40;;;:::o;13861:169::-;;13979:6;13974:3;13967:19;14019:4;14014:3;14010:14;13995:29;;13957:73;;;;:::o;14036:305::-;;14095:20;14113:1;14095:20;:::i;:::-;14090:25;;14129:20;14147:1;14129:20;:::i;:::-;14124:25;;14283:1;14215:66;14211:74;14208:1;14205:81;14202:2;;;14289:18;;:::i;:::-;14202:2;14333:1;14330;14326:9;14319:16;;14080:261;;;;:::o;14347:185::-;;14404:20;14422:1;14404:20;:::i;:::-;14399:25;;14438:20;14456:1;14438:20;:::i;:::-;14433:25;;14477:1;14467:2;;14482:18;;:::i;:::-;14467:2;14524:1;14521;14517:9;14512:14;;14389:143;;;;:::o;14538:348::-;;14601:20;14619:1;14601:20;:::i;:::-;14596:25;;14635:20;14653:1;14635:20;:::i;:::-;14630:25;;14823:1;14755:66;14751:74;14748:1;14745:81;14740:1;14733:9;14726:17;14722:105;14719:2;;;14830:18;;:::i;:::-;14719:2;14878:1;14875;14871:9;14860:20;;14586:300;;;;:::o;14892:96::-;;14958:24;14976:5;14958:24;:::i;:::-;14947:35;;14937:51;;;:::o;14994:90::-;;15071:5;15064:13;15057:21;15046:32;;15036:48;;;:::o;15090:126::-;;15167:42;15160:5;15156:54;15145:65;;15135:81;;;:::o;15222:77::-;;15288:5;15277:16;;15267:32;;;:::o;15305:86::-;;15380:4;15373:5;15369:16;15358:27;;15348:43;;;:::o;15397:307::-;15465:1;15475:113;15489:6;15486:1;15483:13;15475:113;;;15574:1;15569:3;15565:11;15559:18;15555:1;15550:3;15546:11;15539:39;15511:2;15508:1;15504:10;15499:15;;15475:113;;;15606:6;15603:1;15600:13;15597:2;;;15686:1;15677:6;15672:3;15668:16;15661:27;15597:2;15446:258;;;;:::o;15710:320::-;;15791:1;15785:4;15781:12;15771:22;;15838:1;15832:4;15828:12;15859:18;15849:2;;15915:4;15907:6;15903:17;15893:27;;15849:2;15977;15969:6;15966:14;15946:18;15943:38;15940:2;;;15996:18;;:::i;:::-;15940:2;15761:269;;;;:::o;16036:180::-;16084:77;16081:1;16074:88;16181:4;16178:1;16171:15;16205:4;16202:1;16195:15;16222:180;16270:77;16267:1;16260:88;16367:4;16364:1;16357:15;16391:4;16388:1;16381:15;16408:180;16456:77;16453:1;16446:88;16553:4;16550:1;16543:15;16577:4;16574:1;16567:15;16594:102;;16686:2;16682:7;16677:2;16670:5;16666:14;16662:28;16652:38;;16642:54;;;:::o;16702:122::-;16775:24;16793:5;16775:24;:::i;:::-;16768:5;16765:35;16755:2;;16814:1;16811;16804:12;16755:2;16745:79;:::o;16830:122::-;16903:24;16921:5;16903:24;:::i;:::-;16896:5;16893:35;16883:2;;16942:1;16939;16932:12;16883:2;16873:79;:::o
Swarm Source
ipfs://ac82aebdbd22dfb9a867fdeeb4711af591c6d6a159a5f5663539f6bca01af46c
[ 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.