ERC-20
Overview
Max Total Supply
0 BRICK
Holders
3
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
0 BRICKValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
E741V1Token
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-12-25 */ // free bricks take a few and share // t.me/partyhat //SPDX-License-Identifier: MIT pragma solidity ^0.8.24; // libraries to separate ERC20 and ERC721 events, and certain signature-specific functions // ERC20 events library libES20 { event Transfer(address indexed from, address indexed to, uint amount); event Approval(address indexed owner, address indexed spender, uint256 value); function emitTransfer(address _from, address _to, uint _amount) internal { emit Transfer(_from, _to, _amount); } function emitApproval(address _owner, address _spender, uint _value) internal { emit Approval(_owner, _spender, _value); } } // ERC721 events library libES721 { event Transfer(address indexed _from, address indexed _to, uint indexed _tokenId); event Approval(address indexed _owner, address indexed _approved, uint indexed _tokenId); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); function emitTransfer(address _from, address _to, uint _tokenId) internal { emit Transfer(_from, _to, _tokenId); } function emitApproval(address _owner, address _approve, uint _tokenId) internal { emit Approval(_owner, _approve, _tokenId); } function emitApprovalForAll(address _owner, address _operator, bool _approved) internal { emit ApprovalForAll(_owner, _operator, _approved); } } // ERC165 https://eips.ethereum.org/EIPS/eip-721 interface IERC165 { function supportsInterface(bytes4 interfaceID) external view returns (bool); } // ERC20 https://eips.ethereum.org/EIPS/eip-20 interface IERC20 { function balanceOf(address account) external view returns (uint256); function totalSupply() external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function decimals() external view returns (uint); } // ERC721 https://eips.ethereum.org/EIPS/eip-721 interface IERC721 is IERC165 { function balanceOf(address account) external view returns (uint256); function ownerOf(uint256 _tokenId) external view returns (address); function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) external payable; function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; function setApprovalForAll(address _operator, bool _approved) external; function getApproved(uint256 _tokenId) external view returns (address); function isApprovedForAll(address _owner, address _operator) external view returns (bool); // payable removed for erc20 etherscan compatibility function approve(address spender, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); } interface IE741 is IERC20, IERC721 { // supportsInterface 0x5a46575f // library transfers can not be included in the interface // incorporate them directly with library // libES20.Transfer // libES20.Approval // libES721.Transfer // libES721.Approval // libES721.ApprovalForAll function balanceOf(address account) external override(IERC20, IERC721) view returns (uint256); function approve(address spender, uint256 value) external override(IERC20, IERC721) returns (bool); function transferFrom(address from, address to, uint256 value) external override(IERC20, IERC721) returns (bool); } interface IERC721Metadata { function name() external view returns (string memory _name); function symbol() external view returns (string memory _symbol); function tokenURI(uint256 _tokenId) external view returns (string memory); } interface IERC7572 { function contractURI() external view returns (string memory); event ContractURIUpdated(); } interface IERC20Metadata { function name() external view returns (string memory _name); function symbol() external view returns (string memory _symbol); function tokenURI(uint256 _tokenId) external view returns (string memory); } interface IDevable { function initialize(bytes memory encodedParameters) external returns (address); function dev() external returns (address dev); function setContractURI(string memory newContractURI) external; function setBaseURI(string memory newBaseURI) external; function changeDev(address newDev) external; function toggelNFTinterface() external; function setExtension(string memory newExtension) external; function setTelegram(string memory newTelegram) external; function setSkipMintingGlobal(bool newSkipMintingGlobal) external; } // ERC721 Token Receiver https://eips.ethereum.org/EIPS/eip-721 interface IERC721TokenReceiver { function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes memory _data) external returns(bytes4); } contract ERC721TokenReceiver is IERC721TokenReceiver { function onERC721Received(address, address, uint256, bytes memory) external virtual returns(bytes4) { return IERC721TokenReceiver.onERC721Received.selector; } } abstract contract E741V1Base is IDevable, ERC721TokenReceiver, IE741 { address public constant BROKEN_ADDRESS = address(0x5e7ec); address public constant DEPOSIT_ADDRESS = address(0x0); address public constant MINT_ADDRESS = address(0x0); string public baseURI; string internal _contractURI; string public extension; string public telegram; string internal _name; string internal _symbol; uint internal _decimals; uint internal _totalIds; uint internal _totalSupply; uint internal ONE; // 1.0 token(s) uint internal MAXID; // e.g. 1.00000001 : 1.00007777 is the range for NFT IDs uint64 public minted; // number of unique ID mints + ONE address public dev; bool public supportsNFTinterface; bool public skipMintingGlobal = false; mapping(address => mapping(address => bool)) private _operatorApprovals; mapping(address => mapping(address => uint)) internal _allowance; mapping(uint256 tokenId => address) public ownerOf; mapping(uint256 => address) private _nftApprovals; mapping(address => uint) internal _balanceOf; mapping(address => uint64[]) public ownedNFTs; // broken NFTs stored in limbo list are at ownedNFTs[BROKEN_ADDRESS] mapping(uint64 => uint256) internal idToIndex; mapping(address => bool) internal skipMintingUser; error UnsupportedReceiver(); modifier onlyDev() { require(msg.sender == dev, "Not the developer"); _; } constructor() { dev = msg.sender; } function initialize(bytes memory encodedParameters) public override virtual returns (address underlyingToken); function name() public view virtual returns (string memory) { return _name; } function symbol() public view virtual returns (string memory) { return _symbol; } function decimals() public view virtual returns (uint) { return _decimals; } function totalSupply() public view virtual returns (uint) { return _totalSupply; } function maxSupply() public view virtual returns (uint) { return _totalIds * ONE; } function balanceOf( address account) public view override returns (uint) { return _balanceOf[account]; } function allowance(address owner, address spender) public view override returns (uint) { return _allowance[owner][spender]; } function setBaseURI(string memory newBaseURI) public onlyDev override {baseURI = newBaseURI;} function setContractURI(string memory newContractURI) public onlyDev override virtual {_contractURI = newContractURI; emit IERC7572.ContractURIUpdated();} function setExtension(string memory newExtension) public onlyDev override virtual {extension = newExtension;} function setTelegram(string memory newTelegram) public onlyDev virtual {telegram = newTelegram;} function changeDev(address newDev) public onlyDev override {dev = newDev;}//simple function to change developer address, or revoke ownership (with address(0)) // @DEV toggleNFTinterface is for the small possibility of frontend system changes leading the contract to favor enabling the disabled supportsNFTinterface flag // don't waste it, as frontends don't typically change classification of contracts // probably never to be used. function toggelNFTinterface() public onlyDev override {supportsNFTinterface = !supportsNFTinterface;} function tokensOfOwner(address owner) public view returns (uint64[] memory){return ownedNFTs[owner];} function nftBalanceOf(address account) public view returns (uint) {return ownedNFTs[account].length;} function contractURI() public view virtual returns (string memory) {return _contractURI;} function setSkipMintingGlobal(bool newSkipMintingGlobal) public override virtual onlyDev { skipMintingGlobal = newSkipMintingGlobal; } function setSkipMinting(bool newSkipMinting) public virtual { skipMintingUser[msg.sender] = newSkipMinting; } function approve(address spender, uint amount) public override returns (bool) { // if the amount is greater than one token, and within range of IDs for NFTs // then set NFT approval for the given ID if(amount >= ONE && amount <= MAXID) { address owner = ownerOf[amount]; // getting the owner of token ID via the `amount` input if (msg.sender != owner && !isApprovedForAll(owner, msg.sender)) revert("E741: You are not approved"); _nftApprovals[amount] = spender; // calling nft approval for the token and spender libES721.emitApproval(owner, spender, amount); return true; } // else set the ERC20 allowance // the NFT ID range being set within a limited subset of ONE token(s) // allows for non-clashing interactions _allowance[msg.sender][spender] = amount; libES20.emitApproval(msg.sender, spender, amount); return true; } function _transfer741(address from, address to, uint amount) internal virtual { require(_balanceOf[from] >= amount, "E741: transfer amount exceeds balance"); // checking the decimal amount of tokens owned before transaction for both participants uint256 fromDecimalsPre = _balanceOf[from] % ONE; uint256 toDecimalsPre = _balanceOf[to] % ONE; // simple erc20 balance operations _transfer20(from, to, amount); // checking the decimal amount of tokens after transaction for both partcipants uint256 fromDecimalsPost = _balanceOf[from] % ONE; uint256 toDecimalsPost = _balanceOf[to] % ONE; // stores the NFT IDs owned by `from`, enabling NFT management for that address. uint64[] storage ownedNFTsArray = ownedNFTs[from]; // references NFTs marked as "broken", tracking these special state NFTs. uint64[] storage brokenIDsArray = ownedNFTs[BROKEN_ADDRESS]; // if sender has higher decimal count after transaction, then they "roll under" and break an NFT if (fromDecimalsPre < fromDecimalsPost) { if(ownedNFTsArray.length > 0) { // if the sender has an nft to send //pushes the last nft in the owned list into the "broken list" for limbo NFTs _transfer721Pop(from, BROKEN_ADDRESS, ownedNFTsArray); //transfers the NFT ID ownership to BROKEN address for stewardship } } // if receiver has lower decimal count after transaction then they "roll over" and will "remake" an nft if (toDecimalsPre > toDecimalsPost) { if(brokenIDsArray.length > 0) { // recover an id from broken list _transfer721Pop(BROKEN_ADDRESS, to, brokenIDsArray); } else { // mint new id _mint(to); } } // amount of tokens - amount of whole tokens being processed in int uint amountInTokens = amount / ONE; uint len = ownedNFTsArray.length; //len is the length, or number of NFTs in the addresses's owned array // ignore minting nfts from dev when they call -- this allows for gas-efficient team operations // @DEV if dev gathers NFTs, use the ERC721 transferFrom method to extract // @DEV be careful, don't let the wallet fall to some convoluted transferFrom scam to do something unexpected if(skipMintingGlobal || from == DEPOSIT_ADDRESS || skipMintingUser[to] || skipMintingUser[from] || from == dev) { // When skipping minting the nft holder can only send out the tokens they hold (reduce gas) amountInTokens = amountInTokens < len ? amountInTokens : len; } if(amountInTokens > 0) { len = amountInTokens < len ? amountInTokens : len; // transfers owned NFTs from `from` to `to` until either all are transferred or the desired amount is reached // Subtracts transferred NFT count from `amountInTokens` to update remaining transfers for (uint i = 0; i < len; i++) { _transfer721Pop(from, to, ownedNFTsArray); } amountInTokens -= len; len = brokenIDsArray.length; len = amountInTokens < len ? amountInTokens : len; // recovers NFTs from the broken state to `to`, or mints new ones if not enough broken NFTs are available // if any tokens remain to be allocated, it mints new NFTs to `to` for the remaining balance for (uint i = 0; i < len; i++) { _transfer721Pop(BROKEN_ADDRESS, to, brokenIDsArray); } _mintBatch(to, amountInTokens - len); } } function _mintBatch(address to, uint256 amount) internal virtual { if(amount == 0) return; // Exit if no NFTs to mint if(amount == 1) { // Optimize single mint process _mint(to); return; } uint64 id = minted; // Start ID from last minted value uint256 ownedLen = ownedNFTs[to].length; // Current number of NFTs owned by 'to' for(uint i = 0; i < amount;) { unchecked { id++; // Increment ID for each new NFT } ownerOf[id] = to; // Assign new NFT to owner. idToIndex[id] = ownedLen; // Map NFT ID to its index in owner's array ownedNFTs[to].push(id); // Add new NFT ID to owner's list libES721.emitTransfer(MINT_ADDRESS, to, id); // Emit NFT transfer event unchecked { ownedLen++; // Increment count of owned NFTs i++; // Move to next NFT } } unchecked { minted += uint64(amount); // Update total minted count } } function _mint(address to) internal virtual returns(uint64 tokenId){ unchecked { minted++; // Increment the total number of minted tokens } tokenId = minted; // Assign the newly minted token ID ownerOf[tokenId] = to; // Set ownership of the new token to 'to' idToIndex[tokenId] = ownedNFTs[to].length; // Map the new token ID to its index in the owner's list ownedNFTs[to].push(tokenId); // Add the new token ID to the owner's list of owned tokens libES721.emitTransfer(MINT_ADDRESS, to, tokenId); // Emit an event for the token transfer } // Updates the mappings and arrays managing ownership and index of NFTs after a transfer function _updateOwnedNFTs(address from, address to, uint64 tokenId) internal { uint256 index = idToIndex[tokenId]; // Get current index of the token in the owner's list uint64[] storage nftArray = ownedNFTs[from]; // Reference to the list of NFTs owned by 'from' uint256 len = nftArray.length; // Current number of NFTs owned by 'from' uint64 lastTokenId = nftArray[len - 1]; // Last token in the 'from' array to swap with transferred token nftArray[index] = lastTokenId; // Replace the transferred token with the last token in the array nftArray.pop(); // Remove the last element, effectively deleting the transferred token from 'from' if(len - 1 != 0){ idToIndex[lastTokenId] = index; // Update the index of the swapped token } ownedNFTs[to].push(tokenId); // Add the transferred token to the 'to' array idToIndex[tokenId] = ownedNFTs[to].length - 1; // Update the index mapping for the transferred token } // Executes a simple ERC20 token transfer. function _transfer20(address from, address to, uint256 amount) internal { _balanceOf[from] -= amount; // Deduct the amount from the sender's balance unchecked { _balanceOf[to] += amount; // Add the amount to the recipient's balance } libES20.emitTransfer(from, to, amount); // Emit an ERC20 transfer event } // Handles the transfer of an ERC721 token, ensuring proper ownership and event emission function _transfer721(address from, address to, uint64 tokenId) internal virtual { require(from == ownerOf[tokenId], "E741: Incorrect owner"); // Ensure 'from' is the current owner delete _nftApprovals[tokenId]; // Clear any approvals for this token ownerOf[tokenId] = to; // Transfer ownership of the token to 'to' _updateOwnedNFTs(from, to, tokenId); // Update ownership tracking structures libES721.emitTransfer(from, to, tokenId); // Emit an ERC721 transfer event } // Handles the transfer of an ERC721 token, ensuring proper ownership and event emission function _transfer721Pop(address from, address to, uint64[] storage nftArray) internal virtual { uint64 tokenId = nftArray[nftArray.length - 1]; delete _nftApprovals[tokenId]; // Clear any approvals for this token ownerOf[tokenId] = to; // Transfer ownership of the token to 'to' // update owned nfts pop edition nftArray.pop(); // Remove the last element, effectively deleting the transferred token from 'from' ownedNFTs[to].push(tokenId); // Add the transferred token to the 'to' array idToIndex[tokenId] = ownedNFTs[to].length - 1; // Update the index mapping for the transferred token libES721.emitTransfer(from, to, tokenId); // Emit an ERC721 transfer event } // only erc20 calls this // if amount is a token id owned my the caller send as an NFT // else transfer741 function transfer(address to, uint amount) public override returns (bool) { if(ownerOf[amount] == msg.sender) { _transfer721(msg.sender, to, uint64(amount)); _transfer20(msg.sender, to, ONE); return true; } _transfer741(msg.sender, to, amount); return true; } // erc20 and erc721 call this function transferFrom(address from, address to, uint amount) public override returns (bool) { //if amount is within the NFT id range, then a simple NFT transfer + token amount (ONE) if(amount >= ONE && amount <= MAXID) { require( //require from is the msg caller, or that caller is approved for that specific NFT, or all NFTs msg.sender == from || msg.sender == getApproved(amount) || isApprovedForAll(from, msg.sender), "E741: You don't have the right" ); _transfer721(from, to, uint64(amount)); _transfer20(from, to, ONE); return true; } _spendAllowance(from, msg.sender, amount); _transfer741(from, to, amount); return true; } // erc721 function safeTransferFrom(address from, address to, uint256 tokenId) public payable override { require( msg.sender == from || msg.sender == getApproved(tokenId) || isApprovedForAll(from, msg.sender), "E741: You don't have the right" ); _transfer721(from, to, uint64(tokenId)); _transfer20(from, to, ONE); if ( to.code.length != 0 && IERC721TokenReceiver(to).onERC721Received(msg.sender, from, tokenId, "") != IERC721TokenReceiver.onERC721Received.selector ) { revert UnsupportedReceiver(); } } // erc721 function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) public payable override { require( msg.sender == from || msg.sender == getApproved(tokenId) || isApprovedForAll(from, msg.sender), "E741: You don't have the right" ); _transfer721(from, to, uint64(tokenId)); _transfer20(from, to, ONE); if ( to.code.length != 0 && IERC721TokenReceiver(to).onERC721Received(msg.sender, from, tokenId, data) != IERC721TokenReceiver.onERC721Received.selector ) { revert UnsupportedReceiver(); } } function _spendAllowance(address owner, address spender, uint amount) internal virtual { require(_allowance[owner][spender] >= amount, "E741: insufficient allowance"); _allowance[owner][spender] -= amount; } function getApproved(uint256 tokenId) public view override returns (address) { if (ownerOf[tokenId] == address(0)) revert(); return _nftApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public override { _operatorApprovals[msg.sender][operator] = approved; libES721.emitApprovalForAll(msg.sender, operator, approved); } function isApprovedForAll(address owner, address operator) public view override returns (bool) { return _operatorApprovals[owner][operator]; } function tokenURI(uint256 tokenId) public view virtual returns (string memory) { require(tokenId <= MAXID, "E741: invalid id"); if (bytes(baseURI).length == 0) {return "";} return string(abi.encodePacked(baseURI, toString(tokenId - ONE), extension)); } 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(value % 10) + 48); value /= 10;} return string(buffer); } function supportsInterface(bytes4 interfaceId) public view override returns (bool) { return // Even though we support ERC721 and should return true, etherscan wants to treat us as ERC721 instead of ERC20 // @DEV ERC165 for ERC721 can be toggled on for reasons of frontend/dapp/script implementations, but is very specific (supportsNFTinterface && interfaceId == 0x80ac58cd) || // ERC165 interface ID for ERC721 interfaceId == 0x01ffc9a7 || // ERC165 interface ID for ERC165 interfaceId == 0x36372b07 || // ERC165 interface ID for ERC20 interfaceId == 0x150b7a02 || // ERC165 interface ID for IERC721TokenReceiver interfaceId == 0x5a46575f; // ERC165 interface ID for IE741 } } contract E741V1Token is E741V1Base { constructor( string memory name_, string memory symbol_, uint decimals_, string memory baseURI_, string memory contractURI_, uint totalIds_ ) { // Pack parameters into bytes bytes memory encodedParameters = abi.encode( name_, symbol_, decimals_, baseURI_, contractURI_, totalIds_ ); // Call existing initialize function initialize(encodedParameters); } function initialize(bytes memory encodedParameters) public override returns (address) { require(_decimals == 0, "Already initialized"); (_name, _symbol, _decimals, baseURI, _contractURI, _totalIds) = abi.decode(encodedParameters, (string,string,uint,string,string,uint)); ONE = 10 ** _decimals; MAXID = ONE + _totalIds; minted = uint64(ONE); // start minting from ID ONE so you start with ID 1 require(ONE > _totalIds, "Not enough decimals for NFT count"); return address(0); } function mint() public { require((minted + 1) <= MAXID, "mint cap reached"); _mint(msg.sender); _balanceOf[msg.sender] += ONE; } function totalSupply() public view override virtual returns (uint) { return _totalSupply; } }
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":"uint256","name":"decimals_","type":"uint256"},{"internalType":"string","name":"baseURI_","type":"string"},{"internalType":"string","name":"contractURI_","type":"string"},{"internalType":"uint256","name":"totalIds_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"UnsupportedReceiver","type":"error"},{"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":"_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":[],"name":"ContractURIUpdated","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":"amount","type":"uint256"}],"name":"Transfer","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":[],"name":"BROKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPOSIT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINT_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newDev","type":"address"}],"name":"changeDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extension","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"bytes","name":"encodedParameters","type":"bytes"}],"name":"initialize","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","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":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minted","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"nftBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownedNFTs","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"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":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","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":"payable","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":"newBaseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newContractURI","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newExtension","type":"string"}],"name":"setExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newSkipMinting","type":"bool"}],"name":"setSkipMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newSkipMintingGlobal","type":"bool"}],"name":"setSkipMintingGlobal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newTelegram","type":"string"}],"name":"setTelegram","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"skipMintingGlobal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supportsNFTinterface","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":"telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggelNFTinterface","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"internalType":"uint64[]","name":"","type":"uint64[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600b805460ff60e81b1916905534801561001c575f80fd5b5060405161303638038061303683398101604081905261003b91610297565b600b8054600160401b600160e01b0319163368010000000000000000021790556040515f9061007890889088908890889088908890602001610396565b60408051601f198184030181529190529050610093816100a0565b5050505050505050610658565b5f6006545f146100f75760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a65640000000000000000000000000060448201526064015b60405180910390fd5b8180602001905181019061010b9190610297565b600781905560045f600581600681808060016101278b82610480565b5061013490508a82610480565b5050889055506101448882610480565b5061015190508782610480565b50505050505050600654600a6101679190610633565b600981905560075461017891610645565b600a55600954600b80546001600160401b0319166001600160401b038316179055600754106101f35760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820646563696d616c7320666f72204e465420636f756e6044820152601d60fa1b60648201526084016100ee565b505f919050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011261021d575f80fd5b81516001600160401b03811115610236576102366101fa565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610264576102646101fa565b60405281815283820160200185101561027b575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f805f8060c087890312156102ac575f80fd5b86516001600160401b038111156102c1575f80fd5b6102cd89828a0161020e565b602089015190975090506001600160401b038111156102ea575f80fd5b6102f689828a0161020e565b604089015160608a0151919750955090506001600160401b0381111561031a575f80fd5b61032689828a0161020e565b608089015190945090506001600160401b03811115610343575f80fd5b61034f89828a0161020e565b9250505f60a08801519050809150509295509295509295565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60c081525f6103a860c0830189610368565b82810360208401526103ba8189610368565b905086604084015282810360608401526103d48187610368565b905082810360808401526103e88186610368565b9150508260a0830152979650505050505050565b600181811c9082168061041057607f821691505b60208210810361042e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561047b57805f5260205f20601f840160051c810160208510156104595750805b601f840160051c820191505b81811015610478575f8155600101610465565b50505b505050565b81516001600160401b03811115610499576104996101fa565b6104ad816104a784546103fc565b84610434565b6020601f8211600181146104df575f83156104c85750848201515b5f19600385901b1c1916600184901b178455610478565b5f84815260208120601f198516915b8281101561050e57878501518255602094850194600190920191016104ee565b508482101561052b57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156105895780850481111561056d5761056d61053a565b600184161561057b57908102905b60019390931c928002610552565b935093915050565b5f8261059f5750600161062d565b816105ab57505f61062d565b81600181146105c157600281146105cb576105e7565b600191505061062d565b60ff8411156105dc576105dc61053a565b50506001821b61062d565b5060208310610133831016604e8410600b841016171561060a575081810a61062d565b6106165f19848461054e565b805f19048211156106295761062961053a565b0290505b92915050565b5f61063e8383610591565b9392505050565b8082018082111561062d5761062d61053a565b6129d1806106655f395ff3fe608060405260043610610254575f3560e01c80636bcef9a61161013f578063a9059cbb116100b3578063dd62ed3e11610078578063dd62ed3e14610713578063e8a3d48514610757578063e8e81fe41461076b578063e985e9c51461078a578063f835ab00146107a9578063ff0d2c2614610478575f80fd5b8063a9059cbb1461068e578063b3720c34146106ad578063b88d4fde146106cd578063c87b56dd146106e0578063d5abeb01146106ff575f80fd5b806388a8c95c1161010457806388a8c95c146105d757806391cca3db146105f6578063938e3d7b1461061c57806395d89b411461063b578063a22cb4651461064f578063a563833b1461066e575f80fd5b80636bcef9a6146105305780636c0360eb1461054457806370a08231146105585780637e2285aa1461058c5780638462151c146105ab575f80fd5b80632d5537b0116101d6578063466c35fc1161019b578063466c35fc1461047857806347ecb6651461048b5780634f02c4201461049f57806355f804b3146104be5780636352211e146104dd5780636a21f8e114610511575f80fd5b80632d5537b0146104085780632ff3a2421461041c578063313ce5671461043257806342842e0e14610446578063439fab9114610459575f80fd5b80631249c58b1161021c5780631249c58b14610345578063150b7a021461035b57806318160ddd1461039e5780631a72b87d146103b257806323b872dd146103e9575f80fd5b806301ffc9a71461025857806306fdde031461028c578063081812fc146102ad578063095ea7b3146102e45780630e313e9814610303575b5f80fd5b348015610263575f80fd5b506102776102723660046120ad565b6107e2565b60405190151581526020015b60405180910390f35b348015610297575f80fd5b506102a061087f565b60405161028391906120f6565b3480156102b8575f80fd5b506102cc6102c7366004612108565b61090f565b6040516001600160a01b039091168152602001610283565b3480156102ef575f80fd5b506102776102fe366004612135565b610949565b34801561030e575f80fd5b5061033761031d36600461215d565b6001600160a01b03165f9081526011602052604090205490565b604051908152602001610283565b348015610350575f80fd5b50610359610a57565b005b348015610366575f80fd5b50610385610375366004612239565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610283565b3480156103a9575f80fd5b50600854610337565b3480156103bd575f80fd5b506103d16103cc366004612135565b610aed565b6040516001600160401b039091168152602001610283565b3480156103f4575f80fd5b5061027761040336600461229c565b610b34565b348015610413575f80fd5b506102a0610beb565b348015610427575f80fd5b506102cc6205e7ec81565b34801561043d575f80fd5b50600654610337565b61035961045436600461229c565b610c77565b348015610464575f80fd5b506102cc6104733660046122d6565b610db6565b348015610483575f80fd5b506102cc5f81565b348015610496575f80fd5b506102a0610f02565b3480156104aa575f80fd5b50600b546103d1906001600160401b031681565b3480156104c9575f80fd5b506103596104d8366004612307565b610f0f565b3480156104e8575f80fd5b506102cc6104f7366004612108565b600e6020525f90815260409020546001600160a01b031681565b34801561051c575f80fd5b5061035961052b36600461235a565b610f4f565b34801561053b575f80fd5b50610359610f9e565b34801561054f575f80fd5b506102a0610ff0565b348015610563575f80fd5b5061033761057236600461215d565b6001600160a01b03165f9081526010602052604090205490565b348015610597575f80fd5b506103596105a6366004612307565b610ffc565b3480156105b6575f80fd5b506105ca6105c536600461215d565b611039565b6040516102839190612373565b3480156105e2575f80fd5b506103596105f136600461215d565b6110d3565b348015610601575f80fd5b50600b546102cc90600160401b90046001600160a01b031681565b348015610627575f80fd5b50610359610636366004612307565b611135565b348015610646575f80fd5b506102a061119e565b34801561065a575f80fd5b506103596106693660046123be565b6111ad565b348015610679575f80fd5b50600b5461027790600160e01b900460ff1681565b348015610699575f80fd5b506102776106a8366004612135565b6111e6565b3480156106b8575f80fd5b50600b5461027790600160e81b900460ff1681565b6103596106db366004612239565b611230565b3480156106eb575f80fd5b506102a06106fa366004612108565b61135d565b34801561070a575f80fd5b5061033761140c565b34801561071e575f80fd5b5061033761072d3660046123ef565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b348015610762575f80fd5b506102a0611422565b348015610776575f80fd5b50610359610785366004612307565b611431565b348015610795575f80fd5b506102776107a43660046123ef565b61146e565b3480156107b4575f80fd5b506103596107c336600461235a565b335f908152601360205260409020805460ff1916911515919091179055565b600b545f90600160e01b900460ff16801561080d57506380ac58cd60e01b6001600160e01b03198316145b8061082857506301ffc9a760e01b6001600160e01b03198316145b8061084357506336372b0760e01b6001600160e01b03198316145b8061085e5750630a85bd0160e11b6001600160e01b03198316145b806108795750635a46575f60e01b6001600160e01b03198316145b92915050565b60606004805461088e90612417565b80601f01602080910402602001604051908101604052809291908181526020018280546108ba90612417565b80156109055780601f106108dc57610100808354040283529160200191610905565b820191905f5260205f20905b8154815290600101906020018083116108e857829003601f168201915b5050505050905090565b5f818152600e60205260408120546001600160a01b031661092e575f80fd5b505f908152600f60205260409020546001600160a01b031690565b5f600954821015801561095e5750600a548211155b15610a1e575f828152600e60205260409020546001600160a01b0316338114801590610991575061098f813361146e565b155b156109e35760405162461bcd60e51b815260206004820152601a60248201527f453734313a20596f7520617265206e6f7420617070726f76656400000000000060448201526064015b60405180910390fd5b5f838152600f6020526040902080546001600160a01b0319166001600160a01b038616179055610a1481858561149b565b6001915050610879565b335f818152600d602090815260408083206001600160a01b03881684529091529020839055610a4e9084846114e1565b50600192915050565b600a54600b54610a71906001600160401b03166001612463565b6001600160401b03161115610abb5760405162461bcd60e51b815260206004820152601060248201526f1b5a5b9d0818d85c081c995858da195960821b60448201526064016109da565b610ac433611533565b50600954335f9081526010602052604081208054909190610ae6908490612482565b9091555050565b6011602052815f5260405f208181548110610b06575f80fd5b905f5260205f209060049182820401919006600802915091509054906101000a90046001600160401b031681565b5f6009548210158015610b495750600a548211155b15610bca57336001600160a01b0385161480610b7e5750610b698261090f565b6001600160a01b0316336001600160a01b0316145b80610b8e5750610b8e843361146e565b610baa5760405162461bcd60e51b81526004016109da90612495565b610bb58484846115e0565b610bc284846009546116ae565b506001610be4565b610bd5843384611702565b610be08484846117b6565b5060015b9392505050565b60028054610bf890612417565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2490612417565b8015610c6f5780601f10610c4657610100808354040283529160200191610c6f565b820191905f5260205f20905b815481529060010190602001808311610c5257829003601f168201915b505050505081565b336001600160a01b0384161480610ca75750610c928161090f565b6001600160a01b0316336001600160a01b0316145b80610cb75750610cb7833361146e565b610cd35760405162461bcd60e51b81526004016109da90612495565b610cde8383836115e0565b610ceb83836009546116ae565b6001600160a01b0382163b15801590610d935750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af1158015610d62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8691906124cc565b6001600160e01b03191614155b15610db1576040516301d6c93560e61b815260040160405180910390fd5b505050565b5f6006545f14610dfe5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016109da565b81806020019051810190610e129190612534565b600781905560045f60058160068180806001610e2e8b8261264c565b50610e3b90508a8261264c565b505088905550610e4b888261264c565b50610e589050878261264c565b50505050505050600654600a610e6e91906127da565b6009819055600754610e7f91612482565b600a55600954600b805467ffffffffffffffff19166001600160401b03831617905560075410610efb5760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820646563696d616c7320666f72204e465420636f756e6044820152601d60fa1b60648201526084016109da565b505f919050565b60038054610bf890612417565b600b54600160401b90046001600160a01b03163314610f405760405162461bcd60e51b81526004016109da906127e5565b5f610f4b828261264c565b5050565b600b54600160401b90046001600160a01b03163314610f805760405162461bcd60e51b81526004016109da906127e5565b600b8054911515600160e81b0260ff60e81b19909216919091179055565b600b54600160401b90046001600160a01b03163314610fcf5760405162461bcd60e51b81526004016109da906127e5565b600b805460ff60e01b198116600160e01b9182900460ff1615909102179055565b5f8054610bf890612417565b600b54600160401b90046001600160a01b0316331461102d5760405162461bcd60e51b81526004016109da906127e5565b6002610f4b828261264c565b6001600160a01b0381165f908152601160209081526040918290208054835181840281018401909452808452606093928301828280156110c757602002820191905f5260205f20905f905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116110845790505b50505050509050919050565b600b54600160401b90046001600160a01b031633146111045760405162461bcd60e51b81526004016109da906127e5565b600b80546001600160a01b03909216600160401b0268010000000000000000600160e01b0319909216919091179055565b600b54600160401b90046001600160a01b031633146111665760405162461bcd60e51b81526004016109da906127e5565b6001611172828261264c565b506040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a150565b60606005805461088e90612417565b335f818152600c602090815260408083206001600160a01b03871684529091529020805460ff1916831515179055610f4b908383611aa8565b5f818152600e6020526040812054336001600160a01b0390911603611225576112103384846115e0565b61121d33846009546116ae565b506001610879565b610a4e3384846117b6565b336001600160a01b0385161480611260575061124b8261090f565b6001600160a01b0316336001600160a01b0316145b806112705750611270843361146e565b61128c5760405162461bcd60e51b81526004016109da90612495565b6112978484846115e0565b6112a484846009546116ae565b6001600160a01b0383163b158015906113395750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906112ec903390899088908890600401612810565b6020604051808303815f875af1158015611308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132c91906124cc565b6001600160e01b03191614155b15611357576040516301d6c93560e61b815260040160405180910390fd5b50505050565b6060600a548211156113a45760405162461bcd60e51b815260206004820152601060248201526f114dcd0c4e881a5b9d985b1a59081a5960821b60448201526064016109da565b5f80546113b090612417565b90505f036113cb57505060408051602081019091525f815290565b5f6113e2600954846113dd919061284c565b611aef565b60026040516020016113f6939291906128cd565b6040516020818303038152906040529050919050565b5f60095460075461141d91906128f1565b905090565b60606001805461088e90612417565b600b54600160401b90046001600160a01b031633146114625760405162461bcd60e51b81526004016109da906127e5565b6003610f4b828261264c565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205460ff1690565b80826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152691815260200190565b60405180910390a3505050565b600b805467ffffffffffffffff19811660016001600160401b03928316810183169182179093555f818152600e6020908152604080832080546001600160a01b0319166001600160a01b03891690811790915583526011808352818420805486865260128552928520839055908352958101865594825281206004850401805460039095166008026101000a93840219909416928202929092179092556115db908383611bf3565b919050565b6001600160401b0381165f908152600e60205260409020546001600160a01b0384811691161461164a5760405162461bcd60e51b8152602060048201526015602482015274229b9a189d1024b731b7b93932b1ba1037bbb732b960591b60448201526064016109da565b6001600160401b0381165f908152600f6020908152604080832080546001600160a01b0319908116909155600e90925290912080549091166001600160a01b03841617905561169a838383611c39565b610db18383836001600160401b0316611bf3565b6001600160a01b0383165f90815260106020526040812080548392906116d590849061284c565b90915550506001600160a01b0382165f908152601060205260409020805482019055610db1838383611def565b6001600160a01b038084165f908152600d60209081526040808320938616835292905220548111156117765760405162461bcd60e51b815260206004820152601c60248201527f453734313a20696e73756666696369656e7420616c6c6f77616e63650000000060448201526064016109da565b6001600160a01b038084165f908152600d60209081526040808320938616835292905290812080548392906117ac90849061284c565b9091555050505050565b6001600160a01b0383165f9081526010602052604090205481111561182b5760405162461bcd60e51b815260206004820152602560248201527f453734313a207472616e7366657220616d6f756e7420657863656564732062616044820152646c616e636560d81b60648201526084016109da565b6009546001600160a01b0384165f9081526010602052604081205490916118519161291c565b6009546001600160a01b0385165f908152601060205260408120549293509161187a919061291c565b90506118878585856116ae565b6009546001600160a01b0386165f9081526010602052604081205490916118ad9161291c565b6009546001600160a01b0387165f90815260106020526040812054929350916118d6919061291c565b6001600160a01b0388165f9081526011602052604081206205e7ec9091529091507f1b6e7c417ed9cfc24ca11cc87b3bdb69a80c713b279159d52af44c081e616a17838610156119355781541561193557611935896205e7ec84611e34565b8285111561196257805415611957576119526205e7ec8983611e34565b611962565b61196088611533565b505b5f60095488611971919061292f565b8354600b5491925090600160e81b900460ff168061199657506001600160a01b038b16155b806119b857506001600160a01b038a165f9081526013602052604090205460ff165b806119da57506001600160a01b038b165f9081526013602052604090205460ff165b806119f95750600b546001600160a01b038c8116600160401b90920416145b15611a1057808210611a0b5780611a0d565b815b91505b8115611a9b57808210611a235780611a25565b815b90505f5b81811015611a4457611a3c8c8c87611e34565b600101611a29565b50611a4f818361284c565b83549092509050808210611a635780611a65565b815b90505f5b81811015611a8757611a7f6205e7ec8c86611e34565b600101611a69565b50611a9b8a611a96838561284c565b611f84565b5050505050505050505050565b816001600160a01b0316836001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611526911515815260200190565b6060815f03611b155750506040805180820190915260018152600360fc1b602082015290565b815f5b8115611b3e5780611b2881612942565b9150611b379050600a8361292f565b9150611b18565b5f816001600160401b03811115611b5757611b57612176565b6040519080825280601f01601f191660200182016040528015611b81576020820181803683370190505b5090505b8415611beb57611b9660018361284c565b9150611ba3600a8661291c565b611bae90603061295a565b60f81b818381518110611bc357611bc3612973565b60200101906001600160f81b03191690815f1a905350611be4600a8661292f565b9450611b85565b949350505050565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6001600160401b0381165f908152601260209081526040808320546001600160a01b0387168452601190925282208054919290919082611c7a60018461284c565b81548110611c8a57611c8a612973565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b0316905080838581548110611cc657611cc6612973565b905f5260205f2090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b0316021790555082805480611d0d57611d0d612987565b5f8281526020902060045f199092019182040180546001600160401b03600860038516026101000a02191690559055611d4760018361284c565b15611d67576001600160401b0381165f9081526012602052604090208490555b6001600160a01b0386165f81815260116020908152604082208054600180820183558285529284206004820401805460039092166008026101000a6001600160401b0381810219909316928c1602919091179055929091529054611dcb919061284c565b6001600160401b039095165f90815260126020526040902094909455505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152691815260200190565b80545f908290611e469060019061284c565b81548110611e5657611e56612973565b5f918252602080832060048304015460039092166008026101000a9091046001600160401b0316808352600f8252604080842080546001600160a01b0319908116909155600e90935290922080549091166001600160a01b0386161790558254909150829080611ec857611ec8612987565b5f828152602080822060045f1990940184810490910180546001600160401b0360086003808616820261010090810a840219909416909455939097556001600160a01b038a16808652601185526040862080546001818101835582895296882098810490980180548b8b169990951690950290920a968702969097021990911694909417905592905254611f5c919061284c565b6001600160401b0382165f818152601260205260409020919091556113579085908590611bf3565b805f03611f8f575050565b80600103611fa057610db182611533565b600b546001600160a01b0383165f908152601160205260408120546001600160401b0390921691905b838110156120685760019283016001600160401b038181165f818152600e6020908152604080832080546001600160a01b0319166001600160a01b038d1690811790915560128352818420899055835260118252822080549889018155825281206004880401805460039098166008026101000a9384021990971692820292909217909555909361205c91908790611bf3565b60019182019101611fc9565b5050600b805467ffffffffffffffff1981166001600160401b039182169490940116929092179091555050565b6001600160e01b0319811681146120aa575f80fd5b50565b5f602082840312156120bd575f80fd5b8135610be481612095565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610be460208301846120c8565b5f60208284031215612118575f80fd5b5035919050565b80356001600160a01b03811681146115db575f80fd5b5f8060408385031215612146575f80fd5b61214f8361211f565b946020939093013593505050565b5f6020828403121561216d575f80fd5b610be48261211f565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156121b2576121b2612176565b604052919050565b5f6001600160401b038211156121d2576121d2612176565b50601f01601f191660200190565b5f6121f26121ed846121ba565b61218a565b9050828152838383011115612205575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261222a575f80fd5b610be4838335602085016121e0565b5f805f806080858703121561224c575f80fd5b6122558561211f565b93506122636020860161211f565b92506040850135915060608501356001600160401b03811115612284575f80fd5b6122908782880161221b565b91505092959194509250565b5f805f606084860312156122ae575f80fd5b6122b78461211f565b92506122c56020850161211f565b929592945050506040919091013590565b5f602082840312156122e6575f80fd5b81356001600160401b038111156122fb575f80fd5b611beb8482850161221b565b5f60208284031215612317575f80fd5b81356001600160401b0381111561232c575f80fd5b8201601f8101841361233c575f80fd5b611beb848235602084016121e0565b803580151581146115db575f80fd5b5f6020828403121561236a575f80fd5b610be48261234b565b602080825282518282018190525f918401906040840190835b818110156123b35783516001600160401b031683526020938401939092019160010161238c565b509095945050505050565b5f80604083850312156123cf575f80fd5b6123d88361211f565b91506123e66020840161234b565b90509250929050565b5f8060408385031215612400575f80fd5b6124098361211f565b91506123e66020840161211f565b600181811c9082168061242b57607f821691505b60208210810361244957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908111156108795761087961244f565b808201808211156108795761087961244f565b6020808252601e908201527f453734313a20596f7520646f6e27742068617665207468652072696768740000604082015260600190565b5f602082840312156124dc575f80fd5b8151610be481612095565b5f82601f8301126124f6575f80fd5b81516125046121ed826121ba565b818152846020838601011115612518575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f805f8060c08789031215612549575f80fd5b86516001600160401b0381111561255e575f80fd5b61256a89828a016124e7565b96505060208701516001600160401b03811115612585575f80fd5b61259189828a016124e7565b604089015160608a0151919750955090506001600160401b038111156125b5575f80fd5b6125c189828a016124e7565b93505060808701516001600160401b038111156125dc575f80fd5b6125e889828a016124e7565b9250505f60a08801519050809150509295509295509295565b601f821115610db157805f5260205f20601f840160051c810160208510156126265750805b601f840160051c820191505b81811015612645575f8155600101612632565b5050505050565b81516001600160401b0381111561266557612665612176565b612679816126738454612417565b84612601565b6020601f8211600181146126ab575f83156126945750848201515b5f19600385901b1c1916600184901b178455612645565b5f84815260208120601f198516915b828110156126da57878501518255602094850194600190920191016126ba565b50848210156126f757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001815b6001841115612741578085048111156127255761272561244f565b600184161561273357908102905b60019390931c92800261270a565b935093915050565b5f8261275757506001610879565b8161276357505f610879565b8160018114610a1457600281036127905760ff8411156127855761278561244f565b50506001821b610879565b5060208310610133831016604e8410600b84101617156127b3575081810a610879565b6127bf5f198484612706565b805f19048211156127d2576127d261244f565b029392505050565b5f610be48383612749565b6020808252601190820152702737ba103a3432903232bb32b637b832b960791b604082015260600190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90612842908301846120c8565b9695505050505050565b818103818111156108795761087961244f565b5f815461286b81612417565b6001821680156128825760018114612897576128c4565b60ff19831686528115158202860193506128c4565b845f5260205f205f5b838110156128bc578154888201526001909101906020016128a0565b505081860193505b50505092915050565b5f6128d8828661285f565b84518060208701835e5f9101908152612842818561285f565b80820281158282048414176108795761087961244f565b634e487b7160e01b5f52601260045260245ffd5b5f8261292a5761292a612908565b500690565b5f8261293d5761293d612908565b500490565b5f600182016129535761295361244f565b5060010190565b60ff81811683821601908111156108795761087961244f565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b6b5d4acac65ee6705ea77540cf327fcd5a3568ecfc7b1d9d4c139b475e2350964736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000378000000000000000000000000000000000000000000000000000000000000000e6665737469766520627269636b730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005425249434b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005968747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f53657265635468756e646572736f6e2f6173736574732f726566732f68656164732f6d61696e2f627269636b732f6d657461646174612f000000000000000000000000000000000000000000000000000000000000000000000000000005626c616e6b000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405260043610610254575f3560e01c80636bcef9a61161013f578063a9059cbb116100b3578063dd62ed3e11610078578063dd62ed3e14610713578063e8a3d48514610757578063e8e81fe41461076b578063e985e9c51461078a578063f835ab00146107a9578063ff0d2c2614610478575f80fd5b8063a9059cbb1461068e578063b3720c34146106ad578063b88d4fde146106cd578063c87b56dd146106e0578063d5abeb01146106ff575f80fd5b806388a8c95c1161010457806388a8c95c146105d757806391cca3db146105f6578063938e3d7b1461061c57806395d89b411461063b578063a22cb4651461064f578063a563833b1461066e575f80fd5b80636bcef9a6146105305780636c0360eb1461054457806370a08231146105585780637e2285aa1461058c5780638462151c146105ab575f80fd5b80632d5537b0116101d6578063466c35fc1161019b578063466c35fc1461047857806347ecb6651461048b5780634f02c4201461049f57806355f804b3146104be5780636352211e146104dd5780636a21f8e114610511575f80fd5b80632d5537b0146104085780632ff3a2421461041c578063313ce5671461043257806342842e0e14610446578063439fab9114610459575f80fd5b80631249c58b1161021c5780631249c58b14610345578063150b7a021461035b57806318160ddd1461039e5780631a72b87d146103b257806323b872dd146103e9575f80fd5b806301ffc9a71461025857806306fdde031461028c578063081812fc146102ad578063095ea7b3146102e45780630e313e9814610303575b5f80fd5b348015610263575f80fd5b506102776102723660046120ad565b6107e2565b60405190151581526020015b60405180910390f35b348015610297575f80fd5b506102a061087f565b60405161028391906120f6565b3480156102b8575f80fd5b506102cc6102c7366004612108565b61090f565b6040516001600160a01b039091168152602001610283565b3480156102ef575f80fd5b506102776102fe366004612135565b610949565b34801561030e575f80fd5b5061033761031d36600461215d565b6001600160a01b03165f9081526011602052604090205490565b604051908152602001610283565b348015610350575f80fd5b50610359610a57565b005b348015610366575f80fd5b50610385610375366004612239565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610283565b3480156103a9575f80fd5b50600854610337565b3480156103bd575f80fd5b506103d16103cc366004612135565b610aed565b6040516001600160401b039091168152602001610283565b3480156103f4575f80fd5b5061027761040336600461229c565b610b34565b348015610413575f80fd5b506102a0610beb565b348015610427575f80fd5b506102cc6205e7ec81565b34801561043d575f80fd5b50600654610337565b61035961045436600461229c565b610c77565b348015610464575f80fd5b506102cc6104733660046122d6565b610db6565b348015610483575f80fd5b506102cc5f81565b348015610496575f80fd5b506102a0610f02565b3480156104aa575f80fd5b50600b546103d1906001600160401b031681565b3480156104c9575f80fd5b506103596104d8366004612307565b610f0f565b3480156104e8575f80fd5b506102cc6104f7366004612108565b600e6020525f90815260409020546001600160a01b031681565b34801561051c575f80fd5b5061035961052b36600461235a565b610f4f565b34801561053b575f80fd5b50610359610f9e565b34801561054f575f80fd5b506102a0610ff0565b348015610563575f80fd5b5061033761057236600461215d565b6001600160a01b03165f9081526010602052604090205490565b348015610597575f80fd5b506103596105a6366004612307565b610ffc565b3480156105b6575f80fd5b506105ca6105c536600461215d565b611039565b6040516102839190612373565b3480156105e2575f80fd5b506103596105f136600461215d565b6110d3565b348015610601575f80fd5b50600b546102cc90600160401b90046001600160a01b031681565b348015610627575f80fd5b50610359610636366004612307565b611135565b348015610646575f80fd5b506102a061119e565b34801561065a575f80fd5b506103596106693660046123be565b6111ad565b348015610679575f80fd5b50600b5461027790600160e01b900460ff1681565b348015610699575f80fd5b506102776106a8366004612135565b6111e6565b3480156106b8575f80fd5b50600b5461027790600160e81b900460ff1681565b6103596106db366004612239565b611230565b3480156106eb575f80fd5b506102a06106fa366004612108565b61135d565b34801561070a575f80fd5b5061033761140c565b34801561071e575f80fd5b5061033761072d3660046123ef565b6001600160a01b039182165f908152600d6020908152604080832093909416825291909152205490565b348015610762575f80fd5b506102a0611422565b348015610776575f80fd5b50610359610785366004612307565b611431565b348015610795575f80fd5b506102776107a43660046123ef565b61146e565b3480156107b4575f80fd5b506103596107c336600461235a565b335f908152601360205260409020805460ff1916911515919091179055565b600b545f90600160e01b900460ff16801561080d57506380ac58cd60e01b6001600160e01b03198316145b8061082857506301ffc9a760e01b6001600160e01b03198316145b8061084357506336372b0760e01b6001600160e01b03198316145b8061085e5750630a85bd0160e11b6001600160e01b03198316145b806108795750635a46575f60e01b6001600160e01b03198316145b92915050565b60606004805461088e90612417565b80601f01602080910402602001604051908101604052809291908181526020018280546108ba90612417565b80156109055780601f106108dc57610100808354040283529160200191610905565b820191905f5260205f20905b8154815290600101906020018083116108e857829003601f168201915b5050505050905090565b5f818152600e60205260408120546001600160a01b031661092e575f80fd5b505f908152600f60205260409020546001600160a01b031690565b5f600954821015801561095e5750600a548211155b15610a1e575f828152600e60205260409020546001600160a01b0316338114801590610991575061098f813361146e565b155b156109e35760405162461bcd60e51b815260206004820152601a60248201527f453734313a20596f7520617265206e6f7420617070726f76656400000000000060448201526064015b60405180910390fd5b5f838152600f6020526040902080546001600160a01b0319166001600160a01b038616179055610a1481858561149b565b6001915050610879565b335f818152600d602090815260408083206001600160a01b03881684529091529020839055610a4e9084846114e1565b50600192915050565b600a54600b54610a71906001600160401b03166001612463565b6001600160401b03161115610abb5760405162461bcd60e51b815260206004820152601060248201526f1b5a5b9d0818d85c081c995858da195960821b60448201526064016109da565b610ac433611533565b50600954335f9081526010602052604081208054909190610ae6908490612482565b9091555050565b6011602052815f5260405f208181548110610b06575f80fd5b905f5260205f209060049182820401919006600802915091509054906101000a90046001600160401b031681565b5f6009548210158015610b495750600a548211155b15610bca57336001600160a01b0385161480610b7e5750610b698261090f565b6001600160a01b0316336001600160a01b0316145b80610b8e5750610b8e843361146e565b610baa5760405162461bcd60e51b81526004016109da90612495565b610bb58484846115e0565b610bc284846009546116ae565b506001610be4565b610bd5843384611702565b610be08484846117b6565b5060015b9392505050565b60028054610bf890612417565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2490612417565b8015610c6f5780601f10610c4657610100808354040283529160200191610c6f565b820191905f5260205f20905b815481529060010190602001808311610c5257829003601f168201915b505050505081565b336001600160a01b0384161480610ca75750610c928161090f565b6001600160a01b0316336001600160a01b0316145b80610cb75750610cb7833361146e565b610cd35760405162461bcd60e51b81526004016109da90612495565b610cde8383836115e0565b610ceb83836009546116ae565b6001600160a01b0382163b15801590610d935750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af1158015610d62573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8691906124cc565b6001600160e01b03191614155b15610db1576040516301d6c93560e61b815260040160405180910390fd5b505050565b5f6006545f14610dfe5760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016109da565b81806020019051810190610e129190612534565b600781905560045f60058160068180806001610e2e8b8261264c565b50610e3b90508a8261264c565b505088905550610e4b888261264c565b50610e589050878261264c565b50505050505050600654600a610e6e91906127da565b6009819055600754610e7f91612482565b600a55600954600b805467ffffffffffffffff19166001600160401b03831617905560075410610efb5760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820646563696d616c7320666f72204e465420636f756e6044820152601d60fa1b60648201526084016109da565b505f919050565b60038054610bf890612417565b600b54600160401b90046001600160a01b03163314610f405760405162461bcd60e51b81526004016109da906127e5565b5f610f4b828261264c565b5050565b600b54600160401b90046001600160a01b03163314610f805760405162461bcd60e51b81526004016109da906127e5565b600b8054911515600160e81b0260ff60e81b19909216919091179055565b600b54600160401b90046001600160a01b03163314610fcf5760405162461bcd60e51b81526004016109da906127e5565b600b805460ff60e01b198116600160e01b9182900460ff1615909102179055565b5f8054610bf890612417565b600b54600160401b90046001600160a01b0316331461102d5760405162461bcd60e51b81526004016109da906127e5565b6002610f4b828261264c565b6001600160a01b0381165f908152601160209081526040918290208054835181840281018401909452808452606093928301828280156110c757602002820191905f5260205f20905f905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116110845790505b50505050509050919050565b600b54600160401b90046001600160a01b031633146111045760405162461bcd60e51b81526004016109da906127e5565b600b80546001600160a01b03909216600160401b0268010000000000000000600160e01b0319909216919091179055565b600b54600160401b90046001600160a01b031633146111665760405162461bcd60e51b81526004016109da906127e5565b6001611172828261264c565b506040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962905f90a150565b60606005805461088e90612417565b335f818152600c602090815260408083206001600160a01b03871684529091529020805460ff1916831515179055610f4b908383611aa8565b5f818152600e6020526040812054336001600160a01b0390911603611225576112103384846115e0565b61121d33846009546116ae565b506001610879565b610a4e3384846117b6565b336001600160a01b0385161480611260575061124b8261090f565b6001600160a01b0316336001600160a01b0316145b806112705750611270843361146e565b61128c5760405162461bcd60e51b81526004016109da90612495565b6112978484846115e0565b6112a484846009546116ae565b6001600160a01b0383163b158015906113395750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906112ec903390899088908890600401612810565b6020604051808303815f875af1158015611308573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132c91906124cc565b6001600160e01b03191614155b15611357576040516301d6c93560e61b815260040160405180910390fd5b50505050565b6060600a548211156113a45760405162461bcd60e51b815260206004820152601060248201526f114dcd0c4e881a5b9d985b1a59081a5960821b60448201526064016109da565b5f80546113b090612417565b90505f036113cb57505060408051602081019091525f815290565b5f6113e2600954846113dd919061284c565b611aef565b60026040516020016113f6939291906128cd565b6040516020818303038152906040529050919050565b5f60095460075461141d91906128f1565b905090565b60606001805461088e90612417565b600b54600160401b90046001600160a01b031633146114625760405162461bcd60e51b81526004016109da906127e5565b6003610f4b828261264c565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205460ff1690565b80826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161152691815260200190565b60405180910390a3505050565b600b805467ffffffffffffffff19811660016001600160401b03928316810183169182179093555f818152600e6020908152604080832080546001600160a01b0319166001600160a01b03891690811790915583526011808352818420805486865260128552928520839055908352958101865594825281206004850401805460039095166008026101000a93840219909416928202929092179092556115db908383611bf3565b919050565b6001600160401b0381165f908152600e60205260409020546001600160a01b0384811691161461164a5760405162461bcd60e51b8152602060048201526015602482015274229b9a189d1024b731b7b93932b1ba1037bbb732b960591b60448201526064016109da565b6001600160401b0381165f908152600f6020908152604080832080546001600160a01b0319908116909155600e90925290912080549091166001600160a01b03841617905561169a838383611c39565b610db18383836001600160401b0316611bf3565b6001600160a01b0383165f90815260106020526040812080548392906116d590849061284c565b90915550506001600160a01b0382165f908152601060205260409020805482019055610db1838383611def565b6001600160a01b038084165f908152600d60209081526040808320938616835292905220548111156117765760405162461bcd60e51b815260206004820152601c60248201527f453734313a20696e73756666696369656e7420616c6c6f77616e63650000000060448201526064016109da565b6001600160a01b038084165f908152600d60209081526040808320938616835292905290812080548392906117ac90849061284c565b9091555050505050565b6001600160a01b0383165f9081526010602052604090205481111561182b5760405162461bcd60e51b815260206004820152602560248201527f453734313a207472616e7366657220616d6f756e7420657863656564732062616044820152646c616e636560d81b60648201526084016109da565b6009546001600160a01b0384165f9081526010602052604081205490916118519161291c565b6009546001600160a01b0385165f908152601060205260408120549293509161187a919061291c565b90506118878585856116ae565b6009546001600160a01b0386165f9081526010602052604081205490916118ad9161291c565b6009546001600160a01b0387165f90815260106020526040812054929350916118d6919061291c565b6001600160a01b0388165f9081526011602052604081206205e7ec9091529091507f1b6e7c417ed9cfc24ca11cc87b3bdb69a80c713b279159d52af44c081e616a17838610156119355781541561193557611935896205e7ec84611e34565b8285111561196257805415611957576119526205e7ec8983611e34565b611962565b61196088611533565b505b5f60095488611971919061292f565b8354600b5491925090600160e81b900460ff168061199657506001600160a01b038b16155b806119b857506001600160a01b038a165f9081526013602052604090205460ff165b806119da57506001600160a01b038b165f9081526013602052604090205460ff165b806119f95750600b546001600160a01b038c8116600160401b90920416145b15611a1057808210611a0b5780611a0d565b815b91505b8115611a9b57808210611a235780611a25565b815b90505f5b81811015611a4457611a3c8c8c87611e34565b600101611a29565b50611a4f818361284c565b83549092509050808210611a635780611a65565b815b90505f5b81811015611a8757611a7f6205e7ec8c86611e34565b600101611a69565b50611a9b8a611a96838561284c565b611f84565b5050505050505050505050565b816001600160a01b0316836001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611526911515815260200190565b6060815f03611b155750506040805180820190915260018152600360fc1b602082015290565b815f5b8115611b3e5780611b2881612942565b9150611b379050600a8361292f565b9150611b18565b5f816001600160401b03811115611b5757611b57612176565b6040519080825280601f01601f191660200182016040528015611b81576020820181803683370190505b5090505b8415611beb57611b9660018361284c565b9150611ba3600a8661291c565b611bae90603061295a565b60f81b818381518110611bc357611bc3612973565b60200101906001600160f81b03191690815f1a905350611be4600a8661292f565b9450611b85565b949350505050565b80826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6001600160401b0381165f908152601260209081526040808320546001600160a01b0387168452601190925282208054919290919082611c7a60018461284c565b81548110611c8a57611c8a612973565b905f5260205f2090600491828204019190066008029054906101000a90046001600160401b0316905080838581548110611cc657611cc6612973565b905f5260205f2090600491828204019190066008026101000a8154816001600160401b0302191690836001600160401b0316021790555082805480611d0d57611d0d612987565b5f8281526020902060045f199092019182040180546001600160401b03600860038516026101000a02191690559055611d4760018361284c565b15611d67576001600160401b0381165f9081526012602052604090208490555b6001600160a01b0386165f81815260116020908152604082208054600180820183558285529284206004820401805460039092166008026101000a6001600160401b0381810219909316928c1602919091179055929091529054611dcb919061284c565b6001600160401b039095165f90815260126020526040902094909455505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161152691815260200190565b80545f908290611e469060019061284c565b81548110611e5657611e56612973565b5f918252602080832060048304015460039092166008026101000a9091046001600160401b0316808352600f8252604080842080546001600160a01b0319908116909155600e90935290922080549091166001600160a01b0386161790558254909150829080611ec857611ec8612987565b5f828152602080822060045f1990940184810490910180546001600160401b0360086003808616820261010090810a840219909416909455939097556001600160a01b038a16808652601185526040862080546001818101835582895296882098810490980180548b8b169990951690950290920a968702969097021990911694909417905592905254611f5c919061284c565b6001600160401b0382165f818152601260205260409020919091556113579085908590611bf3565b805f03611f8f575050565b80600103611fa057610db182611533565b600b546001600160a01b0383165f908152601160205260408120546001600160401b0390921691905b838110156120685760019283016001600160401b038181165f818152600e6020908152604080832080546001600160a01b0319166001600160a01b038d1690811790915560128352818420899055835260118252822080549889018155825281206004880401805460039098166008026101000a9384021990971692820292909217909555909361205c91908790611bf3565b60019182019101611fc9565b5050600b805467ffffffffffffffff1981166001600160401b039182169490940116929092179091555050565b6001600160e01b0319811681146120aa575f80fd5b50565b5f602082840312156120bd575f80fd5b8135610be481612095565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610be460208301846120c8565b5f60208284031215612118575f80fd5b5035919050565b80356001600160a01b03811681146115db575f80fd5b5f8060408385031215612146575f80fd5b61214f8361211f565b946020939093013593505050565b5f6020828403121561216d575f80fd5b610be48261211f565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156121b2576121b2612176565b604052919050565b5f6001600160401b038211156121d2576121d2612176565b50601f01601f191660200190565b5f6121f26121ed846121ba565b61218a565b9050828152838383011115612205575f80fd5b828260208301375f602084830101529392505050565b5f82601f83011261222a575f80fd5b610be4838335602085016121e0565b5f805f806080858703121561224c575f80fd5b6122558561211f565b93506122636020860161211f565b92506040850135915060608501356001600160401b03811115612284575f80fd5b6122908782880161221b565b91505092959194509250565b5f805f606084860312156122ae575f80fd5b6122b78461211f565b92506122c56020850161211f565b929592945050506040919091013590565b5f602082840312156122e6575f80fd5b81356001600160401b038111156122fb575f80fd5b611beb8482850161221b565b5f60208284031215612317575f80fd5b81356001600160401b0381111561232c575f80fd5b8201601f8101841361233c575f80fd5b611beb848235602084016121e0565b803580151581146115db575f80fd5b5f6020828403121561236a575f80fd5b610be48261234b565b602080825282518282018190525f918401906040840190835b818110156123b35783516001600160401b031683526020938401939092019160010161238c565b509095945050505050565b5f80604083850312156123cf575f80fd5b6123d88361211f565b91506123e66020840161234b565b90509250929050565b5f8060408385031215612400575f80fd5b6124098361211f565b91506123e66020840161211f565b600181811c9082168061242b57607f821691505b60208210810361244957634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821601908111156108795761087961244f565b808201808211156108795761087961244f565b6020808252601e908201527f453734313a20596f7520646f6e27742068617665207468652072696768740000604082015260600190565b5f602082840312156124dc575f80fd5b8151610be481612095565b5f82601f8301126124f6575f80fd5b81516125046121ed826121ba565b818152846020838601011115612518575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f805f805f8060c08789031215612549575f80fd5b86516001600160401b0381111561255e575f80fd5b61256a89828a016124e7565b96505060208701516001600160401b03811115612585575f80fd5b61259189828a016124e7565b604089015160608a0151919750955090506001600160401b038111156125b5575f80fd5b6125c189828a016124e7565b93505060808701516001600160401b038111156125dc575f80fd5b6125e889828a016124e7565b9250505f60a08801519050809150509295509295509295565b601f821115610db157805f5260205f20601f840160051c810160208510156126265750805b601f840160051c820191505b81811015612645575f8155600101612632565b5050505050565b81516001600160401b0381111561266557612665612176565b612679816126738454612417565b84612601565b6020601f8211600181146126ab575f83156126945750848201515b5f19600385901b1c1916600184901b178455612645565b5f84815260208120601f198516915b828110156126da57878501518255602094850194600190920191016126ba565b50848210156126f757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b6001815b6001841115612741578085048111156127255761272561244f565b600184161561273357908102905b60019390931c92800261270a565b935093915050565b5f8261275757506001610879565b8161276357505f610879565b8160018114610a1457600281036127905760ff8411156127855761278561244f565b50506001821b610879565b5060208310610133831016604e8410600b84101617156127b3575081810a610879565b6127bf5f198484612706565b805f19048211156127d2576127d261244f565b029392505050565b5f610be48383612749565b6020808252601190820152702737ba103a3432903232bb32b637b832b960791b604082015260600190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f90612842908301846120c8565b9695505050505050565b818103818111156108795761087961244f565b5f815461286b81612417565b6001821680156128825760018114612897576128c4565b60ff19831686528115158202860193506128c4565b845f5260205f205f5b838110156128bc578154888201526001909101906020016128a0565b505081860193505b50505092915050565b5f6128d8828661285f565b84518060208701835e5f9101908152612842818561285f565b80820281158282048414176108795761087961244f565b634e487b7160e01b5f52601260045260245ffd5b5f8261292a5761292a612908565b500690565b5f8261293d5761293d612908565b500490565b5f600182016129535761295361244f565b5060010190565b60ff81811683821601908111156108795761087961244f565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b6b5d4acac65ee6705ea77540cf327fcd5a3568ecfc7b1d9d4c139b475e2350964736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000378000000000000000000000000000000000000000000000000000000000000000e6665737469766520627269636b730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005425249434b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005968747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f6d2f53657265635468756e646572736f6e2f6173736574732f726566732f68656164732f6d61696e2f627269636b732f6d657461646174612f000000000000000000000000000000000000000000000000000000000000000000000000000005626c616e6b000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): festive bricks
Arg [1] : symbol_ (string): BRICK
Arg [2] : decimals_ (uint256): 8
Arg [3] : baseURI_ (string): https://raw.githubusercontent.com/SerecThunderson/assets/refs/heads/main/bricks/metadata/
Arg [4] : contractURI_ (string): blank
Arg [5] : totalIds_ (uint256): 888
-----Encoded View---------------
16 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [4] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000378
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [7] : 6665737469766520627269636b73000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [9] : 425249434b000000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000059
Arg [11] : 68747470733a2f2f7261772e67697468756275736572636f6e74656e742e636f
Arg [12] : 6d2f53657265635468756e646572736f6e2f6173736574732f726566732f6865
Arg [13] : 6164732f6d61696e2f627269636b732f6d657461646174612f00000000000000
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [15] : 626c616e6b000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
24070:1442:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23268:795;;;;;;;;;;-1:-1:-1;23268:795:0;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;23268:795:0;;;;;;;;7087:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;22007:180::-;;;;;;;;;;-1:-1:-1;22007:180:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1506:32:1;;;1488:51;;1476:2;1461:18;22007:180:0;1342:203:1;9361:997:0;;;;;;;;;;-1:-1:-1;9361:997:0;;;;;:::i;:::-;;:::i;8901:101::-;;;;;;;;;;-1:-1:-1;8901:101:0;;;;;:::i;:::-;-1:-1:-1;;;;;8975:18:0;8961:4;8975:18;;;:9;:18;;;;;:25;;8901:101;;;;2370:25:1;;;2358:2;2343:18;8901:101:0;2224:177:1;25234:160:0;;;;;;;;;;;;;:::i;:::-;;5215:172;;;;;;;;;;-1:-1:-1;5215:172:0;;;;;:::i;:::-;-1:-1:-1;;;5215:172:0;;;;;;;;;;-1:-1:-1;;;;;;4325:33:1;;;4307:52;;4295:2;4280:18;5215:172:0;4163:202:1;25402:107:0;;;;;;;;;;-1:-1:-1;25488:12:0;;25402:107;;6539:45;;;;;;;;;;-1:-1:-1;6539:45:0;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4532:31:1;;;4514:50;;4502:2;4487:18;6539:45:0;4370:200:1;19569:817:0;;;;;;;;;;-1:-1:-1;19569:817:0;;;;;:::i;:::-;;:::i;5721:23::-;;;;;;;;;;;;;:::i;5473:57::-;;;;;;;;;;;;5522:7;5473:57;;7257:76;;;;;;;;;;-1:-1:-1;7321:9:0;;7257:76;;20409:654;;;;;;:::i;:::-;;:::i;24669:557::-;;;;;;;;;;-1:-1:-1;24669:557:0;;;;;:::i;:::-;;:::i;5598:51::-;;;;;;;;;;;;5645:3;5598:51;;5751:22;;;;;;;;;;;;;:::i;6054:20::-;;;;;;;;;;-1:-1:-1;6054:20:0;;;;-1:-1:-1;;;;;6054:20:0;;;7757:93;;;;;;;;;;-1:-1:-1;7757:93:0;;;;;:::i;:::-;;:::i;6375:50::-;;;;;;;;;;-1:-1:-1;6375:50:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;6375:50:0;;;9103:134;;;;;;;;;;-1:-1:-1;9103:134:0;;;;;:::i;:::-;;:::i;8687:101::-;;;;;;;;;;;;;:::i;5658:21::-;;;;;;;;;;;;;:::i;7516:104::-;;;;;;;;;;-1:-1:-1;7516:104:0;;;;;:::i;:::-;-1:-1:-1;;;;;7598:19:0;7583:4;7598:19;;;:10;:19;;;;;;;7516:104;8016:109;;;;;;;;;;-1:-1:-1;8016:109:0;;;;;:::i;:::-;;:::i;8794:101::-;;;;;;;;;;-1:-1:-1;8794:101:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8233:75::-;;;;;;;;;;-1:-1:-1;8233:75:0;;;;;:::i;:::-;;:::i;6116:18::-;;;;;;;;;;-1:-1:-1;6116:18:0;;;;-1:-1:-1;;;6116:18:0;;-1:-1:-1;;;;;6116:18:0;;;7856:154;;;;;;;;;;-1:-1:-1;7856:154:0;;;;;:::i;:::-;;:::i;7170:81::-;;;;;;;;;;;;;:::i;22195:216::-;;;;;;;;;;-1:-1:-1;22195:216:0;;;;;:::i;:::-;;:::i;6141:32::-;;;;;;;;;;-1:-1:-1;6141:32:0;;;;-1:-1:-1;;;6141:32:0;;;;;;19187:339;;;;;;;;;;-1:-1:-1;19187:339:0;;;;;:::i;:::-;;:::i;6180:37::-;;;;;;;;;;-1:-1:-1;6180:37:0;;;;-1:-1:-1;;;6180:37:0;;;;;;21086:675;;;;;;:::i;:::-;;:::i;22583:284::-;;;;;;;;;;-1:-1:-1;22583:284:0;;;;;:::i;:::-;;:::i;7427:83::-;;;;;;;;;;;;;:::i;7626:125::-;;;;;;;;;;-1:-1:-1;7626:125:0;;;;;:::i;:::-;-1:-1:-1;;;;;7722:17:0;;;7707:4;7722:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;7626:125;9008:89;;;;;;;;;;;;;:::i;8131:96::-;;;;;;;;;;-1:-1:-1;8131:96:0;;;;;:::i;:::-;;:::i;22419:156::-;;;;;;;;;;-1:-1:-1;22419:156:0;;;;;:::i;:::-;;:::i;9244:109::-;;;;;;;;;;-1:-1:-1;9244:109:0;;;;;:::i;:::-;9322:10;9306:27;;;;:15;:27;;;;;:44;;-1:-1:-1;;9306:44:0;;;;;;;;;;9244:109;23268:795;23639:20;;23345:4;;-1:-1:-1;;;23639:20:0;;;;:49;;;;-1:-1:-1;;;;;;;;;;23663:25:0;;;23639:49;23638:127;;;-1:-1:-1;;;;;;;;;;23740:25:0;;;23638:127;:203;;;-1:-1:-1;;;;;;;;;;23816:25:0;;;23638:203;:278;;;-1:-1:-1;;;;;;;;;;23891:25:0;;;23638:278;:368;;;-1:-1:-1;;;;;;;;;;23981:25:0;;;23638:368;23362:644;23268:795;-1:-1:-1;;23268:795:0:o;7087:77::-;7132:13;7156:5;7149:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:77;:::o;22007:180::-;22075:7;22099:16;;;:7;:16;;;;;;-1:-1:-1;;;;;22099:16:0;22095:44;;22131:8;;;22095:44;-1:-1:-1;22157:22:0;;;;:13;:22;;;;;;-1:-1:-1;;;;;22157:22:0;;22007:180::o;9361:997::-;9433:4;9603:3;;9593:6;:13;;:32;;;;;9620:5;;9610:6;:15;;9593:32;9590:449;;;9642:13;9658:15;;;:7;:15;;;;;;-1:-1:-1;;;;;9658:15:0;9748:10;:19;;;;;:59;;;9772:35;9789:5;9796:10;9772:16;:35::i;:::-;9771:36;9748:59;9744:101;;;9809:36;;-1:-1:-1;;;9809:36:0;;7834:2:1;9809:36:0;;;7816:21:1;7873:2;7853:18;;;7846:30;7912:28;7892:18;;;7885:56;7958:18;;9809:36:0;;;;;;;;9744:101;9860:21;;;;:13;:21;;;;;:31;;-1:-1:-1;;;;;;9860:31:0;-1:-1:-1;;;;;9860:31:0;;;;;9956:45;9978:5;9860:31;:21;9956;:45::i;:::-;10023:4;10016:11;;;;;9590:449;10239:10;10228:22;;;;:10;:22;;;;;;;;-1:-1:-1;;;;;10228:31:0;;;;;;;;;:40;;;10279:49;;10251:7;10262:6;10279:20;:49::i;:::-;-1:-1:-1;10346:4:0;9361:997;;;;:::o;25234:160::-;25292:5;;25277:6;;:10;;-1:-1:-1;;;;;25277:6:0;;:10;:::i;:::-;-1:-1:-1;;;;;25276:21:0;;;25268:50;;;;-1:-1:-1;;;25268:50:0;;8517:2:1;25268:50:0;;;8499:21:1;8556:2;8536:18;;;8529:30;-1:-1:-1;;;8575:18:1;;;8568:46;8631:18;;25268:50:0;8315:340:1;25268:50:0;25329:17;25335:10;25329:5;:17::i;:::-;-1:-1:-1;25383:3:0;;25368:10;25357:22;;;;:10;:22;;;;;:29;;:22;;;:29;;25383:3;;25357:29;:::i;:::-;;;;-1:-1:-1;;25234:160:0:o;6539:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6539:45:0;;:::o;19569:817::-;19655:4;19784:3;;19774:6;:13;;:32;;;;;19801:5;;19791:6;:15;;19774:32;19771:489;;;19963:10;-1:-1:-1;;;;;19963:18:0;;;;:55;;;19999:19;20011:6;19999:11;:19::i;:::-;-1:-1:-1;;;;;19985:33:0;:10;-1:-1:-1;;;;;19985:33:0;;19963:55;:93;;;;20022:34;20039:4;20045:10;20022:16;:34::i;:::-;19823:303;;;;-1:-1:-1;;;19823:303:0;;;;;;;:::i;:::-;20143:38;20156:4;20162:2;20173:6;20143:12;:38::i;:::-;20196:26;20208:4;20214:2;20218:3;;20196:11;:26::i;:::-;-1:-1:-1;20244:4:0;20237:11;;19771:489;20272:41;20288:4;20294:10;20306:6;20272:15;:41::i;:::-;20324:30;20337:4;20343:2;20347:6;20324:12;:30::i;:::-;-1:-1:-1;20372:4:0;19569:817;;;;;;:::o;5721:23::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20409:654::-;20539:10;-1:-1:-1;;;;;20539:18:0;;;;:56;;;20575:20;20587:7;20575:11;:20::i;:::-;-1:-1:-1;;;;;20561:34:0;:10;-1:-1:-1;;;;;20561:34:0;;20539:56;:94;;;;20599:34;20616:4;20622:10;20599:16;:34::i;:::-;20513:186;;;;-1:-1:-1;;;20513:186:0;;;;;;;:::i;:::-;20710:39;20723:4;20729:2;20740:7;20710:12;:39::i;:::-;20761:26;20773:4;20779:2;20783:3;;20761:11;:26::i;:::-;-1:-1:-1;;;;;20818:14:0;;;:19;;;;:171;;-1:-1:-1;20854:72:0;;-1:-1:-1;;;20854:72:0;;;20896:10;20854:72;;;9416:51:1;-1:-1:-1;;;;;9503:32:1;;;9483:18;;;9476:60;9552:18;;;9545:34;;;9615:3;9595:18;;;9588:31;-1:-1:-1;9635:19:1;;;9628:30;20943:46:0;;20854:41;;;;20943:46;;9675:19:1;;20854:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;20854:135:0;;;20818:171;20800:256;;;21023:21;;-1:-1:-1;;;21023:21:0;;;;;;;;;;;20800:256;20409:654;;;:::o;24669:557::-;24746:7;24774:9;;24787:1;24774:14;24766:46;;;;-1:-1:-1;;;24766:46:0;;10161:2:1;24766:46:0;;;10143:21:1;10200:2;10180:18;;;10173:30;-1:-1:-1;;;10219:18:1;;;10212:49;10278:18;;24766:46:0;9959:343:1;24766:46:0;24898:17;24887:70;;;;;;;;;;;;:::i;:::-;24874:9;24823:134;;;24824:5;;24831:7;24824:5;24840:9;24824:5;;;24860:12;24823:134;;24860:12;24823:134;:::i;:::-;-1:-1:-1;24823:134:0;;-1:-1:-1;24823:134:0;;;:::i;:::-;-1:-1:-1;;24823:134:0;;;-1:-1:-1;24823:134:0;;;;:::i;:::-;-1:-1:-1;24823:134:0;;-1:-1:-1;24823:134:0;;;:::i;:::-;;;;;;;;24990:9;;24984:2;:15;;;;:::i;:::-;24978:3;:21;;;25024:9;;25018:15;;;:::i;:::-;25010:5;:23;25060:3;;25044:6;:20;;-1:-1:-1;;25044:20:0;-1:-1:-1;;;;;25044:20:0;;;;;25143:9;;-1:-1:-1;25129:61:0;;;;-1:-1:-1;;;25129:61:0;;15770:2:1;25129:61:0;;;15752:21:1;15809:2;15789:18;;;15782:30;15848:34;15828:18;;;15821:62;-1:-1:-1;;;15899:18:1;;;15892:31;15940:19;;25129:61:0;15568:397:1;25129:61:0;-1:-1:-1;25216:1:0;;24669:557;-1:-1:-1;24669:557:0:o;5751:22::-;;;;;;;:::i;7757:93::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;7828:7:::1;:20;7838:10:::0;7828:7;:20:::1;:::i;:::-;;7757:93:::0;:::o;9103:134::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;9194:17:::1;:40:::0;;;::::1;;-1:-1:-1::0;;;9194:40:0::1;-1:-1:-1::0;;;;9194:40:0;;::::1;::::0;;;::::1;::::0;;9103:134::o;8687:101::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;8766:20:::1;::::0;;-1:-1:-1;;;;8742:44:0;::::1;-1:-1:-1::0;;;8766:20:0;;;::::1;;;8765:21;8742:44:::0;;::::1;;::::0;;8687:101::o;5658:21::-;;;;;;;:::i;8016:109::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;8099:9:::1;:24;8111:12:::0;8099:9;:24:::1;:::i;8794:101::-:0;-1:-1:-1;;;;;8877:16:0;;;;;;:9;:16;;;;;;;;;8870:23;;;;;;;;;;;;;;;;;8853:15;;8870:23;;;8877:16;8870:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8870:23:0;-1:-1:-1;;;;;8870:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8794:101;;;:::o;8233:75::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;8294:3:::1;:12:::0;;-1:-1:-1;;;;;8294:12:0;;::::1;-1:-1:-1::0;;;8294:12:0::1;-1:-1:-1::0;;;;;;8294:12:0;;::::1;::::0;;;::::1;::::0;;8233:75::o;7856:154::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;7943:12:::1;:29;7958:14:::0;7943:12;:29:::1;:::i;:::-;-1:-1:-1::0;7979:29:0::1;::::0;::::1;::::0;;;::::1;7856:154:::0;:::o;7170:81::-;7217:13;7241:7;7234:14;;;;;:::i;22195:216::-;22301:10;22282:30;;;;:18;:30;;;;;;;;-1:-1:-1;;;;;22282:40:0;;;;;;;;;:51;;-1:-1:-1;;22282:51:0;;;;;;;22344:59;;22282:40;:51;22344:27;:59::i;19187:339::-;19255:4;19275:15;;;:7;:15;;;;;;19294:10;-1:-1:-1;;;;;19275:15:0;;;:29;19272:178;;19321:44;19334:10;19346:2;19357:6;19321:12;:44::i;:::-;19380:32;19392:10;19404:2;19408:3;;19380:11;:32::i;:::-;-1:-1:-1;19434:4:0;19427:11;;19272:178;19460:36;19473:10;19485:2;19489:6;19460:12;:36::i;21086:675::-;21235:10;-1:-1:-1;;;;;21235:18:0;;;;:56;;;21271:20;21283:7;21271:11;:20::i;:::-;-1:-1:-1;;;;;21257:34:0;:10;-1:-1:-1;;;;;21257:34:0;;21235:56;:94;;;;21295:34;21312:4;21318:10;21295:16;:34::i;:::-;21209:186;;;;-1:-1:-1;;;21209:186:0;;;;;;;:::i;:::-;21406:39;21419:4;21425:2;21436:7;21406:12;:39::i;:::-;21457:26;21469:4;21475:2;21479:3;;21457:11;:26::i;:::-;-1:-1:-1;;;;;21514:14:0;;;:19;;;;:173;;-1:-1:-1;21550:74:0;;-1:-1:-1;;;21550:74:0;;;21641:46;-1:-1:-1;;;;;21550:41:0;;;21641:46;;21550:74;;21592:10;;21604:4;;21610:7;;21619:4;;21550:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;21550:137:0;;;21514:173;21496:258;;;21721:21;;-1:-1:-1;;;21721:21:0;;;;;;;;;;;21496:258;21086:675;;;;:::o;22583:284::-;22647:13;22692:5;;22681:7;:16;;22673:45;;;;-1:-1:-1;;;22673:45:0;;17008:2:1;22673:45:0;;;16990:21:1;17047:2;17027:18;;;17020:30;-1:-1:-1;;;17066:18:1;;;17059:46;17122:18;;22673:45:0;16806:340:1;22673:45:0;22739:7;22733:21;;;;;:::i;:::-;;;22758:1;22733:26;22729:44;;-1:-1:-1;;22762:9:0;;;;;;;;;-1:-1:-1;22762:9:0;;;22583:284::o;22729:44::-;22814:7;22823:23;22842:3;;22832:7;:13;;;;:::i;:::-;22823:8;:23::i;:::-;22848:9;22797:61;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22783:76;;22583:284;;;:::o;7427:83::-;7477:4;7504:3;;7492:9;;:15;;;;:::i;:::-;7485:22;;7427:83;:::o;9008:89::-;9060:13;9083:12;9076:19;;;;;:::i;8131:96::-;6859:3;;-1:-1:-1;;;6859:3:0;;-1:-1:-1;;;;;6859:3:0;6845:10;:17;6837:47;;;;-1:-1:-1;;;6837:47:0;;;;;;;:::i;:::-;8203:8:::1;:22;8214:11:::0;8203:8;:22:::1;:::i;22419:156::-:0;-1:-1:-1;;;;;22532:25:0;;;22508:4;22532:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;22419:156::o;1097:126::-;1211:8;1201;-1:-1:-1;;;;;1184:36:0;1193:6;-1:-1:-1;;;;;1184:36:0;;;;;;;;;;;1097:126;;;:::o;529:122::-;631:8;-1:-1:-1;;;;;614:34:0;623:6;-1:-1:-1;;;;;614:34:0;;641:6;614:34;;;;2370:25:1;;2358:2;2343:18;;2224:177;614:34:0;;;;;;;;529:122;;;:::o;15356:632::-;15459:6;:8;;-1:-1:-1;;15459:8:0;;;-1:-1:-1;;;;;15459:8:0;;;;;;;;;;;;;-1:-1:-1;15601:16:0;;;:7;:16;;;;;;;;:21;;-1:-1:-1;;;;;;15601:21:0;-1:-1:-1;;;;;15601:21:0;;;;;;;;15696:13;;:9;:13;;;;;;:20;;15675:18;;;:9;:18;;;;;:41;;;15784:13;;;:27;;;;;;;;;;;;;;;;;;;;;;15459:8;15784:27;;;;;;;;;;;;;;;;;;15892:48;;15601:21;15459:8;15892:21;:48::i;:::-;15356:632;;;:::o;17656:529::-;-1:-1:-1;;;;;17764:16:0;;;;;;:7;:16;;;;;;-1:-1:-1;;;;;17756:24:0;;;17764:16;;17756:24;17748:58;;;;-1:-1:-1;;;17748:58:0;;18829:2:1;17748:58:0;;;18811:21:1;18868:2;18848:18;;;18841:30;-1:-1:-1;;;18887:18:1;;;18880:51;18948:18;;17748:58:0;18627:345:1;17748:58:0;-1:-1:-1;;;;;17872:22:0;;;;;;:13;:22;;;;;;;;17865:29;;-1:-1:-1;;;;;;17865:29:0;;;;;;17943:7;:16;;;;;;:21;;;;;-1:-1:-1;;;;;17943:21:0;;;;;18018:35;18035:4;17943:21;17872:22;18018:16;:35::i;:::-;18104:40;18126:4;18132:2;18136:7;-1:-1:-1;;;;;18104:40:0;:21;:40::i;17193:361::-;-1:-1:-1;;;;;17276:16:0;;;;;;:10;:16;;;;;:26;;17296:6;;17276:16;:26;;17296:6;;17276:26;:::i;:::-;;;;-1:-1:-1;;;;;;;17385:14:0;;;;;;:10;:14;;;;;:24;;;;;;17476:38;17497:4;17396:2;17403:6;17476:20;:38::i;21769:230::-;-1:-1:-1;;;;;21875:17:0;;;;;;;:10;:17;;;;;;;;:26;;;;;;;;;;:36;-1:-1:-1;21875:36:0;21867:77;;;;-1:-1:-1;;;21867:77:0;;19179:2:1;21867:77:0;;;19161:21:1;19218:2;19198:18;;;19191:30;19257;19237:18;;;19230:58;19305:18;;21867:77:0;18977:352:1;21867:77:0;-1:-1:-1;;;;;21955:17:0;;;;;;;:10;:17;;;;;;;;:26;;;;;;;;;;;:36;;21985:6;;21955:17;:36;;21985:6;;21955:36;:::i;:::-;;;;-1:-1:-1;;;;;21769:230:0:o;10366:3875::-;-1:-1:-1;;;;;10473:16:0;;;;;;:10;:16;;;;;;:26;-1:-1:-1;10473:26:0;10465:76;;;;-1:-1:-1;;;10465:76:0;;19536:2:1;10465:76:0;;;19518:21:1;19575:2;19555:18;;;19548:30;19614:34;19594:18;;;19587:62;-1:-1:-1;;;19665:18:1;;;19658:35;19710:19;;10465:76:0;19334:401:1;10465:76:0;10704:3;;-1:-1:-1;;;;;10685:16:0;;10659:23;10685:16;;;:10;:16;;;;;;10659:23;;10685:22;;;:::i;:::-;10759:3;;-1:-1:-1;;;;;10742:14:0;;10718:21;10742:14;;;:10;:14;;;;;;10659:48;;-1:-1:-1;10718:21:0;10742:20;;10759:3;10742:20;:::i;:::-;10718:44;;10827:29;10839:4;10845:2;10849:6;10827:11;:29::i;:::-;11004:3;;-1:-1:-1;;;;;10985:16:0;;10958:24;10985:16;;;:10;:16;;;;;;10958:24;;10985:22;;;:::i;:::-;11060:3;;-1:-1:-1;;;;;11043:14:0;;11018:22;11043:14;;;:10;:14;;;;;;10958:49;;-1:-1:-1;11018:22:0;11043:20;;11060:3;11043:20;:::i;:::-;-1:-1:-1;;;;;11200:15:0;;11166:31;11200:15;;;:9;:15;;;;;5522:7;11345:25;;;11018:45;;-1:-1:-1;11345:25:0;11503:34;;;11499:384;;;11559:21;;:25;11556:316;;11736:53;11752:4;5522:7;11774:14;11736:15;:53::i;:::-;12029:14;12013:13;:30;12009:308;;;12065:21;;:25;12062:230;;12147:51;5522:7;12179:2;12183:14;12147:15;:51::i;:::-;12062:230;;;12267:9;12273:2;12267:5;:9::i;:::-;;12062:230;12414:19;12445:3;;12436:6;:12;;;;:::i;:::-;12472:21;;12887:17;;12414:34;;-1:-1:-1;12472:21:0;-1:-1:-1;;;12887:17:0;;;;;:44;;-1:-1:-1;;;;;;12908:23:0;;;12887:44;:67;;;-1:-1:-1;;;;;;12935:19:0;;;;;;:15;:19;;;;;;;;12887:67;:92;;;-1:-1:-1;;;;;;12958:21:0;;;;;;:15;:21;;;;;;;;12887:92;:107;;;-1:-1:-1;12991:3:0;;-1:-1:-1;;;;;12983:11:0;;;-1:-1:-1;;;12991:3:0;;;;12983:11;12887:107;12884:305;;;13151:3;13134:14;:20;:43;;13174:3;13134:43;;;13157:14;13134:43;13117:60;;12884:305;13204:18;;13201:1033;;13276:3;13259:14;:20;:43;;13299:3;13259:43;;;13282:14;13259:43;13253:49;;13545:6;13540:108;13561:3;13557:1;:7;13540:108;;;13590:41;13606:4;13612:2;13616:14;13590:15;:41::i;:::-;13566:3;;13540:108;;;-1:-1:-1;13662:21:0;13680:3;13662:21;;:::i;:::-;13704;;13662;;-1:-1:-1;13704:21:0;-1:-1:-1;13746:20:0;;;:43;;13786:3;13746:43;;;13769:14;13746:43;13740:49;;14048:6;14043:125;14064:3;14060:1;:7;14043:125;;;14101:51;5522:7;14133:2;14137:14;14101:15;:51::i;:::-;14069:3;;14043:125;;;-1:-1:-1;14184:36:0;14195:2;14199:20;14216:3;14199:14;:20;:::i;:::-;14184:10;:36::i;:::-;10444:3797;;;;;;;;10366:3875;;;:::o;1229:142::-;1347:9;-1:-1:-1;;;;;1324:44:0;1339:6;-1:-1:-1;;;;;1324:44:0;;1358:9;1324:44;;;;565:14:1;558:22;540:41;;528:2;513:18;;400:187;22875:385:0;22931:13;22961:5;22970:1;22961:10;22957:29;;-1:-1:-1;;22974:10:0;;;;;;;;;;;;-1:-1:-1;;;22974:10:0;;;;;22875:385::o;22957:29::-;23002:5;22987:12;23034:41;23041:9;;23034:41;;23053:8;;;;:::i;:::-;;-1:-1:-1;23063:10:0;;-1:-1:-1;23071:2:0;23063:10;;:::i;:::-;;;23034:41;;;23076:19;23108:6;-1:-1:-1;;;;;23098:17:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23098:17:0;;23076:39;;23126:95;23133:10;;23126:95;;23146:11;23156:1;23146:11;;:::i;:::-;;-1:-1:-1;23189:10:0;23197:2;23189:5;:10;:::i;:::-;23183:22;;23203:2;23183:22;:::i;:::-;23176:30;;23159:6;23166;23159:14;;;;;;;;:::i;:::-;;;;:47;-1:-1:-1;;;;;23159:47:0;;;;;;;;-1:-1:-1;23208:11:0;23217:2;23208:11;;:::i;:::-;;;23126:95;;;23245:6;22875:385;-1:-1:-1;;;;22875:385:0:o;977:114::-;1079:8;1074:3;-1:-1:-1;;;;;1058:30:0;1067:5;-1:-1:-1;;;;;1058:30:0;;;;;;;;;;;977:114;;;:::o;16092:1045::-;-1:-1:-1;;;;;16197:18:0;;16181:13;16197:18;;;:9;:18;;;;;;;;;-1:-1:-1;;;;;16308:15:0;;;;:9;:15;;;;;16397;;16197:18;;16308:15;;16397;16308;16495:7;16501:1;16397:15;16495:7;:::i;:::-;16486:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16486:17:0;16465:38;;16607:11;16589:8;16598:5;16589:15;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:29;;;;;-1:-1:-1;;;;;16589:29:0;;;;;-1:-1:-1;;;;;16589:29:0;;;;;;16695:8;:14;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;16695:14:0;;;;;;;;;-1:-1:-1;;;;;16695:14:0;;;;;;;;;;;;;;16816:7;16695:14;16816:3;:7;:::i;:::-;:12;16813:115;;-1:-1:-1;;;;;16845:22:0;;;;;;:9;:22;;;;;:30;;;16813:115;-1:-1:-1;;;;;16945:13:0;;;;;;:9;:13;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16945:27:0;;;;;;;;;;;;;;;;;17051:13;;;;:20;;:24;;16945:27;17051:24;:::i;:::-;-1:-1:-1;;;;;17030:18:0;;;;;;;:9;:18;;;;;:45;;;;-1:-1:-1;;;;;;16092:1045:0:o;411:112::-;507:3;-1:-1:-1;;;;;491:29:0;500:5;-1:-1:-1;;;;;491:29:0;;512:7;491:29;;;;2370:25:1;;2358:2;2343:18;;2224:177;18287:768:0;18419:15;;18393:14;;18410:8;;18419:19;;18437:1;;18419:19;:::i;:::-;18410:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18410:29:0;18467:22;;;:13;:22;;;;;;18460:29;;-1:-1:-1;;;;;;18460:29:0;;;;;;18538:7;:16;;;;;;:21;;;;;-1:-1:-1;;;;;18538:21:0;;;;;18665:14;;18410:29;;-1:-1:-1;18665:14:0;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;18665:14:0;;;;;;;;;;;-1:-1:-1;;;;;18665:14:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18777:13:0;;;;;:9;:13;;;;;:27;;18665:14;18777:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18883:13;;;:20;:24;;18665:14;18883:24;:::i;:::-;-1:-1:-1;;;;;18862:18:0;;;;;;:9;:18;;;;;:45;;;;18974:40;;18996:4;;19002:2;;18974:21;:40::i;14249:1097::-;14328:6;14338:1;14328:11;14325:23;;14249:1097;;:::o;14325:23::-;14390:6;14400:1;14390:11;14387:105;;14450:9;14456:2;14450:5;:9::i;14387:105::-;14514:6;;-1:-1:-1;;;;;14585:13:0;;14502:9;14585:13;;;:9;:13;;;;;:20;-1:-1:-1;;;;;14514:6:0;;;;14585:20;14656:583;14676:6;14672:1;:10;14656:583;;;14729:4;;;;-1:-1:-1;;;;;14796:11:0;;;;;;;:7;:11;;;;;;;;:16;;-1:-1:-1;;;;;;14796:16:0;-1:-1:-1;;;;;14796:16:0;;;;;;;;14855:9;:13;;;;;:24;;;14938:13;;:9;:13;;;;:22;;;;;;;;;;;;;;;;;;;;;;;14796:16;14938:22;;;;;;;;;;;;;;;;;;14729:4;;15011:43;;14796:11;:16;;15011:21;:43::i;:::-;15127:10;;;;;15189:3;14656:583;;;-1:-1:-1;;15274:6:0;:24;;-1:-1:-1;;15274:24:0;;-1:-1:-1;;;;;15274:24:0;;;;;;;;;;;;;;;-1:-1:-1;;14249:1097:0:o;14:131:1:-;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;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:289::-;634:3;672:5;666:12;699:6;694:3;687:19;755:6;748:4;741:5;737:16;730:4;725:3;721:14;715:47;807:1;800:4;791:6;786:3;782:16;778:27;771:38;870:4;863:2;859:7;854:2;846:6;842:15;838:29;833:3;829:39;825:50;818:57;;;592:289;;;;:::o;886:220::-;1035:2;1024:9;1017:21;998:4;1055:45;1096:2;1085:9;1081:18;1073:6;1055:45;:::i;1111:226::-;1170:6;1223:2;1211:9;1202:7;1198:23;1194:32;1191:52;;;1239:1;1236;1229:12;1191:52;-1:-1:-1;1284:23:1;;1111:226;-1:-1:-1;1111:226:1:o;1550:173::-;1618:20;;-1:-1:-1;;;;;1667:31:1;;1657:42;;1647:70;;1713:1;1710;1703:12;1728:300;1796:6;1804;1857:2;1845:9;1836:7;1832:23;1828:32;1825:52;;;1873:1;1870;1863:12;1825:52;1896:29;1915:9;1896:29;:::i;:::-;1886:39;1994:2;1979:18;;;;1966:32;;-1:-1:-1;;;1728:300:1:o;2033:186::-;2092:6;2145:2;2133:9;2124:7;2120:23;2116:32;2113:52;;;2161:1;2158;2151:12;2113:52;2184:29;2203:9;2184:29;:::i;2406:127::-;2467:10;2462:3;2458:20;2455:1;2448:31;2498:4;2495:1;2488:15;2522:4;2519:1;2512:15;2538:275;2609:2;2603:9;2674:2;2655:13;;-1:-1:-1;;2651:27:1;2639:40;;-1:-1:-1;;;;;2694:34:1;;2730:22;;;2691:62;2688:88;;;2756:18;;:::i;:::-;2792:2;2785:22;2538:275;;-1:-1:-1;2538:275:1:o;2818:186::-;2866:4;-1:-1:-1;;;;;2891:6:1;2888:30;2885:56;;;2921:18;;:::i;:::-;-1:-1:-1;2987:2:1;2966:15;-1:-1:-1;;2962:29:1;2993:4;2958:40;;2818:186::o;3009:336::-;3073:5;3102:52;3118:35;3146:6;3118:35;:::i;:::-;3102:52;:::i;:::-;3093:61;;3177:6;3170:5;3163:21;3217:3;3208:6;3203:3;3199:16;3196:25;3193:45;;;3234:1;3231;3224:12;3193:45;3283:6;3278:3;3271:4;3264:5;3260:16;3247:43;3337:1;3330:4;3321:6;3314:5;3310:18;3306:29;3299:40;3009:336;;;;;:::o;3350:220::-;3392:5;3445:3;3438:4;3430:6;3426:17;3422:27;3412:55;;3463:1;3460;3453:12;3412:55;3485:79;3560:3;3551:6;3538:20;3531:4;3523:6;3519:17;3485:79;:::i;3575:583::-;3670:6;3678;3686;3694;3747:3;3735:9;3726:7;3722:23;3718:33;3715:53;;;3764:1;3761;3754:12;3715:53;3787:29;3806:9;3787:29;:::i;:::-;3777:39;;3835:38;3869:2;3858:9;3854:18;3835:38;:::i;:::-;3825:48;-1:-1:-1;3942:2:1;3927:18;;3914:32;;-1:-1:-1;4021:2:1;4006:18;;3993:32;-1:-1:-1;;;;;4037:30:1;;4034:50;;;4080:1;4077;4070:12;4034:50;4103:49;4144:7;4135:6;4124:9;4120:22;4103:49;:::i;:::-;4093:59;;;3575:583;;;;;;;:::o;4575:374::-;4652:6;4660;4668;4721:2;4709:9;4700:7;4696:23;4692:32;4689:52;;;4737:1;4734;4727:12;4689:52;4760:29;4779:9;4760:29;:::i;:::-;4750:39;;4808:38;4842:2;4831:9;4827:18;4808:38;:::i;:::-;4575:374;;4798:48;;-1:-1:-1;;;4915:2:1;4900:18;;;;4887:32;;4575:374::o;4954:320::-;5022:6;5075:2;5063:9;5054:7;5050:23;5046:32;5043:52;;;5091:1;5088;5081:12;5043:52;5131:9;5118:23;-1:-1:-1;;;;;5156:6:1;5153:30;5150:50;;;5196:1;5193;5186:12;5150:50;5219:49;5260:7;5251:6;5240:9;5236:22;5219:49;:::i;5279:450::-;5348:6;5401:2;5389:9;5380:7;5376:23;5372:32;5369:52;;;5417:1;5414;5407:12;5369:52;5457:9;5444:23;-1:-1:-1;;;;;5482:6:1;5479:30;5476:50;;;5522:1;5519;5512:12;5476:50;5545:22;;5598:4;5590:13;;5586:27;-1:-1:-1;5576:55:1;;5627:1;5624;5617:12;5576:55;5650:73;5715:7;5710:2;5697:16;5692:2;5688;5684:11;5650:73;:::i;5734:160::-;5799:20;;5855:13;;5848:21;5838:32;;5828:60;;5884:1;5881;5874:12;5899:180;5955:6;6008:2;5996:9;5987:7;5983:23;5979:32;5976:52;;;6024:1;6021;6014:12;5976:52;6047:26;6063:9;6047:26;:::i;6084:634::-;6272:2;6284:21;;;6354:13;;6257:18;;;6376:22;;;6224:4;;6455:15;;;6429:2;6414:18;;;6224:4;6498:194;6512:6;6509:1;6506:13;6498:194;;;6577:13;;-1:-1:-1;;;;;6573:38:1;6561:51;;6641:2;6667:15;;;;6632:12;;;;6534:1;6527:9;6498:194;;;-1:-1:-1;6709:3:1;;6084:634;-1:-1:-1;;;;;6084:634:1:o;6723:254::-;6788:6;6796;6849:2;6837:9;6828:7;6824:23;6820:32;6817:52;;;6865:1;6862;6855:12;6817:52;6888:29;6907:9;6888:29;:::i;:::-;6878:39;;6936:35;6967:2;6956:9;6952:18;6936:35;:::i;:::-;6926:45;;6723:254;;;;;:::o;6982:260::-;7050:6;7058;7111:2;7099:9;7090:7;7086:23;7082:32;7079:52;;;7127:1;7124;7117:12;7079:52;7150:29;7169:9;7150:29;:::i;:::-;7140:39;;7198:38;7232:2;7221:9;7217:18;7198:38;:::i;7247:380::-;7326:1;7322:12;;;;7369;;;7390:61;;7444:4;7436:6;7432:17;7422:27;;7390:61;7497:2;7489:6;7486:14;7466:18;7463:38;7460:161;;7543:10;7538:3;7534:20;7531:1;7524:31;7578:4;7575:1;7568:15;7606:4;7603:1;7596:15;7460:161;;7247:380;;;:::o;7987:127::-;8048:10;8043:3;8039:20;8036:1;8029:31;8079:4;8076:1;8069:15;8103:4;8100:1;8093:15;8119:191;-1:-1:-1;;;;;8187:26:1;;;8215;;;8183:59;;8254:27;;8251:53;;;8284:18;;:::i;8660:125::-;8725:9;;;8746:10;;;8743:36;;;8759:18;;:::i;8790:354::-;8992:2;8974:21;;;9031:2;9011:18;;;9004:30;9070:32;9065:2;9050:18;;9043:60;9135:2;9120:18;;8790:354::o;9705:249::-;9774:6;9827:2;9815:9;9806:7;9802:23;9798:32;9795:52;;;9843:1;9840;9833:12;9795:52;9875:9;9869:16;9894:30;9918:5;9894:30;:::i;10307:484::-;10361:5;10414:3;10407:4;10399:6;10395:17;10391:27;10381:55;;10432:1;10429;10422:12;10381:55;10465:6;10459:13;10496:52;10512:35;10540:6;10512:35;:::i;10496:52::-;10573:6;10564:7;10557:23;10627:3;10620:4;10611:6;10603;10599:19;10595:30;10592:39;10589:59;;;10644:1;10641;10634:12;10589:59;10702:6;10695:4;10687:6;10683:17;10676:4;10667:7;10663:18;10657:52;10758:1;10729:20;;;10751:4;10725:31;10718:42;;;;10733:7;10307:484;-1:-1:-1;;;10307:484:1:o;10796:1220::-;10951:6;10959;10967;10975;10983;10991;11044:3;11032:9;11023:7;11019:23;11015:33;11012:53;;;11061:1;11058;11051:12;11012:53;11094:9;11088:16;-1:-1:-1;;;;;11119:6:1;11116:30;11113:50;;;11159:1;11156;11149:12;11113:50;11182:61;11235:7;11226:6;11215:9;11211:22;11182:61;:::i;:::-;11172:71;;;11289:2;11278:9;11274:18;11268:25;-1:-1:-1;;;;;11308:8:1;11305:32;11302:52;;;11350:1;11347;11340:12;11302:52;11373:63;11428:7;11417:8;11406:9;11402:24;11373:63;:::i;:::-;11498:2;11483:18;;11477:25;11572:2;11557:18;;11551:25;11363:73;;-1:-1:-1;11477:25:1;-1:-1:-1;11551:25:1;-1:-1:-1;;;;;;11588:32:1;;11585:52;;;11633:1;11630;11623:12;11585:52;11656:63;11711:7;11700:8;11689:9;11685:24;11656:63;:::i;:::-;11646:73;;;11765:3;11754:9;11750:19;11744:26;-1:-1:-1;;;;;11785:8:1;11782:32;11779:52;;;11827:1;11824;11817:12;11779:52;11850:63;11905:7;11894:8;11883:9;11879:24;11850:63;:::i;:::-;11840:73;;;11937:1;11979:3;11968:9;11964:19;11958:26;11947:37;;12003:7;11993:17;;;10796:1220;;;;;;;;:::o;12147:518::-;12249:2;12244:3;12241:11;12238:421;;;12285:5;12282:1;12275:16;12329:4;12326:1;12316:18;12399:2;12387:10;12383:19;12380:1;12376:27;12370:4;12366:38;12435:4;12423:10;12420:20;12417:47;;;-1:-1:-1;12458:4:1;12417:47;12513:2;12508:3;12504:12;12501:1;12497:20;12491:4;12487:31;12477:41;;12568:81;12586:2;12579:5;12576:13;12568:81;;;12645:1;12631:16;;12612:1;12601:13;12568:81;;;12572:3;;12147:518;;;:::o;12841:1299::-;12967:3;12961:10;-1:-1:-1;;;;;12986:6:1;12983:30;12980:56;;;13016:18;;:::i;:::-;13045:97;13135:6;13095:38;13127:4;13121:11;13095:38;:::i;:::-;13089:4;13045:97;:::i;:::-;13191:4;13222:2;13211:14;;13239:1;13234:649;;;;13927:1;13944:6;13941:89;;;-1:-1:-1;13996:19:1;;;13990:26;13941:89;-1:-1:-1;;12798:1:1;12794:11;;;12790:24;12786:29;12776:40;12822:1;12818:11;;;12773:57;14043:81;;13204:930;;13234:649;12094:1;12087:14;;;12131:4;12118:18;;-1:-1:-1;;13270:20:1;;;13388:222;13402:7;13399:1;13396:14;13388:222;;;13484:19;;;13478:26;13463:42;;13591:4;13576:20;;;;13544:1;13532:14;;;;13418:12;13388:222;;;13392:3;13638:6;13629:7;13626:19;13623:201;;;13699:19;;;13693:26;-1:-1:-1;;13782:1:1;13778:14;;;13794:3;13774:24;13770:37;13766:42;13751:58;13736:74;;13623:201;-1:-1:-1;;;;13870:1:1;13854:14;;;13850:22;13837:36;;-1:-1:-1;12841:1299:1:o;14145:375::-;14233:1;14251:5;14265:249;14286:1;14276:8;14273:15;14265:249;;;14336:4;14331:3;14327:14;14321:4;14318:24;14315:50;;;14345:18;;:::i;:::-;14395:1;14385:8;14381:16;14378:49;;;14409:16;;;;14378:49;14492:1;14488:16;;;;;14448:15;;14265:249;;;14145:375;;;;;;:::o;14525:902::-;14574:5;14604:8;14594:80;;-1:-1:-1;14645:1:1;14659:5;;14594:80;14693:4;14683:76;;-1:-1:-1;14730:1:1;14744:5;;14683:76;14775:4;14793:1;14788:59;;;;14861:1;14856:174;;14768:262;14856:174;14893:3;14883:8;14880:17;14877:43;;;14900:18;;:::i;:::-;-1:-1:-1;;14956:1:1;14942:16;;15015:5;;14768:262;;15114:2;15104:8;15101:16;15095:3;15089:4;15086:13;15082:36;15076:2;15066:8;15063:16;15058:2;15052:4;15049:12;15045:35;15042:77;15039:203;;;-1:-1:-1;15151:19:1;;;15227:5;;15039:203;15274:42;-1:-1:-1;;15299:8:1;15293:4;15274:42;:::i;:::-;15352:6;15348:1;15344:6;15340:19;15331:7;15328:32;15325:58;;;15363:18;;:::i;:::-;15401:20;;14525:902;-1:-1:-1;;;14525:902:1:o;15432:131::-;15492:5;15521:36;15548:8;15542:4;15521:36;:::i;15970:341::-;16172:2;16154:21;;;16211:2;16191:18;;;16184:30;-1:-1:-1;;;16245:2:1;16230:18;;16223:47;16302:2;16287:18;;15970:341::o;16316:485::-;-1:-1:-1;;;;;16547:32:1;;;16529:51;;16616:32;;16611:2;16596:18;;16589:60;16680:2;16665:18;;16658:34;;;16728:3;16723:2;16708:18;;16701:31;;;-1:-1:-1;;16749:46:1;;16775:19;;16767:6;16749:46;:::i;:::-;16741:54;16316:485;-1:-1:-1;;;;;;16316:485:1:o;17151:128::-;17218:9;;;17239:11;;;17236:37;;;17253:18;;:::i;17284:677::-;17334:3;17375:5;17369:12;17404:36;17430:9;17404:36;:::i;:::-;17471:1;17456:17;;17482:133;;;;17629:1;17624:331;;;;17449:506;;17482:133;-1:-1:-1;;17515:24:1;;17503:37;;17588:14;;17581:22;17569:35;;17560:45;;;-1:-1:-1;17482:133:1;;17624:331;17655:5;17652:1;17645:16;17702:4;17699:1;17689:18;17729:1;17743:166;17757:6;17754:1;17751:13;17743:166;;;17837:14;;17824:11;;;17817:35;17893:1;17880:15;;;;17779:4;17772:12;17743:166;;;17747:3;;17938:6;17933:3;17929:16;17922:23;;17449:506;;;;17284:677;;;;:::o;17966:483::-;18187:3;18215:38;18249:3;18241:6;18215:38;:::i;:::-;18282:6;18276:13;18327:6;18320:4;18312:6;18308:17;18304:2;18298:36;18388:1;18353:15;;18377:13;;;18406:37;18353:15;18432:6;18406:37;:::i;18454:168::-;18527:9;;;18558;;18575:15;;;18569:22;;18555:37;18545:71;;18596:18;;:::i;19740:127::-;19801:10;19796:3;19792:20;19789:1;19782:31;19832:4;19829:1;19822:15;19856:4;19853:1;19846:15;19872:112;19904:1;19930;19920:35;;19935:18;;:::i;:::-;-1:-1:-1;19969:9:1;;19872:112::o;19989:120::-;20029:1;20055;20045:35;;20060:18;;:::i;:::-;-1:-1:-1;20094:9:1;;19989:120::o;20114:135::-;20153:3;20174:17;;;20171:43;;20194:18;;:::i;:::-;-1:-1:-1;20241:1:1;20230:13;;20114:135::o;20254:148::-;20342:4;20321:12;;;20335;;;20317:31;;20360:13;;20357:39;;;20376:18;;:::i;20407:127::-;20468:10;20463:3;20459:20;20456:1;20449:31;20499:4;20496:1;20489:15;20523:4;20520:1;20513:15;20539:127;20600:10;20595:3;20591:20;20588:1;20581:31;20631:4;20628:1;20621:15;20655:4;20652:1;20645:15
Swarm Source
ipfs://b6b5d4acac65ee6705ea77540cf327fcd5a3568ecfc7b1d9d4c139b475e23509
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.