ERC-721
Overview
Max Total Supply
1,001 SlothAvatars
Holders
367
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Balance
4 SlothAvatarsLoading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
SlothAvatar
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at ftmscan.com on 2022-01-31 */ /* $$$$$$\ $$\ $$\ $$\ $$ __$$\ $$ | $$ | $$ | $$ / \__|$$ | $$$$$$\ $$$$$$\ $$$$$$$\ \$$$$$$\ $$ |$$ __$$\\_$$ _| $$ __$$\ \____$$\ $$ |$$ / $$ | $$ | $$ | $$ | $$\ $$ |$$ |$$ | $$ | $$ |$$\ $$ | $$ | \$$$$$$ |$$ |\$$$$$$ | \$$$$ |$$ | $$ | \______/ \__| \______/ \____/ \__| \__| $$$$$$\ $$\ $$ __$$\ $$ | $$ / $$ |$$\ $$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$\ $$$$$$$\ $$$$$$$$ |\$$\ $$ |\____$$\\_$$ _| \____$$\ $$ __$$\ $$ _____| $$ __$$ | \$$\$$ / $$$$$$$ | $$ | $$$$$$$ |$$ | \__|\$$$$$$\ $$ | $$ | \$$$ / $$ __$$ | $$ |$$\ $$ __$$ |$$ | \____$$\ $$ | $$ | \$ / \$$$$$$$ | \$$$$ |\$$$$$$$ |$$ | $$$$$$$ | \__| \__| \_/ \_______| \____/ \_______|\__| \_______/ */ // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } library SlothHelper { function isContract(address account) public view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function toString(uint256 value) public pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } } contract SlothAvatar is Ownable, ERC165, IERC721, IERC721Metadata { // Token name string private _name = "SlothAvatar"; // Token symbol string private _symbol = "SlothAvatars"; // Mapping from token ID to owner address mapping(uint256 => address) private _owners; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; uint256 private mintIndex = 1; uint256 private ownerMintIndex = 0; uint256 private constant baseCost = 1 ether; uint256 public constant maxSupply = 1466; uint256 public constant reservedSupply = 466; uint256 public constant mintCost = 50; string baseURL; string baseExtention = ""; string gameURL; constructor(string memory _url, string memory _extention, string memory _gURL) { baseURL = _url; baseExtention = _extention; gameURL = _gURL; } function changeURLParams(string memory _nURL, string memory _nBaseExt, string memory _ngURL) external onlyOwner { baseURL = _nURL; baseExtention = _nBaseExt; gameURL = _ngURL; } function totalSupply() public view returns(uint256){ return mintIndex; } function walletOfOwner(address wallet) public view returns(uint256[] memory walletNFTs){ uint256 amnt = 0; for(uint256 i=1; i<mintIndex; i++){ if(ownerOf(i) == wallet){ amnt += 1; } } walletNFTs = new uint256[](amnt); uint256 _idx = 0; for(uint256 i=1; i<mintIndex; i++){ if(ownerOf(i) == wallet){ walletNFTs[_idx] = i; _idx += 1; } } } function mintAvatar(address to, uint256 amount) external payable { require(mintIndex <= maxSupply, "SlothAvatar: All the avatars are out minted!"); if(msg.sender == owner()){ require(ownerMintIndex+amount < reservedSupply, "SlothAvatar: All reserves have been minted!"); for(uint256 i=0; i<amount; i++){ _mint(to, mintIndex); mintIndex += 1; } ownerMintIndex += amount; }else{ require(mintIndex <= (maxSupply - reservedSupply), "SlothAvatar: All avaliable avatars have been minted"); require(amount == 1, "SlothAvatar: Can only mint 1 avatar at a time"); require(msg.value >= mintCost*baseCost, "SlothAvatar: Need to pay minting fee"); _mint(to, mintIndex); mintIndex += 1; } } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, SlothHelper.toString(tokenId), baseExtention)) : ""; } function gameURI(uint256 tokenID) public view returns(string memory){ return(string(abi.encodePacked(gameURL, SlothHelper.toString(tokenID), baseExtention))); } function _baseURI() internal view virtual returns (string memory) { return baseURL; } function approve(address to, uint256 tokenId) public virtual override { address owner = ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ownerOf(tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ownerOf(tokenId), to, tokenId); } function withdraw() external onlyOwner { require(payable(owner()).send(address(this).balance)); } function withdrawAmount(uint256 amnt) external onlyOwner { payable(owner()).transfer(amnt*baseCost); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (SlothHelper.isContract(to)) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_url","type":"string"},{"internalType":"string","name":"_extention","type":"string"},{"internalType":"string","name":"_gURL","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_nURL","type":"string"},{"internalType":"string","name":"_nBaseExt","type":"string"},{"internalType":"string","name":"_ngURL","type":"string"}],"name":"changeURLParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"gameURI","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":"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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintAvatar","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reservedSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"walletNFTs","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amnt","type":"uint256"}],"name":"withdrawAmount","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526040518060400160405280600b81526020017f536c6f7468417661746172000000000000000000000000000000000000000000815250600190805190602001906200005192919062000245565b506040518060400160405280600c81526020017f536c6f7468417661746172730000000000000000000000000000000000000000815250600290805190602001906200009f92919062000245565b506001600755600060085560405180602001604052806000815250600a9080519060200190620000d192919062000245565b50348015620000df57600080fd5b506040516200415b3803806200415b833981810160405281019062000105919062000373565b62000125620001196200017960201b60201c565b6200018160201b60201c565b82600990805190602001906200013d92919062000245565b5081600a90805190602001906200015692919062000245565b5080600b90805190602001906200016f92919062000245565b50505050620005b0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200025390620004c1565b90600052602060002090601f016020900481019282620002775760008555620002c3565b82601f106200029257805160ff1916838001178555620002c3565b82800160010185558215620002c3579182015b82811115620002c2578251825591602001919060010190620002a5565b5b509050620002d29190620002d6565b5090565b5b80821115620002f1576000816000905550600101620002d7565b5090565b60006200030c620003068462000455565b6200042c565b9050828152602081018484840111156200032b576200032a62000590565b5b620003388482856200048b565b509392505050565b600082601f8301126200035857620003576200058b565b5b81516200036a848260208601620002f5565b91505092915050565b6000806000606084860312156200038f576200038e6200059a565b5b600084015167ffffffffffffffff811115620003b057620003af62000595565b5b620003be8682870162000340565b935050602084015167ffffffffffffffff811115620003e257620003e162000595565b5b620003f08682870162000340565b925050604084015167ffffffffffffffff81111562000414576200041362000595565b5b620004228682870162000340565b9150509250925092565b6000620004386200044b565b9050620004468282620004f7565b919050565b6000604051905090565b600067ffffffffffffffff8211156200047357620004726200055c565b5b6200047e826200059f565b9050602081019050919050565b60005b83811015620004ab5780820151818401526020810190506200048e565b83811115620004bb576000848401525b50505050565b60006002820490506001821680620004da57607f821691505b60208210811415620004f157620004f06200052d565b5b50919050565b62000502826200059f565b810181811067ffffffffffffffff821117156200052457620005236200055c565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b613b9b80620005c06000396000f3fe6080604052600436106101815760003560e01c806370a08231116100d1578063bdb4b8481161008a578063d5abeb0111610064578063d5abeb0114610580578063e985e9c5146105ab578063f2fde38b146105e8578063fe9eaad81461061157610181565b8063bdb4b848146104db578063c87b56dd14610506578063d588cfe21461054357610181565b806370a08231146103df578063715018a61461041c5780638da5cb5b1461043357806395d89b411461045e578063a22cb46514610489578063b88d4fde146104b257610181565b806323b872dd1161013e578063438b630011610118578063438b63001461031157806344d19d2b1461034e578063598a4d23146103795780636352211e146103a257610181565b806323b872dd146102a85780633ccfd60b146102d157806342842e0e146102e857610181565b806301ffc9a7146101865780630562b9f7146101c357806306fdde03146101ec578063081812fc14610217578063095ea7b31461025457806318160ddd1461027d575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190612686565b61062d565b6040516101ba9190612dd4565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906127d0565b61070f565b005b3480156101f857600080fd5b506102016107ef565b60405161020e9190612def565b60405180910390f35b34801561022357600080fd5b5061023e600480360381019061023991906127d0565b610881565b60405161024b9190612d4b565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612619565b610906565b005b34801561028957600080fd5b50610292610a1e565b60405161029f91906130cc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612503565b610a28565b005b3480156102dd57600080fd5b506102e6610a88565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612503565b610b4b565b005b34801561031d57600080fd5b5061033860048036038101906103339190612496565b610b6b565b6040516103459190612db2565b60405180910390f35b34801561035a57600080fd5b50610363610cc3565b60405161037091906130cc565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612729565b610cc9565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906127d0565b610d8f565b6040516103d69190612d4b565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612496565b610e41565b60405161041391906130cc565b60405180910390f35b34801561042857600080fd5b50610431610ef9565b005b34801561043f57600080fd5b50610448610f81565b6040516104559190612d4b565b60405180910390f35b34801561046a57600080fd5b50610473610faa565b6040516104809190612def565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906125d9565b61103c565b005b3480156104be57600080fd5b506104d960048036038101906104d49190612556565b6111bd565b005b3480156104e757600080fd5b506104f061121f565b6040516104fd91906130cc565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906127d0565b611224565b60405161053a9190612def565b60405180910390f35b34801561054f57600080fd5b5061056a600480360381019061056591906127d0565b611351565b6040516105779190612def565b60405180910390f35b34801561058c57600080fd5b5061059561140b565b6040516105a291906130cc565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd91906124c3565b611411565b6040516105df9190612dd4565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190612496565b6114a5565b005b61062b60048036038101906106269190612619565b61159d565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106f857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107085750610707826117ec565b5b9050919050565b610717611856565b73ffffffffffffffffffffffffffffffffffffffff16610735610f81565b73ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612fd1565b60405180910390fd5b610793610f81565b73ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a7640000836107c09190613255565b9081150290604051600060405180830381858888f193505050501580156107eb573d6000803e3d6000fd5b5050565b6060600180546107fe90613399565b80601f016020809104026020016040519081016040528092919081815260200182805461082a90613399565b80156108775780601f1061084c57610100808354040283529160200191610877565b820191906000526020600020905b81548152906001019060200180831161085a57829003601f168201915b5050505050905090565b600061088c8261185e565b6108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c290612fb1565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061091182610d8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097990613031565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109a1611856565b73ffffffffffffffffffffffffffffffffffffffff1614806109d057506109cf816109ca611856565b611411565b5b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690612f31565b60405180910390fd5b610a1983836118ca565b505050565b6000600754905090565b610a39610a33611856565b82611983565b610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f90613071565b60405180910390fd5b610a83838383611a61565b505050565b610a90611856565b73ffffffffffffffffffffffffffffffffffffffff16610aae610f81565b73ffffffffffffffffffffffffffffffffffffffff1614610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb90612fd1565b60405180910390fd5b610b0c610f81565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610b4957600080fd5b565b610b66838383604051806020016040528060008152506111bd565b505050565b6060600080600190505b600754811015610bde578373ffffffffffffffffffffffffffffffffffffffff16610b9f82610d8f565b73ffffffffffffffffffffffffffffffffffffffff161415610bcb57600182610bc891906131ff565b91505b8080610bd6906133fc565b915050610b75565b508067ffffffffffffffff811115610bf957610bf86134d2565b5b604051908082528060200260200182016040528015610c275781602001602082028036833780820191505090505b509150600080600190505b600754811015610cbb578473ffffffffffffffffffffffffffffffffffffffff16610c5c82610d8f565b73ffffffffffffffffffffffffffffffffffffffff161415610ca85780848381518110610c8c57610c8b6134a3565b5b602002602001018181525050600182610ca591906131ff565b91505b8080610cb3906133fc565b915050610c32565b505050919050565b6101d281565b610cd1611856565b73ffffffffffffffffffffffffffffffffffffffff16610cef610f81565b73ffffffffffffffffffffffffffffffffffffffff1614610d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3c90612fd1565b60405180910390fd5b8260099080519060200190610d5b929190612225565b5081600a9080519060200190610d72929190612225565b5080600b9080519060200190610d89929190612225565b50505050565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f90612f71565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea990612f51565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f01611856565b73ffffffffffffffffffffffffffffffffffffffff16610f1f610f81565b73ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612fd1565b60405180910390fd5b610f7f6000611cb2565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610fb990613399565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe590613399565b80156110325780601f1061100757610100808354040283529160200191611032565b820191906000526020600020905b81548152906001019060200180831161101557829003601f168201915b5050505050905090565b611044611856565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990612ef1565b60405180910390fd5b80600660006110bf611856565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661116c611856565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111b19190612dd4565b60405180910390a35050565b6111ce6111c8611856565b83611983565b61120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490613071565b60405180910390fd5b61121984848484611d76565b50505050565b603281565b606061122f8261185e565b61126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590613011565b60405180910390fd5b6000611278611dd2565b905060008151116112985760405180602001604052806000815250611349565b80730aad68f4e52bc50a7d88ce74e121169767c57e84636900a3ae856040518263ffffffff1660e01b81526004016112d091906130b1565b60006040518083038186803b1580156112e857600080fd5b505af41580156112fc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061132591906126e0565b600a60405160200161133993929190612cce565b6040516020818303038152906040525b915050919050565b6060600b730aad68f4e52bc50a7d88ce74e121169767c57e84636900a3ae846040518263ffffffff1660e01b815260040161138c91906130b1565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113e191906126e0565b600a6040516020016113f593929190612cff565b6040516020818303038152906040529050919050565b6105ba81565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6114ad611856565b73ffffffffffffffffffffffffffffffffffffffff166114cb610f81565b73ffffffffffffffffffffffffffffffffffffffff1614611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890612e71565b60405180910390fd5b61159a81611cb2565b50565b6105ba60075411156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90613091565b60405180910390fd5b6115ec610f81565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156116d3576101d28160085461163091906131ff565b10611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612e51565b60405180910390fd5b60005b818110156116b45761168783600754611e64565b60016007600082825461169a91906131ff565b9250508190555080806116ac906133fc565b915050611673565b5080600860008282546116c791906131ff565b925050819055506117e8565b6101d26105ba6116e391906132af565b6007541115611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90613051565b60405180910390fd5b6001811461176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190612e11565b60405180910390fd5b670de0b6b3a7640000603261177f9190613255565b3410156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612eb1565b60405180910390fd5b6117cd82600754611e64565b6001600760008282546117e091906131ff565b925050819055505b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661193d83610d8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061198e8261185e565b6119cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c490612f11565b60405180910390fd5b60006119d883610d8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a4757508373ffffffffffffffffffffffffffffffffffffffff16611a2f84610881565b73ffffffffffffffffffffffffffffffffffffffff16145b80611a585750611a578185611411565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611a8182610d8f565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90612ff1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90612ed1565b60405180910390fd5b611b526000826118ca565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ba291906132af565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf991906131ff565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611d81848484611a61565b611d8d84848484612026565b611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390612e31565b60405180910390fd5b50505050565b606060098054611de190613399565b80601f0160208091040260200160405190810160405280929190818152602001828054611e0d90613399565b8015611e5a5780601f10611e2f57610100808354040283529160200191611e5a565b820191906000526020600020905b815481529060010190602001808311611e3d57829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb90612f91565b60405180910390fd5b611edd8161185e565b15611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490612e91565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f6d91906131ff565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000730aad68f4e52bc50a7d88ce74e121169767c57e846316279055856040518263ffffffff1660e01b815260040161205f9190612d30565b60206040518083038186803b15801561207757600080fd5b505af415801561208b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120af9190612659565b15612218578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120d8611856565b8786866040518563ffffffff1660e01b81526004016120fa9493929190612d66565b602060405180830381600087803b15801561211457600080fd5b505af192505050801561214557506040513d601f19601f8201168201806040525081019061214291906126b3565b60015b6121c8573d8060008114612175576040519150601f19603f3d011682016040523d82523d6000602084013e61217a565b606091505b506000815114156121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b790612e31565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061221d565b600190505b949350505050565b82805461223190613399565b90600052602060002090601f016020900481019282612253576000855561229a565b82601f1061226c57805160ff191683800117855561229a565b8280016001018555821561229a579182015b8281111561229957825182559160200191906001019061227e565b5b5090506122a791906122ab565b5090565b5b808211156122c45760008160009055506001016122ac565b5090565b60006122db6122d68461310c565b6130e7565b9050828152602081018484840111156122f7576122f6613506565b5b612302848285613357565b509392505050565b600061231d6123188461313d565b6130e7565b90508281526020810184848401111561233957612338613506565b5b612344848285613357565b509392505050565b600061235f61235a8461313d565b6130e7565b90508281526020810184848401111561237b5761237a613506565b5b612386848285613366565b509392505050565b60008135905061239d81613b09565b92915050565b6000813590506123b281613b20565b92915050565b6000815190506123c781613b20565b92915050565b6000813590506123dc81613b37565b92915050565b6000815190506123f181613b37565b92915050565b600082601f83011261240c5761240b613501565b5b813561241c8482602086016122c8565b91505092915050565b600082601f83011261243a57612439613501565b5b813561244a84826020860161230a565b91505092915050565b600082601f83011261246857612467613501565b5b815161247884826020860161234c565b91505092915050565b60008135905061249081613b4e565b92915050565b6000602082840312156124ac576124ab613510565b5b60006124ba8482850161238e565b91505092915050565b600080604083850312156124da576124d9613510565b5b60006124e88582860161238e565b92505060206124f98582860161238e565b9150509250929050565b60008060006060848603121561251c5761251b613510565b5b600061252a8682870161238e565b935050602061253b8682870161238e565b925050604061254c86828701612481565b9150509250925092565b600080600080608085870312156125705761256f613510565b5b600061257e8782880161238e565b945050602061258f8782880161238e565b93505060406125a087828801612481565b925050606085013567ffffffffffffffff8111156125c1576125c061350b565b5b6125cd878288016123f7565b91505092959194509250565b600080604083850312156125f0576125ef613510565b5b60006125fe8582860161238e565b925050602061260f858286016123a3565b9150509250929050565b600080604083850312156126305761262f613510565b5b600061263e8582860161238e565b925050602061264f85828601612481565b9150509250929050565b60006020828403121561266f5761266e613510565b5b600061267d848285016123b8565b91505092915050565b60006020828403121561269c5761269b613510565b5b60006126aa848285016123cd565b91505092915050565b6000602082840312156126c9576126c8613510565b5b60006126d7848285016123e2565b91505092915050565b6000602082840312156126f6576126f5613510565b5b600082015167ffffffffffffffff8111156127145761271361350b565b5b61272084828501612453565b91505092915050565b60008060006060848603121561274257612741613510565b5b600084013567ffffffffffffffff8111156127605761275f61350b565b5b61276c86828701612425565b935050602084013567ffffffffffffffff81111561278d5761278c61350b565b5b61279986828701612425565b925050604084013567ffffffffffffffff8111156127ba576127b961350b565b5b6127c686828701612425565b9150509250925092565b6000602082840312156127e6576127e5613510565b5b60006127f484828501612481565b91505092915050565b60006128098383612ca1565b60208301905092915050565b61281e816132e3565b82525050565b61282d816132e3565b82525050565b600061283e82613193565b61284881856131c1565b93506128538361316e565b8060005b8381101561288457815161286b88826127fd565b9750612876836131b4565b925050600181019050612857565b5085935050505092915050565b61289a816132f5565b82525050565b60006128ab8261319e565b6128b581856131d2565b93506128c5818560208601613366565b6128ce81613515565b840191505092915050565b60006128e4826131a9565b6128ee81856131e3565b93506128fe818560208601613366565b61290781613515565b840191505092915050565b600061291d826131a9565b61292781856131f4565b9350612937818560208601613366565b80840191505092915050565b6000815461295081613399565b61295a81866131f4565b945060018216600081146129755760018114612986576129b9565b60ff198316865281860193506129b9565b61298f8561317e565b60005b838110156129b157815481890152600182019150602081019050612992565b838801955050505b50505092915050565b60006129cf602d836131e3565b91506129da82613526565b604082019050919050565b60006129f26032836131e3565b91506129fd82613575565b604082019050919050565b6000612a15602b836131e3565b9150612a20826135c4565b604082019050919050565b6000612a386026836131e3565b9150612a4382613613565b604082019050919050565b6000612a5b601c836131e3565b9150612a6682613662565b602082019050919050565b6000612a7e6024836131e3565b9150612a898261368b565b604082019050919050565b6000612aa16024836131e3565b9150612aac826136da565b604082019050919050565b6000612ac46019836131e3565b9150612acf82613729565b602082019050919050565b6000612ae7602c836131e3565b9150612af282613752565b604082019050919050565b6000612b0a6038836131e3565b9150612b15826137a1565b604082019050919050565b6000612b2d602a836131e3565b9150612b38826137f0565b604082019050919050565b6000612b506029836131e3565b9150612b5b8261383f565b604082019050919050565b6000612b736020836131e3565b9150612b7e8261388e565b602082019050919050565b6000612b96602c836131e3565b9150612ba1826138b7565b604082019050919050565b6000612bb96020836131e3565b9150612bc482613906565b602082019050919050565b6000612bdc6029836131e3565b9150612be78261392f565b604082019050919050565b6000612bff602f836131e3565b9150612c0a8261397e565b604082019050919050565b6000612c226021836131e3565b9150612c2d826139cd565b604082019050919050565b6000612c456033836131e3565b9150612c5082613a1c565b604082019050919050565b6000612c686031836131e3565b9150612c7382613a6b565b604082019050919050565b6000612c8b602c836131e3565b9150612c9682613aba565b604082019050919050565b612caa8161334d565b82525050565b612cb98161334d565b82525050565b612cc88161334d565b82525050565b6000612cda8286612912565b9150612ce68285612912565b9150612cf28284612943565b9150819050949350505050565b6000612d0b8286612943565b9150612d178285612912565b9150612d238284612943565b9150819050949350505050565b6000602082019050612d456000830184612824565b92915050565b6000602082019050612d606000830184612815565b92915050565b6000608082019050612d7b6000830187612815565b612d886020830186612815565b612d956040830185612cb0565b8181036060830152612da781846128a0565b905095945050505050565b60006020820190508181036000830152612dcc8184612833565b905092915050565b6000602082019050612de96000830184612891565b92915050565b60006020820190508181036000830152612e0981846128d9565b905092915050565b60006020820190508181036000830152612e2a816129c2565b9050919050565b60006020820190508181036000830152612e4a816129e5565b9050919050565b60006020820190508181036000830152612e6a81612a08565b9050919050565b60006020820190508181036000830152612e8a81612a2b565b9050919050565b60006020820190508181036000830152612eaa81612a4e565b9050919050565b60006020820190508181036000830152612eca81612a71565b9050919050565b60006020820190508181036000830152612eea81612a94565b9050919050565b60006020820190508181036000830152612f0a81612ab7565b9050919050565b60006020820190508181036000830152612f2a81612ada565b9050919050565b60006020820190508181036000830152612f4a81612afd565b9050919050565b60006020820190508181036000830152612f6a81612b20565b9050919050565b60006020820190508181036000830152612f8a81612b43565b9050919050565b60006020820190508181036000830152612faa81612b66565b9050919050565b60006020820190508181036000830152612fca81612b89565b9050919050565b60006020820190508181036000830152612fea81612bac565b9050919050565b6000602082019050818103600083015261300a81612bcf565b9050919050565b6000602082019050818103600083015261302a81612bf2565b9050919050565b6000602082019050818103600083015261304a81612c15565b9050919050565b6000602082019050818103600083015261306a81612c38565b9050919050565b6000602082019050818103600083015261308a81612c5b565b9050919050565b600060208201905081810360008301526130aa81612c7e565b9050919050565b60006020820190506130c66000830184612cbf565b92915050565b60006020820190506130e16000830184612cb0565b92915050565b60006130f1613102565b90506130fd82826133cb565b919050565b6000604051905090565b600067ffffffffffffffff821115613127576131266134d2565b5b61313082613515565b9050602081019050919050565b600067ffffffffffffffff821115613158576131576134d2565b5b61316182613515565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061320a8261334d565b91506132158361334d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561324a57613249613445565b5b828201905092915050565b60006132608261334d565b915061326b8361334d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132a4576132a3613445565b5b828202905092915050565b60006132ba8261334d565b91506132c58361334d565b9250828210156132d8576132d7613445565b5b828203905092915050565b60006132ee8261332d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613384578082015181840152602081019050613369565b83811115613393576000848401525b50505050565b600060028204905060018216806133b157607f821691505b602082108114156133c5576133c4613474565b5b50919050565b6133d482613515565b810181811067ffffffffffffffff821117156133f3576133f26134d2565b5b80604052505050565b60006134078261334d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561343a57613439613445565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f536c6f74684176617461723a2043616e206f6e6c79206d696e7420312061766160008201527f74617220617420612074696d6500000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f536c6f74684176617461723a20416c6c2072657365727665732068617665206260008201527f65656e206d696e74656421000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f536c6f74684176617461723a204e65656420746f20706179206d696e74696e6760008201527f2066656500000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f536c6f74684176617461723a20416c6c206176616c6961626c6520617661746160008201527f72732068617665206265656e206d696e74656400000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f536c6f74684176617461723a20416c6c2074686520617661746172732061726560008201527f206f7574206d696e746564210000000000000000000000000000000000000000602082015250565b613b12816132e3565b8114613b1d57600080fd5b50565b613b29816132f5565b8114613b3457600080fd5b50565b613b4081613301565b8114613b4b57600080fd5b50565b613b578161334d565b8114613b6257600080fd5b5056fea26469706673582212200a3e9b3b5d4147674327ec29a0133f32df9d9b061957db51206615ff4634ecc964736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d554c6551674e755256364c3658395767377967774d3869753653476e52336d36696351514834396b524a37372f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002768747470733a2f2f6170692e736c6f7468746f7069612e696f2f6765742f6d657461646174612f00000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101815760003560e01c806370a08231116100d1578063bdb4b8481161008a578063d5abeb0111610064578063d5abeb0114610580578063e985e9c5146105ab578063f2fde38b146105e8578063fe9eaad81461061157610181565b8063bdb4b848146104db578063c87b56dd14610506578063d588cfe21461054357610181565b806370a08231146103df578063715018a61461041c5780638da5cb5b1461043357806395d89b411461045e578063a22cb46514610489578063b88d4fde146104b257610181565b806323b872dd1161013e578063438b630011610118578063438b63001461031157806344d19d2b1461034e578063598a4d23146103795780636352211e146103a257610181565b806323b872dd146102a85780633ccfd60b146102d157806342842e0e146102e857610181565b806301ffc9a7146101865780630562b9f7146101c357806306fdde03146101ec578063081812fc14610217578063095ea7b31461025457806318160ddd1461027d575b600080fd5b34801561019257600080fd5b506101ad60048036038101906101a89190612686565b61062d565b6040516101ba9190612dd4565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e591906127d0565b61070f565b005b3480156101f857600080fd5b506102016107ef565b60405161020e9190612def565b60405180910390f35b34801561022357600080fd5b5061023e600480360381019061023991906127d0565b610881565b60405161024b9190612d4b565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612619565b610906565b005b34801561028957600080fd5b50610292610a1e565b60405161029f91906130cc565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190612503565b610a28565b005b3480156102dd57600080fd5b506102e6610a88565b005b3480156102f457600080fd5b5061030f600480360381019061030a9190612503565b610b4b565b005b34801561031d57600080fd5b5061033860048036038101906103339190612496565b610b6b565b6040516103459190612db2565b60405180910390f35b34801561035a57600080fd5b50610363610cc3565b60405161037091906130cc565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b9190612729565b610cc9565b005b3480156103ae57600080fd5b506103c960048036038101906103c491906127d0565b610d8f565b6040516103d69190612d4b565b60405180910390f35b3480156103eb57600080fd5b5061040660048036038101906104019190612496565b610e41565b60405161041391906130cc565b60405180910390f35b34801561042857600080fd5b50610431610ef9565b005b34801561043f57600080fd5b50610448610f81565b6040516104559190612d4b565b60405180910390f35b34801561046a57600080fd5b50610473610faa565b6040516104809190612def565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906125d9565b61103c565b005b3480156104be57600080fd5b506104d960048036038101906104d49190612556565b6111bd565b005b3480156104e757600080fd5b506104f061121f565b6040516104fd91906130cc565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906127d0565b611224565b60405161053a9190612def565b60405180910390f35b34801561054f57600080fd5b5061056a600480360381019061056591906127d0565b611351565b6040516105779190612def565b60405180910390f35b34801561058c57600080fd5b5061059561140b565b6040516105a291906130cc565b60405180910390f35b3480156105b757600080fd5b506105d260048036038101906105cd91906124c3565b611411565b6040516105df9190612dd4565b60405180910390f35b3480156105f457600080fd5b5061060f600480360381019061060a9190612496565b6114a5565b005b61062b60048036038101906106269190612619565b61159d565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106f857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107085750610707826117ec565b5b9050919050565b610717611856565b73ffffffffffffffffffffffffffffffffffffffff16610735610f81565b73ffffffffffffffffffffffffffffffffffffffff161461078b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078290612fd1565b60405180910390fd5b610793610f81565b73ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a7640000836107c09190613255565b9081150290604051600060405180830381858888f193505050501580156107eb573d6000803e3d6000fd5b5050565b6060600180546107fe90613399565b80601f016020809104026020016040519081016040528092919081815260200182805461082a90613399565b80156108775780601f1061084c57610100808354040283529160200191610877565b820191906000526020600020905b81548152906001019060200180831161085a57829003601f168201915b5050505050905090565b600061088c8261185e565b6108cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c290612fb1565b60405180910390fd5b6005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061091182610d8f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097990613031565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109a1611856565b73ffffffffffffffffffffffffffffffffffffffff1614806109d057506109cf816109ca611856565b611411565b5b610a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0690612f31565b60405180910390fd5b610a1983836118ca565b505050565b6000600754905090565b610a39610a33611856565b82611983565b610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f90613071565b60405180910390fd5b610a83838383611a61565b505050565b610a90611856565b73ffffffffffffffffffffffffffffffffffffffff16610aae610f81565b73ffffffffffffffffffffffffffffffffffffffff1614610b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afb90612fd1565b60405180910390fd5b610b0c610f81565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610b4957600080fd5b565b610b66838383604051806020016040528060008152506111bd565b505050565b6060600080600190505b600754811015610bde578373ffffffffffffffffffffffffffffffffffffffff16610b9f82610d8f565b73ffffffffffffffffffffffffffffffffffffffff161415610bcb57600182610bc891906131ff565b91505b8080610bd6906133fc565b915050610b75565b508067ffffffffffffffff811115610bf957610bf86134d2565b5b604051908082528060200260200182016040528015610c275781602001602082028036833780820191505090505b509150600080600190505b600754811015610cbb578473ffffffffffffffffffffffffffffffffffffffff16610c5c82610d8f565b73ffffffffffffffffffffffffffffffffffffffff161415610ca85780848381518110610c8c57610c8b6134a3565b5b602002602001018181525050600182610ca591906131ff565b91505b8080610cb3906133fc565b915050610c32565b505050919050565b6101d281565b610cd1611856565b73ffffffffffffffffffffffffffffffffffffffff16610cef610f81565b73ffffffffffffffffffffffffffffffffffffffff1614610d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3c90612fd1565b60405180910390fd5b8260099080519060200190610d5b929190612225565b5081600a9080519060200190610d72929190612225565b5080600b9080519060200190610d89929190612225565b50505050565b6000806003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f90612f71565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea990612f51565b60405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f01611856565b73ffffffffffffffffffffffffffffffffffffffff16610f1f610f81565b73ffffffffffffffffffffffffffffffffffffffff1614610f75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6c90612fd1565b60405180910390fd5b610f7f6000611cb2565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610fb990613399565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe590613399565b80156110325780601f1061100757610100808354040283529160200191611032565b820191906000526020600020905b81548152906001019060200180831161101557829003601f168201915b5050505050905090565b611044611856565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a990612ef1565b60405180910390fd5b80600660006110bf611856565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661116c611856565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111b19190612dd4565b60405180910390a35050565b6111ce6111c8611856565b83611983565b61120d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120490613071565b60405180910390fd5b61121984848484611d76565b50505050565b603281565b606061122f8261185e565b61126e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126590613011565b60405180910390fd5b6000611278611dd2565b905060008151116112985760405180602001604052806000815250611349565b80730aad68f4e52bc50a7d88ce74e121169767c57e84636900a3ae856040518263ffffffff1660e01b81526004016112d091906130b1565b60006040518083038186803b1580156112e857600080fd5b505af41580156112fc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061132591906126e0565b600a60405160200161133993929190612cce565b6040516020818303038152906040525b915050919050565b6060600b730aad68f4e52bc50a7d88ce74e121169767c57e84636900a3ae846040518263ffffffff1660e01b815260040161138c91906130b1565b60006040518083038186803b1580156113a457600080fd5b505af41580156113b8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113e191906126e0565b600a6040516020016113f593929190612cff565b6040516020818303038152906040529050919050565b6105ba81565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6114ad611856565b73ffffffffffffffffffffffffffffffffffffffff166114cb610f81565b73ffffffffffffffffffffffffffffffffffffffff1614611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612fd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158890612e71565b60405180910390fd5b61159a81611cb2565b50565b6105ba60075411156115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90613091565b60405180910390fd5b6115ec610f81565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156116d3576101d28160085461163091906131ff565b10611670576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166790612e51565b60405180910390fd5b60005b818110156116b45761168783600754611e64565b60016007600082825461169a91906131ff565b9250508190555080806116ac906133fc565b915050611673565b5080600860008282546116c791906131ff565b925050819055506117e8565b6101d26105ba6116e391906132af565b6007541115611727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171e90613051565b60405180910390fd5b6001811461176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190612e11565b60405180910390fd5b670de0b6b3a7640000603261177f9190613255565b3410156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612eb1565b60405180910390fd5b6117cd82600754611e64565b6001600760008282546117e091906131ff565b925050819055505b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b60008073ffffffffffffffffffffffffffffffffffffffff166003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661193d83610d8f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061198e8261185e565b6119cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c490612f11565b60405180910390fd5b60006119d883610d8f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a4757508373ffffffffffffffffffffffffffffffffffffffff16611a2f84610881565b73ffffffffffffffffffffffffffffffffffffffff16145b80611a585750611a578185611411565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611a8182610d8f565b73ffffffffffffffffffffffffffffffffffffffff1614611ad7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ace90612ff1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90612ed1565b60405180910390fd5b611b526000826118ca565b6001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ba291906132af565b925050819055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611bf991906131ff565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611d81848484611a61565b611d8d84848484612026565b611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc390612e31565b60405180910390fd5b50505050565b606060098054611de190613399565b80601f0160208091040260200160405190810160405280929190818152602001828054611e0d90613399565b8015611e5a5780601f10611e2f57610100808354040283529160200191611e5a565b820191906000526020600020905b815481529060010190602001808311611e3d57829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecb90612f91565b60405180910390fd5b611edd8161185e565b15611f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1490612e91565b60405180910390fd5b6001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f6d91906131ff565b92505081905550816003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000730aad68f4e52bc50a7d88ce74e121169767c57e846316279055856040518263ffffffff1660e01b815260040161205f9190612d30565b60206040518083038186803b15801561207757600080fd5b505af415801561208b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120af9190612659565b15612218578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026120d8611856565b8786866040518563ffffffff1660e01b81526004016120fa9493929190612d66565b602060405180830381600087803b15801561211457600080fd5b505af192505050801561214557506040513d601f19601f8201168201806040525081019061214291906126b3565b60015b6121c8573d8060008114612175576040519150601f19603f3d011682016040523d82523d6000602084013e61217a565b606091505b506000815114156121c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b790612e31565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061221d565b600190505b949350505050565b82805461223190613399565b90600052602060002090601f016020900481019282612253576000855561229a565b82601f1061226c57805160ff191683800117855561229a565b8280016001018555821561229a579182015b8281111561229957825182559160200191906001019061227e565b5b5090506122a791906122ab565b5090565b5b808211156122c45760008160009055506001016122ac565b5090565b60006122db6122d68461310c565b6130e7565b9050828152602081018484840111156122f7576122f6613506565b5b612302848285613357565b509392505050565b600061231d6123188461313d565b6130e7565b90508281526020810184848401111561233957612338613506565b5b612344848285613357565b509392505050565b600061235f61235a8461313d565b6130e7565b90508281526020810184848401111561237b5761237a613506565b5b612386848285613366565b509392505050565b60008135905061239d81613b09565b92915050565b6000813590506123b281613b20565b92915050565b6000815190506123c781613b20565b92915050565b6000813590506123dc81613b37565b92915050565b6000815190506123f181613b37565b92915050565b600082601f83011261240c5761240b613501565b5b813561241c8482602086016122c8565b91505092915050565b600082601f83011261243a57612439613501565b5b813561244a84826020860161230a565b91505092915050565b600082601f83011261246857612467613501565b5b815161247884826020860161234c565b91505092915050565b60008135905061249081613b4e565b92915050565b6000602082840312156124ac576124ab613510565b5b60006124ba8482850161238e565b91505092915050565b600080604083850312156124da576124d9613510565b5b60006124e88582860161238e565b92505060206124f98582860161238e565b9150509250929050565b60008060006060848603121561251c5761251b613510565b5b600061252a8682870161238e565b935050602061253b8682870161238e565b925050604061254c86828701612481565b9150509250925092565b600080600080608085870312156125705761256f613510565b5b600061257e8782880161238e565b945050602061258f8782880161238e565b93505060406125a087828801612481565b925050606085013567ffffffffffffffff8111156125c1576125c061350b565b5b6125cd878288016123f7565b91505092959194509250565b600080604083850312156125f0576125ef613510565b5b60006125fe8582860161238e565b925050602061260f858286016123a3565b9150509250929050565b600080604083850312156126305761262f613510565b5b600061263e8582860161238e565b925050602061264f85828601612481565b9150509250929050565b60006020828403121561266f5761266e613510565b5b600061267d848285016123b8565b91505092915050565b60006020828403121561269c5761269b613510565b5b60006126aa848285016123cd565b91505092915050565b6000602082840312156126c9576126c8613510565b5b60006126d7848285016123e2565b91505092915050565b6000602082840312156126f6576126f5613510565b5b600082015167ffffffffffffffff8111156127145761271361350b565b5b61272084828501612453565b91505092915050565b60008060006060848603121561274257612741613510565b5b600084013567ffffffffffffffff8111156127605761275f61350b565b5b61276c86828701612425565b935050602084013567ffffffffffffffff81111561278d5761278c61350b565b5b61279986828701612425565b925050604084013567ffffffffffffffff8111156127ba576127b961350b565b5b6127c686828701612425565b9150509250925092565b6000602082840312156127e6576127e5613510565b5b60006127f484828501612481565b91505092915050565b60006128098383612ca1565b60208301905092915050565b61281e816132e3565b82525050565b61282d816132e3565b82525050565b600061283e82613193565b61284881856131c1565b93506128538361316e565b8060005b8381101561288457815161286b88826127fd565b9750612876836131b4565b925050600181019050612857565b5085935050505092915050565b61289a816132f5565b82525050565b60006128ab8261319e565b6128b581856131d2565b93506128c5818560208601613366565b6128ce81613515565b840191505092915050565b60006128e4826131a9565b6128ee81856131e3565b93506128fe818560208601613366565b61290781613515565b840191505092915050565b600061291d826131a9565b61292781856131f4565b9350612937818560208601613366565b80840191505092915050565b6000815461295081613399565b61295a81866131f4565b945060018216600081146129755760018114612986576129b9565b60ff198316865281860193506129b9565b61298f8561317e565b60005b838110156129b157815481890152600182019150602081019050612992565b838801955050505b50505092915050565b60006129cf602d836131e3565b91506129da82613526565b604082019050919050565b60006129f26032836131e3565b91506129fd82613575565b604082019050919050565b6000612a15602b836131e3565b9150612a20826135c4565b604082019050919050565b6000612a386026836131e3565b9150612a4382613613565b604082019050919050565b6000612a5b601c836131e3565b9150612a6682613662565b602082019050919050565b6000612a7e6024836131e3565b9150612a898261368b565b604082019050919050565b6000612aa16024836131e3565b9150612aac826136da565b604082019050919050565b6000612ac46019836131e3565b9150612acf82613729565b602082019050919050565b6000612ae7602c836131e3565b9150612af282613752565b604082019050919050565b6000612b0a6038836131e3565b9150612b15826137a1565b604082019050919050565b6000612b2d602a836131e3565b9150612b38826137f0565b604082019050919050565b6000612b506029836131e3565b9150612b5b8261383f565b604082019050919050565b6000612b736020836131e3565b9150612b7e8261388e565b602082019050919050565b6000612b96602c836131e3565b9150612ba1826138b7565b604082019050919050565b6000612bb96020836131e3565b9150612bc482613906565b602082019050919050565b6000612bdc6029836131e3565b9150612be78261392f565b604082019050919050565b6000612bff602f836131e3565b9150612c0a8261397e565b604082019050919050565b6000612c226021836131e3565b9150612c2d826139cd565b604082019050919050565b6000612c456033836131e3565b9150612c5082613a1c565b604082019050919050565b6000612c686031836131e3565b9150612c7382613a6b565b604082019050919050565b6000612c8b602c836131e3565b9150612c9682613aba565b604082019050919050565b612caa8161334d565b82525050565b612cb98161334d565b82525050565b612cc88161334d565b82525050565b6000612cda8286612912565b9150612ce68285612912565b9150612cf28284612943565b9150819050949350505050565b6000612d0b8286612943565b9150612d178285612912565b9150612d238284612943565b9150819050949350505050565b6000602082019050612d456000830184612824565b92915050565b6000602082019050612d606000830184612815565b92915050565b6000608082019050612d7b6000830187612815565b612d886020830186612815565b612d956040830185612cb0565b8181036060830152612da781846128a0565b905095945050505050565b60006020820190508181036000830152612dcc8184612833565b905092915050565b6000602082019050612de96000830184612891565b92915050565b60006020820190508181036000830152612e0981846128d9565b905092915050565b60006020820190508181036000830152612e2a816129c2565b9050919050565b60006020820190508181036000830152612e4a816129e5565b9050919050565b60006020820190508181036000830152612e6a81612a08565b9050919050565b60006020820190508181036000830152612e8a81612a2b565b9050919050565b60006020820190508181036000830152612eaa81612a4e565b9050919050565b60006020820190508181036000830152612eca81612a71565b9050919050565b60006020820190508181036000830152612eea81612a94565b9050919050565b60006020820190508181036000830152612f0a81612ab7565b9050919050565b60006020820190508181036000830152612f2a81612ada565b9050919050565b60006020820190508181036000830152612f4a81612afd565b9050919050565b60006020820190508181036000830152612f6a81612b20565b9050919050565b60006020820190508181036000830152612f8a81612b43565b9050919050565b60006020820190508181036000830152612faa81612b66565b9050919050565b60006020820190508181036000830152612fca81612b89565b9050919050565b60006020820190508181036000830152612fea81612bac565b9050919050565b6000602082019050818103600083015261300a81612bcf565b9050919050565b6000602082019050818103600083015261302a81612bf2565b9050919050565b6000602082019050818103600083015261304a81612c15565b9050919050565b6000602082019050818103600083015261306a81612c38565b9050919050565b6000602082019050818103600083015261308a81612c5b565b9050919050565b600060208201905081810360008301526130aa81612c7e565b9050919050565b60006020820190506130c66000830184612cbf565b92915050565b60006020820190506130e16000830184612cb0565b92915050565b60006130f1613102565b90506130fd82826133cb565b919050565b6000604051905090565b600067ffffffffffffffff821115613127576131266134d2565b5b61313082613515565b9050602081019050919050565b600067ffffffffffffffff821115613158576131576134d2565b5b61316182613515565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061320a8261334d565b91506132158361334d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561324a57613249613445565b5b828201905092915050565b60006132608261334d565b915061326b8361334d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132a4576132a3613445565b5b828202905092915050565b60006132ba8261334d565b91506132c58361334d565b9250828210156132d8576132d7613445565b5b828203905092915050565b60006132ee8261332d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613384578082015181840152602081019050613369565b83811115613393576000848401525b50505050565b600060028204905060018216806133b157607f821691505b602082108114156133c5576133c4613474565b5b50919050565b6133d482613515565b810181811067ffffffffffffffff821117156133f3576133f26134d2565b5b80604052505050565b60006134078261334d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561343a57613439613445565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f536c6f74684176617461723a2043616e206f6e6c79206d696e7420312061766160008201527f74617220617420612074696d6500000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f536c6f74684176617461723a20416c6c2072657365727665732068617665206260008201527f65656e206d696e74656421000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f536c6f74684176617461723a204e65656420746f20706179206d696e74696e6760008201527f2066656500000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f536c6f74684176617461723a20416c6c206176616c6961626c6520617661746160008201527f72732068617665206265656e206d696e74656400000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f536c6f74684176617461723a20416c6c2074686520617661746172732061726560008201527f206f7574206d696e746564210000000000000000000000000000000000000000602082015250565b613b12816132e3565b8114613b1d57600080fd5b50565b613b29816132f5565b8114613b3457600080fd5b50565b613b4081613301565b8114613b4b57600080fd5b50565b613b578161334d565b8114613b6257600080fd5b5056fea26469706673582212200a3e9b3b5d4147674327ec29a0133f32df9d9b061957db51206615ff4634ecc964736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000005168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d554c6551674e755256364c3658395767377967774d3869753653476e52336d36696351514834396b524a37372f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002768747470733a2f2f6170692e736c6f7468746f7069612e696f2f6765742f6d657461646174612f00000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _url (string): https://gateway.pinata.cloud/ipfs/QmULeQgNuRV6L6X9Wg7ygwM8iu6SGnR3m6icQQH49kRJ77/
Arg [1] : _extention (string): .json
Arg [2] : _gURL (string): https://api.slothtopia.io/get/metadata/
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000051
Arg [4] : 68747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066
Arg [5] : 732f516d554c6551674e755256364c3658395767377967774d3869753653476e
Arg [6] : 52336d36696351514834396b524a37372f000000000000000000000000000000
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [8] : 2e6a736f6e000000000000000000000000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000027
Arg [10] : 68747470733a2f2f6170692e736c6f7468746f7069612e696f2f6765742f6d65
Arg [11] : 7461646174612f00000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
5903:9626:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8779:305;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14590:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9558:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10849:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10437:400;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7293:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11553:284;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14471:111;;;;;;;;;;;;;:::i;:::-;;11845:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7387:507;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7076:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9311:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9092:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2613:103;;;;;;;;;;;;;:::i;:::-;;2390:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9666:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11078:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12038:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6771:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9780:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10148:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6673:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11381:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2726:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7902:869;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8779:305;8881:4;8933:25;8918:40;;;:11;:40;;;;:105;;;;8990:33;8975:48;;;:11;:48;;;;8918:105;:158;;;;9040:36;9064:11;9040:23;:36::i;:::-;8918:158;8898:178;;8779:305;;;:::o;14590:116::-;2536:12;:10;:12::i;:::-;2525:23;;:7;:5;:7::i;:::-;:23;;;2517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14666:7:::1;:5;:7::i;:::-;14658:25;;:40;6659:7;14684:4;:13;;;;:::i;:::-;14658:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14590:116:::0;:::o;9558:100::-;9612:13;9645:5;9638:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9558:100;:::o;10849:221::-;10925:7;10953:16;10961:7;10953;:16::i;:::-;10945:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11038:15;:24;11054:7;11038:24;;;;;;;;;;;;;;;;;;;;;11031:31;;10849:221;;;:::o;10437:400::-;10518:13;10534:16;10542:7;10534;:16::i;:::-;10518:32;;10575:5;10569:11;;:2;:11;;;;10561:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10667:5;10651:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;10676:37;10693:5;10700:12;:10;:12::i;:::-;10676:16;:37::i;:::-;10651:62;10629:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;10808:21;10817:2;10821:7;10808:8;:21::i;:::-;10507:330;10437:400;;:::o;7293:86::-;7336:7;7362:9;;7355:16;;7293:86;:::o;11553:284::-;11695:41;11714:12;:10;:12::i;:::-;11728:7;11695:18;:41::i;:::-;11687:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11801:28;11811:4;11817:2;11821:7;11801:9;:28::i;:::-;11553:284;;;:::o;14471:111::-;2536:12;:10;:12::i;:::-;2525:23;;:7;:5;:7::i;:::-;:23;;;2517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14537:7:::1;:5;:7::i;:::-;14529:21;;:44;14551:21;14529:44;;;;;;;;;;;;;;;;;;;;;;;14521:53;;;::::0;::::1;;14471:111::o:0;11845:185::-;11983:39;12000:4;12006:2;12010:7;11983:39;;;;;;;;;;;;:16;:39::i;:::-;11845:185;;;:::o;7387:507::-;7446:27;7485:12;7516:9;7526:1;7516:11;;7512:128;7531:9;;7529:1;:11;7512:128;;;7578:6;7564:20;;:10;7572:1;7564:7;:10::i;:::-;:20;;;7561:68;;;7612:1;7604:9;;;;;:::i;:::-;;;7561:68;7542:3;;;;;:::i;:::-;;;;7512:128;;;;7677:4;7663:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7650:32;;7693:12;7724:9;7734:1;7724:11;;7720:167;7739:9;;7737:1;:11;7720:167;;;7786:6;7772:20;;:10;7780:1;7772:7;:10::i;:::-;:20;;;7769:107;;;7831:1;7812:10;7823:4;7812:16;;;;;;;;:::i;:::-;;;;;;;:20;;;;;7859:1;7851:9;;;;;:::i;:::-;;;7769:107;7750:3;;;;;:::i;:::-;;;;7720:167;;;;7474:420;;7387:507;;;:::o;6720:44::-;6761:3;6720:44;:::o;7076:209::-;2536:12;:10;:12::i;:::-;2525:23;;:7;:5;:7::i;:::-;:23;;;2517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7209:5:::1;7199:7;:15;;;;;;;;;;;;:::i;:::-;;7241:9;7225:13;:25;;;;;;;;;;;;:::i;:::-;;7271:6;7261:7;:16;;;;;;;;;;;;:::i;:::-;;7076:209:::0;;;:::o;9311:239::-;9383:7;9403:13;9419:7;:16;9427:7;9419:16;;;;;;;;;;;;;;;;;;;;;9403:32;;9471:1;9454:19;;:5;:19;;;;9446:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9537:5;9530:12;;;9311:239;;;:::o;9092:208::-;9164:7;9209:1;9192:19;;:5;:19;;;;9184:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9276:9;:16;9286:5;9276:16;;;;;;;;;;;;;;;;9269:23;;9092:208;;;:::o;2613:103::-;2536:12;:10;:12::i;:::-;2525:23;;:7;:5;:7::i;:::-;:23;;;2517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2678:30:::1;2705:1;2678:18;:30::i;:::-;2613:103::o:0;2390:87::-;2436:7;2463:6;;;;;;;;;;;2456:13;;2390:87;:::o;9666:104::-;9722:13;9755:7;9748:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9666:104;:::o;11078:295::-;11193:12;:10;:12::i;:::-;11181:24;;:8;:24;;;;11173:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;11293:8;11248:18;:32;11267:12;:10;:12::i;:::-;11248:32;;;;;;;;;;;;;;;:42;11281:8;11248:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;11346:8;11317:48;;11332:12;:10;:12::i;:::-;11317:48;;;11356:8;11317:48;;;;;;:::i;:::-;;;;;;;;11078:295;;:::o;12038:328::-;12213:41;12232:12;:10;:12::i;:::-;12246:7;12213:18;:41::i;:::-;12205:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;12319:39;12333:4;12339:2;12343:7;12352:5;12319:13;:39::i;:::-;12038:328;;;;:::o;6771:37::-;6806:2;6771:37;:::o;9780:358::-;9853:13;9887:16;9895:7;9887;:16::i;:::-;9879:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9966:21;9990:10;:8;:10::i;:::-;9966:34;;10042:1;10024:7;10018:21;:25;:112;;;;;;;;;;;;;;;;;10070:7;10079:11;:20;10100:7;10079:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10110:13;10053:71;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10018:112;10011:119;;;9780:358;;;:::o;10148:174::-;10202:13;10258:7;10267:11;:20;10288:7;10267:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10298:13;10241:71;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10227:87;;10148:174;;;:::o;6673:40::-;6709:4;6673:40;:::o;11381:164::-;11478:4;11502:18;:25;11521:5;11502:25;;;;;;;;;;;;;;;:35;11528:8;11502:35;;;;;;;;;;;;;;;;;;;;;;;;;11495:42;;11381:164;;;;:::o;2726:201::-;2536:12;:10;:12::i;:::-;2525:23;;:7;:5;:7::i;:::-;:23;;;2517:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2835:1:::1;2815:22;;:8;:22;;;;2807:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2891:28;2910:8;2891:18;:28::i;:::-;2726:201:::0;:::o;7902:869::-;6709:4;7986:9;;:22;;7978:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8085:7;:5;:7::i;:::-;8071:21;;:10;:21;;;8068:696;;;6761:3;8131:6;8116:14;;:21;;;;:::i;:::-;:38;8108:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;8221:9;8217:119;8236:6;8234:1;:8;8217:119;;;8267:20;8273:2;8277:9;;8267:5;:20::i;:::-;8319:1;8306:9;;:14;;;;;;;:::i;:::-;;;;;;;;8244:3;;;;;:::i;:::-;;;;8217:119;;;;8368:6;8350:14;;:24;;;;;;;:::i;:::-;;;;;;;;8068:696;;;6761:3;6709:4;8427:26;;;;:::i;:::-;8413:9;;:41;;8405:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;8543:1;8533:6;:11;8525:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;6659:7;6806:2;8630:17;;;;:::i;:::-;8617:9;:30;;8609:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8703:20;8709:2;8713:9;;8703:5;:20::i;:::-;8751:1;8738:9;;:14;;;;;;;:::i;:::-;;;;;;;;8068:696;7902:869;;:::o;3489:157::-;3574:4;3613:25;3598:40;;;:11;:40;;;;3591:47;;3489:157;;;:::o;1936:98::-;1989:7;2016:10;2009:17;;1936:98;:::o;12699:127::-;12764:4;12816:1;12788:30;;:7;:16;12796:7;12788:16;;;;;;;;;;;;;;;;;;;;;:30;;;;12781:37;;12699:127;;;:::o;14296:167::-;14398:2;14371:15;:24;14387:7;14371:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14447:7;14443:2;14416:39;;14425:16;14433:7;14425;:16::i;:::-;14416:39;;;;;;;;;;;;14296:167;;:::o;12834:341::-;12927:4;12952:16;12960:7;12952;:16::i;:::-;12944:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13028:13;13044:16;13052:7;13044;:16::i;:::-;13028:32;;13090:5;13079:16;;:7;:16;;;:51;;;;13123:7;13099:31;;:20;13111:7;13099:11;:20::i;:::-;:31;;;13079:51;:87;;;;13134:32;13151:5;13158:7;13134:16;:32::i;:::-;13079:87;13071:96;;;12834:341;;;;:::o;13816:467::-;13968:4;13948:24;;:16;13956:7;13948;:16::i;:::-;:24;;;13940:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;14051:1;14037:16;;:2;:16;;;;14029:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14107:29;14124:1;14128:7;14107:8;:29::i;:::-;14168:1;14149:9;:15;14159:4;14149:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;14197:1;14180:9;:13;14190:2;14180:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14228:2;14209:7;:16;14217:7;14209:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14267:7;14263:2;14248:27;;14257:4;14248:27;;;;;;;;;;;;13816:467;;;:::o;2935:191::-;3009:16;3028:6;;;;;;;;;;;3009:25;;3054:8;3045:6;;:17;;;;;;;;;;;;;;;;;;3109:8;3078:40;;3099:8;3078:40;;;;;;;;;;;;2998:128;2935:191;:::o;12374:315::-;12531:28;12541:4;12547:2;12551:7;12531:9;:28::i;:::-;12578:48;12601:4;12607:2;12611:7;12620:5;12578:22;:48::i;:::-;12570:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;12374:315;;;;:::o;10330:99::-;10381:13;10414:7;10407:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10330:99;:::o;13185:322::-;13279:1;13265:16;;:2;:16;;;;13257:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;13338:16;13346:7;13338;:16::i;:::-;13337:17;13329:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13415:1;13398:9;:13;13408:2;13398:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;13446:2;13427:7;:16;13435:7;13427:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13491:7;13487:2;13466:33;;13483:1;13466:33;;;;;;;;;;;;13185:322;;:::o;14714:810::-;14869:4;14890:11;:22;14913:2;14890:26;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14886:631;;;14953:2;14937:36;;;14974:12;:10;:12::i;:::-;14988:4;14994:7;15003:5;14937:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14933:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15196:1;15179:6;:13;:18;15175:272;;;15222:60;;;;;;;;;;:::i;:::-;;;;;;;;15175:272;15397:6;15391:13;15382:6;15378:2;15374:15;15367:38;14933:529;15070:41;;;15060:51;;;:6;:51;;;;15053:58;;;;;14886:631;15501:4;15494:11;;14714:810;;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:421::-;930:5;955:66;971:49;1013:6;971:49;:::i;:::-;955:66;:::i;:::-;946:75;;1044:6;1037:5;1030:21;1082:4;1075:5;1071:16;1120:3;1111:6;1106:3;1102:16;1099:25;1096:112;;;1127:79;;:::i;:::-;1096:112;1217:39;1249:6;1244:3;1239;1217:39;:::i;:::-;936:326;841:421;;;;;:::o;1268:139::-;1314:5;1352:6;1339:20;1330:29;;1368:33;1395:5;1368:33;:::i;:::-;1268:139;;;;:::o;1413:133::-;1456:5;1494:6;1481:20;1472:29;;1510:30;1534:5;1510:30;:::i;:::-;1413:133;;;;:::o;1552:137::-;1606:5;1637:6;1631:13;1622:22;;1653:30;1677:5;1653:30;:::i;:::-;1552:137;;;;:::o;1695:::-;1740:5;1778:6;1765:20;1756:29;;1794:32;1820:5;1794:32;:::i;:::-;1695:137;;;;:::o;1838:141::-;1894:5;1925:6;1919:13;1910:22;;1941:32;1967:5;1941:32;:::i;:::-;1838:141;;;;:::o;1998:338::-;2053:5;2102:3;2095:4;2087:6;2083:17;2079:27;2069:122;;2110:79;;:::i;:::-;2069:122;2227:6;2214:20;2252:78;2326:3;2318:6;2311:4;2303:6;2299:17;2252:78;:::i;:::-;2243:87;;2059:277;1998:338;;;;:::o;2356:340::-;2412:5;2461:3;2454:4;2446:6;2442:17;2438:27;2428:122;;2469:79;;:::i;:::-;2428:122;2586:6;2573:20;2611:79;2686:3;2678:6;2671:4;2663:6;2659:17;2611:79;:::i;:::-;2602:88;;2418:278;2356:340;;;;:::o;2716:355::-;2783:5;2832:3;2825:4;2817:6;2813:17;2809:27;2799:122;;2840:79;;:::i;:::-;2799:122;2950:6;2944:13;2975:90;3061:3;3053:6;3046:4;3038:6;3034:17;2975:90;:::i;:::-;2966:99;;2789:282;2716:355;;;;:::o;3077:139::-;3123:5;3161:6;3148:20;3139:29;;3177:33;3204:5;3177:33;:::i;:::-;3077:139;;;;:::o;3222:329::-;3281:6;3330:2;3318:9;3309:7;3305:23;3301:32;3298:119;;;3336:79;;:::i;:::-;3298:119;3456:1;3481:53;3526:7;3517:6;3506:9;3502:22;3481:53;:::i;:::-;3471:63;;3427:117;3222:329;;;;:::o;3557:474::-;3625:6;3633;3682:2;3670:9;3661:7;3657:23;3653:32;3650:119;;;3688:79;;:::i;:::-;3650:119;3808:1;3833:53;3878:7;3869:6;3858:9;3854:22;3833:53;:::i;:::-;3823:63;;3779:117;3935:2;3961:53;4006:7;3997:6;3986:9;3982:22;3961:53;:::i;:::-;3951:63;;3906:118;3557:474;;;;;:::o;4037:619::-;4114:6;4122;4130;4179:2;4167:9;4158:7;4154:23;4150:32;4147:119;;;4185:79;;:::i;:::-;4147:119;4305:1;4330:53;4375:7;4366:6;4355:9;4351:22;4330:53;:::i;:::-;4320:63;;4276:117;4432:2;4458:53;4503:7;4494:6;4483:9;4479:22;4458:53;:::i;:::-;4448:63;;4403:118;4560:2;4586:53;4631:7;4622:6;4611:9;4607:22;4586:53;:::i;:::-;4576:63;;4531:118;4037:619;;;;;:::o;4662:943::-;4757:6;4765;4773;4781;4830:3;4818:9;4809:7;4805:23;4801:33;4798:120;;;4837:79;;:::i;:::-;4798:120;4957:1;4982:53;5027:7;5018:6;5007:9;5003:22;4982:53;:::i;:::-;4972:63;;4928:117;5084:2;5110:53;5155:7;5146:6;5135:9;5131:22;5110:53;:::i;:::-;5100:63;;5055:118;5212:2;5238:53;5283:7;5274:6;5263:9;5259:22;5238:53;:::i;:::-;5228:63;;5183:118;5368:2;5357:9;5353:18;5340:32;5399:18;5391:6;5388:30;5385:117;;;5421:79;;:::i;:::-;5385:117;5526:62;5580:7;5571:6;5560:9;5556:22;5526:62;:::i;:::-;5516:72;;5311:287;4662:943;;;;;;;:::o;5611:468::-;5676:6;5684;5733:2;5721:9;5712:7;5708:23;5704:32;5701:119;;;5739:79;;:::i;:::-;5701:119;5859:1;5884:53;5929:7;5920:6;5909:9;5905:22;5884:53;:::i;:::-;5874:63;;5830:117;5986:2;6012:50;6054:7;6045:6;6034:9;6030:22;6012:50;:::i;:::-;6002:60;;5957:115;5611:468;;;;;:::o;6085:474::-;6153:6;6161;6210:2;6198:9;6189:7;6185:23;6181:32;6178:119;;;6216:79;;:::i;:::-;6178:119;6336:1;6361:53;6406:7;6397:6;6386:9;6382:22;6361:53;:::i;:::-;6351:63;;6307:117;6463:2;6489:53;6534:7;6525:6;6514:9;6510:22;6489:53;:::i;:::-;6479:63;;6434:118;6085:474;;;;;:::o;6565:345::-;6632:6;6681:2;6669:9;6660:7;6656:23;6652:32;6649:119;;;6687:79;;:::i;:::-;6649:119;6807:1;6832:61;6885:7;6876:6;6865:9;6861:22;6832:61;:::i;:::-;6822:71;;6778:125;6565:345;;;;:::o;6916:327::-;6974:6;7023:2;7011:9;7002:7;6998:23;6994:32;6991:119;;;7029:79;;:::i;:::-;6991:119;7149:1;7174:52;7218:7;7209:6;7198:9;7194:22;7174:52;:::i;:::-;7164:62;;7120:116;6916:327;;;;:::o;7249:349::-;7318:6;7367:2;7355:9;7346:7;7342:23;7338:32;7335:119;;;7373:79;;:::i;:::-;7335:119;7493:1;7518:63;7573:7;7564:6;7553:9;7549:22;7518:63;:::i;:::-;7508:73;;7464:127;7249:349;;;;:::o;7604:524::-;7684:6;7733:2;7721:9;7712:7;7708:23;7704:32;7701:119;;;7739:79;;:::i;:::-;7701:119;7880:1;7869:9;7865:17;7859:24;7910:18;7902:6;7899:30;7896:117;;;7932:79;;:::i;:::-;7896:117;8037:74;8103:7;8094:6;8083:9;8079:22;8037:74;:::i;:::-;8027:84;;7830:291;7604:524;;;;:::o;8134:1159::-;8241:6;8249;8257;8306:2;8294:9;8285:7;8281:23;8277:32;8274:119;;;8312:79;;:::i;:::-;8274:119;8460:1;8449:9;8445:17;8432:31;8490:18;8482:6;8479:30;8476:117;;;8512:79;;:::i;:::-;8476:117;8617:63;8672:7;8663:6;8652:9;8648:22;8617:63;:::i;:::-;8607:73;;8403:287;8757:2;8746:9;8742:18;8729:32;8788:18;8780:6;8777:30;8774:117;;;8810:79;;:::i;:::-;8774:117;8915:63;8970:7;8961:6;8950:9;8946:22;8915:63;:::i;:::-;8905:73;;8700:288;9055:2;9044:9;9040:18;9027:32;9086:18;9078:6;9075:30;9072:117;;;9108:79;;:::i;:::-;9072:117;9213:63;9268:7;9259:6;9248:9;9244:22;9213:63;:::i;:::-;9203:73;;8998:288;8134:1159;;;;;:::o;9299:329::-;9358:6;9407:2;9395:9;9386:7;9382:23;9378:32;9375:119;;;9413:79;;:::i;:::-;9375:119;9533:1;9558:53;9603:7;9594:6;9583:9;9579:22;9558:53;:::i;:::-;9548:63;;9504:117;9299:329;;;;:::o;9634:179::-;9703:10;9724:46;9766:3;9758:6;9724:46;:::i;:::-;9802:4;9797:3;9793:14;9779:28;;9634:179;;;;:::o;9819:118::-;9906:24;9924:5;9906:24;:::i;:::-;9901:3;9894:37;9819:118;;:::o;9943:126::-;10038:24;10056:5;10038:24;:::i;:::-;10033:3;10026:37;9943:126;;:::o;10105:732::-;10224:3;10253:54;10301:5;10253:54;:::i;:::-;10323:86;10402:6;10397:3;10323:86;:::i;:::-;10316:93;;10433:56;10483:5;10433:56;:::i;:::-;10512:7;10543:1;10528:284;10553:6;10550:1;10547:13;10528:284;;;10629:6;10623:13;10656:63;10715:3;10700:13;10656:63;:::i;:::-;10649:70;;10742:60;10795:6;10742:60;:::i;:::-;10732:70;;10588:224;10575:1;10572;10568:9;10563:14;;10528:284;;;10532:14;10828:3;10821:10;;10229:608;;;10105:732;;;;:::o;10843:109::-;10924:21;10939:5;10924:21;:::i;:::-;10919:3;10912:34;10843:109;;:::o;10958:360::-;11044:3;11072:38;11104:5;11072:38;:::i;:::-;11126:70;11189:6;11184:3;11126:70;:::i;:::-;11119:77;;11205:52;11250:6;11245:3;11238:4;11231:5;11227:16;11205:52;:::i;:::-;11282:29;11304:6;11282:29;:::i;:::-;11277:3;11273:39;11266:46;;11048:270;10958:360;;;;:::o;11324:364::-;11412:3;11440:39;11473:5;11440:39;:::i;:::-;11495:71;11559:6;11554:3;11495:71;:::i;:::-;11488:78;;11575:52;11620:6;11615:3;11608:4;11601:5;11597:16;11575:52;:::i;:::-;11652:29;11674:6;11652:29;:::i;:::-;11647:3;11643:39;11636:46;;11416:272;11324:364;;;;:::o;11694:377::-;11800:3;11828:39;11861:5;11828:39;:::i;:::-;11883:89;11965:6;11960:3;11883:89;:::i;:::-;11876:96;;11981:52;12026:6;12021:3;12014:4;12007:5;12003:16;11981:52;:::i;:::-;12058:6;12053:3;12049:16;12042:23;;11804:267;11694:377;;;;:::o;12101:845::-;12204:3;12241:5;12235:12;12270:36;12296:9;12270:36;:::i;:::-;12322:89;12404:6;12399:3;12322:89;:::i;:::-;12315:96;;12442:1;12431:9;12427:17;12458:1;12453:137;;;;12604:1;12599:341;;;;12420:520;;12453:137;12537:4;12533:9;12522;12518:25;12513:3;12506:38;12573:6;12568:3;12564:16;12557:23;;12453:137;;12599:341;12666:38;12698:5;12666:38;:::i;:::-;12726:1;12740:154;12754:6;12751:1;12748:13;12740:154;;;12828:7;12822:14;12818:1;12813:3;12809:11;12802:35;12878:1;12869:7;12865:15;12854:26;;12776:4;12773:1;12769:12;12764:17;;12740:154;;;12923:6;12918:3;12914:16;12907:23;;12606:334;;12420:520;;12208:738;;12101:845;;;;:::o;12952:366::-;13094:3;13115:67;13179:2;13174:3;13115:67;:::i;:::-;13108:74;;13191:93;13280:3;13191:93;:::i;:::-;13309:2;13304:3;13300:12;13293:19;;12952:366;;;:::o;13324:::-;13466:3;13487:67;13551:2;13546:3;13487:67;:::i;:::-;13480:74;;13563:93;13652:3;13563:93;:::i;:::-;13681:2;13676:3;13672:12;13665:19;;13324:366;;;:::o;13696:::-;13838:3;13859:67;13923:2;13918:3;13859:67;:::i;:::-;13852:74;;13935:93;14024:3;13935:93;:::i;:::-;14053:2;14048:3;14044:12;14037:19;;13696:366;;;:::o;14068:::-;14210:3;14231:67;14295:2;14290:3;14231:67;:::i;:::-;14224:74;;14307:93;14396:3;14307:93;:::i;:::-;14425:2;14420:3;14416:12;14409:19;;14068:366;;;:::o;14440:::-;14582:3;14603:67;14667:2;14662:3;14603:67;:::i;:::-;14596:74;;14679:93;14768:3;14679:93;:::i;:::-;14797:2;14792:3;14788:12;14781:19;;14440:366;;;:::o;14812:::-;14954:3;14975:67;15039:2;15034:3;14975:67;:::i;:::-;14968:74;;15051:93;15140:3;15051:93;:::i;:::-;15169:2;15164:3;15160:12;15153:19;;14812:366;;;:::o;15184:::-;15326:3;15347:67;15411:2;15406:3;15347:67;:::i;:::-;15340:74;;15423:93;15512:3;15423:93;:::i;:::-;15541:2;15536:3;15532:12;15525:19;;15184:366;;;:::o;15556:::-;15698:3;15719:67;15783:2;15778:3;15719:67;:::i;:::-;15712:74;;15795:93;15884:3;15795:93;:::i;:::-;15913:2;15908:3;15904:12;15897:19;;15556:366;;;:::o;15928:::-;16070:3;16091:67;16155:2;16150:3;16091:67;:::i;:::-;16084:74;;16167:93;16256:3;16167:93;:::i;:::-;16285:2;16280:3;16276:12;16269:19;;15928:366;;;:::o;16300:::-;16442:3;16463:67;16527:2;16522:3;16463:67;:::i;:::-;16456:74;;16539:93;16628:3;16539:93;:::i;:::-;16657:2;16652:3;16648:12;16641:19;;16300:366;;;:::o;16672:::-;16814:3;16835:67;16899:2;16894:3;16835:67;:::i;:::-;16828:74;;16911:93;17000:3;16911:93;:::i;:::-;17029:2;17024:3;17020:12;17013:19;;16672:366;;;:::o;17044:::-;17186:3;17207:67;17271:2;17266:3;17207:67;:::i;:::-;17200:74;;17283:93;17372:3;17283:93;:::i;:::-;17401:2;17396:3;17392:12;17385:19;;17044:366;;;:::o;17416:::-;17558:3;17579:67;17643:2;17638:3;17579:67;:::i;:::-;17572:74;;17655:93;17744:3;17655:93;:::i;:::-;17773:2;17768:3;17764:12;17757:19;;17416:366;;;:::o;17788:::-;17930:3;17951:67;18015:2;18010:3;17951:67;:::i;:::-;17944:74;;18027:93;18116:3;18027:93;:::i;:::-;18145:2;18140:3;18136:12;18129:19;;17788:366;;;:::o;18160:::-;18302:3;18323:67;18387:2;18382:3;18323:67;:::i;:::-;18316:74;;18399:93;18488:3;18399:93;:::i;:::-;18517:2;18512:3;18508:12;18501:19;;18160:366;;;:::o;18532:::-;18674:3;18695:67;18759:2;18754:3;18695:67;:::i;:::-;18688:74;;18771:93;18860:3;18771:93;:::i;:::-;18889:2;18884:3;18880:12;18873:19;;18532:366;;;:::o;18904:::-;19046:3;19067:67;19131:2;19126:3;19067:67;:::i;:::-;19060:74;;19143:93;19232:3;19143:93;:::i;:::-;19261:2;19256:3;19252:12;19245:19;;18904:366;;;:::o;19276:::-;19418:3;19439:67;19503:2;19498:3;19439:67;:::i;:::-;19432:74;;19515:93;19604:3;19515:93;:::i;:::-;19633:2;19628:3;19624:12;19617:19;;19276:366;;;:::o;19648:::-;19790:3;19811:67;19875:2;19870:3;19811:67;:::i;:::-;19804:74;;19887:93;19976:3;19887:93;:::i;:::-;20005:2;20000:3;19996:12;19989:19;;19648:366;;;:::o;20020:::-;20162:3;20183:67;20247:2;20242:3;20183:67;:::i;:::-;20176:74;;20259:93;20348:3;20259:93;:::i;:::-;20377:2;20372:3;20368:12;20361:19;;20020:366;;;:::o;20392:::-;20534:3;20555:67;20619:2;20614:3;20555:67;:::i;:::-;20548:74;;20631:93;20720:3;20631:93;:::i;:::-;20749:2;20744:3;20740:12;20733:19;;20392:366;;;:::o;20764:108::-;20841:24;20859:5;20841:24;:::i;:::-;20836:3;20829:37;20764:108;;:::o;20878:118::-;20965:24;20983:5;20965:24;:::i;:::-;20960:3;20953:37;20878:118;;:::o;21002:126::-;21097:24;21115:5;21097:24;:::i;:::-;21092:3;21085:37;21002:126;;:::o;21134:589::-;21359:3;21381:95;21472:3;21463:6;21381:95;:::i;:::-;21374:102;;21493:95;21584:3;21575:6;21493:95;:::i;:::-;21486:102;;21605:92;21693:3;21684:6;21605:92;:::i;:::-;21598:99;;21714:3;21707:10;;21134:589;;;;;;:::o;21729:583::-;21951:3;21973:92;22061:3;22052:6;21973:92;:::i;:::-;21966:99;;22082:95;22173:3;22164:6;22082:95;:::i;:::-;22075:102;;22194:92;22282:3;22273:6;22194:92;:::i;:::-;22187:99;;22303:3;22296:10;;21729:583;;;;;;:::o;22318:238::-;22419:4;22457:2;22446:9;22442:18;22434:26;;22470:79;22546:1;22535:9;22531:17;22522:6;22470:79;:::i;:::-;22318:238;;;;:::o;22562:222::-;22655:4;22693:2;22682:9;22678:18;22670:26;;22706:71;22774:1;22763:9;22759:17;22750:6;22706:71;:::i;:::-;22562:222;;;;:::o;22790:640::-;22985:4;23023:3;23012:9;23008:19;23000:27;;23037:71;23105:1;23094:9;23090:17;23081:6;23037:71;:::i;:::-;23118:72;23186:2;23175:9;23171:18;23162:6;23118:72;:::i;:::-;23200;23268:2;23257:9;23253:18;23244:6;23200:72;:::i;:::-;23319:9;23313:4;23309:20;23304:2;23293:9;23289:18;23282:48;23347:76;23418:4;23409:6;23347:76;:::i;:::-;23339:84;;22790:640;;;;;;;:::o;23436:373::-;23579:4;23617:2;23606:9;23602:18;23594:26;;23666:9;23660:4;23656:20;23652:1;23641:9;23637:17;23630:47;23694:108;23797:4;23788:6;23694:108;:::i;:::-;23686:116;;23436:373;;;;:::o;23815:210::-;23902:4;23940:2;23929:9;23925:18;23917:26;;23953:65;24015:1;24004:9;24000:17;23991:6;23953:65;:::i;:::-;23815:210;;;;:::o;24031:313::-;24144:4;24182:2;24171:9;24167:18;24159:26;;24231:9;24225:4;24221:20;24217:1;24206:9;24202:17;24195:47;24259:78;24332:4;24323:6;24259:78;:::i;:::-;24251:86;;24031:313;;;;:::o;24350:419::-;24516:4;24554:2;24543:9;24539:18;24531:26;;24603:9;24597:4;24593:20;24589:1;24578:9;24574:17;24567:47;24631:131;24757:4;24631:131;:::i;:::-;24623:139;;24350:419;;;:::o;24775:::-;24941:4;24979:2;24968:9;24964:18;24956:26;;25028:9;25022:4;25018:20;25014:1;25003:9;24999:17;24992:47;25056:131;25182:4;25056:131;:::i;:::-;25048:139;;24775:419;;;:::o;25200:::-;25366:4;25404:2;25393:9;25389:18;25381:26;;25453:9;25447:4;25443:20;25439:1;25428:9;25424:17;25417:47;25481:131;25607:4;25481:131;:::i;:::-;25473:139;;25200:419;;;:::o;25625:::-;25791:4;25829:2;25818:9;25814:18;25806:26;;25878:9;25872:4;25868:20;25864:1;25853:9;25849:17;25842:47;25906:131;26032:4;25906:131;:::i;:::-;25898:139;;25625:419;;;:::o;26050:::-;26216:4;26254:2;26243:9;26239:18;26231:26;;26303:9;26297:4;26293:20;26289:1;26278:9;26274:17;26267:47;26331:131;26457:4;26331:131;:::i;:::-;26323:139;;26050:419;;;:::o;26475:::-;26641:4;26679:2;26668:9;26664:18;26656:26;;26728:9;26722:4;26718:20;26714:1;26703:9;26699:17;26692:47;26756:131;26882:4;26756:131;:::i;:::-;26748:139;;26475:419;;;:::o;26900:::-;27066:4;27104:2;27093:9;27089:18;27081:26;;27153:9;27147:4;27143:20;27139:1;27128:9;27124:17;27117:47;27181:131;27307:4;27181:131;:::i;:::-;27173:139;;26900:419;;;:::o;27325:::-;27491:4;27529:2;27518:9;27514:18;27506:26;;27578:9;27572:4;27568:20;27564:1;27553:9;27549:17;27542:47;27606:131;27732:4;27606:131;:::i;:::-;27598:139;;27325:419;;;:::o;27750:::-;27916:4;27954:2;27943:9;27939:18;27931:26;;28003:9;27997:4;27993:20;27989:1;27978:9;27974:17;27967:47;28031:131;28157:4;28031:131;:::i;:::-;28023:139;;27750:419;;;:::o;28175:::-;28341:4;28379:2;28368:9;28364:18;28356:26;;28428:9;28422:4;28418:20;28414:1;28403:9;28399:17;28392:47;28456:131;28582:4;28456:131;:::i;:::-;28448:139;;28175:419;;;:::o;28600:::-;28766:4;28804:2;28793:9;28789:18;28781:26;;28853:9;28847:4;28843:20;28839:1;28828:9;28824:17;28817:47;28881:131;29007:4;28881:131;:::i;:::-;28873:139;;28600:419;;;:::o;29025:::-;29191:4;29229:2;29218:9;29214:18;29206:26;;29278:9;29272:4;29268:20;29264:1;29253:9;29249:17;29242:47;29306:131;29432:4;29306:131;:::i;:::-;29298:139;;29025:419;;;:::o;29450:::-;29616:4;29654:2;29643:9;29639:18;29631:26;;29703:9;29697:4;29693:20;29689:1;29678:9;29674:17;29667:47;29731:131;29857:4;29731:131;:::i;:::-;29723:139;;29450:419;;;:::o;29875:::-;30041:4;30079:2;30068:9;30064:18;30056:26;;30128:9;30122:4;30118:20;30114:1;30103:9;30099:17;30092:47;30156:131;30282:4;30156:131;:::i;:::-;30148:139;;29875:419;;;:::o;30300:::-;30466:4;30504:2;30493:9;30489:18;30481:26;;30553:9;30547:4;30543:20;30539:1;30528:9;30524:17;30517:47;30581:131;30707:4;30581:131;:::i;:::-;30573:139;;30300:419;;;:::o;30725:::-;30891:4;30929:2;30918:9;30914:18;30906:26;;30978:9;30972:4;30968:20;30964:1;30953:9;30949:17;30942:47;31006:131;31132:4;31006:131;:::i;:::-;30998:139;;30725:419;;;:::o;31150:::-;31316:4;31354:2;31343:9;31339:18;31331:26;;31403:9;31397:4;31393:20;31389:1;31378:9;31374:17;31367:47;31431:131;31557:4;31431:131;:::i;:::-;31423:139;;31150:419;;;:::o;31575:::-;31741:4;31779:2;31768:9;31764:18;31756:26;;31828:9;31822:4;31818:20;31814:1;31803:9;31799:17;31792:47;31856:131;31982:4;31856:131;:::i;:::-;31848:139;;31575:419;;;:::o;32000:::-;32166:4;32204:2;32193:9;32189:18;32181:26;;32253:9;32247:4;32243:20;32239:1;32228:9;32224:17;32217:47;32281:131;32407:4;32281:131;:::i;:::-;32273:139;;32000:419;;;:::o;32425:::-;32591:4;32629:2;32618:9;32614:18;32606:26;;32678:9;32672:4;32668:20;32664:1;32653:9;32649:17;32642:47;32706:131;32832:4;32706:131;:::i;:::-;32698:139;;32425:419;;;:::o;32850:::-;33016:4;33054:2;33043:9;33039:18;33031:26;;33103:9;33097:4;33093:20;33089:1;33078:9;33074:17;33067:47;33131:131;33257:4;33131:131;:::i;:::-;33123:139;;32850:419;;;:::o;33275:238::-;33376:4;33414:2;33403:9;33399:18;33391:26;;33427:79;33503:1;33492:9;33488:17;33479:6;33427:79;:::i;:::-;33275:238;;;;:::o;33519:222::-;33612:4;33650:2;33639:9;33635:18;33627:26;;33663:71;33731:1;33720:9;33716:17;33707:6;33663:71;:::i;:::-;33519:222;;;;:::o;33747:129::-;33781:6;33808:20;;:::i;:::-;33798:30;;33837:33;33865:4;33857:6;33837:33;:::i;:::-;33747:129;;;:::o;33882:75::-;33915:6;33948:2;33942:9;33932:19;;33882:75;:::o;33963:307::-;34024:4;34114:18;34106:6;34103:30;34100:56;;;34136:18;;:::i;:::-;34100:56;34174:29;34196:6;34174:29;:::i;:::-;34166:37;;34258:4;34252;34248:15;34240:23;;33963:307;;;:::o;34276:308::-;34338:4;34428:18;34420:6;34417:30;34414:56;;;34450:18;;:::i;:::-;34414:56;34488:29;34510:6;34488:29;:::i;:::-;34480:37;;34572:4;34566;34562:15;34554:23;;34276:308;;;:::o;34590:132::-;34657:4;34680:3;34672:11;;34710:4;34705:3;34701:14;34693:22;;34590:132;;;:::o;34728:141::-;34777:4;34800:3;34792:11;;34823:3;34820:1;34813:14;34857:4;34854:1;34844:18;34836:26;;34728:141;;;:::o;34875:114::-;34942:6;34976:5;34970:12;34960:22;;34875:114;;;:::o;34995:98::-;35046:6;35080:5;35074:12;35064:22;;34995:98;;;:::o;35099:99::-;35151:6;35185:5;35179:12;35169:22;;35099:99;;;:::o;35204:113::-;35274:4;35306;35301:3;35297:14;35289:22;;35204:113;;;:::o;35323:184::-;35422:11;35456:6;35451:3;35444:19;35496:4;35491:3;35487:14;35472:29;;35323:184;;;;:::o;35513:168::-;35596:11;35630:6;35625:3;35618:19;35670:4;35665:3;35661:14;35646:29;;35513:168;;;;:::o;35687:169::-;35771:11;35805:6;35800:3;35793:19;35845:4;35840:3;35836:14;35821:29;;35687:169;;;;:::o;35862:148::-;35964:11;36001:3;35986:18;;35862:148;;;;:::o;36016:305::-;36056:3;36075:20;36093:1;36075:20;:::i;:::-;36070:25;;36109:20;36127:1;36109:20;:::i;:::-;36104:25;;36263:1;36195:66;36191:74;36188:1;36185:81;36182:107;;;36269:18;;:::i;:::-;36182:107;36313:1;36310;36306:9;36299:16;;36016:305;;;;:::o;36327:348::-;36367:7;36390:20;36408:1;36390:20;:::i;:::-;36385:25;;36424:20;36442:1;36424:20;:::i;:::-;36419:25;;36612:1;36544:66;36540:74;36537:1;36534:81;36529:1;36522:9;36515:17;36511:105;36508:131;;;36619:18;;:::i;:::-;36508:131;36667:1;36664;36660:9;36649:20;;36327:348;;;;:::o;36681:191::-;36721:4;36741:20;36759:1;36741:20;:::i;:::-;36736:25;;36775:20;36793:1;36775:20;:::i;:::-;36770:25;;36814:1;36811;36808:8;36805:34;;;36819:18;;:::i;:::-;36805:34;36864:1;36861;36857:9;36849:17;;36681:191;;;;:::o;36878:96::-;36915:7;36944:24;36962:5;36944:24;:::i;:::-;36933:35;;36878:96;;;:::o;36980:90::-;37014:7;37057:5;37050:13;37043:21;37032:32;;36980:90;;;:::o;37076:149::-;37112:7;37152:66;37145:5;37141:78;37130:89;;37076:149;;;:::o;37231:126::-;37268:7;37308:42;37301:5;37297:54;37286:65;;37231:126;;;:::o;37363:77::-;37400:7;37429:5;37418:16;;37363:77;;;:::o;37446:154::-;37530:6;37525:3;37520;37507:30;37592:1;37583:6;37578:3;37574:16;37567:27;37446:154;;;:::o;37606:307::-;37674:1;37684:113;37698:6;37695:1;37692:13;37684:113;;;37783:1;37778:3;37774:11;37768:18;37764:1;37759:3;37755:11;37748:39;37720:2;37717:1;37713:10;37708:15;;37684:113;;;37815:6;37812:1;37809:13;37806:101;;;37895:1;37886:6;37881:3;37877:16;37870:27;37806:101;37655:258;37606:307;;;:::o;37919:320::-;37963:6;38000:1;37994:4;37990:12;37980:22;;38047:1;38041:4;38037:12;38068:18;38058:81;;38124:4;38116:6;38112:17;38102:27;;38058:81;38186:2;38178:6;38175:14;38155:18;38152:38;38149:84;;;38205:18;;:::i;:::-;38149:84;37970:269;37919:320;;;:::o;38245:281::-;38328:27;38350:4;38328:27;:::i;:::-;38320:6;38316:40;38458:6;38446:10;38443:22;38422:18;38410:10;38407:34;38404:62;38401:88;;;38469:18;;:::i;:::-;38401:88;38509:10;38505:2;38498:22;38288:238;38245:281;;:::o;38532:233::-;38571:3;38594:24;38612:5;38594:24;:::i;:::-;38585:33;;38640:66;38633:5;38630:77;38627:103;;;38710:18;;:::i;:::-;38627:103;38757:1;38750:5;38746:13;38739:20;;38532:233;;;:::o;38771:180::-;38819:77;38816:1;38809:88;38916:4;38913:1;38906:15;38940:4;38937:1;38930:15;38957:180;39005:77;39002:1;38995:88;39102:4;39099:1;39092:15;39126:4;39123:1;39116:15;39143:180;39191:77;39188:1;39181:88;39288:4;39285:1;39278:15;39312:4;39309:1;39302:15;39329:180;39377:77;39374:1;39367:88;39474:4;39471:1;39464:15;39498:4;39495:1;39488:15;39515:117;39624:1;39621;39614:12;39638:117;39747:1;39744;39737:12;39761:117;39870:1;39867;39860:12;39884:117;39993:1;39990;39983:12;40007:102;40048:6;40099:2;40095:7;40090:2;40083:5;40079:14;40075:28;40065:38;;40007:102;;;:::o;40115:232::-;40255:34;40251:1;40243:6;40239:14;40232:58;40324:15;40319:2;40311:6;40307:15;40300:40;40115:232;:::o;40353:237::-;40493:34;40489:1;40481:6;40477:14;40470:58;40562:20;40557:2;40549:6;40545:15;40538:45;40353:237;:::o;40596:230::-;40736:34;40732:1;40724:6;40720:14;40713:58;40805:13;40800:2;40792:6;40788:15;40781:38;40596:230;:::o;40832:225::-;40972:34;40968:1;40960:6;40956:14;40949:58;41041:8;41036:2;41028:6;41024:15;41017:33;40832:225;:::o;41063:178::-;41203:30;41199:1;41191:6;41187:14;41180:54;41063:178;:::o;41247:223::-;41387:34;41383:1;41375:6;41371:14;41364:58;41456:6;41451:2;41443:6;41439:15;41432:31;41247:223;:::o;41476:::-;41616:34;41612:1;41604:6;41600:14;41593:58;41685:6;41680:2;41672:6;41668:15;41661:31;41476:223;:::o;41705:175::-;41845:27;41841:1;41833:6;41829:14;41822:51;41705:175;:::o;41886:231::-;42026:34;42022:1;42014:6;42010:14;42003:58;42095:14;42090:2;42082:6;42078:15;42071:39;41886:231;:::o;42123:243::-;42263:34;42259:1;42251:6;42247:14;42240:58;42332:26;42327:2;42319:6;42315:15;42308:51;42123:243;:::o;42372:229::-;42512:34;42508:1;42500:6;42496:14;42489:58;42581:12;42576:2;42568:6;42564:15;42557:37;42372:229;:::o;42607:228::-;42747:34;42743:1;42735:6;42731:14;42724:58;42816:11;42811:2;42803:6;42799:15;42792:36;42607:228;:::o;42841:182::-;42981:34;42977:1;42969:6;42965:14;42958:58;42841:182;:::o;43029:231::-;43169:34;43165:1;43157:6;43153:14;43146:58;43238:14;43233:2;43225:6;43221:15;43214:39;43029:231;:::o;43266:182::-;43406:34;43402:1;43394:6;43390:14;43383:58;43266:182;:::o;43454:228::-;43594:34;43590:1;43582:6;43578:14;43571:58;43663:11;43658:2;43650:6;43646:15;43639:36;43454:228;:::o;43688:234::-;43828:34;43824:1;43816:6;43812:14;43805:58;43897:17;43892:2;43884:6;43880:15;43873:42;43688:234;:::o;43928:220::-;44068:34;44064:1;44056:6;44052:14;44045:58;44137:3;44132:2;44124:6;44120:15;44113:28;43928:220;:::o;44154:238::-;44294:34;44290:1;44282:6;44278:14;44271:58;44363:21;44358:2;44350:6;44346:15;44339:46;44154:238;:::o;44398:236::-;44538:34;44534:1;44526:6;44522:14;44515:58;44607:19;44602:2;44594:6;44590:15;44583:44;44398:236;:::o;44640:231::-;44780:34;44776:1;44768:6;44764:14;44757:58;44849:14;44844:2;44836:6;44832:15;44825:39;44640:231;:::o;44877:122::-;44950:24;44968:5;44950:24;:::i;:::-;44943:5;44940:35;44930:63;;44989:1;44986;44979:12;44930:63;44877:122;:::o;45005:116::-;45075:21;45090:5;45075:21;:::i;:::-;45068:5;45065:32;45055:60;;45111:1;45108;45101:12;45055:60;45005:116;:::o;45127:120::-;45199:23;45216:5;45199:23;:::i;:::-;45192:5;45189:34;45179:62;;45237:1;45234;45227:12;45179:62;45127:120;:::o;45253:122::-;45326:24;45344:5;45326:24;:::i;:::-;45319:5;45316:35;45306:63;;45365:1;45362;45355:12;45306:63;45253:122;:::o
Swarm Source
ipfs://0a3e9b3b5d4147674327ec29a0133f32df9d9b061957db51206615ff4634ecc9
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.