Token Duino Coin on Polygon
Overview ERC-20
Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
5,769,906.14022 maticDUCO
Holders:
1,097 addresses
Transfers:
-
Contract:
Decimals:
18
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.7.6+commit.7338295f
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; pragma abicoder v2; import "./ERC20.sol"; import "./ERC20Detailed.sol"; /** * @title SimpleToken * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `ERC20` functions. */ contract Token is ERC20Detailed { /** * @dev Constructor that gives developper admin rights */ constructor () ERC20Detailed("Duino Coin on Polygon", "maticDUCO", 18) { AdminAddress = msg.sender; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; pragma abicoder v2; import "./IERC20.sol"; import "./SafeMath.sol"; /** * @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 {ERC20Mintable}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of 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 IERC20 { using SafeMath for uint256; mapping (address => uint256) private _balances; // user balances mapping (address => mapping (address => uint256)) private _allowances; // spending approvals mapping (address => uint256) private pendingbalances; // pending deposits mapping (address => mapping (string => uint256)) private pendingwds; // pending withdrawals/unwraps mapping (address => bool) private _wrapperAccesses; // wrapper accesses address AdminAddress; // default admin address applyAdminAddress; // address that applies to be admin address oldAdmin; // old admin in case of admin change uint256 private _totalSupply; struct addressUsername { address _address; string username; uint256 pendingBalance; } mapping (bytes => bool) public userExists; mapping (bytes => uint256) public positionInList; addressUsername[] public usersList; function usersListLength() public view returns (uint256) { return usersList.length; } function getUserList() public view returns (addressUsername[] memory) { return usersList; } function addUserToList(address _address, string memory username) internal { addressUsername memory userdata; userdata._address = _address; userdata.username = username; bytes memory _encodePacked = abi.encodePacked(_address, username); if (!(userExists[_encodePacked])) { usersList.push(userdata); userExists[_encodePacked] = true; positionInList[_encodePacked] = (usersList.length-1); } } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public override view returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 value) public override returns (bool) { _approve(msg.sender, spender, value); 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}; * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `value`. * - the caller must have allowance for `sender`'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(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 returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].add(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 returns (bool) { _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue)); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is 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: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _balances[sender] = _balances[sender].sub(amount); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, 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 * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(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 value) internal { require(account != address(0), "ERC20: burn from the zero address"); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); emit Transfer(account, address(0), value); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens. * * This is 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 value) internal { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = value; emit Approval(owner, spender, value); } /** * @dev Destoys `amount` tokens from `account`.`amount` is then deducted * from the caller's allowance. * * See {_burn} and {_approve}. */ function _burnFrom(address account, uint256 amount) internal { _burn(account, amount); _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount)); } function pendingWithdrawals(address _address, string memory _ducousername) public view returns (uint256) { return pendingwds[_address][_ducousername]; } function wrap(address _tronaddress, uint256 _amount) public returns (bool) { require(_wrapperAccesses[msg.sender]); _balances[_tronaddress] = _balances[_tronaddress].add(_amount); _totalSupply = _totalSupply.add(_amount); emit Transfer(address(0), _tronaddress, _amount); emit Wrap(_tronaddress, _amount); return true; } function initiateWithdraw(string memory _ducousername, uint256 _amount) public returns (bool) { require(_balances[msg.sender] >= _amount); addUserToList(msg.sender, _ducousername); _balances[msg.sender] = _balances[msg.sender].sub(_amount); pendingwds[msg.sender][_ducousername] = pendingwds[msg.sender][_ducousername].add(_amount); usersList[positionInList[abi.encodePacked(msg.sender, _ducousername)]].pendingBalance += _amount; emit UnwrapInitiated(msg.sender, _amount, _ducousername); return true; } function confirmWithdraw(string memory _ducousername, address _address, uint256 _amount) public returns (bool) { require(_wrapperAccesses[msg.sender] && (_amount <= pendingwds[_address][_ducousername])); pendingwds[_address][_ducousername] = pendingwds[_address][_ducousername].sub(_amount); _totalSupply = _totalSupply.sub(_amount); usersList[positionInList[abi.encodePacked(_address, _ducousername)]].pendingBalance -= _amount; emit Transfer(_address, address(0), _amount); emit UnwrapConfirmed(_address, _amount, _ducousername); return true; } function cancelWithdrawals(address _address, string memory _ducousername) public returns (bool) { require((_address == msg.sender) || _wrapperAccesses[msg.sender]); _balances[_address] = _balances[_address].add(pendingwds[_address][_ducousername]); usersList[positionInList[abi.encodePacked(_address, _ducousername)]].pendingBalance = 0; pendingwds[_address][_ducousername] = 0; return true; } function addWrapperAccess(address _address) public returns (bool) { require(msg.sender == AdminAddress); _wrapperAccesses[_address] = true; emit allowWrapper(_address); return true; } function revokeWrapperAccess(address _address) public returns (bool) { require (msg.sender == AdminAddress); _wrapperAccesses[_address] = false; emit RevokeWrapper(_address); return true; } function ChangeAdmin(address _address) public returns (bool) { require((msg.sender == AdminAddress) && (!(_address == AdminAddress))); applyAdminAddress = _address; emit changeAdminRequest(AdminAddress, _address); return true; } function confirmChangeAdmin() public returns (bool) { require(msg.sender == applyAdminAddress); oldAdmin = AdminAddress; AdminAddress = applyAdminAddress; applyAdminAddress = address(0); emit changeAdminConfirmed(oldAdmin, msg.sender); return true; } function cancelChangeAdmin() public returns (bool) { require((msg.sender == AdminAddress) || (msg.sender == applyAdminAddress)); applyAdminAddress = address(0); return true; } function currentAdmin() public view returns (address) { return AdminAddress; } function checkWrapperStatus(address _address) public view returns (bool) { return _wrapperAccesses[_address]; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; pragma abicoder v2; import "./ERC20.sol"; /** * @dev Optional functions from the ERC20 standard. */ contract ERC20Detailed is ERC20 { string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of * these values are immutable: they can only be set once during * construction. */ constructor (string memory __name, string memory __symbol, uint8 __decimals) { _name = __name; _symbol = __symbol; _decimals = __decimals; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view 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. * * 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 returns (uint8) { return _decimals; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount) external returns (bool); /** * @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); event Wrap(address indexed _address, uint256 _amount); // wrap event event UnwrapInitiated(address indexed _address, uint256 _amount, string indexed _ducoUsername); // initiate unwrap event event UnwrapConfirmed(address indexed _address, uint256 _amount, string indexed _ducoUsername); // unwrap confirmed event allowWrapper(address indexed _address); event RevokeWrapper(address indexed _address); event changeAdminRequest(address indexed _currentAdmin, address indexed _newAdmin); event changeAdminConfirmed(address indexed _oldAdmin, address indexed _newAdmin); }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.7.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "SafeMath: subtraction overflow"); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, "SafeMath: division by zero"); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0, "SafeMath: modulo by zero"); return a % b; } }
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":"_address","type":"address"}],"name":"RevokeWrapper","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":true,"internalType":"string","name":"_ducoUsername","type":"string"}],"name":"UnwrapConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":true,"internalType":"string","name":"_ducoUsername","type":"string"}],"name":"UnwrapInitiated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Wrap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_address","type":"address"}],"name":"allowWrapper","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeAdminConfirmed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_currentAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"changeAdminRequest","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"ChangeAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addWrapperAccess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"value","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":"cancelChangeAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"string","name":"_ducousername","type":"string"}],"name":"cancelWithdrawals","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkWrapperStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"confirmChangeAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ducousername","type":"string"},{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"confirmWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getUserList","outputs":[{"components":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"pendingBalance","type":"uint256"}],"internalType":"struct ERC20.addressUsername[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_ducousername","type":"string"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"initiateWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"string","name":"_ducousername","type":"string"}],"name":"pendingWithdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"positionInList","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"revokeWrapperAccess","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"userExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"usersList","outputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"pendingBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"usersListLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tronaddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"wrap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280601581526020017f4475696e6f20436f696e206f6e20506f6c79676f6e00000000000000000000008152506040518060400160405280600981526020017f6d617469634455434f0000000000000000000000000000000000000000000000815250601282600c90805190602001906200009892919062000117565b5081600d9080519060200190620000b192919062000117565b5080600e60006101000a81548160ff021916908360ff16021790555050505033600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001cd565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200014f57600085556200019b565b82601f106200016a57805160ff19168380011785556200019b565b828001600101855582156200019b579182015b828111156200019a5782518255916020019190600101906200017d565b5b509050620001aa9190620001ae565b5090565b5b80821115620001c9576000816000905550600101620001af565b5090565b6131be80620001dd6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063832daeb8116100f9578063be15955e11610097578063daf705ef11610071578063daf705ef146105cd578063dd62ed3e146105eb578063eb3c17a91461061b578063fb48270c1461064b576101c4565b8063be15955e1461053d578063bf376c7a1461056d578063d3ee83671461059d576101c4565b8063a457c2d7116100d3578063a457c2d7146104a1578063a9059cbb146104d1578063b852204314610501578063ba4bcd721461051f576101c4565b8063832daeb814610423578063927cc0641461045357806395d89b4114610483576101c4565b80634a4095d81161016657806370291c2b1161014057806370291c2b1461036357806370a082311461039357806379e0965a146103c357806380f1e25c146103f3576101c4565b80634a4095d8146102d15780634ad69e9c14610301578063502aa3b514610331576101c4565b80631d567ac6116101a25780631d567ac61461023557806323b872dd14610253578063313ce5671461028357806339509351146102a1576101c4565b806306fdde03146101c9578063095ea7b3146101e757806318160ddd14610217575b600080fd5b6101d1610669565b6040516101de9190612e6b565b60405180910390f35b61020160048036038101906101fc9190612829565b61070b565b60405161020e9190612e50565b60405180910390f35b61021f610722565b60405161022c9190612f0d565b60405180910390f35b61023d61072c565b60405161024a9190612f0d565b60405180910390f35b61026d60048036038101906102689190612786565b610739565b60405161027a9190612e50565b60405180910390f35b61028b6107ea565b6040516102989190612f28565b60405180910390f35b6102bb60048036038101906102b69190612829565b610801565b6040516102c89190612e50565b60405180910390f35b6102eb60048036038101906102e69190612721565b6108a6565b6040516102f89190612e50565b60405180910390f35b61031b600480360381019061031691906127d5565b6109a6565b6040516103289190612f0d565b60405180910390f35b61034b60048036038101906103469190612961565b610a0c565b60405161035a93929190612df0565b60405180910390f35b61037d600480360381019061037891906127d5565b610afe565b60405161038a9190612e50565b60405180910390f35b6103ad60048036038101906103a89190612721565b610d48565b6040516103ba9190612f0d565b60405180910390f35b6103dd60048036038101906103d89190612865565b610d90565b6040516103ea9190612f0d565b60405180910390f35b61040d60048036038101906104089190612865565b610dbe565b60405161041a9190612e50565b60405180910390f35b61043d60048036038101906104389190612721565b610df4565b60405161044a9190612e50565b60405180910390f35b61046d60048036038101906104689190612721565b610e4a565b60405161047a9190612e50565b60405180910390f35b61048b610fc6565b6040516104989190612e6b565b60405180910390f35b6104bb60048036038101906104b69190612829565b611068565b6040516104c89190612e50565b60405180910390f35b6104eb60048036038101906104e69190612829565b61110d565b6040516104f89190612e50565b60405180910390f35b610509611124565b6040516105169190612e2e565b60405180910390f35b610527611285565b6040516105349190612dd5565b60405180910390f35b610557600480360381019061055291906128a6565b6112af565b6040516105649190612e50565b60405180910390f35b61058760048036038101906105829190612829565b611596565b6040516105949190612e50565b60405180910390f35b6105b760048036038101906105b29190612721565b61175a565b6040516105c49190612e50565b60405180910390f35b6105d561185a565b6040516105e29190612e50565b60405180910390f35b6106056004803603810190610600919061274a565b611957565b6040516106129190612f0d565b60405180910390f35b6106356004803603810190610630919061290d565b6119de565b6040516106429190612e50565b60405180910390f35b610653611c6e565b6040516106609190612e50565b60405180910390f35b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107015780601f106106d657610100808354040283529160200191610701565b820191906000526020600020905b8154815290600101906020018083116106e457829003601f168201915b5050505050905090565b6000610718338484611e55565b6001905092915050565b6000600854905090565b6000600b80549050905090565b6000610746848484612020565b6107df84336107da85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b611e55565b600190509392505050565b6000600e60009054906101000a900460ff16905090565b600061089c338461089785600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231990919063ffffffff16565b611e55565b6001905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461090257600080fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f5f806f3ca519fc72d08c4011e42740ef881cb0e7d1eafc2d815990cf61c788d660405160405180910390a260019050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040516109f59190612dbe565b908152602001604051809103902054905092915050565b600b8181548110610a1c57600080fd5b90600052602060002090600302016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610aee5780601f10610ac357610100808354040283529160200191610aee565b820191906000526020600020905b815481529060010190602001808311610ad157829003601f168201915b5050505050908060020154905083565b60003373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610b835750600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610b8c57600080fd5b610c38600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083604051610bdc9190612dbe565b9081526020016040518091039020546000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600b600a8585604051602001610c93929190612d7f565b604051602081830303815290604052604051610caf9190612da7565b90815260200160405180910390205481548110610cc857fe5b9060005260206000209060030201600201819055506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083604051610d2c9190612dbe565b9081526020016040518091039020819055506001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600a818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b6009818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148015610ef75750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610f0057600080fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f970463257929c46e52bf7dd3a563ed16c0f5e6a3479abc8e52ba6553d1f0996560405160405180910390a360019050919050565b6060600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561105e5780601f106110335761010080835404028352916020019161105e565b820191906000526020600020905b81548152906001019060200180831161104157829003601f168201915b5050505050905090565b600061110333846110fe85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b611e55565b6001905092915050565b600061111a338484612020565b6001905092915050565b6060600b805480602002602001604051908101604052809291908181526020016000905b8282101561127c57838290600052602060002090600302016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561125a5780601f1061122f5761010080835404028352916020019161125a565b820191906000526020600020905b81548152906001019060200180831161123d57829003601f168201915b5050505050815260200160028201548152505081526020019060010190611148565b50505050905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156113655750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040516113529190612dbe565b9081526020016040518091039020548211155b61136e57600080fd5b6113dc82600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040516113bf9190612dbe565b90815260200160405180910390205461229090919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020856040516114299190612dbe565b9081526020016040518091039020819055506114508260085461229090919063ffffffff16565b60088190555081600b600a858760405160200161146e929190612d7f565b60405160208183030381529060405260405161148a9190612da7565b908152602001604051809103902054815481106114a357fe5b906000526020600020906003020160020160008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161151f9190612f0d565b60405180910390a3836040516115359190612dbe565b60405180910390208373ffffffffffffffffffffffffffffffffffffffff167f89b150a7d8dd46b598462ffa78fbc665025b695cc7456f641b0ae689639fb7d4846040516115839190612f0d565b60405180910390a3600190509392505050565b6000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115ee57600080fd5b61163f826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116968260085461231990919063ffffffff16565b6008819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116fa9190612f0d565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff167fb61d00fdfee32467c7d81db64c811ae60c104c346debf36a14afe84b8fce59e5836040516117489190612f0d565b60405180910390a26001905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117b657600080fd5b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fdf1d9a75136006638a78c18b68d45e85ebea79c2f242f92d9e411f227159a05960405160405180910390a260019050919050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806119055750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61190e57600080fd5b6000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611a2b57600080fd5b611a3533846123a1565b611a86826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b3682600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085604051611b199190612dbe565b90815260200160405180910390205461231990919063ffffffff16565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002084604051611b839190612dbe565b90815260200160405180910390208190555081600b600a3386604051602001611bad929190612d57565b604051602081830303815290604052604051611bc99190612da7565b90815260200160405180910390205481548110611be257fe5b90600052602060002090600302016002016000828254019250508190555082604051611c0e9190612dbe565b60405180910390203373ffffffffffffffffffffffffffffffffffffffff167f832a3e1124acbd787fae1148d3336f1abd89d5653a4b38e85a5edd9c3d4c783484604051611c5c9190612f0d565b60405180910390a36001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cca57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb11ca9633c9e7170e67a7fe48d31c68c1141e6c72de58a385fe9fc199b8abefb60405160405180910390a36001905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc90612eed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2c90612ead565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120139190612f0d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790612ecd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790612e8d565b60405180910390fd5b612151816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229090919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506121e4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461231990919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122839190612f0d565b60405180910390a3505050565b600082821115612308576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080828401905083811015612397576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6123a9612545565b82816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818160200181905250600083836040516020016123ff929190612d7f565b60405160208183030381529060405290506009816040516124209190612da7565b908152602001604051809103902060009054906101000a900460ff1661253f57600b82908060018154018082558091505060019003906000526020600020906003020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010190805190602001906124cf92919061257c565b5060408201518160020155505060016009826040516124ee9190612da7565b908152602001604051809103902060006101000a81548160ff0219169083151502179055506001600b8054905003600a8260405161252c9190612da7565b9081526020016040518091039020819055505b50505050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160608152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826125b257600085556125f9565b82601f106125cb57805160ff19168380011785556125f9565b828001600101855582156125f9579182015b828111156125f85782518255916020019190600101906125dd565b5b509050612606919061260a565b5090565b5b8082111561262357600081600090555060010161260b565b5090565b600061263a61263584612f74565b612f43565b90508281526020810184848401111561265257600080fd5b61265d8482856130c2565b509392505050565b600061267861267384612fa4565b612f43565b90508281526020810184848401111561269057600080fd5b61269b8482856130c2565b509392505050565b6000813590506126b28161315a565b92915050565b600082601f8301126126c957600080fd5b81356126d9848260208601612627565b91505092915050565b600082601f8301126126f357600080fd5b8135612703848260208601612665565b91505092915050565b60008135905061271b81613171565b92915050565b60006020828403121561273357600080fd5b6000612741848285016126a3565b91505092915050565b6000806040838503121561275d57600080fd5b600061276b858286016126a3565b925050602061277c858286016126a3565b9150509250929050565b60008060006060848603121561279b57600080fd5b60006127a9868287016126a3565b93505060206127ba868287016126a3565b92505060406127cb8682870161270c565b9150509250925092565b600080604083850312156127e857600080fd5b60006127f6858286016126a3565b925050602083013567ffffffffffffffff81111561281357600080fd5b61281f858286016126e2565b9150509250929050565b6000806040838503121561283c57600080fd5b600061284a858286016126a3565b925050602061285b8582860161270c565b9150509250929050565b60006020828403121561287757600080fd5b600082013567ffffffffffffffff81111561289157600080fd5b61289d848285016126b8565b91505092915050565b6000806000606084860312156128bb57600080fd5b600084013567ffffffffffffffff8111156128d557600080fd5b6128e1868287016126e2565b93505060206128f2868287016126a3565b92505060406129038682870161270c565b9150509250925092565b6000806040838503121561292057600080fd5b600083013567ffffffffffffffff81111561293a57600080fd5b612946858286016126e2565b92505060206129578582860161270c565b9150509250929050565b60006020828403121561297357600080fd5b60006129818482850161270c565b91505092915050565b60006129968383612cda565b905092915050565b6129af6129aa8261306d565b613116565b82525050565b6129be8161305b565b82525050565b6129cd8161305b565b82525050565b6129e46129df8261305b565b613104565b82525050565b60006129f582612fe4565b6129ff8185613012565b935083602082028501612a1185612fd4565b8060005b85811015612a4d5784840389528151612a2e858261298a565b9450612a3983613005565b925060208a01995050600181019050612a15565b50829750879550505050505092915050565b612a688161307f565b82525050565b6000612a7982612fef565b612a838185613023565b9350612a938185602086016130d1565b80840191505092915050565b6000612aaa82612ffa565b612ab4818561302e565b9350612ac48185602086016130d1565b612acd8161313c565b840191505092915050565b6000612ae382612ffa565b612aed818561303f565b9350612afd8185602086016130d1565b612b068161313c565b840191505092915050565b6000612b1c82612ffa565b612b268185613050565b9350612b368185602086016130d1565b80840191505092915050565b6000612b4f60238361303f565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612bb560228361303f565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c1b60258361303f565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612c8160248361303f565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000606083016000830151612cf260008601826129b5565b5060208301518482036020860152612d0a8282612a9f565b9150506040830151612d1f6040860182612d2a565b508091505092915050565b612d33816130ab565b82525050565b612d42816130ab565b82525050565b612d51816130b5565b82525050565b6000612d63828561299e565b601482019150612d738284612b11565b91508190509392505050565b6000612d8b82856129d3565b601482019150612d9b8284612b11565b91508190509392505050565b6000612db38284612a6e565b915081905092915050565b6000612dca8284612b11565b915081905092915050565b6000602082019050612dea60008301846129c4565b92915050565b6000606082019050612e0560008301866129c4565b8181036020830152612e178185612ad8565b9050612e266040830184612d39565b949350505050565b60006020820190508181036000830152612e4881846129ea565b905092915050565b6000602082019050612e656000830184612a5f565b92915050565b60006020820190508181036000830152612e858184612ad8565b905092915050565b60006020820190508181036000830152612ea681612b42565b9050919050565b60006020820190508181036000830152612ec681612ba8565b9050919050565b60006020820190508181036000830152612ee681612c0e565b9050919050565b60006020820190508181036000830152612f0681612c74565b9050919050565b6000602082019050612f226000830184612d39565b92915050565b6000602082019050612f3d6000830184612d48565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612f6a57612f6961313a565b5b8060405250919050565b600067ffffffffffffffff821115612f8f57612f8e61313a565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff821115612fbf57612fbe61313a565b5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006130668261308b565b9050919050565b60006130788261308b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b838110156130ef5780820151818401526020810190506130d4565b838111156130fe576000848401525b50505050565b600061310f82613128565b9050919050565b600061312182613128565b9050919050565b60006131338261314d565b9050919050565bfe5b6000601f19601f8301169050919050565b60008160601b9050919050565b6131638161305b565b811461316e57600080fd5b50565b61317a816130ab565b811461318557600080fd5b5056fea264697066735822122037562799aa17c06674fd8e9ab8f1c7656129c96d0d9e8566f52ef46b303d9e4764736f6c63430007060033
Deployed ByteCode Sourcemap
367:223:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;706:81:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3821:154:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2846:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2187:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4432:261;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1534:81:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5088:203:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11196:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9200:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2150:34;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;10788:404;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3002:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2099:48;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2055:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12373:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11594:237;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;900:85:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5778:213:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3322:162;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2278:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12288:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10223:561;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9361:333;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11392:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12102:182;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3542:141;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9698:521;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11835:263;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;706:81:1;743:13;775:5;768:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;706:81;:::o;3821:154:0:-;3895:4;3911:36;3920:10;3932:7;3941:5;3911:8;:36::i;:::-;3964:4;3957:11;;3821:154;;;;:::o;2846:98::-;2899:7;2925:12;;2918:19;;2846:98;:::o;2187:88::-;2235:7;2255:9;:16;;;;2248:23;;2187:88;:::o;4432:261::-;4530:4;4546:36;4556:6;4564:9;4575:6;4546:9;:36::i;:::-;4592:73;4601:6;4609:10;4621:43;4657:6;4621:11;:19;4633:6;4621:19;;;;;;;;;;;;;;;:31;4641:10;4621:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;4592:8;:73::i;:::-;4682:4;4675:11;;4432:261;;;;;:::o;1534:81:1:-;1575:5;1599:9;;;;;;;;;;;1592:16;;1534:81;:::o;5088:203:0:-;5168:4;5184:79;5193:10;5205:7;5214:48;5251:10;5214:11;:23;5226:10;5214:23;;;;;;;;;;;;;;;:32;5238:7;5214:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;5184:8;:79::i;:::-;5280:4;5273:11;;5088:203;;;;:::o;11196:192::-;11256:4;11288:12;;;;;;;;;;;11274:26;;:10;:26;;;11266:35;;;;;;11334:4;11305:16;:26;11322:8;11305:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11360:8;11347:22;;;;;;;;;;;;11380:4;11373:11;;11196:192;;;:::o;9200:155::-;9296:7;9316:10;:20;9327:8;9316:20;;;;;;;;;;;;;;;9337:13;9316:35;;;;;;:::i;:::-;;;;;;;;;;;;;;9309:42;;9200:155;;;;:::o;2150:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10788:404::-;10878:4;10909:10;10897:22;;:8;:22;;;10896:56;;;;10924:16;:28;10941:10;10924:28;;;;;;;;;;;;;;;;;;;;;;;;;10896:56;10888:65;;;;;;10979:60;11003:10;:20;11014:8;11003:20;;;;;;;;;;;;;;;11024:13;11003:35;;;;;;:::i;:::-;;;;;;;;;;;;;;10979:9;:19;10989:8;10979:19;;;;;;;;;;;;;;;;:23;;:60;;;;:::i;:::-;10957:9;:19;10967:8;10957:19;;;;;;;;;;;;;;;:82;;;;11129:1;11043:9;11053:14;11085:8;11095:13;11068:41;;;;;;;;;:::i;:::-;;;;;;;;;;;;;11053:57;;;;;;:::i;:::-;;;;;;;;;;;;;;11043:68;;;;;;;;;;;;;;;;;;:83;;:87;;;;11172:1;11134:10;:20;11145:8;11134:20;;;;;;;;;;;;;;;11155:13;11134:35;;;;;;:::i;:::-;;;;;;;;;;;;;:39;;;;11184:4;11177:11;;10788:404;;;;:::o;3002:117::-;3068:7;3094:9;:18;3104:7;3094:18;;;;;;;;;;;;;;;;3087:25;;3002:117;;;:::o;2099:48::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2055:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12373:114::-;12440:4;12457:16;:26;12474:8;12457:26;;;;;;;;;;;;;;;;;;;;;;;;;12450:33;;12373:114;;;:::o;11594:237::-;11649:4;11682:12;;;;;;;;;;;11668:26;;:10;:26;;;11667:61;;;;;11714:12;;;;;;;;;;;11702:24;;:8;:24;;;11700:27;11667:61;11659:70;;;;;;11753:8;11733:17;;:28;;;;;;;;;;;;;;;;;;11803:8;11770:42;;11789:12;;;;;;;;;;;11770:42;;;;;;;;;;;;11823:4;11816:11;;11594:237;;;:::o;900:85:1:-;939:13;971:7;964:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:85;:::o;5778:213:0:-;5863:4;5879:84;5888:10;5900:7;5909:53;5946:15;5909:11;:23;5921:10;5909:23;;;;;;;;;;;;;;;:32;5933:7;5909:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;5879:8;:84::i;:::-;5980:4;5973:11;;5778:213;;;;:::o;3322:162::-;3400:4;3416:40;3426:10;3438:9;3449:6;3416:9;:40::i;:::-;3473:4;3466:11;;3322:162;;;;:::o;2278:94::-;2322:24;2359:9;2352:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2278:94;:::o;12288:81::-;12333:7;12353:12;;;;;;;;;;;12346:19;;12288:81;:::o;10223:561::-;10328:4;10346:16;:28;10363:10;10346:28;;;;;;;;;;;;;;;;;;;;;;;;;:80;;;;;10390:10;:20;10401:8;10390:20;;;;;;;;;;;;;;;10411:13;10390:35;;;;;;:::i;:::-;;;;;;;;;;;;;;10379:7;:46;;10346:80;10338:89;;;;;;10469:48;10509:7;10469:10;:20;10480:8;10469:20;;;;;;;;;;;;;;;10490:13;10469:35;;;;;;:::i;:::-;;;;;;;;;;;;;;:39;;:48;;;;:::i;:::-;10431:10;:20;10442:8;10431:20;;;;;;;;;;;;;;;10452:13;10431:35;;;;;;:::i;:::-;;;;;;;;;;;;;:86;;;;10536:25;10553:7;10536:12;;:16;;:25;;;;:::i;:::-;10521:12;:40;;;;10652:7;10565:9;10575:14;10607:8;10617:13;10590:41;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10575:57;;;;;;:::i;:::-;;;;;;;;;;;;;;10565:68;;;;;;;;;;;;;;;;;;:83;;;:94;;;;;;;;;;;10695:1;10668:39;;10677:8;10668:39;;;10699:7;10668:39;;;;;;:::i;:::-;;;;;;;;10751:13;10716:49;;;;;;:::i;:::-;;;;;;;;10732:8;10716:49;;;10742:7;10716:49;;;;;;:::i;:::-;;;;;;;;10776:4;10769:11;;10223:561;;;;;:::o;9361:333::-;9430:4;9448:16;:28;9465:10;9448:28;;;;;;;;;;;;;;;;;;;;;;;;;9440:37;;;;;;9507:36;9535:7;9507:9;:23;9517:12;9507:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;9481:9;:23;9491:12;9481:23;;;;;;;;;;;;;;;:62;;;;9562:25;9579:7;9562:12;;:16;;:25;;;;:::i;:::-;9547:12;:40;;;;9617:12;9596:43;;9613:1;9596:43;;;9631:7;9596:43;;;;;;:::i;:::-;;;;;;;;9653:12;9648:27;;;9667:7;9648:27;;;;;;:::i;:::-;;;;;;;;9686:4;9679:11;;9361:333;;;;:::o;11392:198::-;11455:4;11488:12;;;;;;;;;;;11474:26;;:10;:26;;;11465:36;;;;;;11534:5;11505:16;:26;11522:8;11505:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11562:8;11548:23;;;;;;;;;;;;11582:4;11575:11;;11392:198;;;:::o;12102:182::-;12147:4;12180:12;;;;;;;;;;;12166:26;;:10;:26;;;12165:65;;;;12212:17;;;;;;;;;;;12198:31;;:10;:31;;;12165:65;12157:74;;;;;;12263:1;12235:17;;:30;;;;;;;;;;;;;;;;;;12276:4;12269:11;;12102:182;:::o;3542:141::-;3623:7;3649:11;:18;3661:5;3649:18;;;;;;;;;;;;;;;:27;3668:7;3649:27;;;;;;;;;;;;;;;;3642:34;;3542:141;;;;:::o;9698:521::-;9786:4;9829:7;9804:9;:21;9814:10;9804:21;;;;;;;;;;;;;;;;:32;;9796:41;;;;;;9841:40;9855:10;9867:13;9841;:40::i;:::-;9909:34;9935:7;9909:9;:21;9919:10;9909:21;;;;;;;;;;;;;;;;:25;;:34;;;;:::i;:::-;9885:9;:21;9895:10;9885:21;;;;;;;;;;;;;;;:58;;;;9987:50;10029:7;9987:10;:22;9998:10;9987:22;;;;;;;;;;;;;;;10010:13;9987:37;;;;;;:::i;:::-;;;;;;;;;;;;;;:41;;:50;;;;:::i;:::-;9947:10;:22;9958:10;9947:22;;;;;;;;;;;;;;;9970:13;9947:37;;;;;;:::i;:::-;;;;;;;;;;;;;:90;;;;10133:7;10044:9;10054:14;10086:10;10098:13;10069:43;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10054:59;;;;;;:::i;:::-;;;;;;;;;;;;;;10044:70;;;;;;;;;;;;;;;;;;:85;;;:96;;;;;;;;;;;10186:13;10149:51;;;;;;:::i;:::-;;;;;;;;10165:10;10149:51;;;10177:7;10149:51;;;;;;:::i;:::-;;;;;;;;10211:4;10204:11;;9698:521;;;;:::o;11835:263::-;11881:4;11913:17;;;;;;;;;;;11899:31;;:10;:31;;;11891:40;;;;;;11946:12;;;;;;;;;;;11935:8;;:23;;;;;;;;;;;;;;;;;;11977:17;;;;;;;;;;;11962:12;;:32;;;;;;;;;;;;;;;;;;12026:1;11998:17;;:30;;;;;;;;;;;;;;;;;;12068:10;12037:42;;12058:8;;;;;;;;;;;12037:42;;;;;;;;;;;;12090:4;12083:11;;11835:263;:::o;8504:329::-;8613:1;8596:19;;:5;:19;;;;8588:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8693:1;8674:21;;:7;:21;;;;8666:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8775:5;8745:11;:18;8757:5;8745:18;;;;;;;;;;;;;;;:27;8764:7;8745:27;;;;;;;;;;;;;;;:35;;;;8811:7;8795:31;;8804:5;8795:31;;;8820:5;8795:31;;;;;;:::i;:::-;;;;;;;;8504:329;;;:::o;6465:422::-;6580:1;6562:20;;:6;:20;;;;6554:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6663:1;6642:23;;:9;:23;;;;6634:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6736:29;6758:6;6736:9;:17;6746:6;6736:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;6716:9;:17;6726:6;6716:17;;;;;;;;;;;;;;;:49;;;;6798:32;6823:6;6798:9;:20;6808:9;6798:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6775:9;:20;6785:9;6775:20;;;;;;;;;;;;;;;:55;;;;6862:9;6845:35;;6854:6;6845:35;;;6873:6;6845:35;;;;;;:::i;:::-;;;;;;;;6465:422;;;:::o;1313:179:3:-;1371:7;1403:1;1398;:6;;1390:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1449:9;1465:1;1461;:5;1449:17;;1484:1;1477:8;;;1313:179;;;;:::o;873:176::-;931:7;950:9;966:1;962;:5;950:17;;990:1;985;:6;;977:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:1;1034:8;;;873:176;;;;:::o;2375:411:0:-;2453:31;;:::i;:::-;2508:8;2488;:17;;:28;;;;;;;;;;;2540:8;2520;:17;;:28;;;;2552:26;2598:8;2608;2581:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2552:65;;2627:10;2638:13;2627:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2621:162;;2660:9;2675:8;2660:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2717:4;2689:10;2700:13;2689:25;;;;;;:::i;:::-;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;2776:1;2759:9;:16;;;;:18;2726:14;2741:13;2726:29;;;;;;:::i;:::-;;;;;;;;;;;;;:52;;;;2621:162;2375:411;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:342:5:-;;109:64;124:48;165:6;124:48;:::i;:::-;109:64;:::i;:::-;100:73;;196:6;189:5;182:21;234:4;227:5;223:16;272:3;263:6;258:3;254:16;251:25;248:2;;;289:1;286;279:12;248:2;302:41;336:6;331:3;326;302:41;:::i;:::-;90:259;;;;;;:::o;355:344::-;;458:65;473:49;515:6;473:49;:::i;:::-;458:65;:::i;:::-;449:74;;546:6;539:5;532:21;584:4;577:5;573:16;622:3;613:6;608:3;604:16;601:25;598:2;;;639:1;636;629:12;598:2;652:41;686:6;681:3;676;652:41;:::i;:::-;439:260;;;;;;:::o;705:139::-;;789:6;776:20;767:29;;805:33;832:5;805:33;:::i;:::-;757:87;;;;:::o;863:271::-;;967:3;960:4;952:6;948:17;944:27;934:2;;985:1;982;975:12;934:2;1025:6;1012:20;1050:78;1124:3;1116:6;1109:4;1101:6;1097:17;1050:78;:::i;:::-;1041:87;;924:210;;;;;:::o;1154:273::-;;1259:3;1252:4;1244:6;1240:17;1236:27;1226:2;;1277:1;1274;1267:12;1226:2;1317:6;1304:20;1342:79;1417:3;1409:6;1402:4;1394:6;1390:17;1342:79;:::i;:::-;1333:88;;1216:211;;;;;:::o;1433:139::-;;1517:6;1504:20;1495:29;;1533:33;1560:5;1533:33;:::i;:::-;1485:87;;;;:::o;1578:262::-;;1686:2;1674:9;1665:7;1661:23;1657:32;1654:2;;;1702:1;1699;1692:12;1654:2;1745:1;1770:53;1815:7;1806:6;1795:9;1791:22;1770:53;:::i;:::-;1760:63;;1716:117;1644:196;;;;:::o;1846:407::-;;;1971:2;1959:9;1950:7;1946:23;1942:32;1939:2;;;1987:1;1984;1977:12;1939:2;2030:1;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;2001:117;2157:2;2183:53;2228:7;2219:6;2208:9;2204:22;2183:53;:::i;:::-;2173:63;;2128:118;1929:324;;;;;:::o;2259:552::-;;;;2401:2;2389:9;2380:7;2376:23;2372:32;2369:2;;;2417:1;2414;2407:12;2369:2;2460:1;2485:53;2530:7;2521:6;2510:9;2506:22;2485:53;:::i;:::-;2475:63;;2431:117;2587:2;2613:53;2658:7;2649:6;2638:9;2634:22;2613:53;:::i;:::-;2603:63;;2558:118;2715:2;2741:53;2786:7;2777:6;2766:9;2762:22;2741:53;:::i;:::-;2731:63;;2686:118;2359:452;;;;;:::o;2817:520::-;;;2952:2;2940:9;2931:7;2927:23;2923:32;2920:2;;;2968:1;2965;2958:12;2920:2;3011:1;3036:53;3081:7;3072:6;3061:9;3057:22;3036:53;:::i;:::-;3026:63;;2982:117;3166:2;3155:9;3151:18;3138:32;3197:18;3189:6;3186:30;3183:2;;;3229:1;3226;3219:12;3183:2;3257:63;3312:7;3303:6;3292:9;3288:22;3257:63;:::i;:::-;3247:73;;3109:221;2910:427;;;;;:::o;3343:407::-;;;3468:2;3456:9;3447:7;3443:23;3439:32;3436:2;;;3484:1;3481;3474:12;3436:2;3527:1;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3498:117;3654:2;3680:53;3725:7;3716:6;3705:9;3701:22;3680:53;:::i;:::-;3670:63;;3625:118;3426:324;;;;;:::o;3756:373::-;;3873:2;3861:9;3852:7;3848:23;3844:32;3841:2;;;3889:1;3886;3879:12;3841:2;3960:1;3949:9;3945:17;3932:31;3990:18;3982:6;3979:30;3976:2;;;4022:1;4019;4012:12;3976:2;4050:62;4104:7;4095:6;4084:9;4080:22;4050:62;:::i;:::-;4040:72;;3903:219;3831:298;;;;:::o;4135:665::-;;;;4287:2;4275:9;4266:7;4262:23;4258:32;4255:2;;;4303:1;4300;4293:12;4255:2;4374:1;4363:9;4359:17;4346:31;4404:18;4396:6;4393:30;4390:2;;;4436:1;4433;4426:12;4390:2;4464:63;4519:7;4510:6;4499:9;4495:22;4464:63;:::i;:::-;4454:73;;4317:220;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4245:555;;;;;:::o;4806:520::-;;;4941:2;4929:9;4920:7;4916:23;4912:32;4909:2;;;4957:1;4954;4947:12;4909:2;5028:1;5017:9;5013:17;5000:31;5058:18;5050:6;5047:30;5044:2;;;5090:1;5087;5080:12;5044:2;5118:63;5173:7;5164:6;5153:9;5149:22;5118:63;:::i;:::-;5108:73;;4971:220;5230:2;5256:53;5301:7;5292:6;5281:9;5277:22;5256:53;:::i;:::-;5246:63;;5201:118;4899:427;;;;;:::o;5332:262::-;;5440:2;5428:9;5419:7;5415:23;5411:32;5408:2;;;5456:1;5453;5446:12;5408:2;5499:1;5524:53;5569:7;5560:6;5549:9;5545:22;5524:53;:::i;:::-;5514:63;;5470:117;5398:196;;;;:::o;5600:280::-;;5766:108;5870:3;5862:6;5766:108;:::i;:::-;5752:122;;5742:138;;;;:::o;5886:189::-;6007:61;6035:32;6061:5;6035:32;:::i;:::-;6007:61;:::i;:::-;6002:3;5995:74;5985:90;;:::o;6081:108::-;6158:24;6176:5;6158:24;:::i;:::-;6153:3;6146:37;6136:53;;:::o;6195:118::-;6282:24;6300:5;6282:24;:::i;:::-;6277:3;6270:37;6260:53;;:::o;6319:157::-;6424:45;6444:24;6462:5;6444:24;:::i;:::-;6424:45;:::i;:::-;6419:3;6412:58;6402:74;;:::o;6554:1159::-;;6764:85;6843:5;6764:85;:::i;:::-;6865:117;6975:6;6970:3;6865:117;:::i;:::-;6858:124;;7008:3;7053:4;7045:6;7041:17;7036:3;7032:27;7083:87;7164:5;7083:87;:::i;:::-;7193:7;7224:1;7209:459;7234:6;7231:1;7228:13;7209:459;;;7305:9;7299:4;7295:20;7290:3;7283:33;7356:6;7350:13;7384:126;7505:4;7490:13;7384:126;:::i;:::-;7376:134;;7533:91;7617:6;7533:91;:::i;:::-;7523:101;;7653:4;7648:3;7644:14;7637:21;;7269:399;7256:1;7253;7249:9;7244:14;;7209:459;;;7213:14;7684:4;7677:11;;7704:3;7697:10;;6740:973;;;;;;;;;:::o;7719:109::-;7800:21;7815:5;7800:21;:::i;:::-;7795:3;7788:34;7778:50;;:::o;7834:373::-;;7966:38;7998:5;7966:38;:::i;:::-;8020:88;8101:6;8096:3;8020:88;:::i;:::-;8013:95;;8117:52;8162:6;8157:3;8150:4;8143:5;8139:16;8117:52;:::i;:::-;8194:6;8189:3;8185:16;8178:23;;7942:265;;;;;:::o;8213:344::-;;8319:39;8352:5;8319:39;:::i;:::-;8374:61;8428:6;8423:3;8374:61;:::i;:::-;8367:68;;8444:52;8489:6;8484:3;8477:4;8470:5;8466:16;8444:52;:::i;:::-;8521:29;8543:6;8521:29;:::i;:::-;8516:3;8512:39;8505:46;;8295:262;;;;;:::o;8563:364::-;;8679:39;8712:5;8679:39;:::i;:::-;8734:71;8798:6;8793:3;8734:71;:::i;:::-;8727:78;;8814:52;8859:6;8854:3;8847:4;8840:5;8836:16;8814:52;:::i;:::-;8891:29;8913:6;8891:29;:::i;:::-;8886:3;8882:39;8875:46;;8655:272;;;;;:::o;8933:377::-;;9067:39;9100:5;9067:39;:::i;:::-;9122:89;9204:6;9199:3;9122:89;:::i;:::-;9115:96;;9220:52;9265:6;9260:3;9253:4;9246:5;9242:16;9220:52;:::i;:::-;9297:6;9292:3;9288:16;9281:23;;9043:267;;;;;:::o;9316:367::-;;9479:67;9543:2;9538:3;9479:67;:::i;:::-;9472:74;;9576:34;9572:1;9567:3;9563:11;9556:55;9642:5;9637:2;9632:3;9628:12;9621:27;9674:2;9669:3;9665:12;9658:19;;9462:221;;;:::o;9689:366::-;;9852:67;9916:2;9911:3;9852:67;:::i;:::-;9845:74;;9949:34;9945:1;9940:3;9936:11;9929:55;10015:4;10010:2;10005:3;10001:12;9994:26;10046:2;10041:3;10037:12;10030:19;;9835:220;;;:::o;10061:369::-;;10224:67;10288:2;10283:3;10224:67;:::i;:::-;10217:74;;10321:34;10317:1;10312:3;10308:11;10301:55;10387:7;10382:2;10377:3;10373:12;10366:29;10421:2;10416:3;10412:12;10405:19;;10207:223;;;:::o;10436:368::-;;10599:67;10663:2;10658:3;10599:67;:::i;:::-;10592:74;;10696:34;10692:1;10687:3;10683:11;10676:55;10762:6;10757:2;10752:3;10748:12;10741:28;10795:2;10790:3;10786:12;10779:19;;10582:222;;;:::o;10878:800::-;;11035:4;11030:3;11026:14;11126:4;11119:5;11115:16;11109:23;11145:63;11202:4;11197:3;11193:14;11179:12;11145:63;:::i;:::-;11050:168;11304:4;11297:5;11293:16;11287:23;11357:3;11351:4;11347:14;11340:4;11335:3;11331:14;11324:38;11383:73;11451:4;11437:12;11383:73;:::i;:::-;11375:81;;11228:239;11559:4;11552:5;11548:16;11542:23;11578:63;11635:4;11630:3;11626:14;11612:12;11578:63;:::i;:::-;11477:174;11668:4;11661:11;;11004:674;;;;;:::o;11684:108::-;11761:24;11779:5;11761:24;:::i;:::-;11756:3;11749:37;11739:53;;:::o;11798:118::-;11885:24;11903:5;11885:24;:::i;:::-;11880:3;11873:37;11863:53;;:::o;11922:112::-;12005:22;12021:5;12005:22;:::i;:::-;12000:3;11993:35;11983:51;;:::o;12040:448::-;;12231:91;12318:3;12309:6;12231:91;:::i;:::-;12347:2;12342:3;12338:12;12331:19;;12367:95;12458:3;12449:6;12367:95;:::i;:::-;12360:102;;12479:3;12472:10;;12220:268;;;;;:::o;12494:416::-;;12669:75;12740:3;12731:6;12669:75;:::i;:::-;12769:2;12764:3;12760:12;12753:19;;12789:95;12880:3;12871:6;12789:95;:::i;:::-;12782:102;;12901:3;12894:10;;12658:252;;;;;:::o;12916:271::-;;13068:93;13157:3;13148:6;13068:93;:::i;:::-;13061:100;;13178:3;13171:10;;13050:137;;;;:::o;13193:275::-;;13347:95;13438:3;13429:6;13347:95;:::i;:::-;13340:102;;13459:3;13452:10;;13329:139;;;;:::o;13474:222::-;;13605:2;13594:9;13590:18;13582:26;;13618:71;13686:1;13675:9;13671:17;13662:6;13618:71;:::i;:::-;13572:124;;;;:::o;13702:533::-;;13909:2;13898:9;13894:18;13886:26;;13922:71;13990:1;13979:9;13975:17;13966:6;13922:71;:::i;:::-;14040:9;14034:4;14030:20;14025:2;14014:9;14010:18;14003:48;14068:78;14141:4;14132:6;14068:78;:::i;:::-;14060:86;;14156:72;14224:2;14213:9;14209:18;14200:6;14156:72;:::i;:::-;13876:359;;;;;;:::o;14241:497::-;;14484:2;14473:9;14469:18;14461:26;;14533:9;14527:4;14523:20;14519:1;14508:9;14504:17;14497:47;14561:170;14726:4;14717:6;14561:170;:::i;:::-;14553:178;;14451:287;;;;:::o;14744:210::-;;14869:2;14858:9;14854:18;14846:26;;14882:65;14944:1;14933:9;14929:17;14920:6;14882:65;:::i;:::-;14836:118;;;;:::o;14960:313::-;;15111:2;15100:9;15096:18;15088:26;;15160:9;15154:4;15150:20;15146:1;15135:9;15131:17;15124:47;15188:78;15261:4;15252:6;15188:78;:::i;:::-;15180:86;;15078:195;;;;:::o;15279:419::-;;15483:2;15472:9;15468:18;15460:26;;15532:9;15526:4;15522:20;15518:1;15507:9;15503:17;15496:47;15560:131;15686:4;15560:131;:::i;:::-;15552:139;;15450:248;;;:::o;15704:419::-;;15908:2;15897:9;15893:18;15885:26;;15957:9;15951:4;15947:20;15943:1;15932:9;15928:17;15921:47;15985:131;16111:4;15985:131;:::i;:::-;15977:139;;15875:248;;;:::o;16129:419::-;;16333:2;16322:9;16318:18;16310:26;;16382:9;16376:4;16372:20;16368:1;16357:9;16353:17;16346:47;16410:131;16536:4;16410:131;:::i;:::-;16402:139;;16300:248;;;:::o;16554:419::-;;16758:2;16747:9;16743:18;16735:26;;16807:9;16801:4;16797:20;16793:1;16782:9;16778:17;16771:47;16835:131;16961:4;16835:131;:::i;:::-;16827:139;;16725:248;;;:::o;16979:222::-;;17110:2;17099:9;17095:18;17087:26;;17123:71;17191:1;17180:9;17176:17;17167:6;17123:71;:::i;:::-;17077:124;;;;:::o;17207:214::-;;17334:2;17323:9;17319:18;17311:26;;17347:67;17411:1;17400:9;17396:17;17387:6;17347:67;:::i;:::-;17301:120;;;;:::o;17427:278::-;;17493:2;17487:9;17477:19;;17535:4;17527:6;17523:17;17642:6;17630:10;17627:22;17606:18;17594:10;17591:34;17588:62;17585:2;;;17653:13;;:::i;:::-;17585:2;17688:10;17684:2;17677:22;17467:238;;;;:::o;17711:326::-;;17862:18;17854:6;17851:30;17848:2;;;17884:13;;:::i;:::-;17848:2;17964:4;17960:9;17953:4;17945:6;17941:17;17937:33;17929:41;;18025:4;18019;18015:15;18007:23;;17777:260;;;:::o;18043:327::-;;18195:18;18187:6;18184:30;18181:2;;;18217:13;;:::i;:::-;18181:2;18297:4;18293:9;18286:4;18278:6;18274:17;18270:33;18262:41;;18358:4;18352;18348:15;18340:23;;18110:260;;;:::o;18376:163::-;;18497:3;18489:11;;18527:4;18522:3;18518:14;18510:22;;18479:60;;;:::o;18545:145::-;;18677:5;18671:12;18661:22;;18650:40;;;:::o;18696:98::-;;18781:5;18775:12;18765:22;;18754:40;;;:::o;18800:99::-;;18886:5;18880:12;18870:22;;18859:40;;;:::o;18905:144::-;;19038:4;19033:3;19029:14;19021:22;;19011:38;;;:::o;19055:215::-;;19219:6;19214:3;19207:19;19259:4;19254:3;19250:14;19235:29;;19197:73;;;;:::o;19276:147::-;;19414:3;19399:18;;19389:34;;;;:::o;19429:159::-;;19537:6;19532:3;19525:19;19577:4;19572:3;19568:14;19553:29;;19515:73;;;;:::o;19594:169::-;;19712:6;19707:3;19700:19;19752:4;19747:3;19743:14;19728:29;;19690:73;;;;:::o;19769:148::-;;19908:3;19893:18;;19883:34;;;;:::o;19923:96::-;;19989:24;20007:5;19989:24;:::i;:::-;19978:35;;19968:51;;;:::o;20025:104::-;;20099:24;20117:5;20099:24;:::i;:::-;20088:35;;20078:51;;;:::o;20135:90::-;;20212:5;20205:13;20198:21;20187:32;;20177:48;;;:::o;20231:126::-;;20308:42;20301:5;20297:54;20286:65;;20276:81;;;:::o;20363:77::-;;20429:5;20418:16;;20408:32;;;:::o;20446:86::-;;20521:4;20514:5;20510:16;20499:27;;20489:43;;;:::o;20538:154::-;20622:6;20617:3;20612;20599:30;20684:1;20675:6;20670:3;20666:16;20659:27;20589:103;;;:::o;20698:307::-;20766:1;20776:113;20790:6;20787:1;20784:13;20776:113;;;20875:1;20870:3;20866:11;20860:18;20856:1;20851:3;20847:11;20840:39;20812:2;20809:1;20805:10;20800:15;;20776:113;;;20907:6;20904:1;20901:13;20898:2;;;20987:1;20978:6;20973:3;20969:16;20962:27;20898:2;20747:258;;;;:::o;21011:100::-;;21079:26;21099:5;21079:26;:::i;:::-;21068:37;;21058:53;;;:::o;21117:108::-;;21193:26;21213:5;21193:26;:::i;:::-;21182:37;;21172:53;;;:::o;21231:94::-;;21299:20;21313:5;21299:20;:::i;:::-;21288:31;;21278:47;;;:::o;21331:48::-;21364:9;21385:102;;21477:2;21473:7;21468:2;21461:5;21457:14;21453:28;21443:38;;21433:54;;;:::o;21493:94::-;;21574:5;21570:2;21566:14;21545:35;;21535:52;;;:::o;21593:122::-;21666:24;21684:5;21666:24;:::i;:::-;21659:5;21656:35;21646:2;;21705:1;21702;21695:12;21646:2;21636:79;:::o;21721:122::-;21794:24;21812:5;21794:24;:::i;:::-;21787:5;21784:35;21774:2;;21833:1;21830;21823:12;21774:2;21764:79;:::o
Swarm Source
ipfs://37562799aa17c06674fd8e9ab8f1c7656129c96d0d9e8566f52ef46b303d9e47