ERC-721
Source Code
Overview
Max Total Supply
0 MIPT
Holders
31
Transfers
-
0
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
MiptAnniversaryToken
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2022-09-21
*/
pragma solidity ^0.8.16;
interface IERC165 {
function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
interface IERC721 is IERC165 {
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
function balanceOf(address owner) external view returns (uint256 balance);
function ownerOf(uint256 tokenId) external view returns (address owner);
function safeTransferFrom(
address from,
address to,
uint256 tokenId,
bytes calldata data
) external;
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 setApprovalForAll(address operator, bool _approved) external;
function getApproved(uint256 tokenId) external view returns (address operator);
function isApprovedForAll(address owner, address operator) external view returns (bool);
}
interface IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
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 Address {
function isContract(address account) internal view returns (bool) {
return account.code.length > 0;
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
require(isContract(target), "Address: call to non-contract");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResult(success, returndata, errorMessage);
}
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResult(success, returndata, errorMessage);
}
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResult(success, returndata, errorMessage);
}
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
if (returndata.length > 0) {
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
function toString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
function toHexString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0x00";
}
uint256 temp = value;
uint256 length = 0;
while (temp != 0) {
length++;
temp >>= 8;
}
return toHexString(value, length);
}
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _HEX_SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
function toHexString(address addr) internal pure returns (string memory) {
return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
}
}
abstract contract ERC165 is IERC165 {
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IERC165).interfaceId;
}
}
contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {
using Address for address;
using Strings for uint256;
string private _name;
string private _symbol;
mapping(uint256 => address) private _owners;
mapping(address => uint256) private _balances;
mapping(uint256 => address) private _tokenApprovals;
mapping(address => mapping(address => bool)) private _operatorApprovals;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) {
return
interfaceId == type(IERC721).interfaceId ||
interfaceId == type(IERC721Metadata).interfaceId ||
super.supportsInterface(interfaceId);
}
function balanceOf(address owner) public view virtual override returns (uint256) {
require(owner != address(0), "ERC721: address zero is not a valid owner");
return _balances[owner];
}
function ownerOf(uint256 tokenId) public view virtual override returns (address) {
address owner = _owners[tokenId];
require(owner != address(0), "ERC721: invalid token ID");
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) {
_requireMinted(tokenId);
string memory baseURI = _baseURI();
return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : "";
}
function _baseURI() internal view virtual returns (string memory) {
return "";
}
function approve(address to, uint256 tokenId) public virtual override {
address owner = ERC721.ownerOf(tokenId);
require(to != owner, "ERC721: approval to current owner");
require(
_msgSender() == owner || isApprovedForAll(owner, _msgSender()),
"ERC721: approve caller is not token owner nor approved for all"
);
_approve(to, tokenId);
}
function getApproved(uint256 tokenId) public view virtual override returns (address) {
_requireMinted(tokenId);
return _tokenApprovals[tokenId];
}
function setApprovalForAll(address operator, bool approved) public virtual override {
_setApprovalForAll(_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: caller is not token 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: caller is not token 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) {
address owner = ERC721.ownerOf(tokenId);
return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender);
}
function _safeMint(address to, uint256 tokenId) internal virtual {
_safeMint(to, tokenId, "");
}
function _safeMint(
address to,
uint256 tokenId,
bytes memory data
) internal virtual {
_mint(to, tokenId);
require(
_checkOnERC721Received(address(0), to, tokenId, data),
"ERC721: transfer to non ERC721Receiver implementer"
);
}
function _mint(address to, uint256 tokenId) internal virtual {
require(to != address(0), "ERC721: mint to the zero address");
require(!_exists(tokenId), "ERC721: token already minted");
_beforeTokenTransfer(address(0), to, tokenId);
_balances[to] += 1;
_owners[tokenId] = to;
emit Transfer(address(0), to, tokenId);
_afterTokenTransfer(address(0), to, tokenId);
}
function _burn(uint256 tokenId) internal virtual {
address owner = ERC721.ownerOf(tokenId);
_beforeTokenTransfer(owner, address(0), tokenId);
_approve(address(0), tokenId);
_balances[owner] -= 1;
delete _owners[tokenId];
emit Transfer(owner, address(0), tokenId);
_afterTokenTransfer(owner, address(0), tokenId);
}
function _transfer(
address from,
address to,
uint256 tokenId
) internal virtual {
require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner");
require(to != address(0), "ERC721: transfer to the zero address");
_beforeTokenTransfer(from, to, tokenId);
_approve(address(0), tokenId);
_balances[from] -= 1;
_balances[to] += 1;
_owners[tokenId] = to;
emit Transfer(from, to, tokenId);
_afterTokenTransfer(from, to, tokenId);
}
function _approve(address to, uint256 tokenId) internal virtual {
_tokenApprovals[tokenId] = to;
emit Approval(ERC721.ownerOf(tokenId), to, tokenId);
}
function _setApprovalForAll(
address owner,
address operator,
bool approved
) internal virtual {
require(owner != operator, "ERC721: approve to caller");
_operatorApprovals[owner][operator] = approved;
emit ApprovalForAll(owner, operator, approved);
}
function _requireMinted(uint256 tokenId) internal view virtual {
require(_exists(tokenId), "ERC721: invalid token ID");
}
function _checkOnERC721Received(
address from,
address to,
uint256 tokenId,
bytes memory data
) private returns (bool) {
if (to.isContract()) {
try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, data) returns (bytes4 retval) {
return retval == IERC721Receiver.onERC721Received.selector;
} catch (bytes memory reason) {
if (reason.length == 0) {
revert("ERC721: transfer to non ERC721Receiver implementer");
} else {
assembly {
revert(add(32, reason), mload(reason))
}
}
}
} else {
return true;
}
}
function _beforeTokenTransfer(
address from,
address to,
uint256 tokenId
) internal virtual {}
function _afterTokenTransfer(
address from,
address to,
uint256 tokenId
) internal virtual {}
}
abstract contract ERC721URIStorage is ERC721 {
using Strings for uint256;
mapping(uint256 => string) private _tokenURIs;
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
_requireMinted(tokenId);
string memory _tokenURI = _tokenURIs[tokenId];
string memory base = _baseURI();
if (bytes(base).length == 0) {
return _tokenURI;
}
if (bytes(_tokenURI).length > 0) {
return string(abi.encodePacked(base, _tokenURI));
}
return super.tokenURI(tokenId);
}
function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {
require(_exists(tokenId), "ERC721URIStorage: URI set of nonexistent token");
_tokenURIs[tokenId] = _tokenURI;
}
function _burn(uint256 tokenId) internal virtual override {
super._burn(tokenId);
if (bytes(_tokenURIs[tokenId]).length != 0) {
delete _tokenURIs[tokenId];
}
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
constructor() {
_transferOwnership(_msgSender());
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
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);
}
}
contract MiptAnniversaryToken is ERC721URIStorage, Ownable {
string private BASE_URI;
string private URI_POSTFIX;
constructor(
string memory _name,
string memory _symbol,
string memory _uri,
string memory _postfix
) ERC721(_name, _symbol) {
BASE_URI = _uri;
URI_POSTFIX = _postfix;
}
function mintTo(address _addressTo, uint256 _tokenId, string memory _metadataCid) external onlyOwner {
require(_addressTo != address(0), "Cannot mint to zero address");
require(bytes(_metadataCid).length > 0, "Metadata cid required");
_safeMint(_addressTo, _tokenId);
_setTokenURI(_tokenId, _metadataCid);
}
function setBaseURI(string memory _uri) external onlyOwner {
BASE_URI = _uri;
}
function setURIPostfix(string memory _postfix) external onlyOwner {
URI_POSTFIX = _postfix;
}
function setTokenURI(uint256 _tokenId, string memory _tokenUri) external onlyOwner {
_setTokenURI(_tokenId, _tokenUri);
}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
if (bytes(URI_POSTFIX).length > 0) {
return string(abi.encodePacked(super.tokenURI(tokenId), URI_POSTFIX));
}
return super.tokenURI(tokenId);
}
function _baseURI() internal view virtual override returns (string memory) {
return BASE_URI;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"string","name":"_uri","type":"string"},{"internalType":"string","name":"_postfix","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":"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":[{"internalType":"address","name":"_addressTo","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"string","name":"_metadataCid","type":"string"}],"name":"mintTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uri","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"string","name":"_tokenUri","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_postfix","type":"string"}],"name":"setURIPostfix","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":[{"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"}]Contract Creation Code
60806040523480156200001157600080fd5b50604051620039893803806200398983398181016040528101906200003791906200030e565b838381600090816200004a919062000647565b5080600190816200005c919062000647565b5050506200007f62000073620000ad60201b60201c565b620000b560201b60201c565b816008908162000090919062000647565b508060099081620000a2919062000647565b50505050506200072e565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620001e48262000199565b810181811067ffffffffffffffff82111715620002065762000205620001aa565b5b80604052505050565b60006200021b6200017b565b9050620002298282620001d9565b919050565b600067ffffffffffffffff8211156200024c576200024b620001aa565b5b620002578262000199565b9050602081019050919050565b60005b838110156200028457808201518184015260208101905062000267565b60008484015250505050565b6000620002a7620002a1846200022e565b6200020f565b905082815260208101848484011115620002c657620002c562000194565b5b620002d384828562000264565b509392505050565b600082601f830112620002f357620002f26200018f565b5b81516200030584826020860162000290565b91505092915050565b600080600080608085870312156200032b576200032a62000185565b5b600085015167ffffffffffffffff8111156200034c576200034b6200018a565b5b6200035a87828801620002db565b945050602085015167ffffffffffffffff8111156200037e576200037d6200018a565b5b6200038c87828801620002db565b935050604085015167ffffffffffffffff811115620003b057620003af6200018a565b5b620003be87828801620002db565b925050606085015167ffffffffffffffff811115620003e257620003e16200018a565b5b620003f087828801620002db565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200044f57607f821691505b60208210810362000465576200046462000407565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000490565b620004db868362000490565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000528620005226200051c84620004f3565b620004fd565b620004f3565b9050919050565b6000819050919050565b620005448362000507565b6200055c62000553826200052f565b8484546200049d565b825550505050565b600090565b6200057362000564565b6200058081848462000539565b505050565b5b81811015620005a8576200059c60008262000569565b60018101905062000586565b5050565b601f821115620005f757620005c1816200046b565b620005cc8462000480565b81016020851015620005dc578190505b620005f4620005eb8562000480565b83018262000585565b50505b505050565b600082821c905092915050565b60006200061c60001984600802620005fc565b1980831691505092915050565b600062000637838362000609565b9150826002028217905092915050565b6200065282620003fc565b67ffffffffffffffff8111156200066e576200066d620001aa565b5b6200067a825462000436565b62000687828285620005ac565b600060209050601f831160018114620006bf5760008415620006aa578287015190505b620006b6858262000629565b86555062000726565b601f198416620006cf866200046b565b60005b82811015620006f957848901518255600182019150602085019450602081019050620006d2565b8683101562000719578489015162000715601f89168262000609565b8355505b6001600288020188555050505b505050505050565b61324b806200073e6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063ab2fb18d11610071578063ab2fb18d14610319578063b88d4fde14610335578063c87b56dd14610351578063e985e9c514610381578063f2fde38b146103b15761012c565b8063715018a61461029b5780638da5cb5b146102a557806395d89b41146102c35780639f6ed25f146102e1578063a22cb465146102fd5761012c565b806323b872dd116100f457806323b872dd146101e757806342842e0e1461020357806355f804b31461021f5780636352211e1461023b57806370a082311461026b5761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af578063162094c4146101cb575b600080fd5b61014b60048036038101906101469190611c95565b6103cd565b6040516101589190611cdd565b60405180910390f35b6101696104af565b6040516101769190611d88565b60405180910390f35b61019960048036038101906101949190611de0565b610541565b6040516101a69190611e4e565b60405180910390f35b6101c960048036038101906101c49190611e95565b610587565b005b6101e560048036038101906101e0919061200a565b61069e565b005b61020160048036038101906101fc9190612066565b6106b4565b005b61021d60048036038101906102189190612066565b610714565b005b610239600480360381019061023491906120b9565b610734565b005b61025560048036038101906102509190611de0565b61074f565b6040516102629190611e4e565b60405180910390f35b61028560048036038101906102809190612102565b610800565b604051610292919061213e565b60405180910390f35b6102a36108b7565b005b6102ad6108cb565b6040516102ba9190611e4e565b60405180910390f35b6102cb6108f5565b6040516102d89190611d88565b60405180910390f35b6102fb60048036038101906102f69190612159565b610987565b005b610317600480360381019061031291906121f4565b610a5b565b005b610333600480360381019061032e91906120b9565b610a71565b005b61034f600480360381019061034a91906122d5565b610a8c565b005b61036b60048036038101906103669190611de0565b610aee565b6040516103789190611d88565b60405180910390f35b61039b60048036038101906103969190612358565b610b4a565b6040516103a89190611cdd565b60405180910390f35b6103cb60048036038101906103c69190612102565b610bde565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104a857506104a782610c61565b5b9050919050565b6060600080546104be906123c7565b80601f01602080910402602001604051908101604052809291908181526020018280546104ea906123c7565b80156105375780601f1061050c57610100808354040283529160200191610537565b820191906000526020600020905b81548152906001019060200180831161051a57829003601f168201915b5050505050905090565b600061054c82610ccb565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105928261074f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f99061246a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610621610d16565b73ffffffffffffffffffffffffffffffffffffffff161480610650575061064f8161064a610d16565b610b4a565b5b61068f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610686906124fc565b60405180910390fd5b6106998383610d1e565b505050565b6106a6610dd7565b6106b08282610e55565b5050565b6106c56106bf610d16565b82610ec2565b610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb9061258e565b60405180910390fd5b61070f838383610f57565b505050565b61072f83838360405180602001604052806000815250610a8c565b505050565b61073c610dd7565b806008908161074b919061275a565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ee90612878565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108679061290a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108bf610dd7565b6108c960006111bd565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610904906123c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610930906123c7565b801561097d5780601f106109525761010080835404028352916020019161097d565b820191906000526020600020905b81548152906001019060200180831161096057829003601f168201915b5050505050905090565b61098f610dd7565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590612976565b60405180910390fd5b6000815111610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906129e2565b60405180910390fd5b610a4c8383611283565b610a568282610e55565b505050565b610a6d610a66610d16565b83836112a1565b5050565b610a79610dd7565b8060099081610a88919061275a565b5050565b610a9d610a97610d16565b83610ec2565b610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad39061258e565b60405180910390fd5b610ae88484848461140d565b50505050565b6060600060098054610aff906123c7565b90501115610b3957610b1082611469565b6009604051602001610b23929190612ac1565b6040516020818303038152906040529050610b45565b610b4282611469565b90505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610be6610dd7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612b57565b60405180910390fd5b610c5e816111bd565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610cd48161157b565b610d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0a90612878565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610d918361074f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610ddf610d16565b73ffffffffffffffffffffffffffffffffffffffff16610dfd6108cb565b73ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4a90612bc3565b60405180910390fd5b565b610e5e8261157b565b610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490612c55565b60405180910390fd5b80600660008481526020019081526020016000209081610ebd919061275a565b505050565b600080610ece8361074f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f105750610f0f8185610b4a565b5b80610f4e57508373ffffffffffffffffffffffffffffffffffffffff16610f3684610541565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610f778261074f565b73ffffffffffffffffffffffffffffffffffffffff1614610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612ce7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612d79565b60405180910390fd5b6110478383836115e7565b611052600082610d1e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a29190612dc8565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f99190612dfc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111b88383836115ec565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61129d8282604051806020016040528060008152506115f1565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612e7c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114009190611cdd565b60405180910390a3505050565b611418848484610f57565b6114248484848461164c565b611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90612f0e565b60405180910390fd5b50505050565b606061147482610ccb565b6000600660008481526020019081526020016000208054611494906123c7565b80601f01602080910402602001604051908101604052809291908181526020018280546114c0906123c7565b801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b50505050509050600061151e6117d3565b90506000815103611533578192505050611576565b600082511115611568578082604051602001611550929190612f2e565b60405160208183030381529060405292505050611576565b61157184611865565b925050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6115fb83836118cd565b611608600084848461164c565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90612f0e565b60405180910390fd5b505050565b600061166d8473ffffffffffffffffffffffffffffffffffffffff16611aa6565b156117c6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611696610d16565b8786866040518563ffffffff1660e01b81526004016116b89493929190612fa7565b6020604051808303816000875af19250505080156116f457506040513d601f19601f820116820180604052508101906116f19190613008565b60015b611776573d8060008114611724576040519150601f19603f3d011682016040523d82523d6000602084013e611729565b606091505b50600081510361176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590612f0e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506117cb565b600190505b949350505050565b6060600880546117e2906123c7565b80601f016020809104026020016040519081016040528092919081815260200182805461180e906123c7565b801561185b5780601f106118305761010080835404028352916020019161185b565b820191906000526020600020905b81548152906001019060200180831161183e57829003601f168201915b5050505050905090565b606061187082610ccb565b600061187a6117d3565b9050600081511161189a57604051806020016040528060008152506118c5565b806118a484611ac9565b6040516020016118b5929190612f2e565b6040516020818303038152906040525b915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390613081565b60405180910390fd5b6119458161157b565b15611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906130ed565b60405180910390fd5b611991600083836115e7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119e19190612dfc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611aa2600083836115ec565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606060008203611b10576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611c24565b600082905060005b60008214611b42578080611b2b9061310d565b915050600a82611b3b9190613184565b9150611b18565b60008167ffffffffffffffff811115611b5e57611b5d611edf565b5b6040519080825280601f01601f191660200182016040528015611b905781602001600182028036833780820191505090505b5090505b60008514611c1d57600182611ba99190612dc8565b9150600a85611bb891906131b5565b6030611bc49190612dfc565b60f81b818381518110611bda57611bd96131e6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611c169190613184565b9450611b94565b8093505050505b919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c7281611c3d565b8114611c7d57600080fd5b50565b600081359050611c8f81611c69565b92915050565b600060208284031215611cab57611caa611c33565b5b6000611cb984828501611c80565b91505092915050565b60008115159050919050565b611cd781611cc2565b82525050565b6000602082019050611cf26000830184611cce565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d32578082015181840152602081019050611d17565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d5a82611cf8565b611d648185611d03565b9350611d74818560208601611d14565b611d7d81611d3e565b840191505092915050565b60006020820190508181036000830152611da28184611d4f565b905092915050565b6000819050919050565b611dbd81611daa565b8114611dc857600080fd5b50565b600081359050611dda81611db4565b92915050565b600060208284031215611df657611df5611c33565b5b6000611e0484828501611dcb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e3882611e0d565b9050919050565b611e4881611e2d565b82525050565b6000602082019050611e636000830184611e3f565b92915050565b611e7281611e2d565b8114611e7d57600080fd5b50565b600081359050611e8f81611e69565b92915050565b60008060408385031215611eac57611eab611c33565b5b6000611eba85828601611e80565b9250506020611ecb85828601611dcb565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f1782611d3e565b810181811067ffffffffffffffff82111715611f3657611f35611edf565b5b80604052505050565b6000611f49611c29565b9050611f558282611f0e565b919050565b600067ffffffffffffffff821115611f7557611f74611edf565b5b611f7e82611d3e565b9050602081019050919050565b82818337600083830152505050565b6000611fad611fa884611f5a565b611f3f565b905082815260208101848484011115611fc957611fc8611eda565b5b611fd4848285611f8b565b509392505050565b600082601f830112611ff157611ff0611ed5565b5b8135612001848260208601611f9a565b91505092915050565b6000806040838503121561202157612020611c33565b5b600061202f85828601611dcb565b925050602083013567ffffffffffffffff8111156120505761204f611c38565b5b61205c85828601611fdc565b9150509250929050565b60008060006060848603121561207f5761207e611c33565b5b600061208d86828701611e80565b935050602061209e86828701611e80565b92505060406120af86828701611dcb565b9150509250925092565b6000602082840312156120cf576120ce611c33565b5b600082013567ffffffffffffffff8111156120ed576120ec611c38565b5b6120f984828501611fdc565b91505092915050565b60006020828403121561211857612117611c33565b5b600061212684828501611e80565b91505092915050565b61213881611daa565b82525050565b6000602082019050612153600083018461212f565b92915050565b60008060006060848603121561217257612171611c33565b5b600061218086828701611e80565b935050602061219186828701611dcb565b925050604084013567ffffffffffffffff8111156121b2576121b1611c38565b5b6121be86828701611fdc565b9150509250925092565b6121d181611cc2565b81146121dc57600080fd5b50565b6000813590506121ee816121c8565b92915050565b6000806040838503121561220b5761220a611c33565b5b600061221985828601611e80565b925050602061222a858286016121df565b9150509250929050565b600067ffffffffffffffff82111561224f5761224e611edf565b5b61225882611d3e565b9050602081019050919050565b600061227861227384612234565b611f3f565b90508281526020810184848401111561229457612293611eda565b5b61229f848285611f8b565b509392505050565b600082601f8301126122bc576122bb611ed5565b5b81356122cc848260208601612265565b91505092915050565b600080600080608085870312156122ef576122ee611c33565b5b60006122fd87828801611e80565b945050602061230e87828801611e80565b935050604061231f87828801611dcb565b925050606085013567ffffffffffffffff8111156123405761233f611c38565b5b61234c878288016122a7565b91505092959194509250565b6000806040838503121561236f5761236e611c33565b5b600061237d85828601611e80565b925050602061238e85828601611e80565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123df57607f821691505b6020821081036123f2576123f1612398565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612454602183611d03565b915061245f826123f8565b604082019050919050565b6000602082019050818103600083015261248381612447565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b60006124e6603e83611d03565b91506124f18261248a565b604082019050919050565b60006020820190508181036000830152612515816124d9565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612578602e83611d03565b91506125838261251c565b604082019050919050565b600060208201905081810360008301526125a78161256b565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026126107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826125d3565b61261a86836125d3565b95508019841693508086168417925050509392505050565b6000819050919050565b600061265761265261264d84611daa565b612632565b611daa565b9050919050565b6000819050919050565b6126718361263c565b61268561267d8261265e565b8484546125e0565b825550505050565b600090565b61269a61268d565b6126a5818484612668565b505050565b5b818110156126c9576126be600082612692565b6001810190506126ab565b5050565b601f82111561270e576126df816125ae565b6126e8846125c3565b810160208510156126f7578190505b61270b612703856125c3565b8301826126aa565b50505b505050565b600082821c905092915050565b600061273160001984600802612713565b1980831691505092915050565b600061274a8383612720565b9150826002028217905092915050565b61276382611cf8565b67ffffffffffffffff81111561277c5761277b611edf565b5b61278682546123c7565b6127918282856126cd565b600060209050601f8311600181146127c457600084156127b2578287015190505b6127bc858261273e565b865550612824565b601f1984166127d2866125ae565b60005b828110156127fa578489015182556001820191506020850194506020810190506127d5565b868310156128175784890151612813601f891682612720565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612862601883611d03565b915061286d8261282c565b602082019050919050565b6000602082019050818103600083015261289181612855565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006128f4602983611d03565b91506128ff82612898565b604082019050919050565b60006020820190508181036000830152612923816128e7565b9050919050565b7f43616e6e6f74206d696e7420746f207a65726f20616464726573730000000000600082015250565b6000612960601b83611d03565b915061296b8261292a565b602082019050919050565b6000602082019050818103600083015261298f81612953565b9050919050565b7f4d65746164617461206369642072657175697265640000000000000000000000600082015250565b60006129cc601583611d03565b91506129d782612996565b602082019050919050565b600060208201905081810360008301526129fb816129bf565b9050919050565b600081905092915050565b6000612a1882611cf8565b612a228185612a02565b9350612a32818560208601611d14565b80840191505092915050565b60008154612a4b816123c7565b612a558186612a02565b94506001821660008114612a705760018114612a8557612ab8565b60ff1983168652811515820286019350612ab8565b612a8e856125ae565b60005b83811015612ab057815481890152600182019150602081019050612a91565b838801955050505b50505092915050565b6000612acd8285612a0d565b9150612ad98284612a3e565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b41602683611d03565b9150612b4c82612ae5565b604082019050919050565b60006020820190508181036000830152612b7081612b34565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bad602083611d03565b9150612bb882612b77565b602082019050919050565b60006020820190508181036000830152612bdc81612ba0565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000612c3f602e83611d03565b9150612c4a82612be3565b604082019050919050565b60006020820190508181036000830152612c6e81612c32565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612cd1602583611d03565b9150612cdc82612c75565b604082019050919050565b60006020820190508181036000830152612d0081612cc4565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d63602483611d03565b9150612d6e82612d07565b604082019050919050565b60006020820190508181036000830152612d9281612d56565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dd382611daa565b9150612dde83611daa565b9250828203905081811115612df657612df5612d99565b5b92915050565b6000612e0782611daa565b9150612e1283611daa565b9250828201905080821115612e2a57612e29612d99565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000612e66601983611d03565b9150612e7182612e30565b602082019050919050565b60006020820190508181036000830152612e9581612e59565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612ef8603283611d03565b9150612f0382612e9c565b604082019050919050565b60006020820190508181036000830152612f2781612eeb565b9050919050565b6000612f3a8285612a0d565b9150612f468284612a0d565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000612f7982612f52565b612f838185612f5d565b9350612f93818560208601611d14565b612f9c81611d3e565b840191505092915050565b6000608082019050612fbc6000830187611e3f565b612fc96020830186611e3f565b612fd6604083018561212f565b8181036060830152612fe88184612f6e565b905095945050505050565b60008151905061300281611c69565b92915050565b60006020828403121561301e5761301d611c33565b5b600061302c84828501612ff3565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061306b602083611d03565b915061307682613035565b602082019050919050565b6000602082019050818103600083015261309a8161305e565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006130d7601c83611d03565b91506130e2826130a1565b602082019050919050565b60006020820190508181036000830152613106816130ca565b9050919050565b600061311882611daa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314a57613149612d99565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061318f82611daa565b915061319a83611daa565b9250826131aa576131a9613155565b5b828204905092915050565b60006131c082611daa565b91506131cb83611daa565b9250826131db576131da613155565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122046d36b4b5a7739a40b270c43b09ee6aa875361deda3ed984f72b091dab5a7fb564736f6c63430008100033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000164d49505420416e6e697665727361727920746f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000044d495054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e2f6d657461646174612e6a736f6e000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063ab2fb18d11610071578063ab2fb18d14610319578063b88d4fde14610335578063c87b56dd14610351578063e985e9c514610381578063f2fde38b146103b15761012c565b8063715018a61461029b5780638da5cb5b146102a557806395d89b41146102c35780639f6ed25f146102e1578063a22cb465146102fd5761012c565b806323b872dd116100f457806323b872dd146101e757806342842e0e1461020357806355f804b31461021f5780636352211e1461023b57806370a082311461026b5761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af578063162094c4146101cb575b600080fd5b61014b60048036038101906101469190611c95565b6103cd565b6040516101589190611cdd565b60405180910390f35b6101696104af565b6040516101769190611d88565b60405180910390f35b61019960048036038101906101949190611de0565b610541565b6040516101a69190611e4e565b60405180910390f35b6101c960048036038101906101c49190611e95565b610587565b005b6101e560048036038101906101e0919061200a565b61069e565b005b61020160048036038101906101fc9190612066565b6106b4565b005b61021d60048036038101906102189190612066565b610714565b005b610239600480360381019061023491906120b9565b610734565b005b61025560048036038101906102509190611de0565b61074f565b6040516102629190611e4e565b60405180910390f35b61028560048036038101906102809190612102565b610800565b604051610292919061213e565b60405180910390f35b6102a36108b7565b005b6102ad6108cb565b6040516102ba9190611e4e565b60405180910390f35b6102cb6108f5565b6040516102d89190611d88565b60405180910390f35b6102fb60048036038101906102f69190612159565b610987565b005b610317600480360381019061031291906121f4565b610a5b565b005b610333600480360381019061032e91906120b9565b610a71565b005b61034f600480360381019061034a91906122d5565b610a8c565b005b61036b60048036038101906103669190611de0565b610aee565b6040516103789190611d88565b60405180910390f35b61039b60048036038101906103969190612358565b610b4a565b6040516103a89190611cdd565b60405180910390f35b6103cb60048036038101906103c69190612102565b610bde565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061049857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104a857506104a782610c61565b5b9050919050565b6060600080546104be906123c7565b80601f01602080910402602001604051908101604052809291908181526020018280546104ea906123c7565b80156105375780601f1061050c57610100808354040283529160200191610537565b820191906000526020600020905b81548152906001019060200180831161051a57829003601f168201915b5050505050905090565b600061054c82610ccb565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105928261074f565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f99061246a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610621610d16565b73ffffffffffffffffffffffffffffffffffffffff161480610650575061064f8161064a610d16565b610b4a565b5b61068f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610686906124fc565b60405180910390fd5b6106998383610d1e565b505050565b6106a6610dd7565b6106b08282610e55565b5050565b6106c56106bf610d16565b82610ec2565b610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb9061258e565b60405180910390fd5b61070f838383610f57565b505050565b61072f83838360405180602001604052806000815250610a8c565b505050565b61073c610dd7565b806008908161074b919061275a565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ee90612878565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108679061290a565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108bf610dd7565b6108c960006111bd565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610904906123c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610930906123c7565b801561097d5780601f106109525761010080835404028352916020019161097d565b820191906000526020600020905b81548152906001019060200180831161096057829003601f168201915b5050505050905090565b61098f610dd7565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f590612976565b60405180910390fd5b6000815111610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906129e2565b60405180910390fd5b610a4c8383611283565b610a568282610e55565b505050565b610a6d610a66610d16565b83836112a1565b5050565b610a79610dd7565b8060099081610a88919061275a565b5050565b610a9d610a97610d16565b83610ec2565b610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad39061258e565b60405180910390fd5b610ae88484848461140d565b50505050565b6060600060098054610aff906123c7565b90501115610b3957610b1082611469565b6009604051602001610b23929190612ac1565b6040516020818303038152906040529050610b45565b610b4282611469565b90505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610be6610dd7565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4c90612b57565b60405180910390fd5b610c5e816111bd565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610cd48161157b565b610d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0a90612878565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610d918361074f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610ddf610d16565b73ffffffffffffffffffffffffffffffffffffffff16610dfd6108cb565b73ffffffffffffffffffffffffffffffffffffffff1614610e53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4a90612bc3565b60405180910390fd5b565b610e5e8261157b565b610e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9490612c55565b60405180910390fd5b80600660008481526020019081526020016000209081610ebd919061275a565b505050565b600080610ece8361074f565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f105750610f0f8185610b4a565b5b80610f4e57508373ffffffffffffffffffffffffffffffffffffffff16610f3684610541565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610f778261074f565b73ffffffffffffffffffffffffffffffffffffffff1614610fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc490612ce7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361103c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103390612d79565b60405180910390fd5b6110478383836115e7565b611052600082610d1e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110a29190612dc8565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110f99190612dfc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111b88383836115ec565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61129d8282604051806020016040528060008152506115f1565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612e7c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114009190611cdd565b60405180910390a3505050565b611418848484610f57565b6114248484848461164c565b611463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145a90612f0e565b60405180910390fd5b50505050565b606061147482610ccb565b6000600660008481526020019081526020016000208054611494906123c7565b80601f01602080910402602001604051908101604052809291908181526020018280546114c0906123c7565b801561150d5780601f106114e25761010080835404028352916020019161150d565b820191906000526020600020905b8154815290600101906020018083116114f057829003601f168201915b50505050509050600061151e6117d3565b90506000815103611533578192505050611576565b600082511115611568578082604051602001611550929190612f2e565b60405160208183030381529060405292505050611576565b61157184611865565b925050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b6115fb83836118cd565b611608600084848461164c565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90612f0e565b60405180910390fd5b505050565b600061166d8473ffffffffffffffffffffffffffffffffffffffff16611aa6565b156117c6578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611696610d16565b8786866040518563ffffffff1660e01b81526004016116b89493929190612fa7565b6020604051808303816000875af19250505080156116f457506040513d601f19601f820116820180604052508101906116f19190613008565b60015b611776573d8060008114611724576040519150601f19603f3d011682016040523d82523d6000602084013e611729565b606091505b50600081510361176e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176590612f0e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506117cb565b600190505b949350505050565b6060600880546117e2906123c7565b80601f016020809104026020016040519081016040528092919081815260200182805461180e906123c7565b801561185b5780601f106118305761010080835404028352916020019161185b565b820191906000526020600020905b81548152906001019060200180831161183e57829003601f168201915b5050505050905090565b606061187082610ccb565b600061187a6117d3565b9050600081511161189a57604051806020016040528060008152506118c5565b806118a484611ac9565b6040516020016118b5929190612f2e565b6040516020818303038152906040525b915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361193c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193390613081565b60405180910390fd5b6119458161157b565b15611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906130ed565b60405180910390fd5b611991600083836115e7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119e19190612dfc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611aa2600083836115ec565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b606060008203611b10576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611c24565b600082905060005b60008214611b42578080611b2b9061310d565b915050600a82611b3b9190613184565b9150611b18565b60008167ffffffffffffffff811115611b5e57611b5d611edf565b5b6040519080825280601f01601f191660200182016040528015611b905781602001600182028036833780820191505090505b5090505b60008514611c1d57600182611ba99190612dc8565b9150600a85611bb891906131b5565b6030611bc49190612dfc565b60f81b818381518110611bda57611bd96131e6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611c169190613184565b9450611b94565b8093505050505b919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611c7281611c3d565b8114611c7d57600080fd5b50565b600081359050611c8f81611c69565b92915050565b600060208284031215611cab57611caa611c33565b5b6000611cb984828501611c80565b91505092915050565b60008115159050919050565b611cd781611cc2565b82525050565b6000602082019050611cf26000830184611cce565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d32578082015181840152602081019050611d17565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d5a82611cf8565b611d648185611d03565b9350611d74818560208601611d14565b611d7d81611d3e565b840191505092915050565b60006020820190508181036000830152611da28184611d4f565b905092915050565b6000819050919050565b611dbd81611daa565b8114611dc857600080fd5b50565b600081359050611dda81611db4565b92915050565b600060208284031215611df657611df5611c33565b5b6000611e0484828501611dcb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e3882611e0d565b9050919050565b611e4881611e2d565b82525050565b6000602082019050611e636000830184611e3f565b92915050565b611e7281611e2d565b8114611e7d57600080fd5b50565b600081359050611e8f81611e69565b92915050565b60008060408385031215611eac57611eab611c33565b5b6000611eba85828601611e80565b9250506020611ecb85828601611dcb565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611f1782611d3e565b810181811067ffffffffffffffff82111715611f3657611f35611edf565b5b80604052505050565b6000611f49611c29565b9050611f558282611f0e565b919050565b600067ffffffffffffffff821115611f7557611f74611edf565b5b611f7e82611d3e565b9050602081019050919050565b82818337600083830152505050565b6000611fad611fa884611f5a565b611f3f565b905082815260208101848484011115611fc957611fc8611eda565b5b611fd4848285611f8b565b509392505050565b600082601f830112611ff157611ff0611ed5565b5b8135612001848260208601611f9a565b91505092915050565b6000806040838503121561202157612020611c33565b5b600061202f85828601611dcb565b925050602083013567ffffffffffffffff8111156120505761204f611c38565b5b61205c85828601611fdc565b9150509250929050565b60008060006060848603121561207f5761207e611c33565b5b600061208d86828701611e80565b935050602061209e86828701611e80565b92505060406120af86828701611dcb565b9150509250925092565b6000602082840312156120cf576120ce611c33565b5b600082013567ffffffffffffffff8111156120ed576120ec611c38565b5b6120f984828501611fdc565b91505092915050565b60006020828403121561211857612117611c33565b5b600061212684828501611e80565b91505092915050565b61213881611daa565b82525050565b6000602082019050612153600083018461212f565b92915050565b60008060006060848603121561217257612171611c33565b5b600061218086828701611e80565b935050602061219186828701611dcb565b925050604084013567ffffffffffffffff8111156121b2576121b1611c38565b5b6121be86828701611fdc565b9150509250925092565b6121d181611cc2565b81146121dc57600080fd5b50565b6000813590506121ee816121c8565b92915050565b6000806040838503121561220b5761220a611c33565b5b600061221985828601611e80565b925050602061222a858286016121df565b9150509250929050565b600067ffffffffffffffff82111561224f5761224e611edf565b5b61225882611d3e565b9050602081019050919050565b600061227861227384612234565b611f3f565b90508281526020810184848401111561229457612293611eda565b5b61229f848285611f8b565b509392505050565b600082601f8301126122bc576122bb611ed5565b5b81356122cc848260208601612265565b91505092915050565b600080600080608085870312156122ef576122ee611c33565b5b60006122fd87828801611e80565b945050602061230e87828801611e80565b935050604061231f87828801611dcb565b925050606085013567ffffffffffffffff8111156123405761233f611c38565b5b61234c878288016122a7565b91505092959194509250565b6000806040838503121561236f5761236e611c33565b5b600061237d85828601611e80565b925050602061238e85828601611e80565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123df57607f821691505b6020821081036123f2576123f1612398565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612454602183611d03565b915061245f826123f8565b604082019050919050565b6000602082019050818103600083015261248381612447565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b60006124e6603e83611d03565b91506124f18261248a565b604082019050919050565b60006020820190508181036000830152612515816124d9565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612578602e83611d03565b91506125838261251c565b604082019050919050565b600060208201905081810360008301526125a78161256b565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026126107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826125d3565b61261a86836125d3565b95508019841693508086168417925050509392505050565b6000819050919050565b600061265761265261264d84611daa565b612632565b611daa565b9050919050565b6000819050919050565b6126718361263c565b61268561267d8261265e565b8484546125e0565b825550505050565b600090565b61269a61268d565b6126a5818484612668565b505050565b5b818110156126c9576126be600082612692565b6001810190506126ab565b5050565b601f82111561270e576126df816125ae565b6126e8846125c3565b810160208510156126f7578190505b61270b612703856125c3565b8301826126aa565b50505b505050565b600082821c905092915050565b600061273160001984600802612713565b1980831691505092915050565b600061274a8383612720565b9150826002028217905092915050565b61276382611cf8565b67ffffffffffffffff81111561277c5761277b611edf565b5b61278682546123c7565b6127918282856126cd565b600060209050601f8311600181146127c457600084156127b2578287015190505b6127bc858261273e565b865550612824565b601f1984166127d2866125ae565b60005b828110156127fa578489015182556001820191506020850194506020810190506127d5565b868310156128175784890151612813601f891682612720565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612862601883611d03565b915061286d8261282c565b602082019050919050565b6000602082019050818103600083015261289181612855565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006128f4602983611d03565b91506128ff82612898565b604082019050919050565b60006020820190508181036000830152612923816128e7565b9050919050565b7f43616e6e6f74206d696e7420746f207a65726f20616464726573730000000000600082015250565b6000612960601b83611d03565b915061296b8261292a565b602082019050919050565b6000602082019050818103600083015261298f81612953565b9050919050565b7f4d65746164617461206369642072657175697265640000000000000000000000600082015250565b60006129cc601583611d03565b91506129d782612996565b602082019050919050565b600060208201905081810360008301526129fb816129bf565b9050919050565b600081905092915050565b6000612a1882611cf8565b612a228185612a02565b9350612a32818560208601611d14565b80840191505092915050565b60008154612a4b816123c7565b612a558186612a02565b94506001821660008114612a705760018114612a8557612ab8565b60ff1983168652811515820286019350612ab8565b612a8e856125ae565b60005b83811015612ab057815481890152600182019150602081019050612a91565b838801955050505b50505092915050565b6000612acd8285612a0d565b9150612ad98284612a3e565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b41602683611d03565b9150612b4c82612ae5565b604082019050919050565b60006020820190508181036000830152612b7081612b34565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612bad602083611d03565b9150612bb882612b77565b602082019050919050565b60006020820190508181036000830152612bdc81612ba0565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000612c3f602e83611d03565b9150612c4a82612be3565b604082019050919050565b60006020820190508181036000830152612c6e81612c32565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000612cd1602583611d03565b9150612cdc82612c75565b604082019050919050565b60006020820190508181036000830152612d0081612cc4565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612d63602483611d03565b9150612d6e82612d07565b604082019050919050565b60006020820190508181036000830152612d9281612d56565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dd382611daa565b9150612dde83611daa565b9250828203905081811115612df657612df5612d99565b5b92915050565b6000612e0782611daa565b9150612e1283611daa565b9250828201905080821115612e2a57612e29612d99565b5b92915050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000612e66601983611d03565b9150612e7182612e30565b602082019050919050565b60006020820190508181036000830152612e9581612e59565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612ef8603283611d03565b9150612f0382612e9c565b604082019050919050565b60006020820190508181036000830152612f2781612eeb565b9050919050565b6000612f3a8285612a0d565b9150612f468284612a0d565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000612f7982612f52565b612f838185612f5d565b9350612f93818560208601611d14565b612f9c81611d3e565b840191505092915050565b6000608082019050612fbc6000830187611e3f565b612fc96020830186611e3f565b612fd6604083018561212f565b8181036060830152612fe88184612f6e565b905095945050505050565b60008151905061300281611c69565b92915050565b60006020828403121561301e5761301d611c33565b5b600061302c84828501612ff3565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061306b602083611d03565b915061307682613035565b602082019050919050565b6000602082019050818103600083015261309a8161305e565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006130d7601c83611d03565b91506130e2826130a1565b602082019050919050565b60006020820190508181036000830152613106816130ca565b9050919050565b600061311882611daa565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361314a57613149612d99565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061318f82611daa565b915061319a83611daa565b9250826131aa576131a9613155565b5b828204905092915050565b60006131c082611daa565b91506131cb83611daa565b9250826131db576131da613155565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122046d36b4b5a7739a40b270c43b09ee6aa875361deda3ed984f72b091dab5a7fb564736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000164d49505420416e6e697665727361727920746f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000044d495054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007697066733a2f2f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e2f6d657461646174612e6a736f6e000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): MIPT Anniversary token
Arg [1] : _symbol (string): MIPT
Arg [2] : _uri (string): ipfs://
Arg [3] : _postfix (string): /metadata.json
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000016
Arg [5] : 4d49505420416e6e697665727361727920746f6b656e00000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4d49505400000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [9] : 697066733a2f2f00000000000000000000000000000000000000000000000000
Arg [10] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [11] : 2f6d657461646174612e6a736f6e000000000000000000000000000000000000
Deployed Bytecode Sourcemap
18119:1551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8249:305;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9025:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10091:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9660:417;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19109:135;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10623:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10930:185;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18893:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8789:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8568:207;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17589:103;;;:::i;:::-;;17342:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9139:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18513:352;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10276:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18994:107;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11129:323;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19272:278;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10445:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17706:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8249:305;8351:4;8403:25;8388:40;;;:11;:40;;;;:105;;;;8460:33;8445:48;;;:11;:48;;;;8388:105;:158;;;;8510:36;8534:11;8510:23;:36::i;:::-;8388:158;8368:178;;8249:305;;;:::o;9025:100::-;9079:13;9112:5;9105:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9025:100;:::o;10091:171::-;10167:7;10187:23;10202:7;10187:14;:23::i;:::-;10230:15;:24;10246:7;10230:24;;;;;;;;;;;;;;;;;;;;;10223:31;;10091:171;;;:::o;9660:417::-;9741:13;9757:23;9772:7;9757:14;:23::i;:::-;9741:39;;9805:5;9799:11;;:2;:11;;;9791:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9899:5;9883:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;9908:37;9925:5;9932:12;:10;:12::i;:::-;9908:16;:37::i;:::-;9883:62;9861:174;;;;;;;;;;;;:::i;:::-;;;;;;;;;10048:21;10057:2;10061:7;10048:8;:21::i;:::-;9730:347;9660:417;;:::o;19109:135::-;17295:13;:11;:13::i;:::-;19203:33:::1;19216:8;19226:9;19203:12;:33::i;:::-;19109:135:::0;;:::o;10623:293::-;10775:41;10794:12;:10;:12::i;:::-;10808:7;10775:18;:41::i;:::-;10767:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;10880:28;10890:4;10896:2;10900:7;10880:9;:28::i;:::-;10623:293;;;:::o;10930:185::-;11068:39;11085:4;11091:2;11095:7;11068:39;;;;;;;;;;;;:16;:39::i;:::-;10930:185;;;:::o;18893:93::-;17295:13;:11;:13::i;:::-;18974:4:::1;18963:8;:15;;;;;;:::i;:::-;;18893:93:::0;:::o;8789:222::-;8861:7;8881:13;8897:7;:16;8905:7;8897:16;;;;;;;;;;;;;;;;;;;;;8881:32;;8949:1;8932:19;;:5;:19;;;8924:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8998:5;8991:12;;;8789:222;;;:::o;8568:207::-;8640:7;8685:1;8668:19;;:5;:19;;;8660:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8751:9;:16;8761:5;8751:16;;;;;;;;;;;;;;;;8744:23;;8568:207;;;:::o;17589:103::-;17295:13;:11;:13::i;:::-;17654:30:::1;17681:1;17654:18;:30::i;:::-;17589:103::o:0;17342:87::-;17388:7;17415:6;;;;;;;;;;;17408:13;;17342:87;:::o;9139:104::-;9195:13;9228:7;9221:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9139:104;:::o;18513:352::-;17295:13;:11;:13::i;:::-;18655:1:::1;18633:24;;:10;:24;;::::0;18625:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;18737:1;18714:12;18708:26;:30;18700:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;18777:31;18787:10;18799:8;18777:9;:31::i;:::-;18821:36;18834:8;18844:12;18821;:36::i;:::-;18513:352:::0;;;:::o;10276:155::-;10371:52;10390:12;:10;:12::i;:::-;10404:8;10414;10371:18;:52::i;:::-;10276:155;;:::o;18994:107::-;17295:13;:11;:13::i;:::-;19085:8:::1;19071:11;:22;;;;;;:::i;:::-;;18994:107:::0;:::o;11129:323::-;11303:41;11322:12;:10;:12::i;:::-;11336:7;11303:18;:41::i;:::-;11295:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;11406:38;11420:4;11426:2;11430:7;11439:4;11406:13;:38::i;:::-;11129:323;;;;:::o;19272:278::-;19345:13;19403:1;19381:11;19375:25;;;;;:::i;:::-;;;:29;19371:131;;;19452:23;19467:7;19452:14;:23::i;:::-;19477:11;19435:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19421:69;;;;19371:131;19519:23;19534:7;19519:14;:23::i;:::-;19512:30;;19272:278;;;;:::o;10445:164::-;10542:4;10566:18;:25;10585:5;10566:25;;;;;;;;;;;;;;;:35;10592:8;10566:35;;;;;;;;;;;;;;;;;;;;;;;;;10559:42;;10445:164;;;;:::o;17706:201::-;17295:13;:11;:13::i;:::-;17815:1:::1;17795:22;;:8;:22;;::::0;17787:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17871:28;17890:8;17871:18;:28::i;:::-;17706:201:::0;:::o;7473:157::-;7558:4;7597:25;7582:40;;;:11;:40;;;;7575:47;;7473:157;;;:::o;14652:135::-;14734:16;14742:7;14734;:16::i;:::-;14726:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14652:135;:::o;5519:98::-;5572:7;5599:10;5592:17;;5519:98;:::o;14135:174::-;14237:2;14210:15;:24;14226:7;14210:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;14293:7;14289:2;14255:46;;14264:23;14279:7;14264:14;:23::i;:::-;14255:46;;;;;;;;;;;;14135:174;;:::o;17443:132::-;17518:12;:10;:12::i;:::-;17507:23;;:7;:5;:7::i;:::-;:23;;;17499:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17443:132::o;16567:217::-;16667:16;16675:7;16667;:16::i;:::-;16659:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16767:9;16745:10;:19;16756:7;16745:19;;;;;;;;;;;:31;;;;;;:::i;:::-;;16567:217;;:::o;11934:264::-;12027:4;12044:13;12060:23;12075:7;12060:14;:23::i;:::-;12044:39;;12113:5;12102:16;;:7;:16;;;:52;;;;12122:32;12139:5;12146:7;12122:16;:32::i;:::-;12102:52;:87;;;;12182:7;12158:31;;:20;12170:7;12158:11;:20::i;:::-;:31;;;12102:87;12094:96;;;11934:264;;;;:::o;13538:583::-;13697:4;13670:31;;:23;13685:7;13670:14;:23::i;:::-;:31;;;13662:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13776:1;13762:16;;:2;:16;;;13754:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13832:39;13853:4;13859:2;13863:7;13832:20;:39::i;:::-;13894:29;13911:1;13915:7;13894:8;:29::i;:::-;13955:1;13936:9;:15;13946:4;13936:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;13984:1;13967:9;:13;13977:2;13967:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;14015:2;13996:7;:16;14004:7;13996:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14054:7;14050:2;14035:27;;14044:4;14035:27;;;;;;;;;;;;14075:38;14095:4;14101:2;14105:7;14075:19;:38::i;:::-;13538:583;;;:::o;17921:191::-;17995:16;18014:6;;;;;;;;;;;17995:25;;18040:8;18031:6;;:17;;;;;;;;;;;;;;;;;;18095:8;18064:40;;18085:8;18064:40;;;;;;;;;;;;17984:128;17921:191;:::o;12212:110::-;12288:26;12298:2;12302:7;12288:26;;;;;;;;;;;;:9;:26::i;:::-;12212:110;;:::o;14323:315::-;14478:8;14469:17;;:5;:17;;;14461:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;14565:8;14527:18;:25;14546:5;14527:25;;;;;;;;;;;;;;;:35;14553:8;14527:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;14611:8;14589:41;;14604:5;14589:41;;;14621:8;14589:41;;;;;;:::i;:::-;;;;;;;;14323:315;;;:::o;11466:313::-;11622:28;11632:4;11638:2;11642:7;11622:9;:28::i;:::-;11669:47;11692:4;11698:2;11702:7;11711:4;11669:22;:47::i;:::-;11661:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;11466:313;;;;:::o;16058:495::-;16131:13;16157:23;16172:7;16157:14;:23::i;:::-;16193;16219:10;:19;16230:7;16219:19;;;;;;;;;;;16193:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16249:18;16270:10;:8;:10::i;:::-;16249:31;;16329:1;16313:4;16307:18;:23;16303:72;;16354:9;16347:16;;;;;;16303:72;16425:1;16405:9;16399:23;:27;16395:108;;;16474:4;16480:9;16457:33;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16443:48;;;;;;16395:108;16522:23;16537:7;16522:14;:23::i;:::-;16515:30;;;;16058:495;;;;:::o;11793:127::-;11858:4;11910:1;11882:30;;:7;:16;11890:7;11882:16;;;;;;;;;;;;;;;;;;;;;:30;;;;11875:37;;11793:127;;;:::o;15634:126::-;;;;:::o;15774:125::-;;;;:::o;12336:319::-;12465:18;12471:2;12475:7;12465:5;:18::i;:::-;12516:53;12547:1;12551:2;12555:7;12564:4;12516:22;:53::i;:::-;12494:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:319;;;:::o;14801:819::-;14955:4;14976:15;:2;:13;;;:15::i;:::-;14972:641;;;15028:2;15012:36;;;15049:12;:10;:12::i;:::-;15063:4;15069:7;15078:4;15012:71;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15008:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15270:1;15253:6;:13;:18;15249:294;;15296:60;;;;;;;;;;:::i;:::-;;;;;;;;15249:294;15493:6;15487:13;15478:6;15474:2;15470:15;15463:38;15008:550;15144:41;;;15134:51;;;:6;:51;;;;15127:58;;;;;14972:641;15597:4;15590:11;;14801:819;;;;;;;:::o;19558:109::-;19618:13;19651:8;19644:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19558:109;:::o;9257:281::-;9330:13;9356:23;9371:7;9356:14;:23::i;:::-;9392:21;9416:10;:8;:10::i;:::-;9392:34;;9468:1;9450:7;9444:21;:25;:86;;;;;;;;;;;;;;;;;9496:7;9505:18;:7;:16;:18::i;:::-;9479:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9444:86;9437:93;;;9257:281;;;:::o;12669:439::-;12763:1;12749:16;;:2;:16;;;12741:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;12822:16;12830:7;12822;:16::i;:::-;12821:17;12813:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12884:45;12913:1;12917:2;12921:7;12884:20;:45::i;:::-;12959:1;12942:9;:13;12952:2;12942:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;12990:2;12971:7;:16;12979:7;12971:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13035:7;13031:2;13010:33;;13027:1;13010:33;;;;;;;;;;;;13056:44;13084:1;13088:2;13092:7;13056:19;:44::i;:::-;12669:439;;:::o;1911:147::-;1971:4;2049:1;2027:7;:19;;;:23;2020:30;;1911:147;;;:::o;5879:554::-;5935:13;5996:1;5987:5;:10;5983:53;;6014:10;;;;;;;;;;;;;;;;;;;;;5983:53;6046:12;6061:5;6046:20;;6077:14;6102:78;6117:1;6109:4;:9;6102:78;;6135:8;;;;;:::i;:::-;;;;6166:2;6158:10;;;;;:::i;:::-;;;6102:78;;;6190:19;6222:6;6212:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6190:39;;6240:154;6256:1;6247:5;:10;6240:154;;6284:1;6274:11;;;;;:::i;:::-;;;6351:2;6343:5;:10;;;;:::i;:::-;6330:2;:24;;;;:::i;:::-;6317:39;;6300:6;6307;6300:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;6380:2;6371:11;;;;;:::i;:::-;;;6240:154;;;6418:6;6404:21;;;;;5879:554;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:246::-;1879:1;1889:113;1903:6;1900:1;1897:13;1889:113;;;1988:1;1983:3;1979:11;1973:18;1969:1;1964:3;1960:11;1953:39;1925:2;1922:1;1918:10;1913:15;;1889:113;;;2036:1;2027:6;2022:3;2018:16;2011:27;1860:184;1798:246;;;:::o;2050:102::-;2091:6;2142:2;2138:7;2133:2;2126:5;2122:14;2118:28;2108:38;;2050:102;;;:::o;2158:377::-;2246:3;2274:39;2307:5;2274:39;:::i;:::-;2329:71;2393:6;2388:3;2329:71;:::i;:::-;2322:78;;2409:65;2467:6;2462:3;2455:4;2448:5;2444:16;2409:65;:::i;:::-;2499:29;2521:6;2499:29;:::i;:::-;2494:3;2490:39;2483:46;;2250:285;2158:377;;;;:::o;2541:313::-;2654:4;2692:2;2681:9;2677:18;2669:26;;2741:9;2735:4;2731:20;2727:1;2716:9;2712:17;2705:47;2769:78;2842:4;2833:6;2769:78;:::i;:::-;2761:86;;2541:313;;;;:::o;2860:77::-;2897:7;2926:5;2915:16;;2860:77;;;:::o;2943:122::-;3016:24;3034:5;3016:24;:::i;:::-;3009:5;3006:35;2996:63;;3055:1;3052;3045:12;2996:63;2943:122;:::o;3071:139::-;3117:5;3155:6;3142:20;3133:29;;3171:33;3198:5;3171:33;:::i;:::-;3071:139;;;;:::o;3216:329::-;3275:6;3324:2;3312:9;3303:7;3299:23;3295:32;3292:119;;;3330:79;;:::i;:::-;3292:119;3450:1;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3421:117;3216:329;;;;:::o;3551:126::-;3588:7;3628:42;3621:5;3617:54;3606:65;;3551:126;;;:::o;3683:96::-;3720:7;3749:24;3767:5;3749:24;:::i;:::-;3738:35;;3683:96;;;:::o;3785:118::-;3872:24;3890:5;3872:24;:::i;:::-;3867:3;3860:37;3785:118;;:::o;3909:222::-;4002:4;4040:2;4029:9;4025:18;4017:26;;4053:71;4121:1;4110:9;4106:17;4097:6;4053:71;:::i;:::-;3909:222;;;;:::o;4137:122::-;4210:24;4228:5;4210:24;:::i;:::-;4203:5;4200:35;4190:63;;4249:1;4246;4239:12;4190:63;4137:122;:::o;4265:139::-;4311:5;4349:6;4336:20;4327:29;;4365:33;4392:5;4365:33;:::i;:::-;4265:139;;;;:::o;4410:474::-;4478:6;4486;4535:2;4523:9;4514:7;4510:23;4506:32;4503:119;;;4541:79;;:::i;:::-;4503:119;4661:1;4686:53;4731:7;4722:6;4711:9;4707:22;4686:53;:::i;:::-;4676:63;;4632:117;4788:2;4814:53;4859:7;4850:6;4839:9;4835:22;4814:53;:::i;:::-;4804:63;;4759:118;4410:474;;;;;:::o;4890:117::-;4999:1;4996;4989:12;5013:117;5122:1;5119;5112:12;5136:180;5184:77;5181:1;5174:88;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5322:281;5405:27;5427:4;5405:27;:::i;:::-;5397:6;5393:40;5535:6;5523:10;5520:22;5499:18;5487:10;5484:34;5481:62;5478:88;;;5546:18;;:::i;:::-;5478:88;5586:10;5582:2;5575:22;5365:238;5322:281;;:::o;5609:129::-;5643:6;5670:20;;:::i;:::-;5660:30;;5699:33;5727:4;5719:6;5699:33;:::i;:::-;5609:129;;;:::o;5744:308::-;5806:4;5896:18;5888:6;5885:30;5882:56;;;5918:18;;:::i;:::-;5882:56;5956:29;5978:6;5956:29;:::i;:::-;5948:37;;6040:4;6034;6030:15;6022:23;;5744:308;;;:::o;6058:146::-;6155:6;6150:3;6145;6132:30;6196:1;6187:6;6182:3;6178:16;6171:27;6058:146;;;:::o;6210:425::-;6288:5;6313:66;6329:49;6371:6;6329:49;:::i;:::-;6313:66;:::i;:::-;6304:75;;6402:6;6395:5;6388:21;6440:4;6433:5;6429:16;6478:3;6469:6;6464:3;6460:16;6457:25;6454:112;;;6485:79;;:::i;:::-;6454:112;6575:54;6622:6;6617:3;6612;6575:54;:::i;:::-;6294:341;6210:425;;;;;:::o;6655:340::-;6711:5;6760:3;6753:4;6745:6;6741:17;6737:27;6727:122;;6768:79;;:::i;:::-;6727:122;6885:6;6872:20;6910:79;6985:3;6977:6;6970:4;6962:6;6958:17;6910:79;:::i;:::-;6901:88;;6717:278;6655:340;;;;:::o;7001:654::-;7079:6;7087;7136:2;7124:9;7115:7;7111:23;7107:32;7104:119;;;7142:79;;:::i;:::-;7104:119;7262:1;7287:53;7332:7;7323:6;7312:9;7308:22;7287:53;:::i;:::-;7277:63;;7233:117;7417:2;7406:9;7402:18;7389:32;7448:18;7440:6;7437:30;7434:117;;;7470:79;;:::i;:::-;7434:117;7575:63;7630:7;7621:6;7610:9;7606:22;7575:63;:::i;:::-;7565:73;;7360:288;7001:654;;;;;:::o;7661:619::-;7738:6;7746;7754;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;8056:2;8082:53;8127:7;8118:6;8107:9;8103:22;8082:53;:::i;:::-;8072:63;;8027:118;8184:2;8210:53;8255:7;8246:6;8235:9;8231:22;8210:53;:::i;:::-;8200:63;;8155:118;7661:619;;;;;:::o;8286:509::-;8355:6;8404:2;8392:9;8383:7;8379:23;8375:32;8372:119;;;8410:79;;:::i;:::-;8372:119;8558:1;8547:9;8543:17;8530:31;8588:18;8580:6;8577:30;8574:117;;;8610:79;;:::i;:::-;8574:117;8715:63;8770:7;8761:6;8750:9;8746:22;8715:63;:::i;:::-;8705:73;;8501:287;8286:509;;;;:::o;8801:329::-;8860:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:119;;;8915:79;;:::i;:::-;8877:119;9035:1;9060:53;9105:7;9096:6;9085:9;9081:22;9060:53;:::i;:::-;9050:63;;9006:117;8801:329;;;;:::o;9136:118::-;9223:24;9241:5;9223:24;:::i;:::-;9218:3;9211:37;9136:118;;:::o;9260:222::-;9353:4;9391:2;9380:9;9376:18;9368:26;;9404:71;9472:1;9461:9;9457:17;9448:6;9404:71;:::i;:::-;9260:222;;;;:::o;9488:799::-;9575:6;9583;9591;9640:2;9628:9;9619:7;9615:23;9611:32;9608:119;;;9646:79;;:::i;:::-;9608:119;9766:1;9791:53;9836:7;9827:6;9816:9;9812:22;9791:53;:::i;:::-;9781:63;;9737:117;9893:2;9919:53;9964:7;9955:6;9944:9;9940:22;9919:53;:::i;:::-;9909:63;;9864:118;10049:2;10038:9;10034:18;10021:32;10080:18;10072:6;10069:30;10066:117;;;10102:79;;:::i;:::-;10066:117;10207:63;10262:7;10253:6;10242:9;10238:22;10207:63;:::i;:::-;10197:73;;9992:288;9488:799;;;;;:::o;10293:116::-;10363:21;10378:5;10363:21;:::i;:::-;10356:5;10353:32;10343:60;;10399:1;10396;10389:12;10343:60;10293:116;:::o;10415:133::-;10458:5;10496:6;10483:20;10474:29;;10512:30;10536:5;10512:30;:::i;:::-;10415:133;;;;:::o;10554:468::-;10619:6;10627;10676:2;10664:9;10655:7;10651:23;10647:32;10644:119;;;10682:79;;:::i;:::-;10644:119;10802:1;10827:53;10872:7;10863:6;10852:9;10848:22;10827:53;:::i;:::-;10817:63;;10773:117;10929:2;10955:50;10997:7;10988:6;10977:9;10973:22;10955:50;:::i;:::-;10945:60;;10900:115;10554:468;;;;;:::o;11028:307::-;11089:4;11179:18;11171:6;11168:30;11165:56;;;11201:18;;:::i;:::-;11165:56;11239:29;11261:6;11239:29;:::i;:::-;11231:37;;11323:4;11317;11313:15;11305:23;;11028:307;;;:::o;11341:423::-;11418:5;11443:65;11459:48;11500:6;11459:48;:::i;:::-;11443:65;:::i;:::-;11434:74;;11531:6;11524:5;11517:21;11569:4;11562:5;11558:16;11607:3;11598:6;11593:3;11589:16;11586:25;11583:112;;;11614:79;;:::i;:::-;11583:112;11704:54;11751:6;11746:3;11741;11704:54;:::i;:::-;11424:340;11341:423;;;;;:::o;11783:338::-;11838:5;11887:3;11880:4;11872:6;11868:17;11864:27;11854:122;;11895:79;;:::i;:::-;11854:122;12012:6;11999:20;12037:78;12111:3;12103:6;12096:4;12088:6;12084:17;12037:78;:::i;:::-;12028:87;;11844:277;11783:338;;;;:::o;12127:943::-;12222:6;12230;12238;12246;12295:3;12283:9;12274:7;12270:23;12266:33;12263:120;;;12302:79;;:::i;:::-;12263:120;12422:1;12447:53;12492:7;12483:6;12472:9;12468:22;12447:53;:::i;:::-;12437:63;;12393:117;12549:2;12575:53;12620:7;12611:6;12600:9;12596:22;12575:53;:::i;:::-;12565:63;;12520:118;12677:2;12703:53;12748:7;12739:6;12728:9;12724:22;12703:53;:::i;:::-;12693:63;;12648:118;12833:2;12822:9;12818:18;12805:32;12864:18;12856:6;12853:30;12850:117;;;12886:79;;:::i;:::-;12850:117;12991:62;13045:7;13036:6;13025:9;13021:22;12991:62;:::i;:::-;12981:72;;12776:287;12127:943;;;;;;;:::o;13076:474::-;13144:6;13152;13201:2;13189:9;13180:7;13176:23;13172:32;13169:119;;;13207:79;;:::i;:::-;13169:119;13327:1;13352:53;13397:7;13388:6;13377:9;13373:22;13352:53;:::i;:::-;13342:63;;13298:117;13454:2;13480:53;13525:7;13516:6;13505:9;13501:22;13480:53;:::i;:::-;13470:63;;13425:118;13076:474;;;;;:::o;13556:180::-;13604:77;13601:1;13594:88;13701:4;13698:1;13691:15;13725:4;13722:1;13715:15;13742:320;13786:6;13823:1;13817:4;13813:12;13803:22;;13870:1;13864:4;13860:12;13891:18;13881:81;;13947:4;13939:6;13935:17;13925:27;;13881:81;14009:2;14001:6;13998:14;13978:18;13975:38;13972:84;;14028:18;;:::i;:::-;13972:84;13793:269;13742:320;;;:::o;14068:220::-;14208:34;14204:1;14196:6;14192:14;14185:58;14277:3;14272:2;14264:6;14260:15;14253:28;14068:220;:::o;14294:366::-;14436:3;14457:67;14521:2;14516:3;14457:67;:::i;:::-;14450:74;;14533:93;14622:3;14533:93;:::i;:::-;14651:2;14646:3;14642:12;14635:19;;14294:366;;;:::o;14666:419::-;14832:4;14870:2;14859:9;14855:18;14847:26;;14919:9;14913:4;14909:20;14905:1;14894:9;14890:17;14883:47;14947:131;15073:4;14947:131;:::i;:::-;14939:139;;14666:419;;;:::o;15091:249::-;15231:34;15227:1;15219:6;15215:14;15208:58;15300:32;15295:2;15287:6;15283:15;15276:57;15091:249;:::o;15346:366::-;15488:3;15509:67;15573:2;15568:3;15509:67;:::i;:::-;15502:74;;15585:93;15674:3;15585:93;:::i;:::-;15703:2;15698:3;15694:12;15687:19;;15346:366;;;:::o;15718:419::-;15884:4;15922:2;15911:9;15907:18;15899:26;;15971:9;15965:4;15961:20;15957:1;15946:9;15942:17;15935:47;15999:131;16125:4;15999:131;:::i;:::-;15991:139;;15718:419;;;:::o;16143:233::-;16283:34;16279:1;16271:6;16267:14;16260:58;16352:16;16347:2;16339:6;16335:15;16328:41;16143:233;:::o;16382:366::-;16524:3;16545:67;16609:2;16604:3;16545:67;:::i;:::-;16538:74;;16621:93;16710:3;16621:93;:::i;:::-;16739:2;16734:3;16730:12;16723:19;;16382:366;;;:::o;16754:419::-;16920:4;16958:2;16947:9;16943:18;16935:26;;17007:9;17001:4;16997:20;16993:1;16982:9;16978:17;16971:47;17035:131;17161:4;17035:131;:::i;:::-;17027:139;;16754:419;;;:::o;17179:141::-;17228:4;17251:3;17243:11;;17274:3;17271:1;17264:14;17308:4;17305:1;17295:18;17287:26;;17179:141;;;:::o;17326:93::-;17363:6;17410:2;17405;17398:5;17394:14;17390:23;17380:33;;17326:93;;;:::o;17425:107::-;17469:8;17519:5;17513:4;17509:16;17488:37;;17425:107;;;;:::o;17538:393::-;17607:6;17657:1;17645:10;17641:18;17680:97;17710:66;17699:9;17680:97;:::i;:::-;17798:39;17828:8;17817:9;17798:39;:::i;:::-;17786:51;;17870:4;17866:9;17859:5;17855:21;17846:30;;17919:4;17909:8;17905:19;17898:5;17895:30;17885:40;;17614:317;;17538:393;;;;;:::o;17937:60::-;17965:3;17986:5;17979:12;;17937:60;;;:::o;18003:142::-;18053:9;18086:53;18104:34;18113:24;18131:5;18113:24;:::i;:::-;18104:34;:::i;:::-;18086:53;:::i;:::-;18073:66;;18003:142;;;:::o;18151:75::-;18194:3;18215:5;18208:12;;18151:75;;;:::o;18232:269::-;18342:39;18373:7;18342:39;:::i;:::-;18403:91;18452:41;18476:16;18452:41;:::i;:::-;18444:6;18437:4;18431:11;18403:91;:::i;:::-;18397:4;18390:105;18308:193;18232:269;;;:::o;18507:73::-;18552:3;18507:73;:::o;18586:189::-;18663:32;;:::i;:::-;18704:65;18762:6;18754;18748:4;18704:65;:::i;:::-;18639:136;18586:189;;:::o;18781:186::-;18841:120;18858:3;18851:5;18848:14;18841:120;;;18912:39;18949:1;18942:5;18912:39;:::i;:::-;18885:1;18878:5;18874:13;18865:22;;18841:120;;;18781:186;;:::o;18973:543::-;19074:2;19069:3;19066:11;19063:446;;;19108:38;19140:5;19108:38;:::i;:::-;19192:29;19210:10;19192:29;:::i;:::-;19182:8;19178:44;19375:2;19363:10;19360:18;19357:49;;;19396:8;19381:23;;19357:49;19419:80;19475:22;19493:3;19475:22;:::i;:::-;19465:8;19461:37;19448:11;19419:80;:::i;:::-;19078:431;;19063:446;18973:543;;;:::o;19522:117::-;19576:8;19626:5;19620:4;19616:16;19595:37;;19522:117;;;;:::o;19645:169::-;19689:6;19722:51;19770:1;19766:6;19758:5;19755:1;19751:13;19722:51;:::i;:::-;19718:56;19803:4;19797;19793:15;19783:25;;19696:118;19645:169;;;;:::o;19819:295::-;19895:4;20041:29;20066:3;20060:4;20041:29;:::i;:::-;20033:37;;20103:3;20100:1;20096:11;20090:4;20087:21;20079:29;;19819:295;;;;:::o;20119:1395::-;20236:37;20269:3;20236:37;:::i;:::-;20338:18;20330:6;20327:30;20324:56;;;20360:18;;:::i;:::-;20324:56;20404:38;20436:4;20430:11;20404:38;:::i;:::-;20489:67;20549:6;20541;20535:4;20489:67;:::i;:::-;20583:1;20607:4;20594:17;;20639:2;20631:6;20628:14;20656:1;20651:618;;;;21313:1;21330:6;21327:77;;;21379:9;21374:3;21370:19;21364:26;21355:35;;21327:77;21430:67;21490:6;21483:5;21430:67;:::i;:::-;21424:4;21417:81;21286:222;20621:887;;20651:618;20703:4;20699:9;20691:6;20687:22;20737:37;20769:4;20737:37;:::i;:::-;20796:1;20810:208;20824:7;20821:1;20818:14;20810:208;;;20903:9;20898:3;20894:19;20888:26;20880:6;20873:42;20954:1;20946:6;20942:14;20932:24;;21001:2;20990:9;20986:18;20973:31;;20847:4;20844:1;20840:12;20835:17;;20810:208;;;21046:6;21037:7;21034:19;21031:179;;;21104:9;21099:3;21095:19;21089:26;21147:48;21189:4;21181:6;21177:17;21166:9;21147:48;:::i;:::-;21139:6;21132:64;21054:156;21031:179;21256:1;21252;21244:6;21240:14;21236:22;21230:4;21223:36;20658:611;;;20621:887;;20211:1303;;;20119:1395;;:::o;21520:174::-;21660:26;21656:1;21648:6;21644:14;21637:50;21520:174;:::o;21700:366::-;21842:3;21863:67;21927:2;21922:3;21863:67;:::i;:::-;21856:74;;21939:93;22028:3;21939:93;:::i;:::-;22057:2;22052:3;22048:12;22041:19;;21700:366;;;:::o;22072:419::-;22238:4;22276:2;22265:9;22261:18;22253:26;;22325:9;22319:4;22315:20;22311:1;22300:9;22296:17;22289:47;22353:131;22479:4;22353:131;:::i;:::-;22345:139;;22072:419;;;:::o;22497:228::-;22637:34;22633:1;22625:6;22621:14;22614:58;22706:11;22701:2;22693:6;22689:15;22682:36;22497:228;:::o;22731:366::-;22873:3;22894:67;22958:2;22953:3;22894:67;:::i;:::-;22887:74;;22970:93;23059:3;22970:93;:::i;:::-;23088:2;23083:3;23079:12;23072:19;;22731:366;;;:::o;23103:419::-;23269:4;23307:2;23296:9;23292:18;23284:26;;23356:9;23350:4;23346:20;23342:1;23331:9;23327:17;23320:47;23384:131;23510:4;23384:131;:::i;:::-;23376:139;;23103:419;;;:::o;23528:177::-;23668:29;23664:1;23656:6;23652:14;23645:53;23528:177;:::o;23711:366::-;23853:3;23874:67;23938:2;23933:3;23874:67;:::i;:::-;23867:74;;23950:93;24039:3;23950:93;:::i;:::-;24068:2;24063:3;24059:12;24052:19;;23711:366;;;:::o;24083:419::-;24249:4;24287:2;24276:9;24272:18;24264:26;;24336:9;24330:4;24326:20;24322:1;24311:9;24307:17;24300:47;24364:131;24490:4;24364:131;:::i;:::-;24356:139;;24083:419;;;:::o;24508:171::-;24648:23;24644:1;24636:6;24632:14;24625:47;24508:171;:::o;24685:366::-;24827:3;24848:67;24912:2;24907:3;24848:67;:::i;:::-;24841:74;;24924:93;25013:3;24924:93;:::i;:::-;25042:2;25037:3;25033:12;25026:19;;24685:366;;;:::o;25057:419::-;25223:4;25261:2;25250:9;25246:18;25238:26;;25310:9;25304:4;25300:20;25296:1;25285:9;25281:17;25274:47;25338:131;25464:4;25338:131;:::i;:::-;25330:139;;25057:419;;;:::o;25482:148::-;25584:11;25621:3;25606:18;;25482:148;;;;:::o;25636:390::-;25742:3;25770:39;25803:5;25770:39;:::i;:::-;25825:89;25907:6;25902:3;25825:89;:::i;:::-;25818:96;;25923:65;25981:6;25976:3;25969:4;25962:5;25958:16;25923:65;:::i;:::-;26013:6;26008:3;26004:16;25997:23;;25746:280;25636:390;;;;:::o;26056:874::-;26159:3;26196:5;26190:12;26225:36;26251:9;26225:36;:::i;:::-;26277:89;26359:6;26354:3;26277:89;:::i;:::-;26270:96;;26397:1;26386:9;26382:17;26413:1;26408:166;;;;26588:1;26583:341;;;;26375:549;;26408:166;26492:4;26488:9;26477;26473:25;26468:3;26461:38;26554:6;26547:14;26540:22;26532:6;26528:35;26523:3;26519:45;26512:52;;26408:166;;26583:341;26650:38;26682:5;26650:38;:::i;:::-;26710:1;26724:154;26738:6;26735:1;26732:13;26724:154;;;26812:7;26806:14;26802:1;26797:3;26793:11;26786:35;26862:1;26853:7;26849:15;26838:26;;26760:4;26757:1;26753:12;26748:17;;26724:154;;;26907:6;26902:3;26898:16;26891:23;;26590:334;;26375:549;;26163:767;;26056:874;;;;:::o;26936:429::-;27113:3;27135:95;27226:3;27217:6;27135:95;:::i;:::-;27128:102;;27247:92;27335:3;27326:6;27247:92;:::i;:::-;27240:99;;27356:3;27349:10;;26936:429;;;;;:::o;27371:225::-;27511:34;27507:1;27499:6;27495:14;27488:58;27580:8;27575:2;27567:6;27563:15;27556:33;27371:225;:::o;27602:366::-;27744:3;27765:67;27829:2;27824:3;27765:67;:::i;:::-;27758:74;;27841:93;27930:3;27841:93;:::i;:::-;27959:2;27954:3;27950:12;27943:19;;27602:366;;;:::o;27974:419::-;28140:4;28178:2;28167:9;28163:18;28155:26;;28227:9;28221:4;28217:20;28213:1;28202:9;28198:17;28191:47;28255:131;28381:4;28255:131;:::i;:::-;28247:139;;27974:419;;;:::o;28399:182::-;28539:34;28535:1;28527:6;28523:14;28516:58;28399:182;:::o;28587:366::-;28729:3;28750:67;28814:2;28809:3;28750:67;:::i;:::-;28743:74;;28826:93;28915:3;28826:93;:::i;:::-;28944:2;28939:3;28935:12;28928:19;;28587:366;;;:::o;28959:419::-;29125:4;29163:2;29152:9;29148:18;29140:26;;29212:9;29206:4;29202:20;29198:1;29187:9;29183:17;29176:47;29240:131;29366:4;29240:131;:::i;:::-;29232:139;;28959:419;;;:::o;29384:233::-;29524:34;29520:1;29512:6;29508:14;29501:58;29593:16;29588:2;29580:6;29576:15;29569:41;29384:233;:::o;29623:366::-;29765:3;29786:67;29850:2;29845:3;29786:67;:::i;:::-;29779:74;;29862:93;29951:3;29862:93;:::i;:::-;29980:2;29975:3;29971:12;29964:19;;29623:366;;;:::o;29995:419::-;30161:4;30199:2;30188:9;30184:18;30176:26;;30248:9;30242:4;30238:20;30234:1;30223:9;30219:17;30212:47;30276:131;30402:4;30276:131;:::i;:::-;30268:139;;29995:419;;;:::o;30420:224::-;30560:34;30556:1;30548:6;30544:14;30537:58;30629:7;30624:2;30616:6;30612:15;30605:32;30420:224;:::o;30650:366::-;30792:3;30813:67;30877:2;30872:3;30813:67;:::i;:::-;30806:74;;30889:93;30978:3;30889:93;:::i;:::-;31007:2;31002:3;30998:12;30991:19;;30650:366;;;:::o;31022:419::-;31188:4;31226:2;31215:9;31211:18;31203:26;;31275:9;31269:4;31265:20;31261:1;31250:9;31246:17;31239:47;31303:131;31429:4;31303:131;:::i;:::-;31295:139;;31022:419;;;:::o;31447:223::-;31587:34;31583:1;31575:6;31571:14;31564:58;31656:6;31651:2;31643:6;31639:15;31632:31;31447:223;:::o;31676:366::-;31818:3;31839:67;31903:2;31898:3;31839:67;:::i;:::-;31832:74;;31915:93;32004:3;31915:93;:::i;:::-;32033:2;32028:3;32024:12;32017:19;;31676:366;;;:::o;32048:419::-;32214:4;32252:2;32241:9;32237:18;32229:26;;32301:9;32295:4;32291:20;32287:1;32276:9;32272:17;32265:47;32329:131;32455:4;32329:131;:::i;:::-;32321:139;;32048:419;;;:::o;32473:180::-;32521:77;32518:1;32511:88;32618:4;32615:1;32608:15;32642:4;32639:1;32632:15;32659:194;32699:4;32719:20;32737:1;32719:20;:::i;:::-;32714:25;;32753:20;32771:1;32753:20;:::i;:::-;32748:25;;32797:1;32794;32790:9;32782:17;;32821:1;32815:4;32812:11;32809:37;;;32826:18;;:::i;:::-;32809:37;32659:194;;;;:::o;32859:191::-;32899:3;32918:20;32936:1;32918:20;:::i;:::-;32913:25;;32952:20;32970:1;32952:20;:::i;:::-;32947:25;;32995:1;32992;32988:9;32981:16;;33016:3;33013:1;33010:10;33007:36;;;33023:18;;:::i;:::-;33007:36;32859:191;;;;:::o;33056:175::-;33196:27;33192:1;33184:6;33180:14;33173:51;33056:175;:::o;33237:366::-;33379:3;33400:67;33464:2;33459:3;33400:67;:::i;:::-;33393:74;;33476:93;33565:3;33476:93;:::i;:::-;33594:2;33589:3;33585:12;33578:19;;33237:366;;;:::o;33609:419::-;33775:4;33813:2;33802:9;33798:18;33790:26;;33862:9;33856:4;33852:20;33848:1;33837:9;33833:17;33826:47;33890:131;34016:4;33890:131;:::i;:::-;33882:139;;33609:419;;;:::o;34034:237::-;34174:34;34170:1;34162:6;34158:14;34151:58;34243:20;34238:2;34230:6;34226:15;34219:45;34034:237;:::o;34277:366::-;34419:3;34440:67;34504:2;34499:3;34440:67;:::i;:::-;34433:74;;34516:93;34605:3;34516:93;:::i;:::-;34634:2;34629:3;34625:12;34618:19;;34277:366;;;:::o;34649:419::-;34815:4;34853:2;34842:9;34838:18;34830:26;;34902:9;34896:4;34892:20;34888:1;34877:9;34873:17;34866:47;34930:131;35056:4;34930:131;:::i;:::-;34922:139;;34649:419;;;:::o;35074:435::-;35254:3;35276:95;35367:3;35358:6;35276:95;:::i;:::-;35269:102;;35388:95;35479:3;35470:6;35388:95;:::i;:::-;35381:102;;35500:3;35493:10;;35074:435;;;;;:::o;35515:98::-;35566:6;35600:5;35594:12;35584:22;;35515:98;;;:::o;35619:168::-;35702:11;35736:6;35731:3;35724:19;35776:4;35771:3;35767:14;35752:29;;35619:168;;;;:::o;35793:373::-;35879:3;35907:38;35939:5;35907:38;:::i;:::-;35961:70;36024:6;36019:3;35961:70;:::i;:::-;35954:77;;36040:65;36098:6;36093:3;36086:4;36079:5;36075:16;36040:65;:::i;:::-;36130:29;36152:6;36130:29;:::i;:::-;36125:3;36121:39;36114:46;;35883:283;35793:373;;;;:::o;36172:640::-;36367:4;36405:3;36394:9;36390:19;36382:27;;36419:71;36487:1;36476:9;36472:17;36463:6;36419:71;:::i;:::-;36500:72;36568:2;36557:9;36553:18;36544:6;36500:72;:::i;:::-;36582;36650:2;36639:9;36635:18;36626:6;36582:72;:::i;:::-;36701:9;36695:4;36691:20;36686:2;36675:9;36671:18;36664:48;36729:76;36800:4;36791:6;36729:76;:::i;:::-;36721:84;;36172:640;;;;;;;:::o;36818:141::-;36874:5;36905:6;36899:13;36890:22;;36921:32;36947:5;36921:32;:::i;:::-;36818:141;;;;:::o;36965:349::-;37034:6;37083:2;37071:9;37062:7;37058:23;37054:32;37051:119;;;37089:79;;:::i;:::-;37051:119;37209:1;37234:63;37289:7;37280:6;37269:9;37265:22;37234:63;:::i;:::-;37224:73;;37180:127;36965:349;;;;:::o;37320:182::-;37460:34;37456:1;37448:6;37444:14;37437:58;37320:182;:::o;37508:366::-;37650:3;37671:67;37735:2;37730:3;37671:67;:::i;:::-;37664:74;;37747:93;37836:3;37747:93;:::i;:::-;37865:2;37860:3;37856:12;37849:19;;37508:366;;;:::o;37880:419::-;38046:4;38084:2;38073:9;38069:18;38061:26;;38133:9;38127:4;38123:20;38119:1;38108:9;38104:17;38097:47;38161:131;38287:4;38161:131;:::i;:::-;38153:139;;37880:419;;;:::o;38305:178::-;38445:30;38441:1;38433:6;38429:14;38422:54;38305:178;:::o;38489:366::-;38631:3;38652:67;38716:2;38711:3;38652:67;:::i;:::-;38645:74;;38728:93;38817:3;38728:93;:::i;:::-;38846:2;38841:3;38837:12;38830:19;;38489:366;;;:::o;38861:419::-;39027:4;39065:2;39054:9;39050:18;39042:26;;39114:9;39108:4;39104:20;39100:1;39089:9;39085:17;39078:47;39142:131;39268:4;39142:131;:::i;:::-;39134:139;;38861:419;;;:::o;39286:233::-;39325:3;39348:24;39366:5;39348:24;:::i;:::-;39339:33;;39394:66;39387:5;39384:77;39381:103;;39464:18;;:::i;:::-;39381:103;39511:1;39504:5;39500:13;39493:20;;39286:233;;;:::o;39525:180::-;39573:77;39570:1;39563:88;39670:4;39667:1;39660:15;39694:4;39691:1;39684:15;39711:185;39751:1;39768:20;39786:1;39768:20;:::i;:::-;39763:25;;39802:20;39820:1;39802:20;:::i;:::-;39797:25;;39841:1;39831:35;;39846:18;;:::i;:::-;39831:35;39888:1;39885;39881:9;39876:14;;39711:185;;;;:::o;39902:176::-;39934:1;39951:20;39969:1;39951:20;:::i;:::-;39946:25;;39985:20;40003:1;39985:20;:::i;:::-;39980:25;;40024:1;40014:35;;40029:18;;:::i;:::-;40014:35;40070:1;40067;40063:9;40058:14;;39902:176;;;;:::o;40084:180::-;40132:77;40129:1;40122:88;40229:4;40226:1;40219:15;40253:4;40250:1;40243:15
Swarm Source
ipfs://46d36b4b5a7739a40b270c43b09ee6aa875361deda3ed984f72b091dab5a7fb5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.