ERC-721
Overview
Max Total Supply
1,509 VB
Holders
785
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Balance
1 VBLoading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
VotersBeer
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2021-11-18 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.10; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Enumerable is IERC721 { function totalSupply() external view returns (uint256); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); function tokenByIndex(uint256 index) external view returns (uint256); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint256 => address) private _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { mapping(address => mapping(uint256 => uint256)) private _ownedTokens; mapping(uint256 => uint256) private _ownedTokensIndex; uint256[] private _allTokens; mapping(uint256 => uint256) private _allTokensIndex; function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; _ownedTokens[from][tokenIndex] = lastTokenId; _ownedTokensIndex[lastTokenId] = tokenIndex; } delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; uint256 lastTokenId = _allTokens[lastTokenIndex]; _allTokens[tokenIndex] = lastTokenId; _allTokensIndex[lastTokenId] = tokenIndex; delete _allTokensIndex[tokenId]; _allTokens.pop(); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract VotersBeer is ERC721Enumerable, Ownable { using Strings for uint256; string public baseURI; string public baseExtension = ".json"; uint256 public cost = 1000000000000000000 ; uint256 public maxSupply = 10000; uint256 public maxMintAmount = 4; bool public paused = false; address public voteToken = 0x6659FB6d2b35a4618d8A3176b21c79AAe454D240; address public tokenBank = 0xfB14F91EB777Ab7e156255044754B169176A946b; mapping(address => bool) public whitelisted; constructor( string memory _name, string memory _symbol, string memory _initBaseURI ) ERC721(_name, _symbol) { setBaseURI(_initBaseURI); } function _baseURI() internal view virtual override returns (string memory) { return baseURI; } function mint(address _to, uint256 _mintAmount) public { IERC20 tokenContract = IERC20(voteToken); uint256 supply = totalSupply(); require(!paused); require(_mintAmount > 0); require(_mintAmount <= maxMintAmount); require(supply + _mintAmount <= maxSupply); if (msg.sender != owner()) { if(whitelisted[msg.sender] != true) { require(tokenContract.transferFrom( msg.sender, address(tokenBank), cost * _mintAmount ) == true, 'Could not transfer tokens from your address to this contract' ); } } for (uint256 i = 1; i <= _mintAmount; i++) { _safeMint(_to, supply + i); } } function walletOfOwner(address _owner) public view returns (uint256[] memory) { uint256 ownerTokenCount = balanceOf(_owner); uint256[] memory tokenIds = new uint256[](ownerTokenCount); for (uint256 i; i < ownerTokenCount; i++) { tokenIds[i] = tokenOfOwnerByIndex(_owner, i); } return tokenIds; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require( _exists(tokenId), "ERC721Metadata: URI query for nonexistent token" ); string memory currentBaseURI = _baseURI(); return bytes(currentBaseURI).length > 0 ? string(abi.encodePacked(currentBaseURI, tokenId.toString(), baseExtension)) : ""; } function setCost(uint256 _newCost) public onlyOwner { cost = _newCost; } function setMaxSupply(uint256 newMax) public onlyOwner { maxSupply = newMax; } function setmaxMintAmount(uint256 _newmaxMintAmount) public onlyOwner { maxMintAmount = _newmaxMintAmount; } function setBaseURI(string memory _newBaseURI) public onlyOwner { baseURI = _newBaseURI; } function setBaseExtension(string memory _newBaseExtension) public onlyOwner { baseExtension = _newBaseExtension; } function pause(bool _state) public onlyOwner { paused = _state; } function whitelistUser(address _user) public onlyOwner { whitelisted[_user] = true; } function removeWhitelistUser(address _user) public onlyOwner { whitelisted[_user] = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_initBaseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseExtension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_mintAmount","type":"uint256"}],"name":"mint","outputs":[],"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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"removeWhitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseExtension","type":"string"}],"name":"setBaseExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMax","type":"uint256"}],"name":"setMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxMintAmount","type":"uint256"}],"name":"setmaxMintAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenBank","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"voteToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"whitelistUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c06040526005608081905264173539b7b760d91b60a09081526200002891600c9190620001ed565b50670de0b6b3a7640000600d55612710600e556004600f5560108054746659fb6d2b35a4618d8a3176b21c79aae454d240006001600160a81b0319909116179055601180546001600160a01b03191673fb14f91eb777ab7e156255044754b169176a946b1790553480156200009c57600080fd5b506040516200277338038062002773833981016040819052620000bf9162000360565b825183908390620000d8906000906020850190620001ed565b508051620000ee906001906020840190620001ed565b5050506200010b620001056200011f60201b60201c565b62000123565b620001168162000175565b5050506200042e565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600a546001600160a01b03163314620001d45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b8051620001e990600b906020840190620001ed565b5050565b828054620001fb90620003f1565b90600052602060002090601f0160209004810192826200021f57600085556200026a565b82601f106200023a57805160ff19168380011785556200026a565b828001600101855582156200026a579182015b828111156200026a5782518255916020019190600101906200024d565b50620002789291506200027c565b5090565b5b808211156200027857600081556001016200027d565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620002bb57600080fd5b81516001600160401b0380821115620002d857620002d862000293565b604051601f8301601f19908116603f0116810190828211818310171562000303576200030362000293565b816040528381526020925086838588010111156200032057600080fd5b600091505b8382101562000344578582018301518183018401529082019062000325565b83821115620003565760008385830101525b9695505050505050565b6000806000606084860312156200037657600080fd5b83516001600160401b03808211156200038e57600080fd5b6200039c87838801620002a9565b94506020860151915080821115620003b357600080fd5b620003c187838801620002a9565b93506040860151915080821115620003d857600080fd5b50620003e786828701620002a9565b9150509250925092565b600181811c908216806200040657607f821691505b602082108114156200042857634e487b7160e01b600052602260045260246000fd5b50919050565b612335806200043e6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80635c975abb11610130578063a22cb465116100b8578063d5abeb011161007c578063d5abeb01146104a8578063d936547e146104b1578063da3ef23f146104d4578063e985e9c5146104e7578063f2fde38b1461052357600080fd5b8063a22cb46514610454578063b88d4fde14610467578063b968a3a41461047a578063c66828621461048d578063c87b56dd1461049557600080fd5b806370a08231116100ff57806370a082311461040d578063715018a6146104205780637f00c7a6146104285780638da5cb5b1461043b57806395d89b411461044c57600080fd5b80635c975abb146103d25780636352211e146103df5780636c0360eb146103f25780636f8b44b0146103fa57600080fd5b806323b872dd116101be578063438b630011610182578063438b63001461036657806344a0d68a146103865780634a4c560d146103995780634f6ccce7146103ac57806355f804b3146103bf57600080fd5b806323b872dd146103075780632f745c591461031a57806330cc7ae01461032d57806340c10f191461034057806342842e0e1461035357600080fd5b8063095ea7b311610205578063095ea7b3146102b457806313faede6146102c7578063160d66ae146102de57806318160ddd146102f6578063239c70ae146102fe57600080fd5b806301ffc9a71461023757806302329a291461025f57806306fdde0314610274578063081812fc14610289575b600080fd5b61024a610245366004611c60565b610536565b60405190151581526020015b60405180910390f35b61027261026d366004611c8b565b610561565b005b61027c6105a7565b6040516102569190611d00565b61029c610297366004611d13565b610639565b6040516001600160a01b039091168152602001610256565b6102726102c2366004611d48565b6106ce565b6102d0600d5481565b604051908152602001610256565b60105461029c9061010090046001600160a01b031681565b6008546102d0565b6102d0600f5481565b610272610315366004611d72565b6107e4565b6102d0610328366004611d48565b610815565b61027261033b366004611dae565b6108ab565b61027261034e366004611d48565b6108f6565b610272610361366004611d72565b610ae1565b610379610374366004611dae565b610afc565b6040516102569190611dc9565b610272610394366004611d13565b610b9e565b6102726103a7366004611dae565b610bcd565b6102d06103ba366004611d13565b610c1b565b6102726103cd366004611e99565b610cae565b60105461024a9060ff1681565b61029c6103ed366004611d13565b610cef565b61027c610d66565b610272610408366004611d13565b610df4565b6102d061041b366004611dae565b610e23565b610272610eaa565b610272610436366004611d13565b610ee0565b600a546001600160a01b031661029c565b61027c610f0f565b610272610462366004611ee2565b610f1e565b610272610475366004611f19565b610fe3565b60115461029c906001600160a01b031681565b61027c61101b565b61027c6104a3366004611d13565b611028565b6102d0600e5481565b61024a6104bf366004611dae565b60126020526000908152604090205460ff1681565b6102726104e2366004611e99565b611106565b61024a6104f5366004611f95565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610272610531366004611dae565b611143565b60006001600160e01b0319821663780e9d6360e01b148061055b575061055b826111de565b92915050565b600a546001600160a01b031633146105945760405162461bcd60e51b815260040161058b90611fc8565b60405180910390fd5b6010805460ff1916911515919091179055565b6060600080546105b690611ffd565b80601f01602080910402602001604051908101604052809291908181526020018280546105e290611ffd565b801561062f5780601f106106045761010080835404028352916020019161062f565b820191906000526020600020905b81548152906001019060200180831161061257829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166106b25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161058b565b506000908152600460205260409020546001600160a01b031690565b60006106d982610cef565b9050806001600160a01b0316836001600160a01b031614156107475760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161058b565b336001600160a01b0382161480610763575061076381336104f5565b6107d55760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161058b565b6107df838361122e565b505050565b6107ee338261129c565b61080a5760405162461bcd60e51b815260040161058b90612038565b6107df838383611393565b600061082083610e23565b82106108825760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161058b565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b031633146108d55760405162461bcd60e51b815260040161058b90611fc8565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6010546001600160a01b0361010090910416600061091360085490565b60105490915060ff161561092657600080fd5b6000831161093357600080fd5b600f5483111561094257600080fd5b600e5461094f848361209f565b111561095a57600080fd5b600a546001600160a01b03163314610aab573360009081526012602052604090205460ff161515600114610aab57816001600160a01b03166323b872dd33601160009054906101000a90046001600160a01b031686600d546109bc91906120b7565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3491906120d6565b1515600114610aab5760405162461bcd60e51b815260206004820152603c60248201527f436f756c64206e6f74207472616e7366657220746f6b656e732066726f6d207960448201527f6f7572206164647265737320746f207468697320636f6e747261637400000000606482015260840161058b565b60015b838111610ada57610ac885610ac3838561209f565b61153e565b80610ad2816120f3565b915050610aae565b5050505050565b6107df83838360405180602001604052806000815250610fe3565b60606000610b0983610e23565b905060008167ffffffffffffffff811115610b2657610b26611e0d565b604051908082528060200260200182016040528015610b4f578160200160208202803683370190505b50905060005b82811015610b9657610b678582610815565b828281518110610b7957610b7961210e565b602090810291909101015280610b8e816120f3565b915050610b55565b509392505050565b600a546001600160a01b03163314610bc85760405162461bcd60e51b815260040161058b90611fc8565b600d55565b600a546001600160a01b03163314610bf75760405162461bcd60e51b815260040161058b90611fc8565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6000610c2660085490565b8210610c895760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161058b565b60088281548110610c9c57610c9c61210e565b90600052602060002001549050919050565b600a546001600160a01b03163314610cd85760405162461bcd60e51b815260040161058b90611fc8565b8051610ceb90600b906020840190611bb1565b5050565b6000818152600260205260408120546001600160a01b03168061055b5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161058b565b600b8054610d7390611ffd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f90611ffd565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b505050505081565b600a546001600160a01b03163314610e1e5760405162461bcd60e51b815260040161058b90611fc8565b600e55565b60006001600160a01b038216610e8e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161058b565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b03163314610ed45760405162461bcd60e51b815260040161058b90611fc8565b610ede6000611558565b565b600a546001600160a01b03163314610f0a5760405162461bcd60e51b815260040161058b90611fc8565b600f55565b6060600180546105b690611ffd565b6001600160a01b038216331415610f775760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161058b565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610fed338361129c565b6110095760405162461bcd60e51b815260040161058b90612038565b611015848484846115aa565b50505050565b600c8054610d7390611ffd565b6000818152600260205260409020546060906001600160a01b03166110a75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161058b565b60006110b16115dd565b905060008151116110d157604051806020016040528060008152506110ff565b806110db846115ec565b600c6040516020016110ef93929190612124565b6040516020818303038152906040525b9392505050565b600a546001600160a01b031633146111305760405162461bcd60e51b815260040161058b90611fc8565b8051610ceb90600c906020840190611bb1565b600a546001600160a01b0316331461116d5760405162461bcd60e51b815260040161058b90611fc8565b6001600160a01b0381166111d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161058b565b6111db81611558565b50565b60006001600160e01b031982166380ac58cd60e01b148061120f57506001600160e01b03198216635b5e139f60e01b145b8061055b57506301ffc9a760e01b6001600160e01b031983161461055b565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061126382610cef565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166113155760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161058b565b600061132083610cef565b9050806001600160a01b0316846001600160a01b0316148061135b5750836001600160a01b031661135084610639565b6001600160a01b0316145b8061138b57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166113a682610cef565b6001600160a01b03161461140e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161058b565b6001600160a01b0382166114705760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161058b565b61147b8383836116ea565b61148660008261122e565b6001600160a01b03831660009081526003602052604081208054600192906114af9084906121e8565b90915550506001600160a01b03821660009081526003602052604081208054600192906114dd90849061209f565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610ceb8282604051806020016040528060008152506117a2565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6115b5848484611393565b6115c1848484846117d5565b6110155760405162461bcd60e51b815260040161058b906121ff565b6060600b80546105b690611ffd565b6060816116105750506040805180820190915260018152600360fc1b602082015290565b8160005b811561163a5780611624816120f3565b91506116339050600a83612267565b9150611614565b60008167ffffffffffffffff81111561165557611655611e0d565b6040519080825280601f01601f19166020018201604052801561167f576020820181803683370190505b5090505b841561138b576116946001836121e8565b91506116a1600a8661227b565b6116ac90603061209f565b60f81b8183815181106116c1576116c161210e565b60200101906001600160f81b031916908160001a9053506116e3600a86612267565b9450611683565b6001600160a01b0383166117455761174081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611768565b816001600160a01b0316836001600160a01b0316146117685761176883826118d3565b6001600160a01b03821661177f576107df81611970565b826001600160a01b0316826001600160a01b0316146107df576107df8282611a1f565b6117ac8383611a63565b6117b960008484846117d5565b6107df5760405162461bcd60e51b815260040161058b906121ff565b60006001600160a01b0384163b156118c857604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061181990339089908890889060040161228f565b6020604051808303816000875af1925050508015611854575060408051601f3d908101601f19168201909252611851918101906122cc565b60015b6118ae573d808015611882576040519150601f19603f3d011682016040523d82523d6000602084013e611887565b606091505b5080516118a65760405162461bcd60e51b815260040161058b906121ff565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061138b565b506001949350505050565b600060016118e084610e23565b6118ea91906121e8565b60008381526007602052604090205490915080821461193d576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611982906001906121e8565b600083815260096020526040812054600880549394509092849081106119aa576119aa61210e565b9060005260206000200154905080600883815481106119cb576119cb61210e565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611a0357611a036122e9565b6001900381819060005260206000200160009055905550505050565b6000611a2a83610e23565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611ab95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161058b565b6000818152600260205260409020546001600160a01b031615611b1e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161058b565b611b2a600083836116ea565b6001600160a01b0382166000908152600360205260408120805460019290611b5390849061209f565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611bbd90611ffd565b90600052602060002090601f016020900481019282611bdf5760008555611c25565b82601f10611bf857805160ff1916838001178555611c25565b82800160010185558215611c25579182015b82811115611c25578251825591602001919060010190611c0a565b50611c31929150611c35565b5090565b5b80821115611c315760008155600101611c36565b6001600160e01b0319811681146111db57600080fd5b600060208284031215611c7257600080fd5b81356110ff81611c4a565b80151581146111db57600080fd5b600060208284031215611c9d57600080fd5b81356110ff81611c7d565b60005b83811015611cc3578181015183820152602001611cab565b838111156110155750506000910152565b60008151808452611cec816020860160208601611ca8565b601f01601f19169290920160200192915050565b6020815260006110ff6020830184611cd4565b600060208284031215611d2557600080fd5b5035919050565b80356001600160a01b0381168114611d4357600080fd5b919050565b60008060408385031215611d5b57600080fd5b611d6483611d2c565b946020939093013593505050565b600080600060608486031215611d8757600080fd5b611d9084611d2c565b9250611d9e60208501611d2c565b9150604084013590509250925092565b600060208284031215611dc057600080fd5b6110ff82611d2c565b6020808252825182820181905260009190848201906040850190845b81811015611e0157835183529284019291840191600101611de5565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611e3e57611e3e611e0d565b604051601f8501601f19908116603f01168101908282118183101715611e6657611e66611e0d565b81604052809350858152868686011115611e7f57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611eab57600080fd5b813567ffffffffffffffff811115611ec257600080fd5b8201601f81018413611ed357600080fd5b61138b84823560208401611e23565b60008060408385031215611ef557600080fd5b611efe83611d2c565b91506020830135611f0e81611c7d565b809150509250929050565b60008060008060808587031215611f2f57600080fd5b611f3885611d2c565b9350611f4660208601611d2c565b925060408501359150606085013567ffffffffffffffff811115611f6957600080fd5b8501601f81018713611f7a57600080fd5b611f8987823560208401611e23565b91505092959194509250565b60008060408385031215611fa857600080fd5b611fb183611d2c565b9150611fbf60208401611d2c565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061201157607f821691505b6020821081141561203257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082198211156120b2576120b2612089565b500190565b60008160001904831182151516156120d1576120d1612089565b500290565b6000602082840312156120e857600080fd5b81516110ff81611c7d565b600060001982141561210757612107612089565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000845160206121378285838a01611ca8565b85519184019161214a8184848a01611ca8565b8554920191600090600181811c908083168061216757607f831692505b85831081141561218557634e487b7160e01b85526022600452602485fd5b80801561219957600181146121aa576121d7565b60ff198516885283880195506121d7565b60008b81526020902060005b858110156121cf5781548a8201529084019088016121b6565b505083880195505b50939b9a5050505050505050505050565b6000828210156121fa576121fa612089565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261227657612276612251565b500490565b60008261228a5761228a612251565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906122c290830184611cd4565b9695505050505050565b6000602082840312156122de57600080fd5b81516110ff81611c4a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a5468a3816930d1637107c5b702dd7c8cf52ca31f05872518cce8fd41dd9a83764736f6c634300080a0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000a566f74657273426565720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025642000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d625544355774456457524678513974636d737a52576452464d575176317653376d3954515355764b47526f592f000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102325760003560e01c80635c975abb11610130578063a22cb465116100b8578063d5abeb011161007c578063d5abeb01146104a8578063d936547e146104b1578063da3ef23f146104d4578063e985e9c5146104e7578063f2fde38b1461052357600080fd5b8063a22cb46514610454578063b88d4fde14610467578063b968a3a41461047a578063c66828621461048d578063c87b56dd1461049557600080fd5b806370a08231116100ff57806370a082311461040d578063715018a6146104205780637f00c7a6146104285780638da5cb5b1461043b57806395d89b411461044c57600080fd5b80635c975abb146103d25780636352211e146103df5780636c0360eb146103f25780636f8b44b0146103fa57600080fd5b806323b872dd116101be578063438b630011610182578063438b63001461036657806344a0d68a146103865780634a4c560d146103995780634f6ccce7146103ac57806355f804b3146103bf57600080fd5b806323b872dd146103075780632f745c591461031a57806330cc7ae01461032d57806340c10f191461034057806342842e0e1461035357600080fd5b8063095ea7b311610205578063095ea7b3146102b457806313faede6146102c7578063160d66ae146102de57806318160ddd146102f6578063239c70ae146102fe57600080fd5b806301ffc9a71461023757806302329a291461025f57806306fdde0314610274578063081812fc14610289575b600080fd5b61024a610245366004611c60565b610536565b60405190151581526020015b60405180910390f35b61027261026d366004611c8b565b610561565b005b61027c6105a7565b6040516102569190611d00565b61029c610297366004611d13565b610639565b6040516001600160a01b039091168152602001610256565b6102726102c2366004611d48565b6106ce565b6102d0600d5481565b604051908152602001610256565b60105461029c9061010090046001600160a01b031681565b6008546102d0565b6102d0600f5481565b610272610315366004611d72565b6107e4565b6102d0610328366004611d48565b610815565b61027261033b366004611dae565b6108ab565b61027261034e366004611d48565b6108f6565b610272610361366004611d72565b610ae1565b610379610374366004611dae565b610afc565b6040516102569190611dc9565b610272610394366004611d13565b610b9e565b6102726103a7366004611dae565b610bcd565b6102d06103ba366004611d13565b610c1b565b6102726103cd366004611e99565b610cae565b60105461024a9060ff1681565b61029c6103ed366004611d13565b610cef565b61027c610d66565b610272610408366004611d13565b610df4565b6102d061041b366004611dae565b610e23565b610272610eaa565b610272610436366004611d13565b610ee0565b600a546001600160a01b031661029c565b61027c610f0f565b610272610462366004611ee2565b610f1e565b610272610475366004611f19565b610fe3565b60115461029c906001600160a01b031681565b61027c61101b565b61027c6104a3366004611d13565b611028565b6102d0600e5481565b61024a6104bf366004611dae565b60126020526000908152604090205460ff1681565b6102726104e2366004611e99565b611106565b61024a6104f5366004611f95565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610272610531366004611dae565b611143565b60006001600160e01b0319821663780e9d6360e01b148061055b575061055b826111de565b92915050565b600a546001600160a01b031633146105945760405162461bcd60e51b815260040161058b90611fc8565b60405180910390fd5b6010805460ff1916911515919091179055565b6060600080546105b690611ffd565b80601f01602080910402602001604051908101604052809291908181526020018280546105e290611ffd565b801561062f5780601f106106045761010080835404028352916020019161062f565b820191906000526020600020905b81548152906001019060200180831161061257829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b03166106b25760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161058b565b506000908152600460205260409020546001600160a01b031690565b60006106d982610cef565b9050806001600160a01b0316836001600160a01b031614156107475760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161058b565b336001600160a01b0382161480610763575061076381336104f5565b6107d55760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161058b565b6107df838361122e565b505050565b6107ee338261129c565b61080a5760405162461bcd60e51b815260040161058b90612038565b6107df838383611393565b600061082083610e23565b82106108825760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161058b565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600a546001600160a01b031633146108d55760405162461bcd60e51b815260040161058b90611fc8565b6001600160a01b03166000908152601260205260409020805460ff19169055565b6010546001600160a01b0361010090910416600061091360085490565b60105490915060ff161561092657600080fd5b6000831161093357600080fd5b600f5483111561094257600080fd5b600e5461094f848361209f565b111561095a57600080fd5b600a546001600160a01b03163314610aab573360009081526012602052604090205460ff161515600114610aab57816001600160a01b03166323b872dd33601160009054906101000a90046001600160a01b031686600d546109bc91906120b7565b6040516001600160e01b031960e086901b1681526001600160a01b03938416600482015292909116602483015260448201526064016020604051808303816000875af1158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3491906120d6565b1515600114610aab5760405162461bcd60e51b815260206004820152603c60248201527f436f756c64206e6f74207472616e7366657220746f6b656e732066726f6d207960448201527f6f7572206164647265737320746f207468697320636f6e747261637400000000606482015260840161058b565b60015b838111610ada57610ac885610ac3838561209f565b61153e565b80610ad2816120f3565b915050610aae565b5050505050565b6107df83838360405180602001604052806000815250610fe3565b60606000610b0983610e23565b905060008167ffffffffffffffff811115610b2657610b26611e0d565b604051908082528060200260200182016040528015610b4f578160200160208202803683370190505b50905060005b82811015610b9657610b678582610815565b828281518110610b7957610b7961210e565b602090810291909101015280610b8e816120f3565b915050610b55565b509392505050565b600a546001600160a01b03163314610bc85760405162461bcd60e51b815260040161058b90611fc8565b600d55565b600a546001600160a01b03163314610bf75760405162461bcd60e51b815260040161058b90611fc8565b6001600160a01b03166000908152601260205260409020805460ff19166001179055565b6000610c2660085490565b8210610c895760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161058b565b60088281548110610c9c57610c9c61210e565b90600052602060002001549050919050565b600a546001600160a01b03163314610cd85760405162461bcd60e51b815260040161058b90611fc8565b8051610ceb90600b906020840190611bb1565b5050565b6000818152600260205260408120546001600160a01b03168061055b5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161058b565b600b8054610d7390611ffd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9f90611ffd565b8015610dec5780601f10610dc157610100808354040283529160200191610dec565b820191906000526020600020905b815481529060010190602001808311610dcf57829003601f168201915b505050505081565b600a546001600160a01b03163314610e1e5760405162461bcd60e51b815260040161058b90611fc8565b600e55565b60006001600160a01b038216610e8e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161058b565b506001600160a01b031660009081526003602052604090205490565b600a546001600160a01b03163314610ed45760405162461bcd60e51b815260040161058b90611fc8565b610ede6000611558565b565b600a546001600160a01b03163314610f0a5760405162461bcd60e51b815260040161058b90611fc8565b600f55565b6060600180546105b690611ffd565b6001600160a01b038216331415610f775760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161058b565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610fed338361129c565b6110095760405162461bcd60e51b815260040161058b90612038565b611015848484846115aa565b50505050565b600c8054610d7390611ffd565b6000818152600260205260409020546060906001600160a01b03166110a75760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161058b565b60006110b16115dd565b905060008151116110d157604051806020016040528060008152506110ff565b806110db846115ec565b600c6040516020016110ef93929190612124565b6040516020818303038152906040525b9392505050565b600a546001600160a01b031633146111305760405162461bcd60e51b815260040161058b90611fc8565b8051610ceb90600c906020840190611bb1565b600a546001600160a01b0316331461116d5760405162461bcd60e51b815260040161058b90611fc8565b6001600160a01b0381166111d25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161058b565b6111db81611558565b50565b60006001600160e01b031982166380ac58cd60e01b148061120f57506001600160e01b03198216635b5e139f60e01b145b8061055b57506301ffc9a760e01b6001600160e01b031983161461055b565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061126382610cef565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600260205260408120546001600160a01b03166113155760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161058b565b600061132083610cef565b9050806001600160a01b0316846001600160a01b0316148061135b5750836001600160a01b031661135084610639565b6001600160a01b0316145b8061138b57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166113a682610cef565b6001600160a01b03161461140e5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b606482015260840161058b565b6001600160a01b0382166114705760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161058b565b61147b8383836116ea565b61148660008261122e565b6001600160a01b03831660009081526003602052604081208054600192906114af9084906121e8565b90915550506001600160a01b03821660009081526003602052604081208054600192906114dd90849061209f565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610ceb8282604051806020016040528060008152506117a2565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6115b5848484611393565b6115c1848484846117d5565b6110155760405162461bcd60e51b815260040161058b906121ff565b6060600b80546105b690611ffd565b6060816116105750506040805180820190915260018152600360fc1b602082015290565b8160005b811561163a5780611624816120f3565b91506116339050600a83612267565b9150611614565b60008167ffffffffffffffff81111561165557611655611e0d565b6040519080825280601f01601f19166020018201604052801561167f576020820181803683370190505b5090505b841561138b576116946001836121e8565b91506116a1600a8661227b565b6116ac90603061209f565b60f81b8183815181106116c1576116c161210e565b60200101906001600160f81b031916908160001a9053506116e3600a86612267565b9450611683565b6001600160a01b0383166117455761174081600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611768565b816001600160a01b0316836001600160a01b0316146117685761176883826118d3565b6001600160a01b03821661177f576107df81611970565b826001600160a01b0316826001600160a01b0316146107df576107df8282611a1f565b6117ac8383611a63565b6117b960008484846117d5565b6107df5760405162461bcd60e51b815260040161058b906121ff565b60006001600160a01b0384163b156118c857604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061181990339089908890889060040161228f565b6020604051808303816000875af1925050508015611854575060408051601f3d908101601f19168201909252611851918101906122cc565b60015b6118ae573d808015611882576040519150601f19603f3d011682016040523d82523d6000602084013e611887565b606091505b5080516118a65760405162461bcd60e51b815260040161058b906121ff565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061138b565b506001949350505050565b600060016118e084610e23565b6118ea91906121e8565b60008381526007602052604090205490915080821461193d576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611982906001906121e8565b600083815260096020526040812054600880549394509092849081106119aa576119aa61210e565b9060005260206000200154905080600883815481106119cb576119cb61210e565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611a0357611a036122e9565b6001900381819060005260206000200160009055905550505050565b6000611a2a83610e23565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b6001600160a01b038216611ab95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161058b565b6000818152600260205260409020546001600160a01b031615611b1e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161058b565b611b2a600083836116ea565b6001600160a01b0382166000908152600360205260408120805460019290611b5390849061209f565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611bbd90611ffd565b90600052602060002090601f016020900481019282611bdf5760008555611c25565b82601f10611bf857805160ff1916838001178555611c25565b82800160010185558215611c25579182015b82811115611c25578251825591602001919060010190611c0a565b50611c31929150611c35565b5090565b5b80821115611c315760008155600101611c36565b6001600160e01b0319811681146111db57600080fd5b600060208284031215611c7257600080fd5b81356110ff81611c4a565b80151581146111db57600080fd5b600060208284031215611c9d57600080fd5b81356110ff81611c7d565b60005b83811015611cc3578181015183820152602001611cab565b838111156110155750506000910152565b60008151808452611cec816020860160208601611ca8565b601f01601f19169290920160200192915050565b6020815260006110ff6020830184611cd4565b600060208284031215611d2557600080fd5b5035919050565b80356001600160a01b0381168114611d4357600080fd5b919050565b60008060408385031215611d5b57600080fd5b611d6483611d2c565b946020939093013593505050565b600080600060608486031215611d8757600080fd5b611d9084611d2c565b9250611d9e60208501611d2c565b9150604084013590509250925092565b600060208284031215611dc057600080fd5b6110ff82611d2c565b6020808252825182820181905260009190848201906040850190845b81811015611e0157835183529284019291840191600101611de5565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611e3e57611e3e611e0d565b604051601f8501601f19908116603f01168101908282118183101715611e6657611e66611e0d565b81604052809350858152868686011115611e7f57600080fd5b858560208301376000602087830101525050509392505050565b600060208284031215611eab57600080fd5b813567ffffffffffffffff811115611ec257600080fd5b8201601f81018413611ed357600080fd5b61138b84823560208401611e23565b60008060408385031215611ef557600080fd5b611efe83611d2c565b91506020830135611f0e81611c7d565b809150509250929050565b60008060008060808587031215611f2f57600080fd5b611f3885611d2c565b9350611f4660208601611d2c565b925060408501359150606085013567ffffffffffffffff811115611f6957600080fd5b8501601f81018713611f7a57600080fd5b611f8987823560208401611e23565b91505092959194509250565b60008060408385031215611fa857600080fd5b611fb183611d2c565b9150611fbf60208401611d2c565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061201157607f821691505b6020821081141561203257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082198211156120b2576120b2612089565b500190565b60008160001904831182151516156120d1576120d1612089565b500290565b6000602082840312156120e857600080fd5b81516110ff81611c7d565b600060001982141561210757612107612089565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6000845160206121378285838a01611ca8565b85519184019161214a8184848a01611ca8565b8554920191600090600181811c908083168061216757607f831692505b85831081141561218557634e487b7160e01b85526022600452602485fd5b80801561219957600181146121aa576121d7565b60ff198516885283880195506121d7565b60008b81526020902060005b858110156121cf5781548a8201529084019088016121b6565b505083880195505b50939b9a5050505050505050505050565b6000828210156121fa576121fa612089565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b60008261227657612276612251565b500490565b60008261228a5761228a612251565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906122c290830184611cd4565b9695505050505050565b6000602082840312156122de57600080fd5b81516110ff81611c4a565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a5468a3816930d1637107c5b702dd7c8cf52ca31f05872518cce8fd41dd9a83764736f6c634300080a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000a566f74657273426565720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025642000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d625544355774456457524678513974636d737a52576452464d575176317653376d3954515355764b47526f592f000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): VotersBeer
Arg [1] : _symbol (string): VB
Arg [2] : _initBaseURI (string): https://gateway.pinata.cloud/ipfs/QmbUD5WtEdWRFxQ9tcmszRWdRFMWQv1vS7m9TQSUvKGRoY/
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 566f746572734265657200000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [6] : 5642000000000000000000000000000000000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000051
Arg [8] : 68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066
Arg [9] : 732f516d625544355774456457524678513974636d737a52576452464d575176
Arg [10] : 317653376d3954515355764b47526f592f000000000000000000000000000000
Deployed Bytecode Sourcemap
19983:3137:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16192:224;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;16192:224:0;;;;;;;;22838:73;;;;;;:::i;:::-;;:::i;:::-;;9624:100;;;:::i;:::-;;;;;;;:::i;10707:221::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2061:32:1;;;2043:51;;2031:2;2016:18;10707:221:0;1897:203:1;10288:411:0;;;;;;:::i;:::-;;:::i;20137:41::-;;;;;;;;;2688:25:1;;;2676:2;2661:18;20137:41:0;2542:177:1;20289:69:0;;;;;;;;-1:-1:-1;;;;;20289:69:0;;;16688:113;16776:10;:17;16688:113;;20221:32;;;;;;11411:286;;;;;;:::i;:::-;;:::i;16424:256::-;;;;;;:::i;:::-;;:::i;23017:100::-;;;;;;:::i;:::-;;:::i;20765:748::-;;;;;;:::i;:::-;;:::i;11705:185::-;;;;;;:::i;:::-;;:::i;21519:348::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22302:80::-;;;;;;:::i;:::-;;:::i;22917:93::-;;;;;;:::i;:::-;;:::i;16809:233::-;;;;;;:::i;:::-;;:::i;22606:98::-;;;;;;:::i;:::-;;:::i;20258:26::-;;;;;;;;;9377:239;;;;;;:::i;:::-;;:::i;20069:21::-;;;:::i;22390:88::-;;;;;;:::i;:::-;;:::i;9157:208::-;;;;;;:::i;:::-;;:::i;19501:94::-;;;:::i;22484:116::-;;;;;;:::i;:::-;;:::i;19278:87::-;19351:6;;-1:-1:-1;;;;;19351:6:0;19278:87;;9732:104;;;:::i;10936:295::-;;;;;;:::i;:::-;;:::i;11898:328::-;;;;;;:::i;:::-;;:::i;20363:69::-;;;;;-1:-1:-1;;;;;20363:69:0;;;20095:37;;;:::i;21873:423::-;;;;;;:::i;:::-;;:::i;20184:32::-;;;;;;20437:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;22710:122;;;;;;:::i;:::-;;:::i;11239:164::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11360:25:0;;;11336:4;11360:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;11239:164;19603:192;;;;;;:::i;:::-;;:::i;16192:224::-;16294:4;-1:-1:-1;;;;;;16318:50:0;;-1:-1:-1;;;16318:50:0;;:90;;;16372:36;16396:11;16372:23;:36::i;:::-;16311:97;16192:224;-1:-1:-1;;16192:224:0:o;22838:73::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;;;;;;;;;22890:6:::1;:15:::0;;-1:-1:-1;;22890:15:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22838:73::o;9624:100::-;9678:13;9711:5;9704:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9624:100;:::o;10707:221::-;10783:7;12646:16;;;:7;:16;;;;;;-1:-1:-1;;;;;12646:16:0;10803:73;;;;-1:-1:-1;;;10803:73:0;;7315:2:1;10803:73:0;;;7297:21:1;7354:2;7334:18;;;7327:30;7393:34;7373:18;;;7366:62;-1:-1:-1;;;7444:18:1;;;7437:42;7496:19;;10803:73:0;7113:408:1;10803:73:0;-1:-1:-1;10896:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;10896:24:0;;10707:221::o;10288:411::-;10369:13;10385:23;10400:7;10385:14;:23::i;:::-;10369:39;;10433:5;-1:-1:-1;;;;;10427:11:0;:2;-1:-1:-1;;;;;10427:11:0;;;10419:57;;;;-1:-1:-1;;;10419:57:0;;7728:2:1;10419:57:0;;;7710:21:1;7767:2;7747:18;;;7740:30;7806:34;7786:18;;;7779:62;-1:-1:-1;;;7857:18:1;;;7850:31;7898:19;;10419:57:0;7526:397:1;10419:57:0;8146:10;-1:-1:-1;;;;;10511:21:0;;;;:62;;-1:-1:-1;10536:37:0;10553:5;8146:10;11239:164;:::i;10536:37::-;10489:168;;;;-1:-1:-1;;;10489:168:0;;8130:2:1;10489:168:0;;;8112:21:1;8169:2;8149:18;;;8142:30;8208:34;8188:18;;;8181:62;8279:26;8259:18;;;8252:54;8323:19;;10489:168:0;7928:420:1;10489:168:0;10670:21;10679:2;10683:7;10670:8;:21::i;:::-;10358:341;10288:411;;:::o;11411:286::-;11553:41;8146:10;11586:7;11553:18;:41::i;:::-;11545:103;;;;-1:-1:-1;;;11545:103:0;;;;;;;:::i;:::-;11661:28;11671:4;11677:2;11681:7;11661:9;:28::i;16424:256::-;16521:7;16557:23;16574:5;16557:16;:23::i;:::-;16549:5;:31;16541:87;;;;-1:-1:-1;;;16541:87:0;;8973:2:1;16541:87:0;;;8955:21:1;9012:2;8992:18;;;8985:30;9051:34;9031:18;;;9024:62;-1:-1:-1;;;9102:18:1;;;9095:41;9153:19;;16541:87:0;8771:407:1;16541:87:0;-1:-1:-1;;;;;;16646:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;16424:256::o;23017:100::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23085:18:0::1;23106:5;23085:18:::0;;;:11:::1;:18;::::0;;;;:26;;-1:-1:-1;;23085:26:0::1;::::0;;23017:100::o;20765:748::-;20857:9;;-1:-1:-1;;;;;20857:9:0;;;;;20827:20;20891:13;16776:10;:17;;16688:113;20891:13;20920:6;;20874:30;;-1:-1:-1;20920:6:0;;20919:7;20911:16;;;;;;20956:1;20942:11;:15;20934:24;;;;;;20988:13;;20973:11;:28;;20965:37;;;;;;21041:9;;21017:20;21026:11;21017:6;:20;:::i;:::-;:33;;21009:42;;;;;;19351:6;;-1:-1:-1;;;;;19351:6:0;21064:10;:21;21060:354;;21113:10;21101:23;;;;:11;:23;;;;;;;;:31;;:23;:31;21098:309;;21155:13;-1:-1:-1;;;;;21155:26:0;;21200:10;21237:9;;;;;;;;;-1:-1:-1;;;;;21237:9:0;21273:11;21266:4;;:18;;;;:::i;:::-;21155:144;;-1:-1:-1;;;;;;21155:144:0;;;;;;;-1:-1:-1;;;;;9879:15:1;;;21155:144:0;;;9861:34:1;9931:15;;;;9911:18;;;9904:43;9963:18;;;9956:34;9796:18;;21155:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:152;;21303:4;21155:152;21147:248;;;;-1:-1:-1;;;21147:248:0;;10453:2:1;21147:248:0;;;10435:21:1;10492:2;10472:18;;;10465:30;10531:34;10511:18;;;10504:62;10602:30;10582:18;;;10575:58;10650:19;;21147:248:0;10251:424:1;21147:248:0;21439:1;21422:86;21447:11;21442:1;:16;21422:86;;21474:26;21484:3;21489:10;21498:1;21489:6;:10;:::i;:::-;21474:9;:26::i;:::-;21460:3;;;;:::i;:::-;;;;21422:86;;;;20820:693;;20765:748;;:::o;11705:185::-;11843:39;11860:4;11866:2;11870:7;11843:39;;;;;;;;;;;;:16;:39::i;21519:348::-;21594:16;21622:23;21648:17;21658:6;21648:9;:17::i;:::-;21622:43;;21672:25;21714:15;21700:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21700:30:0;;21672:58;;21742:9;21737:103;21757:15;21753:1;:19;21737:103;;;21802:30;21822:6;21830:1;21802:19;:30::i;:::-;21788:8;21797:1;21788:11;;;;;;;;:::i;:::-;;;;;;;;;;:44;21774:3;;;;:::i;:::-;;;;21737:103;;;-1:-1:-1;21853:8:0;21519:348;-1:-1:-1;;;21519:348:0:o;22302:80::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;22361:4:::1;:15:::0;22302:80::o;22917:93::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22979:18:0::1;;::::0;;;:11:::1;:18;::::0;;;;:25;;-1:-1:-1;;22979:25:0::1;23000:4;22979:25;::::0;;22917:93::o;16809:233::-;16884:7;16920:30;16776:10;:17;;16688:113;16920:30;16912:5;:38;16904:95;;;;-1:-1:-1;;;16904:95:0;;11154:2:1;16904:95:0;;;11136:21:1;11193:2;11173:18;;;11166:30;11232:34;11212:18;;;11205:62;-1:-1:-1;;;11283:18:1;;;11276:42;11335:19;;16904:95:0;10952:408:1;16904:95:0;17017:10;17028:5;17017:17;;;;;;;;:::i;:::-;;;;;;;;;17010:24;;16809:233;;;:::o;22606:98::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;22677:21;;::::1;::::0;:7:::1;::::0;:21:::1;::::0;::::1;::::0;::::1;:::i;:::-;;22606:98:::0;:::o;9377:239::-;9449:7;9485:16;;;:7;:16;;;;;;-1:-1:-1;;;;;9485:16:0;9520:19;9512:73;;;;-1:-1:-1;;;9512:73:0;;11567:2:1;9512:73:0;;;11549:21:1;11606:2;11586:18;;;11579:30;11645:34;11625:18;;;11618:62;-1:-1:-1;;;11696:18:1;;;11689:39;11745:19;;9512:73:0;11365:405:1;20069:21:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22390:88::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;22454:9:::1;:18:::0;22390:88::o;9157:208::-;9229:7;-1:-1:-1;;;;;9257:19:0;;9249:74;;;;-1:-1:-1;;;9249:74:0;;11977:2:1;9249:74:0;;;11959:21:1;12016:2;11996:18;;;11989:30;12055:34;12035:18;;;12028:62;-1:-1:-1;;;12106:18:1;;;12099:40;12156:19;;9249:74:0;11775:406:1;9249:74:0;-1:-1:-1;;;;;;9341:16:0;;;;;:9;:16;;;;;;;9157:208::o;19501:94::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;19566:21:::1;19584:1;19566:9;:21::i;:::-;19501:94::o:0;22484:116::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;22561:13:::1;:33:::0;22484:116::o;9732:104::-;9788:13;9821:7;9814:14;;;;;:::i;10936:295::-;-1:-1:-1;;;;;11039:24:0;;8146:10;11039:24;;11031:62;;;;-1:-1:-1;;;11031:62:0;;12388:2:1;11031:62:0;;;12370:21:1;12427:2;12407:18;;;12400:30;12466:27;12446:18;;;12439:55;12511:18;;11031:62:0;12186:349:1;11031:62:0;8146:10;11106:32;;;;:18;:32;;;;;;;;-1:-1:-1;;;;;11106:42:0;;;;;;;;;;;;:53;;-1:-1:-1;;11106:53:0;;;;;;;;;;11175:48;;540:41:1;;;11106:42:0;;8146:10;11175:48;;513:18:1;11175:48:0;;;;;;;10936:295;;:::o;11898:328::-;12073:41;8146:10;12106:7;12073:18;:41::i;:::-;12065:103;;;;-1:-1:-1;;;12065:103:0;;;;;;;:::i;:::-;12179:39;12193:4;12199:2;12203:7;12212:5;12179:13;:39::i;:::-;11898:328;;;;:::o;20095:37::-;;;;;;;:::i;21873:423::-;12622:4;12646:16;;;:7;:16;;;;;;21971:13;;-1:-1:-1;;;;;12646:16:0;21996:97;;;;-1:-1:-1;;;21996:97:0;;12742:2:1;21996:97:0;;;12724:21:1;12781:2;12761:18;;;12754:30;12820:34;12800:18;;;12793:62;-1:-1:-1;;;12871:18:1;;;12864:45;12926:19;;21996:97:0;12540:411:1;21996:97:0;22102:28;22133:10;:8;:10::i;:::-;22102:41;;22188:1;22163:14;22157:28;:32;:133;;;;;;;;;;;;;;;;;22225:14;22241:18;:7;:16;:18::i;:::-;22261:13;22208:67;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22157:133;22150:140;21873:423;-1:-1:-1;;;21873:423:0:o;22710:122::-;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;22793:33;;::::1;::::0;:13:::1;::::0;:33:::1;::::0;::::1;::::0;::::1;:::i;19603:192::-:0;19351:6;;-1:-1:-1;;;;;19351:6:0;8146:10;19413:23;19405:68;;;;-1:-1:-1;;;19405:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19692:22:0;::::1;19684:73;;;::::0;-1:-1:-1;;;19684:73:0;;14816:2:1;19684:73:0::1;::::0;::::1;14798:21:1::0;14855:2;14835:18;;;14828:30;14894:34;14874:18;;;14867:62;-1:-1:-1;;;14945:18:1;;;14938:36;14991:19;;19684:73:0::1;14614:402:1::0;19684:73:0::1;19768:19;19778:8;19768:9;:19::i;:::-;19603:192:::0;:::o;8844:305::-;8946:4;-1:-1:-1;;;;;;8983:40:0;;-1:-1:-1;;;8983:40:0;;:105;;-1:-1:-1;;;;;;;9040:48:0;;-1:-1:-1;;;9040:48:0;8983:105;:158;;;-1:-1:-1;;;;;;;;;;2534:40:0;;;9105:36;2425:157;14757:174;14832:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;14832:29:0;-1:-1:-1;;;;;14832:29:0;;;;;;;;:24;;14886:23;14832:24;14886:14;:23::i;:::-;-1:-1:-1;;;;;14877:46:0;;;;;;;;;;;14757:174;;:::o;12692:348::-;12785:4;12646:16;;;:7;:16;;;;;;-1:-1:-1;;;;;12646:16:0;12802:73;;;;-1:-1:-1;;;12802:73:0;;15223:2:1;12802:73:0;;;15205:21:1;15262:2;15242:18;;;15235:30;15301:34;15281:18;;;15274:62;-1:-1:-1;;;15352:18:1;;;15345:42;15404:19;;12802:73:0;15021:408:1;12802:73:0;12886:13;12902:23;12917:7;12902:14;:23::i;:::-;12886:39;;12955:5;-1:-1:-1;;;;;12944:16:0;:7;-1:-1:-1;;;;;12944:16:0;;:51;;;;12988:7;-1:-1:-1;;;;;12964:31:0;:20;12976:7;12964:11;:20::i;:::-;-1:-1:-1;;;;;12964:31:0;;12944:51;:87;;;-1:-1:-1;;;;;;11360:25:0;;;11336:4;11360:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;12999:32;12936:96;12692:348;-1:-1:-1;;;;12692:348:0:o;14223:526::-;14382:4;-1:-1:-1;;;;;14355:31:0;:23;14370:7;14355:14;:23::i;:::-;-1:-1:-1;;;;;14355:31:0;;14347:85;;;;-1:-1:-1;;;14347:85:0;;15636:2:1;14347:85:0;;;15618:21:1;15675:2;15655:18;;;15648:30;15714:34;15694:18;;;15687:62;-1:-1:-1;;;15765:18:1;;;15758:39;15814:19;;14347:85:0;15434:405:1;14347:85:0;-1:-1:-1;;;;;14451:16:0;;14443:65;;;;-1:-1:-1;;;14443:65:0;;16046:2:1;14443:65:0;;;16028:21:1;16085:2;16065:18;;;16058:30;16124:34;16104:18;;;16097:62;-1:-1:-1;;;16175:18:1;;;16168:34;16219:19;;14443:65:0;15844:400:1;14443:65:0;14521:39;14542:4;14548:2;14552:7;14521:20;:39::i;:::-;14573:29;14590:1;14594:7;14573:8;:29::i;:::-;-1:-1:-1;;;;;14615:15:0;;;;;;:9;:15;;;;;:20;;14634:1;;14615:15;:20;;14634:1;;14615:20;:::i;:::-;;;;-1:-1:-1;;;;;;;14646:13:0;;;;;;:9;:13;;;;;:18;;14663:1;;14646:13;:18;;14663:1;;14646:18;:::i;:::-;;;;-1:-1:-1;;14675:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;14675:21:0;-1:-1:-1;;;;;14675:21:0;;;;;;;;;14714:27;;14675:16;;14714:27;;;;;;;14223:526;;;:::o;13048:110::-;13124:26;13134:2;13138:7;13124:26;;;;;;;;;;;;:9;:26::i;19803:173::-;19878:6;;;-1:-1:-1;;;;;19895:17:0;;;-1:-1:-1;;;;;;19895:17:0;;;;;;;19928:40;;19878:6;;;19895:17;19878:6;;19928:40;;19859:16;;19928:40;19848:128;19803:173;:::o;12234:315::-;12391:28;12401:4;12407:2;12411:7;12391:9;:28::i;:::-;12438:48;12461:4;12467:2;12471:7;12480:5;12438:22;:48::i;:::-;12430:111;;;;-1:-1:-1;;;12430:111:0;;;;;;;:::i;20657:102::-;20717:13;20746:7;20739:14;;;;;:::i;2679:534::-;2735:13;2767:10;2763:53;;-1:-1:-1;;2794:10:0;;;;;;;;;;;;-1:-1:-1;;;2794:10:0;;;;;2679:534::o;2763:53::-;2841:5;2826:12;2882:78;2889:9;;2882:78;;2915:8;;;;:::i;:::-;;-1:-1:-1;2938:10:0;;-1:-1:-1;2946:2:0;2938:10;;:::i;:::-;;;2882:78;;;2970:19;3002:6;2992:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2992:17:0;;2970:39;;3020:154;3027:10;;3020:154;;3054:11;3064:1;3054:11;;:::i;:::-;;-1:-1:-1;3123:10:0;3131:2;3123:5;:10;:::i;:::-;3110:24;;:2;:24;:::i;:::-;3097:39;;3080:6;3087;3080:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;3080:56:0;;;;;;;;-1:-1:-1;3151:11:0;3160:2;3151:11;;:::i;:::-;;;3020:154;;17050:589;-1:-1:-1;;;;;17256:18:0;;17252:187;;17291:40;17323:7;17980:10;:17;;17953:24;;;;:15;:24;;;;;:44;;;18008:24;;;;;;;;;;;;17876:164;17291:40;17252:187;;;17361:2;-1:-1:-1;;;;;17353:10:0;:4;-1:-1:-1;;;;;17353:10:0;;17349:90;;17380:47;17413:4;17419:7;17380:32;:47::i;:::-;-1:-1:-1;;;;;17453:16:0;;17449:183;;17486:45;17523:7;17486:36;:45::i;17449:183::-;17559:4;-1:-1:-1;;;;;17553:10:0;:2;-1:-1:-1;;;;;17553:10:0;;17549:83;;17580:40;17608:2;17612:7;17580:27;:40::i;13166:321::-;13296:18;13302:2;13306:7;13296:5;:18::i;:::-;13347:54;13378:1;13382:2;13386:7;13395:5;13347:22;:54::i;:::-;13325:154;;;;-1:-1:-1;;;13325:154:0;;;;;;;:::i;14939:799::-;15094:4;-1:-1:-1;;;;;15115:13:0;;4186:20;4234:8;15111:620;;15151:72;;-1:-1:-1;;;15151:72:0;;-1:-1:-1;;;;;15151:36:0;;;;;:72;;8146:10;;15202:4;;15208:7;;15217:5;;15151:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15151:72:0;;;;;;;;-1:-1:-1;;15151:72:0;;;;;;;;;;;;:::i;:::-;;;15147:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15393:13:0;;15389:272;;15436:60;;-1:-1:-1;;;15436:60:0;;;;;;;:::i;15389:272::-;15611:6;15605:13;15596:6;15592:2;15588:15;15581:38;15147:529;-1:-1:-1;;;;;;15274:51:0;-1:-1:-1;;;15274:51:0;;-1:-1:-1;15267:58:0;;15111:620;-1:-1:-1;15715:4:0;14939:799;;;;;;:::o;18048:557::-;18142:22;18192:1;18167:22;18184:4;18167:16;:22::i;:::-;:26;;;;:::i;:::-;18204:18;18225:26;;;:17;:26;;;;;;18142:51;;-1:-1:-1;18268:28:0;;;18264:236;;-1:-1:-1;;;;;18335:18:0;;18313:19;18335:18;;;:12;:18;;;;;;;;:34;;;;;;;;;18386:30;;;;;;:44;;;18445:30;;:17;:30;;;;;:43;;;18264:236;-1:-1:-1;18519:26:0;;;;:17;:26;;;;;;;;18512:33;;;-1:-1:-1;;;;;18563:18:0;;;;;:12;:18;;;;;:34;;;;;;;18556:41;18048:557::o;18613:427::-;18722:10;:17;18697:22;;18722:21;;18742:1;;18722:21;:::i;:::-;18754:18;18775:24;;;:15;:24;;;;;;18834:10;:26;;18697:46;;-1:-1:-1;18775:24:0;;18697:46;;18834:26;;;;;;:::i;:::-;;;;;;;;;18812:48;;18898:11;18873:10;18884;18873:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;18920:28;;;:15;:28;;;;;;;:41;;;18981:24;;;;;18974:31;19016:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18684:356;;;18613:427;:::o;17647:221::-;17732:14;17749:20;17766:2;17749:16;:20::i;:::-;-1:-1:-1;;;;;17780:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;17825:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;17647:221:0:o;13495:382::-;-1:-1:-1;;;;;13575:16:0;;13567:61;;;;-1:-1:-1;;;13567:61:0;;18254:2:1;13567:61:0;;;18236:21:1;;;18273:18;;;18266:30;18332:34;18312:18;;;18305:62;18384:18;;13567:61:0;18052:356:1;13567:61:0;12622:4;12646:16;;;:7;:16;;;;;;-1:-1:-1;;;;;12646:16:0;:30;13639:58;;;;-1:-1:-1;;;13639:58:0;;18615:2:1;13639:58:0;;;18597:21:1;18654:2;18634:18;;;18627:30;18693;18673:18;;;18666:58;18741:18;;13639:58:0;18413:352:1;13639:58:0;13710:45;13739:1;13743:2;13747:7;13710:20;:45::i;:::-;-1:-1:-1;;;;;13768:13:0;;;;;;:9;:13;;;;;:18;;13785:1;;13768:13;:18;;13785:1;;13768:18;:::i;:::-;;;;-1:-1:-1;;13797:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;13797:21:0;-1:-1:-1;;;;;13797:21:0;;;;;;;;13836:33;;13797:16;;;13836:33;;13797:16;;13836:33;13495:382;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:131:1;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:118::-;678:5;671:13;664:21;657:5;654:32;644:60;;700:1;697;690:12;715:241;771:6;824:2;812:9;803:7;799:23;795:32;792:52;;;840:1;837;830:12;792:52;879:9;866:23;898:28;920:5;898:28;:::i;961:258::-;1033:1;1043:113;1057:6;1054:1;1051:13;1043:113;;;1133:11;;;1127:18;1114:11;;;1107:39;1079:2;1072:10;1043:113;;;1174:6;1171:1;1168:13;1165:48;;;-1:-1:-1;;1209:1:1;1191:16;;1184:27;961:258::o;1224:::-;1266:3;1304:5;1298:12;1331:6;1326:3;1319:19;1347:63;1403:6;1396:4;1391:3;1387:14;1380:4;1373:5;1369:16;1347:63;:::i;:::-;1464:2;1443:15;-1:-1:-1;;1439:29:1;1430:39;;;;1471:4;1426:50;;1224:258;-1:-1:-1;;1224:258:1:o;1487:220::-;1636:2;1625:9;1618:21;1599:4;1656:45;1697:2;1686:9;1682:18;1674:6;1656:45;:::i;1712:180::-;1771:6;1824:2;1812:9;1803:7;1799:23;1795:32;1792:52;;;1840:1;1837;1830:12;1792:52;-1:-1:-1;1863:23:1;;1712:180;-1:-1:-1;1712:180:1:o;2105:173::-;2173:20;;-1:-1:-1;;;;;2222:31:1;;2212:42;;2202:70;;2268:1;2265;2258:12;2202:70;2105:173;;;:::o;2283:254::-;2351:6;2359;2412:2;2400:9;2391:7;2387:23;2383:32;2380:52;;;2428:1;2425;2418:12;2380:52;2451:29;2470:9;2451:29;:::i;:::-;2441:39;2527:2;2512:18;;;;2499:32;;-1:-1:-1;;;2283:254:1:o;2724:328::-;2801:6;2809;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:52;;;2886:1;2883;2876:12;2838:52;2909:29;2928:9;2909:29;:::i;:::-;2899:39;;2957:38;2991:2;2980:9;2976:18;2957:38;:::i;:::-;2947:48;;3042:2;3031:9;3027:18;3014:32;3004:42;;2724:328;;;;;:::o;3057:186::-;3116:6;3169:2;3157:9;3148:7;3144:23;3140:32;3137:52;;;3185:1;3182;3175:12;3137:52;3208:29;3227:9;3208:29;:::i;3248:632::-;3419:2;3471:21;;;3541:13;;3444:18;;;3563:22;;;3390:4;;3419:2;3642:15;;;;3616:2;3601:18;;;3390:4;3685:169;3699:6;3696:1;3693:13;3685:169;;;3760:13;;3748:26;;3829:15;;;;3794:12;;;;3721:1;3714:9;3685:169;;;-1:-1:-1;3871:3:1;;3248:632;-1:-1:-1;;;;;;3248:632:1:o;3885:127::-;3946:10;3941:3;3937:20;3934:1;3927:31;3977:4;3974:1;3967:15;4001:4;3998:1;3991:15;4017:632;4082:5;4112:18;4153:2;4145:6;4142:14;4139:40;;;4159:18;;:::i;:::-;4234:2;4228:9;4202:2;4288:15;;-1:-1:-1;;4284:24:1;;;4310:2;4280:33;4276:42;4264:55;;;4334:18;;;4354:22;;;4331:46;4328:72;;;4380:18;;:::i;:::-;4420:10;4416:2;4409:22;4449:6;4440:15;;4479:6;4471;4464:22;4519:3;4510:6;4505:3;4501:16;4498:25;4495:45;;;4536:1;4533;4526:12;4495:45;4586:6;4581:3;4574:4;4566:6;4562:17;4549:44;4641:1;4634:4;4625:6;4617;4613:19;4609:30;4602:41;;;;4017:632;;;;;:::o;4654:451::-;4723:6;4776:2;4764:9;4755:7;4751:23;4747:32;4744:52;;;4792:1;4789;4782:12;4744:52;4832:9;4819:23;4865:18;4857:6;4854:30;4851:50;;;4897:1;4894;4887:12;4851:50;4920:22;;4973:4;4965:13;;4961:27;-1:-1:-1;4951:55:1;;5002:1;4999;4992:12;4951:55;5025:74;5091:7;5086:2;5073:16;5068:2;5064;5060:11;5025:74;:::i;5110:315::-;5175:6;5183;5236:2;5224:9;5215:7;5211:23;5207:32;5204:52;;;5252:1;5249;5242:12;5204:52;5275:29;5294:9;5275:29;:::i;:::-;5265:39;;5354:2;5343:9;5339:18;5326:32;5367:28;5389:5;5367:28;:::i;:::-;5414:5;5404:15;;;5110:315;;;;;:::o;5430:667::-;5525:6;5533;5541;5549;5602:3;5590:9;5581:7;5577:23;5573:33;5570:53;;;5619:1;5616;5609:12;5570:53;5642:29;5661:9;5642:29;:::i;:::-;5632:39;;5690:38;5724:2;5713:9;5709:18;5690:38;:::i;:::-;5680:48;;5775:2;5764:9;5760:18;5747:32;5737:42;;5830:2;5819:9;5815:18;5802:32;5857:18;5849:6;5846:30;5843:50;;;5889:1;5886;5879:12;5843:50;5912:22;;5965:4;5957:13;;5953:27;-1:-1:-1;5943:55:1;;5994:1;5991;5984:12;5943:55;6017:74;6083:7;6078:2;6065:16;6060:2;6056;6052:11;6017:74;:::i;:::-;6007:84;;;5430:667;;;;;;;:::o;6102:260::-;6170:6;6178;6231:2;6219:9;6210:7;6206:23;6202:32;6199:52;;;6247:1;6244;6237:12;6199:52;6270:29;6289:9;6270:29;:::i;:::-;6260:39;;6318:38;6352:2;6341:9;6337:18;6318:38;:::i;:::-;6308:48;;6102:260;;;;;:::o;6367:356::-;6569:2;6551:21;;;6588:18;;;6581:30;6647:34;6642:2;6627:18;;6620:62;6714:2;6699:18;;6367:356::o;6728:380::-;6807:1;6803:12;;;;6850;;;6871:61;;6925:4;6917:6;6913:17;6903:27;;6871:61;6978:2;6970:6;6967:14;6947:18;6944:38;6941:161;;;7024:10;7019:3;7015:20;7012:1;7005:31;7059:4;7056:1;7049:15;7087:4;7084:1;7077:15;6941:161;;6728:380;;;:::o;8353:413::-;8555:2;8537:21;;;8594:2;8574:18;;;8567:30;8633:34;8628:2;8613:18;;8606:62;-1:-1:-1;;;8699:2:1;8684:18;;8677:47;8756:3;8741:19;;8353:413::o;9183:127::-;9244:10;9239:3;9235:20;9232:1;9225:31;9275:4;9272:1;9265:15;9299:4;9296:1;9289:15;9315:128;9355:3;9386:1;9382:6;9379:1;9376:13;9373:39;;;9392:18;;:::i;:::-;-1:-1:-1;9428:9:1;;9315:128::o;9448:168::-;9488:7;9554:1;9550;9546:6;9542:14;9539:1;9536:21;9531:1;9524:9;9517:17;9513:45;9510:71;;;9561:18;;:::i;:::-;-1:-1:-1;9601:9:1;;9448:168::o;10001:245::-;10068:6;10121:2;10109:9;10100:7;10096:23;10092:32;10089:52;;;10137:1;10134;10127:12;10089:52;10169:9;10163:16;10188:28;10210:5;10188:28;:::i;10680:135::-;10719:3;-1:-1:-1;;10740:17:1;;10737:43;;;10760:18;;:::i;:::-;-1:-1:-1;10807:1:1;10796:13;;10680:135::o;10820:127::-;10881:10;10876:3;10872:20;10869:1;10862:31;10912:4;10909:1;10902:15;10936:4;10933:1;10926:15;13082:1527;13306:3;13344:6;13338:13;13370:4;13383:51;13427:6;13422:3;13417:2;13409:6;13405:15;13383:51;:::i;:::-;13497:13;;13456:16;;;;13519:55;13497:13;13456:16;13541:15;;;13519:55;:::i;:::-;13663:13;;13596:20;;;13636:1;;13723;13745:18;;;;13798;;;;13825:93;;13903:4;13893:8;13889:19;13877:31;;13825:93;13966:2;13956:8;13953:16;13933:18;13930:40;13927:167;;;-1:-1:-1;;;13993:33:1;;14049:4;14046:1;14039:15;14079:4;14000:3;14067:17;13927:167;14110:18;14137:110;;;;14261:1;14256:328;;;;14103:481;;14137:110;-1:-1:-1;;14172:24:1;;14158:39;;14217:20;;;;-1:-1:-1;14137:110:1;;14256:328;13029:1;13022:14;;;13066:4;13053:18;;14351:1;14365:169;14379:8;14376:1;14373:15;14365:169;;;14461:14;;14446:13;;;14439:37;14504:16;;;;14396:10;;14365:169;;;14369:3;;14565:8;14558:5;14554:20;14547:27;;14103:481;-1:-1:-1;14600:3:1;;13082:1527;-1:-1:-1;;;;;;;;;;;13082:1527:1:o;16249:125::-;16289:4;16317:1;16314;16311:8;16308:34;;;16322:18;;:::i;:::-;-1:-1:-1;16359:9:1;;16249:125::o;16379:414::-;16581:2;16563:21;;;16620:2;16600:18;;;16593:30;16659:34;16654:2;16639:18;;16632:62;-1:-1:-1;;;16725:2:1;16710:18;;16703:48;16783:3;16768:19;;16379:414::o;16798:127::-;16859:10;16854:3;16850:20;16847:1;16840:31;16890:4;16887:1;16880:15;16914:4;16911:1;16904:15;16930:120;16970:1;16996;16986:35;;17001:18;;:::i;:::-;-1:-1:-1;17035:9:1;;16930:120::o;17055:112::-;17087:1;17113;17103:35;;17118:18;;:::i;:::-;-1:-1:-1;17152:9:1;;17055:112::o;17172:489::-;-1:-1:-1;;;;;17441:15:1;;;17423:34;;17493:15;;17488:2;17473:18;;17466:43;17540:2;17525:18;;17518:34;;;17588:3;17583:2;17568:18;;17561:31;;;17366:4;;17609:46;;17635:19;;17627:6;17609:46;:::i;:::-;17601:54;17172:489;-1:-1:-1;;;;;;17172:489:1:o;17666:249::-;17735:6;17788:2;17776:9;17767:7;17763:23;17759:32;17756:52;;;17804:1;17801;17794:12;17756:52;17836:9;17830:16;17855:30;17879:5;17855:30;:::i;17920:127::-;17981:10;17976:3;17972:20;17969:1;17962:31;18012:4;18009:1;18002:15;18036:4;18033:1;18026:15
Swarm Source
ipfs://a5468a3816930d1637107c5b702dd7c8cf52ca31f05872518cce8fd41dd9a837
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.