Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
200 IKAS
Holders
76
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 IKASLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
IKONIKS
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-30 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } interface IERC721Enumerable is IERC721 { function totalSupply() external view returns (uint256); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); function tokenByIndex(uint256 index) external view returns (uint256); } 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract 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; string public _baseURI; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory base = baseURI(); return bytes(base).length > 0 ? string(abi.encodePacked(base, tokenId.toString(), ".json")) : ""; } function baseURI() internal view virtual returns (string memory) { return _baseURI; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { mapping(address => mapping(uint256 => uint256)) private _ownedTokens; mapping(uint256 => uint256) private _ownedTokensIndex; uint256[] private _allTokens; mapping(uint256 => uint256) private _allTokensIndex; function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; } delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; uint256 lastTokenId = _allTokens[lastTokenIndex]; delete _allTokensIndex[tokenId]; _allTokens.pop(); } } contract IKONIKS is ERC721Enumerable, Ownable { using SafeMath for uint256; using Strings for uint256; uint public constant _TOTALSUPPLY = 500; uint256 public price = 0.06 ether; uint256 public status = 1; // 0-pause, 1-whitelist, 2-public sale bool public reveal = false; mapping(address => uint16) public giveawayAddress; string public revealUri = "https://gateway.pinata.cloud/ipfs/QmfRGQ8mgbcf94VbLf4pSutz3zwq9t9dGANb2NV7fvAdPA"; constructor() ERC721("IKONIKS AVATARS", "IKAS") { setBaseURI("https://gateway.pinata.cloud/ipfs/QmTdB9MqZCAYYCknafu1HQPJpqPMVsZNkY9Z2LEKVWruoB/"); giveawayAddress[0xf5e424B8230596C6cF74971D8770f709a97853AF] = 1; //Sanchez giveawayAddress[0x9Ea77d0376e4BD2219f505b32eCedB2e19065A3B] = 1; //Viral Monster / Jakobs giveawayAddress[0x5b59c808648B96467732D7E9c0A072937b66C799] = 1; //TheBean giveawayAddress[0xaD26E6F7598679e6e1F04B3fd09ef7Dd156Bcc89] = 1; //Oskar_j giveawayAddress[0xfFfc29519d6Fc8f724F2C423E22237f32FC9ED53] = 2; //SanIG Influencer: Jonathanlourauchez giveawayAddress[0x3A37d20d1f214D3d44030F7CD4ee762e3Bfd4A5E] = 1; //IG Influencer: Parichayonline giveawayAddress[0xC98c3861099e8C9f292bCF9Bbf970be20D7E985B] = 1; //IG Influencer: Dannvisbal giveawayAddress[0xb364Ea270E57d1e573fb1d8799e8408192189634] = 2; //IG Influencer: Dandanmatsunaga giveawayAddress[0x6b6D62A22355fBC77a9f5aa99C205a05C16137D3] = 1; //Twitter Influencer: TikiTuka giveawayAddress[0x3A3E0CFAf20C7AAA1aA866e2d2618A167331EB74] = 2; //IG Influencer: Juris Bruvers giveawayAddress[0xD73ca10670567C8e05e3e5068EE9F137Ef548047] = 1; //IG Influencer: Jevier Justin giveawayAddress[0x8A4619dc43b816fA07Ba8163Db4Dc45bb0c46ceB] = 1; //IG Influencer: Flavio Beck giveawayAddress[0xA39FA3f8413a264614CD0b4065097C9419E05dcF] = 1; //IG Influencer: FNX giveawayAddress[0x33a5Ae9001dD0B60E2E1efD99Ab9c536E5000158] = 5; //5 Free Avatar NFT Mint giveawayAddress[0x71bbFB99437B0a58046287849AdDC08ff0Cabcb2] = 500; //IKONIKS Team } function setBaseURI(string memory baseURI) public onlyOwner { _baseURI = baseURI; } function setPrice(uint256 _newPrice) public onlyOwner() { price = _newPrice; } function setStatus(uint8 s) public onlyOwner{ status = s; price = s == 1 ? 0.06 ether : 0.09 ether; } modifier isSaleOpen{ require(totalSupply() < _TOTALSUPPLY, "Sale end"); _; } function getStatus() public view returns (uint256) { return status; } function getPrice() public view returns (uint256) { return price ; } function setReveal() public onlyOwner { reveal = !reveal; } function giveawatMint(uint8 q) public isSaleOpen { require( q > 0, "Number of tokens can not be less than or equal to 0" ); require( giveawayAddress[msg.sender] - q >= 0 , "Chosen Amount exceeds allowed Mints"); require( totalSupply() + q <= 500, "Quantity must be lesser then MaxSupply" ); for(uint8 i=0; i < q; i++) { _safeMint(msg.sender, totalsupply()+1); giveawayAddress[msg.sender]--; } } function setRevealUri(string memory rUri) public onlyOwner{ revealUri = rUri; } function saleMint(uint256 chosenAmount) public payable isSaleOpen { require(status != 0, "Sale is not active"); require(totalSupply()+chosenAmount<=450,"Quantity must be lesser then MaxSupply"); require( chosenAmount > 0 && chosenAmount <= 5 , "Chosen Amount must be between 1 and 5"); require(price.mul(chosenAmount) == msg.value.mul(chosenAmount), "Sent ether value is incorrect"); for (uint256 i = 0; i < chosenAmount; i++) { _safeMint(msg.sender, totalsupply()+1); } } function tokensOfOwner(address _owner) public view returns (uint256[] memory) { uint256 count = balanceOf(_owner); uint256[] memory result = new uint256[](count); for (uint256 index = 0; index < count; index++) { result[index] = tokenOfOwnerByIndex(_owner, index); } return result; } function withdraw() public onlyOwner { uint256 balance = address(this).balance; uint256 split = balance.mul(5); //2.5% split = split.div(200); payable(0x86fc9DbcE9e909c7AB4D5D94F07e70742E2d144A).transfer(split); balance = balance - split; payable(msg.sender).transfer(balance); } function totalsupply() private view returns (uint) { return super.totalSupply(); } function tokenURI(uint256 tokenId) public view override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); if(bytes(baseURI()).length > 0){ return reveal ? string(abi.encodePacked(baseURI(), tokenId.toString())) : revealUri; } else ""; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"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":[],"name":"_TOTALSUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"q","type":"uint8"}],"name":"giveawatMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"giveawayAddress","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reveal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"revealUri","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":"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":"uint256","name":"chosenAmount","type":"uint256"}],"name":"saleMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setReveal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"rUri","type":"string"}],"name":"setRevealUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"s","type":"uint8"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405266d529ae9e860000600c556001600d556000600e60006101000a81548160ff021916908315150217905550604051806080016040528060508152602001620054816050913960109080519060200190620000609291906200094f565b503480156200006e57600080fd5b506040518060400160405280600f81526020017f494b4f4e494b53204156415441525300000000000000000000000000000000008152506040518060400160405280600481526020017f494b4153000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000f39291906200094f565b5080600190805190602001906200010c9291906200094f565b5050506000620001216200087260201b60201c565b905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ea604051806080016040528060518152602001620054d1605191396200087a60201b60201c565b6001600f600073f5e424b8230596c6cf74971d8770f709a97853af73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f6000739ea77d0376e4bd2219f505b32ecedb2e19065a3b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f6000735b59c808648b96467732d7e9c0a072937b66c79973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f600073ad26e6f7598679e6e1f04b3fd09ef7dd156bcc8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506002600f600073fffc29519d6fc8f724f2c423e22237f32fc9ed5373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f6000733a37d20d1f214d3d44030f7cd4ee762e3bfd4a5e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f600073c98c3861099e8c9f292bcf9bbf970be20d7e985b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506002600f600073b364ea270e57d1e573fb1d8799e840819218963473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f6000736b6d62a22355fbc77a9f5aa99c205a05c16137d373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506002600f6000733a3e0cfaf20c7aaa1aa866e2d2618a167331eb7473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f600073d73ca10670567c8e05e3e5068ee9f137ef54804773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f6000738a4619dc43b816fa07ba8163db4dc45bb0c46ceb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506001600f600073a39fa3f8413a264614cd0b4065097c9419e05dcf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506005600f60007333a5ae9001dd0b60e2e1efd99ab9c536e500015873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff1602179055506101f4600f60007371bbfb99437b0a58046287849addc08ff0cabcb273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548161ffff021916908361ffff16021790555062000ae7565b600033905090565b6200088a6200087260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008b06200092560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000909576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009009062000a26565b60405180910390fd5b8060069080519060200190620009219291906200094f565b5050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200095d9062000a59565b90600052602060002090601f016020900481019282620009815760008555620009cd565b82601f106200099c57805160ff1916838001178555620009cd565b82800160010185558215620009cd579182015b82811115620009cc578251825591602001919060010190620009af565b5b509050620009dc9190620009e0565b5090565b5b80821115620009fb576000816000905550600101620009e1565b5090565b600062000a0e60208362000a48565b915062000a1b8262000abe565b602082019050919050565b6000602082019050818103600083015262000a4181620009ff565b9050919050565b600082825260208201905092915050565b6000600282049050600182168062000a7257607f821691505b6020821081141562000a895762000a8862000a8f565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61498a8062000af76000396000f3fe60806040526004361061020f5760003560e01c8063743976a011610118578063a22cb465116100a0578063c973de0b1161006f578063c973de0b146107a2578063db4568e2146107cd578063e3383980146107f8578063e985e9c514610821578063f2fde38b1461085e5761020f565b8063a22cb465146106e8578063a475b5dd14610711578063b88d4fde1461073c578063c87b56dd146107655761020f565b80638da5cb5b116100e75780638da5cb5b1461061357806391b7f5ed1461063e57806395d89b411461066757806398d5fdca14610692578063a035b1fe146106bd5761020f565b8063743976a01461057857806376645315146105a35780638462151c146105ba5780638ca887ca146105f75761020f565b80633ccfd60b1161019b5780634f1c81a61161016a5780634f1c81a61461045b5780634f6ccce71461049857806355f804b3146104d55780636352211e146104fe57806370a082311461053b5761020f565b80633ccfd60b146103c757806342842e0e146103de57806342b58b2f146104075780634e69d560146104305761020f565b806318160ddd116101e257806318160ddd146102e2578063200d2ed21461030d57806323b872dd146103385780632e49d78b146103615780632f745c591461038a5761020f565b806301ffc9a71461021457806306fdde0314610251578063081812fc1461027c578063095ea7b3146102b9575b600080fd5b34801561022057600080fd5b5061023b6004803603810190610236919061329b565b610887565b6040516102489190613914565b60405180910390f35b34801561025d57600080fd5b50610266610901565b604051610273919061392f565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061333e565b610993565b6040516102b0919061388b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db919061325b565b610a18565b005b3480156102ee57600080fd5b506102f7610b30565b6040516103049190613c8c565b60405180910390f35b34801561031957600080fd5b50610322610b3d565b60405161032f9190613c8c565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613145565b610b43565b005b34801561036d57600080fd5b506103886004803603810190610383919061336b565b610ba3565b005b34801561039657600080fd5b506103b160048036038101906103ac919061325b565b610c5e565b6040516103be9190613c8c565b60405180910390f35b3480156103d357600080fd5b506103dc610d03565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613145565b610e66565b005b34801561041357600080fd5b5061042e600480360381019061042991906132f5565b610e86565b005b34801561043c57600080fd5b50610445610f1c565b6040516104529190613c8c565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906130d8565b610f26565b60405161048f9190613c71565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba919061333e565b610f47565b6040516104cc9190613c8c565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f791906132f5565b610fb8565b005b34801561050a57600080fd5b506105256004803603810190610520919061333e565b61104e565b604051610532919061388b565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d91906130d8565b611100565b60405161056f9190613c8c565b60405180910390f35b34801561058457600080fd5b5061058d6111b8565b60405161059a919061392f565b60405180910390f35b3480156105af57600080fd5b506105b8611246565b005b3480156105c657600080fd5b506105e160048036038101906105dc91906130d8565b6112ee565b6040516105ee91906138f2565b60405180910390f35b610611600480360381019061060c919061333e565b61139c565b005b34801561061f57600080fd5b5061062861157b565b604051610635919061388b565b60405180910390f35b34801561064a57600080fd5b506106656004803603810190610660919061333e565b6115a5565b005b34801561067357600080fd5b5061067c61162b565b604051610689919061392f565b60405180910390f35b34801561069e57600080fd5b506106a76116bd565b6040516106b49190613c8c565b60405180910390f35b3480156106c957600080fd5b506106d26116c7565b6040516106df9190613c8c565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a919061321b565b6116cd565b005b34801561071d57600080fd5b5061072661184e565b6040516107339190613914565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190613198565b611861565b005b34801561077157600080fd5b5061078c6004803603810190610787919061333e565b6118c3565b604051610799919061392f565b60405180910390f35b3480156107ae57600080fd5b506107b7611a01565b6040516107c4919061392f565b60405180910390f35b3480156107d957600080fd5b506107e2611a8f565b6040516107ef9190613c8c565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a919061336b565b611a95565b005b34801561082d57600080fd5b5061084860048036038101906108439190613105565b611ce0565b6040516108559190613914565b60405180910390f35b34801561086a57600080fd5b50610885600480360381019061088091906130d8565b611d74565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fa57506108f982611e6c565b5b9050919050565b60606000805461091090613fee565b80601f016020809104026020016040519081016040528092919081815260200182805461093c90613fee565b80156109895780601f1061095e57610100808354040283529160200191610989565b820191906000526020600020905b81548152906001019060200180831161096c57829003601f168201915b5050505050905090565b600061099e82611f4e565b6109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490613b51565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a238261104e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90613c11565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ab3611fba565b73ffffffffffffffffffffffffffffffffffffffff161480610ae25750610ae181610adc611fba565b611ce0565b5b610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890613a71565b60405180910390fd5b610b2b8383611fc2565b505050565b6000600980549050905090565b600d5481565b610b54610b4e611fba565b8261207b565b610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90613c31565b60405180910390fd5b610b9e838383612159565b505050565b610bab611fba565b73ffffffffffffffffffffffffffffffffffffffff16610bc961157b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613b91565b60405180910390fd5b8060ff16600d8190555060018160ff1614610c425767013fbe85edc90000610c4b565b66d529ae9e8600005b67ffffffffffffffff16600c8190555050565b6000610c6983611100565b8210610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190613971565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d0b611fba565b73ffffffffffffffffffffffffffffffffffffffff16610d2961157b565b73ffffffffffffffffffffffffffffffffffffffff1614610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690613b91565b60405180910390fd5b60004790506000610d9a6005836123b590919063ffffffff16565b9050610db060c8826123cb90919063ffffffff16565b90507386fc9dbce9e909c7ab4d5d94f07e70742e2d144a73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e0c573d6000803e3d6000fd5b508082610e199190613ebf565b91503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610e61573d6000803e3d6000fd5b505050565b610e8183838360405180602001604052806000815250611861565b505050565b610e8e611fba565b73ffffffffffffffffffffffffffffffffffffffff16610eac61157b565b73ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613b91565b60405180910390fd5b8060109080519060200190610f18929190612ed7565b5050565b6000600d54905090565b600f6020528060005260406000206000915054906101000a900461ffff1681565b6000610f51610b30565b8210610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990613c51565b60405180910390fd5b60098281548110610fa657610fa56141b1565b5b90600052602060002001549050919050565b610fc0611fba565b73ffffffffffffffffffffffffffffffffffffffff16610fde61157b565b73ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90613b91565b60405180910390fd5b806006908051906020019061104a929190612ed7565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ee90613ab1565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613a91565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600680546111c590613fee565b80601f01602080910402602001604051908101604052809291908181526020018280546111f190613fee565b801561123e5780601f106112135761010080835404028352916020019161123e565b820191906000526020600020905b81548152906001019060200180831161122157829003601f168201915b505050505081565b61124e611fba565b73ffffffffffffffffffffffffffffffffffffffff1661126c61157b565b73ffffffffffffffffffffffffffffffffffffffff16146112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b990613b91565b60405180910390fd5b600e60009054906101000a900460ff1615600e60006101000a81548160ff021916908315150217905550565b606060006112fb83611100565b905060008167ffffffffffffffff811115611319576113186141e0565b5b6040519080825280602002602001820160405280156113475781602001602082028036833780820191505090505b50905060005b828110156113915761135f8582610c5e565b828281518110611372576113716141b1565b5b602002602001018181525050808061138990614051565b91505061134d565b508092505050919050565b6101f46113a7610b30565b106113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90613b31565b60405180910390fd5b6000600d54141561142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490613a31565b60405180910390fd5b6101c281611439610b30565b6114439190613daa565b1115611484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147b90613bb1565b60405180910390fd5b600081118015611495575060058111155b6114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90613b71565b60405180910390fd5b6114e781346123b590919063ffffffff16565b6114fc82600c546123b590919063ffffffff16565b1461153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390613af1565b60405180910390fd5b60005b81811015611577576115643360016115556123e1565b61155f9190613daa565b6123f0565b808061156f90614051565b91505061153f565b5050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115ad611fba565b73ffffffffffffffffffffffffffffffffffffffff166115cb61157b565b73ffffffffffffffffffffffffffffffffffffffff1614611621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161890613b91565b60405180910390fd5b80600c8190555050565b60606001805461163a90613fee565b80601f016020809104026020016040519081016040528092919081815260200182805461166690613fee565b80156116b35780601f10611688576101008083540402835291602001916116b3565b820191906000526020600020905b81548152906001019060200180831161169657829003601f168201915b5050505050905090565b6000600c54905090565b600c5481565b6116d5611fba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90613a11565b60405180910390fd5b8060056000611750611fba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117fd611fba565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118429190613914565b60405180910390a35050565b600e60009054906101000a900460ff1681565b61187261186c611fba565b8361207b565b6118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890613c31565b60405180910390fd5b6118bd8484848461240e565b50505050565b60606118ce82611f4e565b61190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190490613bf1565b60405180910390fd5b600061191761246a565b5111156119fb57600e60009054906101000a900460ff166119c2576010805461193f90613fee565b80601f016020809104026020016040519081016040528092919081815260200182805461196b90613fee565b80156119b85780601f1061198d576101008083540402835291602001916119b8565b820191906000526020600020905b81548152906001019060200180831161199b57829003601f168201915b50505050506119f4565b6119ca61246a565b6119d3836124fc565b6040516020016119e4929190613867565b6040516020818303038152906040525b90506119fc565b5b919050565b60108054611a0e90613fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3a90613fee565b8015611a875780601f10611a5c57610100808354040283529160200191611a87565b820191906000526020600020905b815481529060010190602001808311611a6a57829003601f168201915b505050505081565b6101f481565b6101f4611aa0610b30565b10611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad790613b31565b60405180910390fd5b60008160ff1611611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90613951565b60405180910390fd5b60008160ff16600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff16611b849190613e8b565b61ffff161015611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613ad1565b60405180910390fd5b6101f48160ff16611bd8610b30565b611be29190613daa565b1115611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a90613bb1565b60405180910390fd5b60005b8160ff168160ff161015611cdc57611c51336001611c426123e1565b611c4c9190613daa565b6123f0565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081819054906101000a900461ffff1680929190611cae90613fc4565b91906101000a81548161ffff021916908361ffff160217905550508080611cd49061409a565b915050611c26565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d7c611fba565b73ffffffffffffffffffffffffffffffffffffffff16611d9a61157b565b73ffffffffffffffffffffffffffffffffffffffff1614611df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de790613b91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e57906139b1565b60405180910390fd5b611e698161265d565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f3757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f475750611f4682612723565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166120358361104e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061208682611f4e565b6120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613a51565b60405180910390fd5b60006120d08361104e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061213f57508373ffffffffffffffffffffffffffffffffffffffff1661212784610993565b73ffffffffffffffffffffffffffffffffffffffff16145b80612150575061214f8185611ce0565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166121798261104e565b73ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613bd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561223f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612236906139f1565b60405180910390fd5b61224a83838361278d565b612255600082611fc2565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122a59190613ebf565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122fc9190613daa565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836123c39190613e31565b905092915050565b600081836123d99190613e00565b905092915050565b60006123eb610b30565b905090565b61240a8282604051806020016040528060008152506128a1565b5050565b612419848484612159565b612425848484846128fc565b612464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245b90613991565b60405180910390fd5b50505050565b60606006805461247990613fee565b80601f01602080910402602001604051908101604052809291908181526020018280546124a590613fee565b80156124f25780601f106124c7576101008083540402835291602001916124f2565b820191906000526020600020905b8154815290600101906020018083116124d557829003601f168201915b5050505050905090565b60606000821415612544576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612658565b600082905060005b6000821461257657808061255f90614051565b915050600a8261256f9190613e00565b915061254c565b60008167ffffffffffffffff811115612592576125916141e0565b5b6040519080825280601f01601f1916602001820160405280156125c45781602001600182028036833780820191505090505b5090505b60008514612651576001826125dd9190613ebf565b9150600a856125ec91906140c4565b60306125f89190613daa565b60f81b81838151811061260e5761260d6141b1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561264a9190613e00565b94506125c8565b8093505050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612798838383612a93565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127db576127d681612a98565b61281a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612819576128188382612ae1565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561285d5761285881612be1565b61289c565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461289b5761289a8282612c77565b5b5b505050565b6128ab8383612cf6565b6128b860008484846128fc565b6128f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ee90613991565b60405180910390fd5b505050565b600061291d8473ffffffffffffffffffffffffffffffffffffffff16612ec4565b15612a86578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612946611fba565b8786866040518563ffffffff1660e01b815260040161296894939291906138a6565b602060405180830381600087803b15801561298257600080fd5b505af19250505080156129b357506040513d601f19601f820116820180604052508101906129b091906132c8565b60015b612a36573d80600081146129e3576040519150601f19603f3d011682016040523d82523d6000602084013e6129e8565b606091505b50600081511415612a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2590613991565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a8b565b600190505b949350505050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612aee84611100565b612af89190613ebf565b9050600060086000848152602001908152602001600020549050818114612b70576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612bf59190613ebf565b90506000600a6000848152602001908152602001600020549050600060098381548110612c2557612c246141b1565b5b90600052602060002001549050600a6000858152602001908152602001600020600090556009805480612c5b57612c5a614182565b5b6001900381819060005260206000200160009055905550505050565b6000612c8283611100565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5d90613b11565b60405180910390fd5b612d6f81611f4e565b15612daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da6906139d1565b60405180910390fd5b612dbb6000838361278d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e0b9190613daa565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612ee390613fee565b90600052602060002090601f016020900481019282612f055760008555612f4c565b82601f10612f1e57805160ff1916838001178555612f4c565b82800160010185558215612f4c579182015b82811115612f4b578251825591602001919060010190612f30565b5b509050612f599190612f5d565b5090565b5b80821115612f76576000816000905550600101612f5e565b5090565b6000612f8d612f8884613ccc565b613ca7565b905082815260208101848484011115612fa957612fa8614214565b5b612fb4848285613f82565b509392505050565b6000612fcf612fca84613cfd565b613ca7565b905082815260208101848484011115612feb57612fea614214565b5b612ff6848285613f82565b509392505050565b60008135905061300d816148e1565b92915050565b600081359050613022816148f8565b92915050565b6000813590506130378161490f565b92915050565b60008151905061304c8161490f565b92915050565b600082601f8301126130675761306661420f565b5b8135613077848260208601612f7a565b91505092915050565b600082601f8301126130955761309461420f565b5b81356130a5848260208601612fbc565b91505092915050565b6000813590506130bd81614926565b92915050565b6000813590506130d28161493d565b92915050565b6000602082840312156130ee576130ed61421e565b5b60006130fc84828501612ffe565b91505092915050565b6000806040838503121561311c5761311b61421e565b5b600061312a85828601612ffe565b925050602061313b85828601612ffe565b9150509250929050565b60008060006060848603121561315e5761315d61421e565b5b600061316c86828701612ffe565b935050602061317d86828701612ffe565b925050604061318e868287016130ae565b9150509250925092565b600080600080608085870312156131b2576131b161421e565b5b60006131c087828801612ffe565b94505060206131d187828801612ffe565b93505060406131e2878288016130ae565b925050606085013567ffffffffffffffff81111561320357613202614219565b5b61320f87828801613052565b91505092959194509250565b600080604083850312156132325761323161421e565b5b600061324085828601612ffe565b925050602061325185828601613013565b9150509250929050565b600080604083850312156132725761327161421e565b5b600061328085828601612ffe565b9250506020613291858286016130ae565b9150509250929050565b6000602082840312156132b1576132b061421e565b5b60006132bf84828501613028565b91505092915050565b6000602082840312156132de576132dd61421e565b5b60006132ec8482850161303d565b91505092915050565b60006020828403121561330b5761330a61421e565b5b600082013567ffffffffffffffff81111561332957613328614219565b5b61333584828501613080565b91505092915050565b6000602082840312156133545761335361421e565b5b6000613362848285016130ae565b91505092915050565b6000602082840312156133815761338061421e565b5b600061338f848285016130c3565b91505092915050565b60006133a48383613849565b60208301905092915050565b6133b981613ef3565b82525050565b60006133ca82613d3e565b6133d48185613d6c565b93506133df83613d2e565b8060005b838110156134105781516133f78882613398565b975061340283613d5f565b9250506001810190506133e3565b5085935050505092915050565b61342681613f05565b82525050565b600061343782613d49565b6134418185613d7d565b9350613451818560208601613f91565b61345a81614223565b840191505092915050565b600061347082613d54565b61347a8185613d8e565b935061348a818560208601613f91565b61349381614223565b840191505092915050565b60006134a982613d54565b6134b38185613d9f565b93506134c3818560208601613f91565b80840191505092915050565b60006134dc603383613d8e565b91506134e782614234565b604082019050919050565b60006134ff602b83613d8e565b915061350a82614283565b604082019050919050565b6000613522603283613d8e565b915061352d826142d2565b604082019050919050565b6000613545602683613d8e565b915061355082614321565b604082019050919050565b6000613568601c83613d8e565b915061357382614370565b602082019050919050565b600061358b602483613d8e565b915061359682614399565b604082019050919050565b60006135ae601983613d8e565b91506135b9826143e8565b602082019050919050565b60006135d1601283613d8e565b91506135dc82614411565b602082019050919050565b60006135f4602c83613d8e565b91506135ff8261443a565b604082019050919050565b6000613617603883613d8e565b915061362282614489565b604082019050919050565b600061363a602a83613d8e565b9150613645826144d8565b604082019050919050565b600061365d602983613d8e565b915061366882614527565b604082019050919050565b6000613680602383613d8e565b915061368b82614576565b604082019050919050565b60006136a3601d83613d8e565b91506136ae826145c5565b602082019050919050565b60006136c6602083613d8e565b91506136d1826145ee565b602082019050919050565b60006136e9600883613d8e565b91506136f482614617565b602082019050919050565b600061370c602c83613d8e565b915061371782614640565b604082019050919050565b600061372f602583613d8e565b915061373a8261468f565b604082019050919050565b6000613752602083613d8e565b915061375d826146de565b602082019050919050565b6000613775602683613d8e565b915061378082614707565b604082019050919050565b6000613798602983613d8e565b91506137a382614756565b604082019050919050565b60006137bb602f83613d8e565b91506137c6826147a5565b604082019050919050565b60006137de602183613d8e565b91506137e9826147f4565b604082019050919050565b6000613801603183613d8e565b915061380c82614843565b604082019050919050565b6000613824602c83613d8e565b915061382f82614892565b604082019050919050565b61384381613f3d565b82525050565b61385281613f6b565b82525050565b61386181613f6b565b82525050565b6000613873828561349e565b915061387f828461349e565b91508190509392505050565b60006020820190506138a060008301846133b0565b92915050565b60006080820190506138bb60008301876133b0565b6138c860208301866133b0565b6138d56040830185613858565b81810360608301526138e7818461342c565b905095945050505050565b6000602082019050818103600083015261390c81846133bf565b905092915050565b6000602082019050613929600083018461341d565b92915050565b600060208201905081810360008301526139498184613465565b905092915050565b6000602082019050818103600083015261396a816134cf565b9050919050565b6000602082019050818103600083015261398a816134f2565b9050919050565b600060208201905081810360008301526139aa81613515565b9050919050565b600060208201905081810360008301526139ca81613538565b9050919050565b600060208201905081810360008301526139ea8161355b565b9050919050565b60006020820190508181036000830152613a0a8161357e565b9050919050565b60006020820190508181036000830152613a2a816135a1565b9050919050565b60006020820190508181036000830152613a4a816135c4565b9050919050565b60006020820190508181036000830152613a6a816135e7565b9050919050565b60006020820190508181036000830152613a8a8161360a565b9050919050565b60006020820190508181036000830152613aaa8161362d565b9050919050565b60006020820190508181036000830152613aca81613650565b9050919050565b60006020820190508181036000830152613aea81613673565b9050919050565b60006020820190508181036000830152613b0a81613696565b9050919050565b60006020820190508181036000830152613b2a816136b9565b9050919050565b60006020820190508181036000830152613b4a816136dc565b9050919050565b60006020820190508181036000830152613b6a816136ff565b9050919050565b60006020820190508181036000830152613b8a81613722565b9050919050565b60006020820190508181036000830152613baa81613745565b9050919050565b60006020820190508181036000830152613bca81613768565b9050919050565b60006020820190508181036000830152613bea8161378b565b9050919050565b60006020820190508181036000830152613c0a816137ae565b9050919050565b60006020820190508181036000830152613c2a816137d1565b9050919050565b60006020820190508181036000830152613c4a816137f4565b9050919050565b60006020820190508181036000830152613c6a81613817565b9050919050565b6000602082019050613c86600083018461383a565b92915050565b6000602082019050613ca16000830184613858565b92915050565b6000613cb1613cc2565b9050613cbd8282614020565b919050565b6000604051905090565b600067ffffffffffffffff821115613ce757613ce66141e0565b5b613cf082614223565b9050602081019050919050565b600067ffffffffffffffff821115613d1857613d176141e0565b5b613d2182614223565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613db582613f6b565b9150613dc083613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613df557613df46140f5565b5b828201905092915050565b6000613e0b82613f6b565b9150613e1683613f6b565b925082613e2657613e25614124565b5b828204905092915050565b6000613e3c82613f6b565b9150613e4783613f6b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8057613e7f6140f5565b5b828202905092915050565b6000613e9682613f3d565b9150613ea183613f3d565b925082821015613eb457613eb36140f5565b5b828203905092915050565b6000613eca82613f6b565b9150613ed583613f6b565b925082821015613ee857613ee76140f5565b5b828203905092915050565b6000613efe82613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613faf578082015181840152602081019050613f94565b83811115613fbe576000848401525b50505050565b6000613fcf82613f3d565b91506000821415613fe357613fe26140f5565b5b600182039050919050565b6000600282049050600182168061400657607f821691505b6020821081141561401a57614019614153565b5b50919050565b61402982614223565b810181811067ffffffffffffffff82111715614048576140476141e0565b5b80604052505050565b600061405c82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561408f5761408e6140f5565b5b600182019050919050565b60006140a582613f75565b915060ff8214156140b9576140b86140f5565b5b600182019050919050565b60006140cf82613f6b565b91506140da83613f6b565b9250826140ea576140e9614124565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e756d626572206f6620746f6b656e732063616e206e6f74206265206c65737360008201527f207468616e206f7220657175616c20746f203000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f53616c65206973206e6f74206163746976650000000000000000000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f43686f73656e20416d6f756e74206578636565647320616c6c6f776564204d6960008201527f6e74730000000000000000000000000000000000000000000000000000000000602082015250565b7f53656e742065746865722076616c756520697320696e636f7272656374000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f53616c6520656e64000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f43686f73656e20416d6f756e74206d757374206265206265747765656e20312060008201527f616e642035000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5175616e74697479206d757374206265206c6573736572207468656e204d617860008201527f537570706c790000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6148ea81613ef3565b81146148f557600080fd5b50565b61490181613f05565b811461490c57600080fd5b50565b61491881613f11565b811461492357600080fd5b50565b61492f81613f6b565b811461493a57600080fd5b50565b61494681613f75565b811461495157600080fd5b5056fea264697066735822122038287b2abdb70f310a0b823023b93a588f69be58fd2559d0a2b7916f0094b23864736f6c6343000807003368747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d66524751386d67626366393456624c6634705375747a337a77713974396447414e62324e563766764164504168747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d546442394d715a43415959436b6e616675314851504a7071504d56735a4e6b59395a324c454b565772756f422f
Deployed Bytecode
0x60806040526004361061020f5760003560e01c8063743976a011610118578063a22cb465116100a0578063c973de0b1161006f578063c973de0b146107a2578063db4568e2146107cd578063e3383980146107f8578063e985e9c514610821578063f2fde38b1461085e5761020f565b8063a22cb465146106e8578063a475b5dd14610711578063b88d4fde1461073c578063c87b56dd146107655761020f565b80638da5cb5b116100e75780638da5cb5b1461061357806391b7f5ed1461063e57806395d89b411461066757806398d5fdca14610692578063a035b1fe146106bd5761020f565b8063743976a01461057857806376645315146105a35780638462151c146105ba5780638ca887ca146105f75761020f565b80633ccfd60b1161019b5780634f1c81a61161016a5780634f1c81a61461045b5780634f6ccce71461049857806355f804b3146104d55780636352211e146104fe57806370a082311461053b5761020f565b80633ccfd60b146103c757806342842e0e146103de57806342b58b2f146104075780634e69d560146104305761020f565b806318160ddd116101e257806318160ddd146102e2578063200d2ed21461030d57806323b872dd146103385780632e49d78b146103615780632f745c591461038a5761020f565b806301ffc9a71461021457806306fdde0314610251578063081812fc1461027c578063095ea7b3146102b9575b600080fd5b34801561022057600080fd5b5061023b6004803603810190610236919061329b565b610887565b6040516102489190613914565b60405180910390f35b34801561025d57600080fd5b50610266610901565b604051610273919061392f565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e919061333e565b610993565b6040516102b0919061388b565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db919061325b565b610a18565b005b3480156102ee57600080fd5b506102f7610b30565b6040516103049190613c8c565b60405180910390f35b34801561031957600080fd5b50610322610b3d565b60405161032f9190613c8c565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190613145565b610b43565b005b34801561036d57600080fd5b506103886004803603810190610383919061336b565b610ba3565b005b34801561039657600080fd5b506103b160048036038101906103ac919061325b565b610c5e565b6040516103be9190613c8c565b60405180910390f35b3480156103d357600080fd5b506103dc610d03565b005b3480156103ea57600080fd5b5061040560048036038101906104009190613145565b610e66565b005b34801561041357600080fd5b5061042e600480360381019061042991906132f5565b610e86565b005b34801561043c57600080fd5b50610445610f1c565b6040516104529190613c8c565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d91906130d8565b610f26565b60405161048f9190613c71565b60405180910390f35b3480156104a457600080fd5b506104bf60048036038101906104ba919061333e565b610f47565b6040516104cc9190613c8c565b60405180910390f35b3480156104e157600080fd5b506104fc60048036038101906104f791906132f5565b610fb8565b005b34801561050a57600080fd5b506105256004803603810190610520919061333e565b61104e565b604051610532919061388b565b60405180910390f35b34801561054757600080fd5b50610562600480360381019061055d91906130d8565b611100565b60405161056f9190613c8c565b60405180910390f35b34801561058457600080fd5b5061058d6111b8565b60405161059a919061392f565b60405180910390f35b3480156105af57600080fd5b506105b8611246565b005b3480156105c657600080fd5b506105e160048036038101906105dc91906130d8565b6112ee565b6040516105ee91906138f2565b60405180910390f35b610611600480360381019061060c919061333e565b61139c565b005b34801561061f57600080fd5b5061062861157b565b604051610635919061388b565b60405180910390f35b34801561064a57600080fd5b506106656004803603810190610660919061333e565b6115a5565b005b34801561067357600080fd5b5061067c61162b565b604051610689919061392f565b60405180910390f35b34801561069e57600080fd5b506106a76116bd565b6040516106b49190613c8c565b60405180910390f35b3480156106c957600080fd5b506106d26116c7565b6040516106df9190613c8c565b60405180910390f35b3480156106f457600080fd5b5061070f600480360381019061070a919061321b565b6116cd565b005b34801561071d57600080fd5b5061072661184e565b6040516107339190613914565b60405180910390f35b34801561074857600080fd5b50610763600480360381019061075e9190613198565b611861565b005b34801561077157600080fd5b5061078c6004803603810190610787919061333e565b6118c3565b604051610799919061392f565b60405180910390f35b3480156107ae57600080fd5b506107b7611a01565b6040516107c4919061392f565b60405180910390f35b3480156107d957600080fd5b506107e2611a8f565b6040516107ef9190613c8c565b60405180910390f35b34801561080457600080fd5b5061081f600480360381019061081a919061336b565b611a95565b005b34801561082d57600080fd5b5061084860048036038101906108439190613105565b611ce0565b6040516108559190613914565b60405180910390f35b34801561086a57600080fd5b50610885600480360381019061088091906130d8565b611d74565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108fa57506108f982611e6c565b5b9050919050565b60606000805461091090613fee565b80601f016020809104026020016040519081016040528092919081815260200182805461093c90613fee565b80156109895780601f1061095e57610100808354040283529160200191610989565b820191906000526020600020905b81548152906001019060200180831161096c57829003601f168201915b5050505050905090565b600061099e82611f4e565b6109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d490613b51565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a238261104e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b90613c11565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ab3611fba565b73ffffffffffffffffffffffffffffffffffffffff161480610ae25750610ae181610adc611fba565b611ce0565b5b610b21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1890613a71565b60405180910390fd5b610b2b8383611fc2565b505050565b6000600980549050905090565b600d5481565b610b54610b4e611fba565b8261207b565b610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90613c31565b60405180910390fd5b610b9e838383612159565b505050565b610bab611fba565b73ffffffffffffffffffffffffffffffffffffffff16610bc961157b565b73ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1690613b91565b60405180910390fd5b8060ff16600d8190555060018160ff1614610c425767013fbe85edc90000610c4b565b66d529ae9e8600005b67ffffffffffffffff16600c8190555050565b6000610c6983611100565b8210610caa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca190613971565b60405180910390fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d0b611fba565b73ffffffffffffffffffffffffffffffffffffffff16610d2961157b565b73ffffffffffffffffffffffffffffffffffffffff1614610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7690613b91565b60405180910390fd5b60004790506000610d9a6005836123b590919063ffffffff16565b9050610db060c8826123cb90919063ffffffff16565b90507386fc9dbce9e909c7ab4d5d94f07e70742e2d144a73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610e0c573d6000803e3d6000fd5b508082610e199190613ebf565b91503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015610e61573d6000803e3d6000fd5b505050565b610e8183838360405180602001604052806000815250611861565b505050565b610e8e611fba565b73ffffffffffffffffffffffffffffffffffffffff16610eac61157b565b73ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613b91565b60405180910390fd5b8060109080519060200190610f18929190612ed7565b5050565b6000600d54905090565b600f6020528060005260406000206000915054906101000a900461ffff1681565b6000610f51610b30565b8210610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8990613c51565b60405180910390fd5b60098281548110610fa657610fa56141b1565b5b90600052602060002001549050919050565b610fc0611fba565b73ffffffffffffffffffffffffffffffffffffffff16610fde61157b565b73ffffffffffffffffffffffffffffffffffffffff1614611034576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102b90613b91565b60405180910390fd5b806006908051906020019061104a929190612ed7565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156110f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ee90613ab1565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611171576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116890613a91565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600680546111c590613fee565b80601f01602080910402602001604051908101604052809291908181526020018280546111f190613fee565b801561123e5780601f106112135761010080835404028352916020019161123e565b820191906000526020600020905b81548152906001019060200180831161122157829003601f168201915b505050505081565b61124e611fba565b73ffffffffffffffffffffffffffffffffffffffff1661126c61157b565b73ffffffffffffffffffffffffffffffffffffffff16146112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b990613b91565b60405180910390fd5b600e60009054906101000a900460ff1615600e60006101000a81548160ff021916908315150217905550565b606060006112fb83611100565b905060008167ffffffffffffffff811115611319576113186141e0565b5b6040519080825280602002602001820160405280156113475781602001602082028036833780820191505090505b50905060005b828110156113915761135f8582610c5e565b828281518110611372576113716141b1565b5b602002602001018181525050808061138990614051565b91505061134d565b508092505050919050565b6101f46113a7610b30565b106113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90613b31565b60405180910390fd5b6000600d54141561142d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142490613a31565b60405180910390fd5b6101c281611439610b30565b6114439190613daa565b1115611484576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147b90613bb1565b60405180910390fd5b600081118015611495575060058111155b6114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90613b71565b60405180910390fd5b6114e781346123b590919063ffffffff16565b6114fc82600c546123b590919063ffffffff16565b1461153c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153390613af1565b60405180910390fd5b60005b81811015611577576115643360016115556123e1565b61155f9190613daa565b6123f0565b808061156f90614051565b91505061153f565b5050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6115ad611fba565b73ffffffffffffffffffffffffffffffffffffffff166115cb61157b565b73ffffffffffffffffffffffffffffffffffffffff1614611621576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161890613b91565b60405180910390fd5b80600c8190555050565b60606001805461163a90613fee565b80601f016020809104026020016040519081016040528092919081815260200182805461166690613fee565b80156116b35780601f10611688576101008083540402835291602001916116b3565b820191906000526020600020905b81548152906001019060200180831161169657829003601f168201915b5050505050905090565b6000600c54905090565b600c5481565b6116d5611fba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611743576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173a90613a11565b60405180910390fd5b8060056000611750611fba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117fd611fba565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118429190613914565b60405180910390a35050565b600e60009054906101000a900460ff1681565b61187261186c611fba565b8361207b565b6118b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a890613c31565b60405180910390fd5b6118bd8484848461240e565b50505050565b60606118ce82611f4e565b61190d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190490613bf1565b60405180910390fd5b600061191761246a565b5111156119fb57600e60009054906101000a900460ff166119c2576010805461193f90613fee565b80601f016020809104026020016040519081016040528092919081815260200182805461196b90613fee565b80156119b85780601f1061198d576101008083540402835291602001916119b8565b820191906000526020600020905b81548152906001019060200180831161199b57829003601f168201915b50505050506119f4565b6119ca61246a565b6119d3836124fc565b6040516020016119e4929190613867565b6040516020818303038152906040525b90506119fc565b5b919050565b60108054611a0e90613fee565b80601f0160208091040260200160405190810160405280929190818152602001828054611a3a90613fee565b8015611a875780601f10611a5c57610100808354040283529160200191611a87565b820191906000526020600020905b815481529060010190602001808311611a6a57829003601f168201915b505050505081565b6101f481565b6101f4611aa0610b30565b10611ae0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad790613b31565b60405180910390fd5b60008160ff1611611b26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1d90613951565b60405180910390fd5b60008160ff16600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900461ffff16611b849190613e8b565b61ffff161015611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613ad1565b60405180910390fd5b6101f48160ff16611bd8610b30565b611be29190613daa565b1115611c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1a90613bb1565b60405180910390fd5b60005b8160ff168160ff161015611cdc57611c51336001611c426123e1565b611c4c9190613daa565b6123f0565b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081819054906101000a900461ffff1680929190611cae90613fc4565b91906101000a81548161ffff021916908361ffff160217905550508080611cd49061409a565b915050611c26565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d7c611fba565b73ffffffffffffffffffffffffffffffffffffffff16611d9a61157b565b73ffffffffffffffffffffffffffffffffffffffff1614611df0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de790613b91565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e57906139b1565b60405180910390fd5b611e698161265d565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611f3757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611f475750611f4682612723565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166120358361104e565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061208682611f4e565b6120c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120bc90613a51565b60405180910390fd5b60006120d08361104e565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061213f57508373ffffffffffffffffffffffffffffffffffffffff1661212784610993565b73ffffffffffffffffffffffffffffffffffffffff16145b80612150575061214f8185611ce0565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166121798261104e565b73ffffffffffffffffffffffffffffffffffffffff16146121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613bd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561223f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612236906139f1565b60405180910390fd5b61224a83838361278d565b612255600082611fc2565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122a59190613ebf565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122fc9190613daa565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081836123c39190613e31565b905092915050565b600081836123d99190613e00565b905092915050565b60006123eb610b30565b905090565b61240a8282604051806020016040528060008152506128a1565b5050565b612419848484612159565b612425848484846128fc565b612464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245b90613991565b60405180910390fd5b50505050565b60606006805461247990613fee565b80601f01602080910402602001604051908101604052809291908181526020018280546124a590613fee565b80156124f25780601f106124c7576101008083540402835291602001916124f2565b820191906000526020600020905b8154815290600101906020018083116124d557829003601f168201915b5050505050905090565b60606000821415612544576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612658565b600082905060005b6000821461257657808061255f90614051565b915050600a8261256f9190613e00565b915061254c565b60008167ffffffffffffffff811115612592576125916141e0565b5b6040519080825280601f01601f1916602001820160405280156125c45781602001600182028036833780820191505090505b5090505b60008514612651576001826125dd9190613ebf565b9150600a856125ec91906140c4565b60306125f89190613daa565b60f81b81838151811061260e5761260d6141b1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561264a9190613e00565b94506125c8565b8093505050505b919050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612798838383612a93565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127db576127d681612a98565b61281a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612819576128188382612ae1565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561285d5761285881612be1565b61289c565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461289b5761289a8282612c77565b5b5b505050565b6128ab8383612cf6565b6128b860008484846128fc565b6128f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ee90613991565b60405180910390fd5b505050565b600061291d8473ffffffffffffffffffffffffffffffffffffffff16612ec4565b15612a86578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612946611fba565b8786866040518563ffffffff1660e01b815260040161296894939291906138a6565b602060405180830381600087803b15801561298257600080fd5b505af19250505080156129b357506040513d601f19601f820116820180604052508101906129b091906132c8565b60015b612a36573d80600081146129e3576040519150601f19603f3d011682016040523d82523d6000602084013e6129e8565b606091505b50600081511415612a2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2590613991565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612a8b565b600190505b949350505050565b505050565b600980549050600a600083815260200190815260200160002081905550600981908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612aee84611100565b612af89190613ebf565b9050600060086000848152602001908152602001600020549050818114612b70576000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020549050505b6008600084815260200190815260200160002060009055600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600980549050612bf59190613ebf565b90506000600a6000848152602001908152602001600020549050600060098381548110612c2557612c246141b1565b5b90600052602060002001549050600a6000858152602001908152602001600020600090556009805480612c5b57612c5a614182565b5b6001900381819060005260206000200160009055905550505050565b6000612c8283611100565b905081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806008600084815260200190815260200160002081905550505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5d90613b11565b60405180910390fd5b612d6f81611f4e565b15612daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da6906139d1565b60405180910390fd5b612dbb6000838361278d565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612e0b9190613daa565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612ee390613fee565b90600052602060002090601f016020900481019282612f055760008555612f4c565b82601f10612f1e57805160ff1916838001178555612f4c565b82800160010185558215612f4c579182015b82811115612f4b578251825591602001919060010190612f30565b5b509050612f599190612f5d565b5090565b5b80821115612f76576000816000905550600101612f5e565b5090565b6000612f8d612f8884613ccc565b613ca7565b905082815260208101848484011115612fa957612fa8614214565b5b612fb4848285613f82565b509392505050565b6000612fcf612fca84613cfd565b613ca7565b905082815260208101848484011115612feb57612fea614214565b5b612ff6848285613f82565b509392505050565b60008135905061300d816148e1565b92915050565b600081359050613022816148f8565b92915050565b6000813590506130378161490f565b92915050565b60008151905061304c8161490f565b92915050565b600082601f8301126130675761306661420f565b5b8135613077848260208601612f7a565b91505092915050565b600082601f8301126130955761309461420f565b5b81356130a5848260208601612fbc565b91505092915050565b6000813590506130bd81614926565b92915050565b6000813590506130d28161493d565b92915050565b6000602082840312156130ee576130ed61421e565b5b60006130fc84828501612ffe565b91505092915050565b6000806040838503121561311c5761311b61421e565b5b600061312a85828601612ffe565b925050602061313b85828601612ffe565b9150509250929050565b60008060006060848603121561315e5761315d61421e565b5b600061316c86828701612ffe565b935050602061317d86828701612ffe565b925050604061318e868287016130ae565b9150509250925092565b600080600080608085870312156131b2576131b161421e565b5b60006131c087828801612ffe565b94505060206131d187828801612ffe565b93505060406131e2878288016130ae565b925050606085013567ffffffffffffffff81111561320357613202614219565b5b61320f87828801613052565b91505092959194509250565b600080604083850312156132325761323161421e565b5b600061324085828601612ffe565b925050602061325185828601613013565b9150509250929050565b600080604083850312156132725761327161421e565b5b600061328085828601612ffe565b9250506020613291858286016130ae565b9150509250929050565b6000602082840312156132b1576132b061421e565b5b60006132bf84828501613028565b91505092915050565b6000602082840312156132de576132dd61421e565b5b60006132ec8482850161303d565b91505092915050565b60006020828403121561330b5761330a61421e565b5b600082013567ffffffffffffffff81111561332957613328614219565b5b61333584828501613080565b91505092915050565b6000602082840312156133545761335361421e565b5b6000613362848285016130ae565b91505092915050565b6000602082840312156133815761338061421e565b5b600061338f848285016130c3565b91505092915050565b60006133a48383613849565b60208301905092915050565b6133b981613ef3565b82525050565b60006133ca82613d3e565b6133d48185613d6c565b93506133df83613d2e565b8060005b838110156134105781516133f78882613398565b975061340283613d5f565b9250506001810190506133e3565b5085935050505092915050565b61342681613f05565b82525050565b600061343782613d49565b6134418185613d7d565b9350613451818560208601613f91565b61345a81614223565b840191505092915050565b600061347082613d54565b61347a8185613d8e565b935061348a818560208601613f91565b61349381614223565b840191505092915050565b60006134a982613d54565b6134b38185613d9f565b93506134c3818560208601613f91565b80840191505092915050565b60006134dc603383613d8e565b91506134e782614234565b604082019050919050565b60006134ff602b83613d8e565b915061350a82614283565b604082019050919050565b6000613522603283613d8e565b915061352d826142d2565b604082019050919050565b6000613545602683613d8e565b915061355082614321565b604082019050919050565b6000613568601c83613d8e565b915061357382614370565b602082019050919050565b600061358b602483613d8e565b915061359682614399565b604082019050919050565b60006135ae601983613d8e565b91506135b9826143e8565b602082019050919050565b60006135d1601283613d8e565b91506135dc82614411565b602082019050919050565b60006135f4602c83613d8e565b91506135ff8261443a565b604082019050919050565b6000613617603883613d8e565b915061362282614489565b604082019050919050565b600061363a602a83613d8e565b9150613645826144d8565b604082019050919050565b600061365d602983613d8e565b915061366882614527565b604082019050919050565b6000613680602383613d8e565b915061368b82614576565b604082019050919050565b60006136a3601d83613d8e565b91506136ae826145c5565b602082019050919050565b60006136c6602083613d8e565b91506136d1826145ee565b602082019050919050565b60006136e9600883613d8e565b91506136f482614617565b602082019050919050565b600061370c602c83613d8e565b915061371782614640565b604082019050919050565b600061372f602583613d8e565b915061373a8261468f565b604082019050919050565b6000613752602083613d8e565b915061375d826146de565b602082019050919050565b6000613775602683613d8e565b915061378082614707565b604082019050919050565b6000613798602983613d8e565b91506137a382614756565b604082019050919050565b60006137bb602f83613d8e565b91506137c6826147a5565b604082019050919050565b60006137de602183613d8e565b91506137e9826147f4565b604082019050919050565b6000613801603183613d8e565b915061380c82614843565b604082019050919050565b6000613824602c83613d8e565b915061382f82614892565b604082019050919050565b61384381613f3d565b82525050565b61385281613f6b565b82525050565b61386181613f6b565b82525050565b6000613873828561349e565b915061387f828461349e565b91508190509392505050565b60006020820190506138a060008301846133b0565b92915050565b60006080820190506138bb60008301876133b0565b6138c860208301866133b0565b6138d56040830185613858565b81810360608301526138e7818461342c565b905095945050505050565b6000602082019050818103600083015261390c81846133bf565b905092915050565b6000602082019050613929600083018461341d565b92915050565b600060208201905081810360008301526139498184613465565b905092915050565b6000602082019050818103600083015261396a816134cf565b9050919050565b6000602082019050818103600083015261398a816134f2565b9050919050565b600060208201905081810360008301526139aa81613515565b9050919050565b600060208201905081810360008301526139ca81613538565b9050919050565b600060208201905081810360008301526139ea8161355b565b9050919050565b60006020820190508181036000830152613a0a8161357e565b9050919050565b60006020820190508181036000830152613a2a816135a1565b9050919050565b60006020820190508181036000830152613a4a816135c4565b9050919050565b60006020820190508181036000830152613a6a816135e7565b9050919050565b60006020820190508181036000830152613a8a8161360a565b9050919050565b60006020820190508181036000830152613aaa8161362d565b9050919050565b60006020820190508181036000830152613aca81613650565b9050919050565b60006020820190508181036000830152613aea81613673565b9050919050565b60006020820190508181036000830152613b0a81613696565b9050919050565b60006020820190508181036000830152613b2a816136b9565b9050919050565b60006020820190508181036000830152613b4a816136dc565b9050919050565b60006020820190508181036000830152613b6a816136ff565b9050919050565b60006020820190508181036000830152613b8a81613722565b9050919050565b60006020820190508181036000830152613baa81613745565b9050919050565b60006020820190508181036000830152613bca81613768565b9050919050565b60006020820190508181036000830152613bea8161378b565b9050919050565b60006020820190508181036000830152613c0a816137ae565b9050919050565b60006020820190508181036000830152613c2a816137d1565b9050919050565b60006020820190508181036000830152613c4a816137f4565b9050919050565b60006020820190508181036000830152613c6a81613817565b9050919050565b6000602082019050613c86600083018461383a565b92915050565b6000602082019050613ca16000830184613858565b92915050565b6000613cb1613cc2565b9050613cbd8282614020565b919050565b6000604051905090565b600067ffffffffffffffff821115613ce757613ce66141e0565b5b613cf082614223565b9050602081019050919050565b600067ffffffffffffffff821115613d1857613d176141e0565b5b613d2182614223565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613db582613f6b565b9150613dc083613f6b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613df557613df46140f5565b5b828201905092915050565b6000613e0b82613f6b565b9150613e1683613f6b565b925082613e2657613e25614124565b5b828204905092915050565b6000613e3c82613f6b565b9150613e4783613f6b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8057613e7f6140f5565b5b828202905092915050565b6000613e9682613f3d565b9150613ea183613f3d565b925082821015613eb457613eb36140f5565b5b828203905092915050565b6000613eca82613f6b565b9150613ed583613f6b565b925082821015613ee857613ee76140f5565b5b828203905092915050565b6000613efe82613f4b565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613faf578082015181840152602081019050613f94565b83811115613fbe576000848401525b50505050565b6000613fcf82613f3d565b91506000821415613fe357613fe26140f5565b5b600182039050919050565b6000600282049050600182168061400657607f821691505b6020821081141561401a57614019614153565b5b50919050565b61402982614223565b810181811067ffffffffffffffff82111715614048576140476141e0565b5b80604052505050565b600061405c82613f6b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561408f5761408e6140f5565b5b600182019050919050565b60006140a582613f75565b915060ff8214156140b9576140b86140f5565b5b600182019050919050565b60006140cf82613f6b565b91506140da83613f6b565b9250826140ea576140e9614124565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e756d626572206f6620746f6b656e732063616e206e6f74206265206c65737360008201527f207468616e206f7220657175616c20746f203000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f53616c65206973206e6f74206163746976650000000000000000000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f43686f73656e20416d6f756e74206578636565647320616c6c6f776564204d6960008201527f6e74730000000000000000000000000000000000000000000000000000000000602082015250565b7f53656e742065746865722076616c756520697320696e636f7272656374000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f53616c6520656e64000000000000000000000000000000000000000000000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f43686f73656e20416d6f756e74206d757374206265206265747765656e20312060008201527f616e642035000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5175616e74697479206d757374206265206c6573736572207468656e204d617860008201527f537570706c790000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6148ea81613ef3565b81146148f557600080fd5b50565b61490181613f05565b811461490c57600080fd5b50565b61491881613f11565b811461492357600080fd5b50565b61492f81613f6b565b811461493a57600080fd5b50565b61494681613f75565b811461495157600080fd5b5056fea264697066735822122038287b2abdb70f310a0b823023b93a588f69be58fd2559d0a2b7916f0094b23864736f6c63430008070033
Deployed Bytecode Sourcemap
21281:5156:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18660:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13211:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12794:411;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19152:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21488:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13909:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23648:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18890:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25633:344;;;;;;;;;;;;;:::i;:::-;;14201:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24627:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23883:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21592:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19271:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23447:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11889:239;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11675:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11213:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24063:73;;;;;;;;;;;;;:::i;:::-;;25276:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24726:544;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10174:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23550:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12240:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23972:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21448:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13438:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21559:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14392:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;26090:344;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21650:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21402:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24142:479;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13739:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10393:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18660:224;18762:4;18801:35;18786:50;;;:11;:50;;;;:90;;;;18840:36;18864:11;18840:23;:36::i;:::-;18786:90;18779:97;;18660:224;;;:::o;12134:100::-;12188:13;12221:5;12214:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:100;:::o;13211:221::-;13287:7;13315:16;13323:7;13315;:16::i;:::-;13307:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13400:15;:24;13416:7;13400:24;;;;;;;;;;;;;;;;;;;;;13393:31;;13211:221;;;:::o;12794:411::-;12875:13;12891:23;12906:7;12891:14;:23::i;:::-;12875:39;;12939:5;12933:11;;:2;:11;;;;12925:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;13033:5;13017:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;13042:37;13059:5;13066:12;:10;:12::i;:::-;13042:16;:37::i;:::-;13017:62;12995:168;;;;;;;;;;;;:::i;:::-;;;;;;;;;13176:21;13185:2;13189:7;13176:8;:21::i;:::-;12864:341;12794:411;;:::o;19152:113::-;19213:7;19240:10;:17;;;;19233:24;;19152:113;:::o;21488:25::-;;;;:::o;13909:286::-;14051:41;14070:12;:10;:12::i;:::-;14084:7;14051:18;:41::i;:::-;14043:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14159:28;14169:4;14175:2;14179:7;14159:9;:28::i;:::-;13909:286;;;:::o;23648:124::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23712:1:::1;23703:10;;:6;:10;;;;23737:1;23732;:6;;;:32;;23754:10;23732:32;;;23741:10;23732:32;23724:40;;:5;:40;;;;23648:124:::0;:::o;18890:256::-;18987:7;19023:23;19040:5;19023:16;:23::i;:::-;19015:5;:31;19007:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19112:12;:19;19125:5;19112:19;;;;;;;;;;;;;;;:26;19132:5;19112:26;;;;;;;;;;;;19105:33;;18890:256;;;;:::o;25633:344::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;25681:15:::1;25699:21;25681:39;;25733:13;25749:14;25761:1;25749:7;:11;;:14;;;;:::i;:::-;25733:30;;25791:14;25801:3;25791:5;:9;;:14;;;;:::i;:::-;25782:23;;25824:42;25816:60;;:67;25877:5;25816:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25916:5;25906:7;:15;;;;:::i;:::-;25896:25;;25940:10;25932:28;;:37;25961:7;25932:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;25670:307;;25633:344::o:0;14201:185::-;14339:39;14356:4;14362:2;14366:7;14339:39;;;;;;;;;;;;:16;:39::i;:::-;14201:185;;;:::o;24627:93::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24708:4:::1;24696:9;:16;;;;;;;;;;;;:::i;:::-;;24627:93:::0;:::o;23883:83::-;23925:7;23952:6;;23945:13;;23883:83;:::o;21592:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;19271:233::-;19346:7;19382:30;:28;:30::i;:::-;19374:5;:38;19366:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;19479:10;19490:5;19479:17;;;;;;;;:::i;:::-;;;;;;;;;;19472:24;;19271:233;;;:::o;23447:97::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23529:7:::1;23518:8;:18;;;;;;;;;;;;:::i;:::-;;23447:97:::0;:::o;11889:239::-;11961:7;11981:13;11997:7;:16;12005:7;11997:16;;;;;;;;;;;;;;;;;;;;;11981:32;;12049:1;12032:19;;:5;:19;;;;12024:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12115:5;12108:12;;;11889:239;;;:::o;11675:208::-;11747:7;11792:1;11775:19;;:5;:19;;;;11767:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11859:9;:16;11869:5;11859:16;;;;;;;;;;;;;;;;11852:23;;11675:208;;;:::o;11213:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;24063:73::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;24122:6:::1;;;;;;;;;;;24121:7;24112:6;;:16;;;;;;;;;;;;;;;;;;24063:73::o:0;25276:351::-;25336:16;25370:13;25386:17;25396:6;25386:9;:17::i;:::-;25370:33;;25414:23;25454:5;25440:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25414:46;;25476:13;25471:125;25503:5;25495;:13;25471:125;;;25550:34;25570:6;25578:5;25550:19;:34::i;:::-;25534:6;25541:5;25534:13;;;;;;;;:::i;:::-;;;;;;;:50;;;;;25510:7;;;;;:::i;:::-;;;;25471:125;;;;25613:6;25606:13;;;;25276:351;;;:::o;24726:544::-;21438:3;23816:13;:11;:13::i;:::-;:28;23808:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;24821:1:::1;24811:6;;:11;;24803:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;24892:3;24878:12;24864:13;:11;:13::i;:::-;:26;;;;:::i;:::-;:31;;24856:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;24972:1;24957:12;:16;:37;;;;;24993:1;24977:12;:17;;24957:37;24948:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;25083:27;25097:12;25083:9;:13;;:27;;;;:::i;:::-;25056:23;25066:12;25056:5;;:9;;:23;;;;:::i;:::-;:54;25048:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;25160:9;25155:108;25179:12;25175:1;:16;25155:108;;;25213:38;25223:10;25249:1;25235:13;:11;:13::i;:::-;:15;;;;:::i;:::-;25213:9;:38::i;:::-;25193:3;;;;;:::i;:::-;;;;25155:108;;;;24726:544:::0;:::o;10174:87::-;10220:7;10247:6;;;;;;;;;;;10240:13;;10174:87;:::o;23550:92::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23625:9:::1;23617:5;:17;;;;23550:92:::0;:::o;12240:104::-;12296:13;12329:7;12322:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12240:104;:::o;23972:85::-;24013:7;24043:5;;24036:12;;23972:85;:::o;21448:33::-;;;;:::o;13438:295::-;13553:12;:10;:12::i;:::-;13541:24;;:8;:24;;;;13533:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;13653:8;13608:18;:32;13627:12;:10;:12::i;:::-;13608:32;;;;;;;;;;;;;;;:42;13641:8;13608:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;13706:8;13677:48;;13692:12;:10;:12::i;:::-;13677:48;;;13716:8;13677:48;;;;;;:::i;:::-;;;;;;;;13438:295;;:::o;21559:26::-;;;;;;;;;;;;;:::o;14392:328::-;14567:41;14586:12;:10;:12::i;:::-;14600:7;14567:18;:41::i;:::-;14559:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;14673:39;14687:4;14693:2;14697:7;14706:5;14673:13;:39::i;:::-;14392:328;;;;:::o;26090:344::-;26155:13;26189:16;26197:7;26189;:16::i;:::-;26181:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;26297:1;26277:9;:7;:9::i;:::-;26271:23;:27;26268:158;;;26321:6;;;;;;;;;;;:76;;26388:9;26321:76;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26354:9;:7;:9::i;:::-;26365:18;:7;:16;:18::i;:::-;26337:47;;;;;;;;;:::i;:::-;;;;;;;;;;;;;26321:76;26314:83;;;;26268:158;26090:344;;;;:::o;21650:108::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21402:39::-;21438:3;21402:39;:::o;24142:479::-;21438:3;23816:13;:11;:13::i;:::-;:28;23808:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;24215:1:::1;24211;:5;;;24202:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;24328:1;24323;24293:31;;:15;:27;24309:10;24293:27;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;:::i;:::-;:36;;;;24284:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;24411:3;24406:1;24390:17;;:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;24381:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;24473:7;24469:145;24488:1;24484:5;;:1;:5;;;24469:145;;;24520:38;24530:10;24556:1;24542:13;:11;:13::i;:::-;:15;;;;:::i;:::-;24520:9;:38::i;:::-;24573:15;:27;24589:10;24573:27;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;24491:3;;;;;:::i;:::-;;;;24469:145;;;;24142:479:::0;:::o;13739:164::-;13836:4;13860:18;:25;13879:5;13860:25;;;;;;;;;;;;;;;:35;13886:8;13860:35;;;;;;;;;;;;;;;;;;;;;;;;;13853:42;;13739:164;;;;:::o;10393:192::-;10318:12;:10;:12::i;:::-;10307:23;;:7;:5;:7::i;:::-;:23;;;10299:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10502:1:::1;10482:22;;:8;:22;;;;10474:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10558:19;10568:8;10558:9;:19::i;:::-;10393:192:::0;:::o;11364:305::-;11466:4;11518:25;11503:40;;;:11;:40;;;;:105;;;;11575:33;11560:48;;;:11;:48;;;;11503:105;:158;;;;11625:36;11649:11;11625:23;:36::i;:::-;11503:158;11483:178;;11364:305;;;:::o;15047:127::-;15112:4;15164:1;15136:30;;:7;:16;15144:7;15136:16;;;;;;;;;;;;;;;;;;;;;:30;;;;15129:37;;15047:127;;;:::o;9637:98::-;9690:7;9717:10;9710:17;;9637:98;:::o;17235:174::-;17337:2;17310:15;:24;17326:7;17310:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;17393:7;17389:2;17355:46;;17364:23;17379:7;17364:14;:23::i;:::-;17355:46;;;;;;;;;;;;17235:174;;:::o;15180:348::-;15273:4;15298:16;15306:7;15298;:16::i;:::-;15290:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15374:13;15390:23;15405:7;15390:14;:23::i;:::-;15374:39;;15443:5;15432:16;;:7;:16;;;:51;;;;15476:7;15452:31;;:20;15464:7;15452:11;:20::i;:::-;:31;;;15432:51;:87;;;;15487:32;15504:5;15511:7;15487:16;:32::i;:::-;15432:87;15424:96;;;15180:348;;;;:::o;16703:526::-;16862:4;16835:31;;:23;16850:7;16835:14;:23::i;:::-;:31;;;16827:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16945:1;16931:16;;:2;:16;;;;16923:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;17001:39;17022:4;17028:2;17032:7;17001:20;:39::i;:::-;17053:29;17070:1;17074:7;17053:8;:29::i;:::-;17114:1;17095:9;:15;17105:4;17095:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;17143:1;17126:9;:13;17136:2;17126:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;17174:2;17155:7;:16;17163:7;17155:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;17213:7;17209:2;17194:27;;17203:4;17194:27;;;;;;;;;;;;16703:526;;;:::o;1396:98::-;1454:7;1485:1;1481;:5;;;;:::i;:::-;1474:12;;1396:98;;;;:::o;1500:::-;1558:7;1589:1;1585;:5;;;;:::i;:::-;1578:12;;1500:98;;;;:::o;25983:101::-;26028:4;26057:19;:17;:19::i;:::-;26050:26;;25983:101;:::o;15534:110::-;15610:26;15620:2;15624:7;15610:26;;;;;;;;;;;;:9;:26::i;:::-;15534:110;;:::o;14726:315::-;14883:28;14893:4;14899:2;14903:7;14883:9;:28::i;:::-;14930:48;14953:4;14959:2;14963:7;14972:5;14930:22;:48::i;:::-;14922:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;14726:315;;;;:::o;12689:99::-;12739:13;12772:8;12765:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12689:99;:::o;2531:534::-;2587:13;2628:1;2619:5;:10;2615:53;;;2646:10;;;;;;;;;;;;;;;;;;;;;2615:53;2678:12;2693:5;2678:20;;2709:14;2734:78;2749:1;2741:4;:9;2734:78;;2767:8;;;;;:::i;:::-;;;;2798:2;2790:10;;;;;:::i;:::-;;;2734:78;;;2822:19;2854:6;2844:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2822:39;;2872:154;2888:1;2879:5;:10;2872:154;;2916:1;2906:11;;;;;:::i;:::-;;;2983:2;2975:5;:10;;;;:::i;:::-;2962:2;:24;;;;:::i;:::-;2949:39;;2932:6;2939;2932:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;3012:2;3003:11;;;;;:::i;:::-;;;2872:154;;;3050:6;3036:21;;;;;2531:534;;;;:::o;10593:173::-;10649:16;10668:6;;;;;;;;;;;10649:25;;10694:8;10685:6;;:17;;;;;;;;;;;;;;;;;;10749:8;10718:40;;10739:8;10718:40;;;;;;;;;;;;10638:128;10593:173;:::o;7749:157::-;7834:4;7873:25;7858:40;;;:11;:40;;;;7851:47;;7749:157;;;:::o;19510:589::-;19654:45;19681:4;19687:2;19691:7;19654:26;:45::i;:::-;19732:1;19716:18;;:4;:18;;;19712:187;;;19751:40;19783:7;19751:31;:40::i;:::-;19712:187;;;19821:2;19813:10;;:4;:10;;;19809:90;;19840:47;19873:4;19879:7;19840:32;:47::i;:::-;19809:90;19712:187;19927:1;19913:16;;:2;:16;;;19909:183;;;19946:45;19983:7;19946:36;:45::i;:::-;19909:183;;;20019:4;20013:10;;:2;:10;;;20009:83;;20040:40;20068:2;20072:7;20040:27;:40::i;:::-;20009:83;19909:183;19510:589;;;:::o;15650:321::-;15780:18;15786:2;15790:7;15780:5;:18::i;:::-;15831:54;15862:1;15866:2;15870:7;15879:5;15831:22;:54::i;:::-;15809:154;;;;;;;;;;;;:::i;:::-;;;;;;;;;15650:321;;;:::o;17415:803::-;17570:4;17591:15;:2;:13;;;:15::i;:::-;17587:624;;;17643:2;17627:36;;;17664:12;:10;:12::i;:::-;17678:4;17684:7;17693:5;17627:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;17623:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17890:1;17873:6;:13;:18;17869:272;;;17916:60;;;;;;;;;;:::i;:::-;;;;;;;;17869:272;18091:6;18085:13;18076:6;18072:2;18068:15;18061:38;17623:533;17760:45;;;17750:55;;;:6;:55;;;;17743:62;;;;;17587:624;18195:4;18188:11;;17415:803;;;;;;;:::o;18224:126::-;;;;:::o;20332:164::-;20436:10;:17;;;;20409:15;:24;20425:7;20409:24;;;;;;;;;;;:44;;;;20464:10;20480:7;20464:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20332:164;:::o;20502:440::-;20596:22;20646:1;20621:22;20638:4;20621:16;:22::i;:::-;:26;;;;:::i;:::-;20596:51;;20658:18;20679:17;:26;20697:7;20679:26;;;;;;;;;;;;20658:47;;20736:14;20722:10;:28;20718:119;;20767:19;20789:12;:18;20802:4;20789:18;;;;;;;;;;;;;;;:34;20808:14;20789:34;;;;;;;;;;;;20767:56;;20752:85;20718:119;20856:17;:26;20874:7;20856:26;;;;;;;;;;;20849:33;;;20900:12;:18;20913:4;20900:18;;;;;;;;;;;;;;;:34;20919:14;20900:34;;;;;;;;;;;20893:41;;;20583:359;;20502:440;;:::o;20948:328::-;21032:22;21077:1;21057:10;:17;;;;:21;;;;:::i;:::-;21032:46;;21089:18;21110:15;:24;21126:7;21110:24;;;;;;;;;;;;21089:45;;21147:19;21169:10;21180:14;21169:26;;;;;;;;:::i;:::-;;;;;;;;;;21147:48;;21217:15;:24;21233:7;21217:24;;;;;;;;;;;21210:31;;;21252:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21019:257;;;20948:328;:::o;20105:221::-;20190:14;20207:20;20224:2;20207:16;:20::i;:::-;20190:37;;20265:7;20238:12;:16;20251:2;20238:16;;;;;;;;;;;;;;;:24;20255:6;20238:24;;;;;;;;;;;:34;;;;20312:6;20283:17;:26;20301:7;20283:26;;;;;;;;;;;:35;;;;20179:147;20105:221;;:::o;15977:382::-;16071:1;16057:16;;:2;:16;;;;16049:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16130:16;16138:7;16130;:16::i;:::-;16129:17;16121:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;16192:45;16221:1;16225:2;16229:7;16192:20;:45::i;:::-;16267:1;16250:9;:13;16260:2;16250:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;16298:2;16279:7;:16;16287:7;16279:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;16343:7;16339:2;16318:33;;16335:1;16318:33;;;;;;;;;;;;15977:382;;:::o;3896:198::-;3956:4;3975:12;4042:7;4030:20;4022:28;;4085:1;4078:4;:8;4071:15;;;3896:198;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:139::-;887:5;925:6;912:20;903:29;;941:33;968:5;941:33;:::i;:::-;841:139;;;;:::o;986:133::-;1029:5;1067:6;1054:20;1045:29;;1083:30;1107:5;1083:30;:::i;:::-;986:133;;;;:::o;1125:137::-;1170:5;1208:6;1195:20;1186:29;;1224:32;1250:5;1224:32;:::i;:::-;1125:137;;;;:::o;1268:141::-;1324:5;1355:6;1349:13;1340:22;;1371:32;1397:5;1371:32;:::i;:::-;1268:141;;;;:::o;1428:338::-;1483:5;1532:3;1525:4;1517:6;1513:17;1509:27;1499:122;;1540:79;;:::i;:::-;1499:122;1657:6;1644:20;1682:78;1756:3;1748:6;1741:4;1733:6;1729:17;1682:78;:::i;:::-;1673:87;;1489:277;1428:338;;;;:::o;1786:340::-;1842:5;1891:3;1884:4;1876:6;1872:17;1868:27;1858:122;;1899:79;;:::i;:::-;1858:122;2016:6;2003:20;2041:79;2116:3;2108:6;2101:4;2093:6;2089:17;2041:79;:::i;:::-;2032:88;;1848:278;1786:340;;;;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:135::-;2321:5;2359:6;2346:20;2337:29;;2375:31;2400:5;2375:31;:::i;:::-;2277:135;;;;:::o;2418:329::-;2477:6;2526:2;2514:9;2505:7;2501:23;2497:32;2494:119;;;2532:79;;:::i;:::-;2494:119;2652:1;2677:53;2722:7;2713:6;2702:9;2698:22;2677:53;:::i;:::-;2667:63;;2623:117;2418:329;;;;:::o;2753:474::-;2821:6;2829;2878:2;2866:9;2857:7;2853:23;2849:32;2846:119;;;2884:79;;:::i;:::-;2846:119;3004:1;3029:53;3074:7;3065:6;3054:9;3050:22;3029:53;:::i;:::-;3019:63;;2975:117;3131:2;3157:53;3202:7;3193:6;3182:9;3178:22;3157:53;:::i;:::-;3147:63;;3102:118;2753:474;;;;;:::o;3233:619::-;3310:6;3318;3326;3375:2;3363:9;3354:7;3350:23;3346:32;3343:119;;;3381:79;;:::i;:::-;3343:119;3501:1;3526:53;3571:7;3562:6;3551:9;3547:22;3526:53;:::i;:::-;3516:63;;3472:117;3628:2;3654:53;3699:7;3690:6;3679:9;3675:22;3654:53;:::i;:::-;3644:63;;3599:118;3756:2;3782:53;3827:7;3818:6;3807:9;3803:22;3782:53;:::i;:::-;3772:63;;3727:118;3233:619;;;;;:::o;3858:943::-;3953:6;3961;3969;3977;4026:3;4014:9;4005:7;4001:23;3997:33;3994:120;;;4033:79;;:::i;:::-;3994:120;4153:1;4178:53;4223:7;4214:6;4203:9;4199:22;4178:53;:::i;:::-;4168:63;;4124:117;4280:2;4306:53;4351:7;4342:6;4331:9;4327:22;4306:53;:::i;:::-;4296:63;;4251:118;4408:2;4434:53;4479:7;4470:6;4459:9;4455:22;4434:53;:::i;:::-;4424:63;;4379:118;4564:2;4553:9;4549:18;4536:32;4595:18;4587:6;4584:30;4581:117;;;4617:79;;:::i;:::-;4581:117;4722:62;4776:7;4767:6;4756:9;4752:22;4722:62;:::i;:::-;4712:72;;4507:287;3858:943;;;;;;;:::o;4807:468::-;4872:6;4880;4929:2;4917:9;4908:7;4904:23;4900:32;4897:119;;;4935:79;;:::i;:::-;4897:119;5055:1;5080:53;5125:7;5116:6;5105:9;5101:22;5080:53;:::i;:::-;5070:63;;5026:117;5182:2;5208:50;5250:7;5241:6;5230:9;5226:22;5208:50;:::i;:::-;5198:60;;5153:115;4807:468;;;;;:::o;5281:474::-;5349:6;5357;5406:2;5394:9;5385:7;5381:23;5377:32;5374:119;;;5412:79;;:::i;:::-;5374:119;5532:1;5557:53;5602:7;5593:6;5582:9;5578:22;5557:53;:::i;:::-;5547:63;;5503:117;5659:2;5685:53;5730:7;5721:6;5710:9;5706:22;5685:53;:::i;:::-;5675:63;;5630:118;5281:474;;;;;:::o;5761:327::-;5819:6;5868:2;5856:9;5847:7;5843:23;5839:32;5836:119;;;5874:79;;:::i;:::-;5836:119;5994:1;6019:52;6063:7;6054:6;6043:9;6039:22;6019:52;:::i;:::-;6009:62;;5965:116;5761:327;;;;:::o;6094:349::-;6163:6;6212:2;6200:9;6191:7;6187:23;6183:32;6180:119;;;6218:79;;:::i;:::-;6180:119;6338:1;6363:63;6418:7;6409:6;6398:9;6394:22;6363:63;:::i;:::-;6353:73;;6309:127;6094:349;;;;:::o;6449:509::-;6518:6;6567:2;6555:9;6546:7;6542:23;6538:32;6535:119;;;6573:79;;:::i;:::-;6535:119;6721:1;6710:9;6706:17;6693:31;6751:18;6743:6;6740:30;6737:117;;;6773:79;;:::i;:::-;6737:117;6878:63;6933:7;6924:6;6913:9;6909:22;6878:63;:::i;:::-;6868:73;;6664:287;6449:509;;;;:::o;6964:329::-;7023:6;7072:2;7060:9;7051:7;7047:23;7043:32;7040:119;;;7078:79;;:::i;:::-;7040:119;7198:1;7223:53;7268:7;7259:6;7248:9;7244:22;7223:53;:::i;:::-;7213:63;;7169:117;6964:329;;;;:::o;7299:325::-;7356:6;7405:2;7393:9;7384:7;7380:23;7376:32;7373:119;;;7411:79;;:::i;:::-;7373:119;7531:1;7556:51;7599:7;7590:6;7579:9;7575:22;7556:51;:::i;:::-;7546:61;;7502:115;7299:325;;;;:::o;7630:179::-;7699:10;7720:46;7762:3;7754:6;7720:46;:::i;:::-;7798:4;7793:3;7789:14;7775:28;;7630:179;;;;:::o;7815:118::-;7902:24;7920:5;7902:24;:::i;:::-;7897:3;7890:37;7815:118;;:::o;7969:732::-;8088:3;8117:54;8165:5;8117:54;:::i;:::-;8187:86;8266:6;8261:3;8187:86;:::i;:::-;8180:93;;8297:56;8347:5;8297:56;:::i;:::-;8376:7;8407:1;8392:284;8417:6;8414:1;8411:13;8392:284;;;8493:6;8487:13;8520:63;8579:3;8564:13;8520:63;:::i;:::-;8513:70;;8606:60;8659:6;8606:60;:::i;:::-;8596:70;;8452:224;8439:1;8436;8432:9;8427:14;;8392:284;;;8396:14;8692:3;8685:10;;8093:608;;;7969:732;;;;:::o;8707:109::-;8788:21;8803:5;8788:21;:::i;:::-;8783:3;8776:34;8707:109;;:::o;8822:360::-;8908:3;8936:38;8968:5;8936:38;:::i;:::-;8990:70;9053:6;9048:3;8990:70;:::i;:::-;8983:77;;9069:52;9114:6;9109:3;9102:4;9095:5;9091:16;9069:52;:::i;:::-;9146:29;9168:6;9146:29;:::i;:::-;9141:3;9137:39;9130:46;;8912:270;8822:360;;;;:::o;9188:364::-;9276:3;9304:39;9337:5;9304:39;:::i;:::-;9359:71;9423:6;9418:3;9359:71;:::i;:::-;9352:78;;9439:52;9484:6;9479:3;9472:4;9465:5;9461:16;9439:52;:::i;:::-;9516:29;9538:6;9516:29;:::i;:::-;9511:3;9507:39;9500:46;;9280:272;9188:364;;;;:::o;9558:377::-;9664:3;9692:39;9725:5;9692:39;:::i;:::-;9747:89;9829:6;9824:3;9747:89;:::i;:::-;9740:96;;9845:52;9890:6;9885:3;9878:4;9871:5;9867:16;9845:52;:::i;:::-;9922:6;9917:3;9913:16;9906:23;;9668:267;9558:377;;;;:::o;9941:366::-;10083:3;10104:67;10168:2;10163:3;10104:67;:::i;:::-;10097:74;;10180:93;10269:3;10180:93;:::i;:::-;10298:2;10293:3;10289:12;10282:19;;9941:366;;;:::o;10313:::-;10455:3;10476:67;10540:2;10535:3;10476:67;:::i;:::-;10469:74;;10552:93;10641:3;10552:93;:::i;:::-;10670:2;10665:3;10661:12;10654:19;;10313:366;;;:::o;10685:::-;10827:3;10848:67;10912:2;10907:3;10848:67;:::i;:::-;10841:74;;10924:93;11013:3;10924:93;:::i;:::-;11042:2;11037:3;11033:12;11026:19;;10685:366;;;:::o;11057:::-;11199:3;11220:67;11284:2;11279:3;11220:67;:::i;:::-;11213:74;;11296:93;11385:3;11296:93;:::i;:::-;11414:2;11409:3;11405:12;11398:19;;11057:366;;;:::o;11429:::-;11571:3;11592:67;11656:2;11651:3;11592:67;:::i;:::-;11585:74;;11668:93;11757:3;11668:93;:::i;:::-;11786:2;11781:3;11777:12;11770:19;;11429:366;;;:::o;11801:::-;11943:3;11964:67;12028:2;12023:3;11964:67;:::i;:::-;11957:74;;12040:93;12129:3;12040:93;:::i;:::-;12158:2;12153:3;12149:12;12142:19;;11801:366;;;:::o;12173:::-;12315:3;12336:67;12400:2;12395:3;12336:67;:::i;:::-;12329:74;;12412:93;12501:3;12412:93;:::i;:::-;12530:2;12525:3;12521:12;12514:19;;12173:366;;;:::o;12545:::-;12687:3;12708:67;12772:2;12767:3;12708:67;:::i;:::-;12701:74;;12784:93;12873:3;12784:93;:::i;:::-;12902:2;12897:3;12893:12;12886:19;;12545:366;;;:::o;12917:::-;13059:3;13080:67;13144:2;13139:3;13080:67;:::i;:::-;13073:74;;13156:93;13245:3;13156:93;:::i;:::-;13274:2;13269:3;13265:12;13258:19;;12917:366;;;:::o;13289:::-;13431:3;13452:67;13516:2;13511:3;13452:67;:::i;:::-;13445:74;;13528:93;13617:3;13528:93;:::i;:::-;13646:2;13641:3;13637:12;13630:19;;13289:366;;;:::o;13661:::-;13803:3;13824:67;13888:2;13883:3;13824:67;:::i;:::-;13817:74;;13900:93;13989:3;13900:93;:::i;:::-;14018:2;14013:3;14009:12;14002:19;;13661:366;;;:::o;14033:::-;14175:3;14196:67;14260:2;14255:3;14196:67;:::i;:::-;14189:74;;14272:93;14361:3;14272:93;:::i;:::-;14390:2;14385:3;14381:12;14374:19;;14033:366;;;:::o;14405:::-;14547:3;14568:67;14632:2;14627:3;14568:67;:::i;:::-;14561:74;;14644:93;14733:3;14644:93;:::i;:::-;14762:2;14757:3;14753:12;14746:19;;14405:366;;;:::o;14777:::-;14919:3;14940:67;15004:2;14999:3;14940:67;:::i;:::-;14933:74;;15016:93;15105:3;15016:93;:::i;:::-;15134:2;15129:3;15125:12;15118:19;;14777:366;;;:::o;15149:::-;15291:3;15312:67;15376:2;15371:3;15312:67;:::i;:::-;15305:74;;15388:93;15477:3;15388:93;:::i;:::-;15506:2;15501:3;15497:12;15490:19;;15149:366;;;:::o;15521:365::-;15663:3;15684:66;15748:1;15743:3;15684:66;:::i;:::-;15677:73;;15759:93;15848:3;15759:93;:::i;:::-;15877:2;15872:3;15868:12;15861:19;;15521:365;;;:::o;15892:366::-;16034:3;16055:67;16119:2;16114:3;16055:67;:::i;:::-;16048:74;;16131:93;16220:3;16131:93;:::i;:::-;16249:2;16244:3;16240:12;16233:19;;15892:366;;;:::o;16264:::-;16406:3;16427:67;16491:2;16486:3;16427:67;:::i;:::-;16420:74;;16503:93;16592:3;16503:93;:::i;:::-;16621:2;16616:3;16612:12;16605:19;;16264:366;;;:::o;16636:::-;16778:3;16799:67;16863:2;16858:3;16799:67;:::i;:::-;16792:74;;16875:93;16964:3;16875:93;:::i;:::-;16993:2;16988:3;16984:12;16977:19;;16636:366;;;:::o;17008:::-;17150:3;17171:67;17235:2;17230:3;17171:67;:::i;:::-;17164:74;;17247:93;17336:3;17247:93;:::i;:::-;17365:2;17360:3;17356:12;17349:19;;17008:366;;;:::o;17380:::-;17522:3;17543:67;17607:2;17602:3;17543:67;:::i;:::-;17536:74;;17619:93;17708:3;17619:93;:::i;:::-;17737:2;17732:3;17728:12;17721:19;;17380:366;;;:::o;17752:::-;17894:3;17915:67;17979:2;17974:3;17915:67;:::i;:::-;17908:74;;17991:93;18080:3;17991:93;:::i;:::-;18109:2;18104:3;18100:12;18093:19;;17752:366;;;:::o;18124:::-;18266:3;18287:67;18351:2;18346:3;18287:67;:::i;:::-;18280:74;;18363:93;18452:3;18363:93;:::i;:::-;18481:2;18476:3;18472:12;18465:19;;18124:366;;;:::o;18496:::-;18638:3;18659:67;18723:2;18718:3;18659:67;:::i;:::-;18652:74;;18735:93;18824:3;18735:93;:::i;:::-;18853:2;18848:3;18844:12;18837:19;;18496:366;;;:::o;18868:::-;19010:3;19031:67;19095:2;19090:3;19031:67;:::i;:::-;19024:74;;19107:93;19196:3;19107:93;:::i;:::-;19225:2;19220:3;19216:12;19209:19;;18868:366;;;:::o;19240:115::-;19325:23;19342:5;19325:23;:::i;:::-;19320:3;19313:36;19240:115;;:::o;19361:108::-;19438:24;19456:5;19438:24;:::i;:::-;19433:3;19426:37;19361:108;;:::o;19475:118::-;19562:24;19580:5;19562:24;:::i;:::-;19557:3;19550:37;19475:118;;:::o;19599:435::-;19779:3;19801:95;19892:3;19883:6;19801:95;:::i;:::-;19794:102;;19913:95;20004:3;19995:6;19913:95;:::i;:::-;19906:102;;20025:3;20018:10;;19599:435;;;;;:::o;20040:222::-;20133:4;20171:2;20160:9;20156:18;20148:26;;20184:71;20252:1;20241:9;20237:17;20228:6;20184:71;:::i;:::-;20040:222;;;;:::o;20268:640::-;20463:4;20501:3;20490:9;20486:19;20478:27;;20515:71;20583:1;20572:9;20568:17;20559:6;20515:71;:::i;:::-;20596:72;20664:2;20653:9;20649:18;20640:6;20596:72;:::i;:::-;20678;20746:2;20735:9;20731:18;20722:6;20678:72;:::i;:::-;20797:9;20791:4;20787:20;20782:2;20771:9;20767:18;20760:48;20825:76;20896:4;20887:6;20825:76;:::i;:::-;20817:84;;20268:640;;;;;;;:::o;20914:373::-;21057:4;21095:2;21084:9;21080:18;21072:26;;21144:9;21138:4;21134:20;21130:1;21119:9;21115:17;21108:47;21172:108;21275:4;21266:6;21172:108;:::i;:::-;21164:116;;20914:373;;;;:::o;21293:210::-;21380:4;21418:2;21407:9;21403:18;21395:26;;21431:65;21493:1;21482:9;21478:17;21469:6;21431:65;:::i;:::-;21293:210;;;;:::o;21509:313::-;21622:4;21660:2;21649:9;21645:18;21637:26;;21709:9;21703:4;21699:20;21695:1;21684:9;21680:17;21673:47;21737:78;21810:4;21801:6;21737:78;:::i;:::-;21729:86;;21509:313;;;;:::o;21828:419::-;21994:4;22032:2;22021:9;22017:18;22009:26;;22081:9;22075:4;22071:20;22067:1;22056:9;22052:17;22045:47;22109:131;22235:4;22109:131;:::i;:::-;22101:139;;21828:419;;;:::o;22253:::-;22419:4;22457:2;22446:9;22442:18;22434:26;;22506:9;22500:4;22496:20;22492:1;22481:9;22477:17;22470:47;22534:131;22660:4;22534:131;:::i;:::-;22526:139;;22253:419;;;:::o;22678:::-;22844:4;22882:2;22871:9;22867:18;22859:26;;22931:9;22925:4;22921:20;22917:1;22906:9;22902:17;22895:47;22959:131;23085:4;22959:131;:::i;:::-;22951:139;;22678:419;;;:::o;23103:::-;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:::-;23694:4;23732:2;23721:9;23717:18;23709:26;;23781:9;23775:4;23771:20;23767:1;23756:9;23752:17;23745:47;23809:131;23935:4;23809:131;:::i;:::-;23801:139;;23528:419;;;:::o;23953:::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:::-;24544:4;24582:2;24571:9;24567:18;24559:26;;24631:9;24625:4;24621:20;24617:1;24606:9;24602:17;24595:47;24659:131;24785:4;24659:131;:::i;:::-;24651:139;;24378:419;;;:::o;24803:::-;24969:4;25007:2;24996:9;24992:18;24984:26;;25056:9;25050:4;25046:20;25042:1;25031:9;25027:17;25020:47;25084:131;25210:4;25084:131;:::i;:::-;25076:139;;24803:419;;;:::o;25228:::-;25394:4;25432:2;25421:9;25417:18;25409:26;;25481:9;25475:4;25471:20;25467:1;25456:9;25452:17;25445:47;25509:131;25635:4;25509:131;:::i;:::-;25501:139;;25228:419;;;:::o;25653:::-;25819:4;25857:2;25846:9;25842:18;25834:26;;25906:9;25900:4;25896:20;25892:1;25881:9;25877:17;25870:47;25934:131;26060:4;25934:131;:::i;:::-;25926:139;;25653:419;;;:::o;26078:::-;26244:4;26282:2;26271:9;26267:18;26259:26;;26331:9;26325:4;26321:20;26317:1;26306:9;26302:17;26295:47;26359:131;26485:4;26359:131;:::i;:::-;26351:139;;26078:419;;;:::o;26503:::-;26669:4;26707:2;26696:9;26692:18;26684:26;;26756:9;26750:4;26746:20;26742:1;26731:9;26727:17;26720:47;26784:131;26910:4;26784:131;:::i;:::-;26776:139;;26503:419;;;:::o;26928:::-;27094:4;27132:2;27121:9;27117:18;27109:26;;27181:9;27175:4;27171:20;27167:1;27156:9;27152:17;27145:47;27209:131;27335:4;27209:131;:::i;:::-;27201:139;;26928:419;;;:::o;27353:::-;27519:4;27557:2;27546:9;27542:18;27534:26;;27606:9;27600:4;27596:20;27592:1;27581:9;27577:17;27570:47;27634:131;27760:4;27634:131;:::i;:::-;27626:139;;27353:419;;;:::o;27778:::-;27944:4;27982:2;27971:9;27967:18;27959:26;;28031:9;28025:4;28021:20;28017:1;28006:9;28002:17;27995:47;28059:131;28185:4;28059:131;:::i;:::-;28051:139;;27778:419;;;:::o;28203:::-;28369:4;28407:2;28396:9;28392:18;28384:26;;28456:9;28450:4;28446:20;28442:1;28431:9;28427:17;28420:47;28484:131;28610:4;28484:131;:::i;:::-;28476:139;;28203:419;;;:::o;28628:::-;28794:4;28832:2;28821:9;28817:18;28809:26;;28881:9;28875:4;28871:20;28867:1;28856:9;28852:17;28845:47;28909:131;29035:4;28909:131;:::i;:::-;28901:139;;28628:419;;;:::o;29053:::-;29219:4;29257:2;29246:9;29242:18;29234:26;;29306:9;29300:4;29296:20;29292:1;29281:9;29277:17;29270:47;29334:131;29460:4;29334:131;:::i;:::-;29326:139;;29053:419;;;:::o;29478:::-;29644:4;29682:2;29671:9;29667:18;29659:26;;29731:9;29725:4;29721:20;29717:1;29706:9;29702:17;29695:47;29759:131;29885:4;29759:131;:::i;:::-;29751:139;;29478:419;;;:::o;29903:::-;30069:4;30107:2;30096:9;30092:18;30084:26;;30156:9;30150:4;30146:20;30142:1;30131:9;30127:17;30120:47;30184:131;30310:4;30184:131;:::i;:::-;30176:139;;29903:419;;;:::o;30328:::-;30494:4;30532:2;30521:9;30517:18;30509:26;;30581:9;30575:4;30571:20;30567:1;30556:9;30552:17;30545:47;30609:131;30735:4;30609:131;:::i;:::-;30601:139;;30328:419;;;:::o;30753:::-;30919:4;30957:2;30946:9;30942:18;30934:26;;31006:9;31000:4;30996:20;30992:1;30981:9;30977:17;30970:47;31034:131;31160:4;31034:131;:::i;:::-;31026:139;;30753:419;;;:::o;31178:::-;31344:4;31382:2;31371:9;31367:18;31359:26;;31431:9;31425:4;31421:20;31417:1;31406:9;31402:17;31395:47;31459:131;31585:4;31459:131;:::i;:::-;31451:139;;31178:419;;;:::o;31603:::-;31769:4;31807:2;31796:9;31792:18;31784:26;;31856:9;31850:4;31846:20;31842:1;31831:9;31827:17;31820:47;31884:131;32010:4;31884:131;:::i;:::-;31876:139;;31603:419;;;:::o;32028:::-;32194:4;32232:2;32221:9;32217:18;32209:26;;32281:9;32275:4;32271:20;32267:1;32256:9;32252:17;32245:47;32309:131;32435:4;32309:131;:::i;:::-;32301:139;;32028:419;;;:::o;32453:218::-;32544:4;32582:2;32571:9;32567:18;32559:26;;32595:69;32661:1;32650:9;32646:17;32637:6;32595:69;:::i;:::-;32453:218;;;;:::o;32677:222::-;32770:4;32808:2;32797:9;32793:18;32785:26;;32821:71;32889:1;32878:9;32874:17;32865:6;32821:71;:::i;:::-;32677:222;;;;:::o;32905:129::-;32939:6;32966:20;;:::i;:::-;32956:30;;32995:33;33023:4;33015:6;32995:33;:::i;:::-;32905:129;;;:::o;33040:75::-;33073:6;33106:2;33100:9;33090:19;;33040:75;:::o;33121:307::-;33182:4;33272:18;33264:6;33261:30;33258:56;;;33294:18;;:::i;:::-;33258:56;33332:29;33354:6;33332:29;:::i;:::-;33324:37;;33416:4;33410;33406:15;33398:23;;33121:307;;;:::o;33434:308::-;33496:4;33586:18;33578:6;33575:30;33572:56;;;33608:18;;:::i;:::-;33572:56;33646:29;33668:6;33646:29;:::i;:::-;33638:37;;33730:4;33724;33720:15;33712:23;;33434:308;;;:::o;33748:132::-;33815:4;33838:3;33830:11;;33868:4;33863:3;33859:14;33851:22;;33748:132;;;:::o;33886:114::-;33953:6;33987:5;33981:12;33971:22;;33886:114;;;:::o;34006:98::-;34057:6;34091:5;34085:12;34075:22;;34006:98;;;:::o;34110:99::-;34162:6;34196:5;34190:12;34180:22;;34110:99;;;:::o;34215:113::-;34285:4;34317;34312:3;34308:14;34300:22;;34215:113;;;:::o;34334:184::-;34433:11;34467:6;34462:3;34455:19;34507:4;34502:3;34498:14;34483:29;;34334:184;;;;:::o;34524:168::-;34607:11;34641:6;34636:3;34629:19;34681:4;34676:3;34672:14;34657:29;;34524:168;;;;:::o;34698:169::-;34782:11;34816:6;34811:3;34804:19;34856:4;34851:3;34847:14;34832:29;;34698:169;;;;:::o;34873:148::-;34975:11;35012:3;34997:18;;34873:148;;;;:::o;35027:305::-;35067:3;35086:20;35104:1;35086:20;:::i;:::-;35081:25;;35120:20;35138:1;35120:20;:::i;:::-;35115:25;;35274:1;35206:66;35202:74;35199:1;35196:81;35193:107;;;35280:18;;:::i;:::-;35193:107;35324:1;35321;35317:9;35310:16;;35027:305;;;;:::o;35338:185::-;35378:1;35395:20;35413:1;35395:20;:::i;:::-;35390:25;;35429:20;35447:1;35429:20;:::i;:::-;35424:25;;35468:1;35458:35;;35473:18;;:::i;:::-;35458:35;35515:1;35512;35508:9;35503:14;;35338:185;;;;:::o;35529:348::-;35569:7;35592:20;35610:1;35592:20;:::i;:::-;35587:25;;35626:20;35644:1;35626:20;:::i;:::-;35621:25;;35814:1;35746:66;35742:74;35739:1;35736:81;35731:1;35724:9;35717:17;35713:105;35710:131;;;35821:18;;:::i;:::-;35710:131;35869:1;35866;35862:9;35851:20;;35529:348;;;;:::o;35883:188::-;35922:4;35942:19;35959:1;35942:19;:::i;:::-;35937:24;;35975:19;35992:1;35975:19;:::i;:::-;35970:24;;36013:1;36010;36007:8;36004:34;;;36018:18;;:::i;:::-;36004:34;36063:1;36060;36056:9;36048:17;;35883:188;;;;:::o;36077:191::-;36117:4;36137:20;36155:1;36137:20;:::i;:::-;36132:25;;36171:20;36189:1;36171:20;:::i;:::-;36166:25;;36210:1;36207;36204:8;36201:34;;;36215:18;;:::i;:::-;36201:34;36260:1;36257;36253:9;36245:17;;36077:191;;;;:::o;36274:96::-;36311:7;36340:24;36358:5;36340:24;:::i;:::-;36329:35;;36274:96;;;:::o;36376:90::-;36410:7;36453:5;36446:13;36439:21;36428:32;;36376:90;;;:::o;36472:149::-;36508:7;36548:66;36541:5;36537:78;36526:89;;36472:149;;;:::o;36627:89::-;36663:7;36703:6;36696:5;36692:18;36681:29;;36627:89;;;:::o;36722:126::-;36759:7;36799:42;36792:5;36788:54;36777:65;;36722:126;;;:::o;36854:77::-;36891:7;36920:5;36909:16;;36854:77;;;:::o;36937:86::-;36972:7;37012:4;37005:5;37001:16;36990:27;;36937:86;;;:::o;37029:154::-;37113:6;37108:3;37103;37090:30;37175:1;37166:6;37161:3;37157:16;37150:27;37029:154;;;:::o;37189:307::-;37257:1;37267:113;37281:6;37278:1;37275:13;37267:113;;;37366:1;37361:3;37357:11;37351:18;37347:1;37342:3;37338:11;37331:39;37303:2;37300:1;37296:10;37291:15;;37267:113;;;37398:6;37395:1;37392:13;37389:101;;;37478:1;37469:6;37464:3;37460:16;37453:27;37389:101;37238:258;37189:307;;;:::o;37502:169::-;37540:3;37563:23;37580:5;37563:23;:::i;:::-;37554:32;;37608:4;37601:5;37598:15;37595:41;;;37616:18;;:::i;:::-;37595:41;37663:1;37656:5;37652:13;37645:20;;37502:169;;;:::o;37677:320::-;37721:6;37758:1;37752:4;37748:12;37738:22;;37805:1;37799:4;37795:12;37826:18;37816:81;;37882:4;37874:6;37870:17;37860:27;;37816:81;37944:2;37936:6;37933:14;37913:18;37910:38;37907:84;;;37963:18;;:::i;:::-;37907:84;37728:269;37677:320;;;:::o;38003:281::-;38086:27;38108:4;38086:27;:::i;:::-;38078:6;38074:40;38216:6;38204:10;38201:22;38180:18;38168:10;38165:34;38162:62;38159:88;;;38227:18;;:::i;:::-;38159:88;38267:10;38263:2;38256:22;38046:238;38003:281;;:::o;38290:233::-;38329:3;38352:24;38370:5;38352:24;:::i;:::-;38343:33;;38398:66;38391:5;38388:77;38385:103;;;38468:18;;:::i;:::-;38385:103;38515:1;38508:5;38504:13;38497:20;;38290:233;;;:::o;38529:167::-;38566:3;38589:22;38605:5;38589:22;:::i;:::-;38580:31;;38633:4;38626:5;38623:15;38620:41;;;38641:18;;:::i;:::-;38620:41;38688:1;38681:5;38677:13;38670:20;;38529:167;;;:::o;38702:176::-;38734:1;38751:20;38769:1;38751:20;:::i;:::-;38746:25;;38785:20;38803:1;38785:20;:::i;:::-;38780:25;;38824:1;38814:35;;38829:18;;:::i;:::-;38814:35;38870:1;38867;38863:9;38858:14;;38702:176;;;;:::o;38884:180::-;38932:77;38929:1;38922:88;39029:4;39026:1;39019:15;39053:4;39050:1;39043:15;39070:180;39118:77;39115:1;39108:88;39215:4;39212:1;39205:15;39239:4;39236:1;39229:15;39256:180;39304:77;39301:1;39294:88;39401:4;39398:1;39391:15;39425:4;39422:1;39415:15;39442:180;39490:77;39487:1;39480:88;39587:4;39584:1;39577:15;39611:4;39608:1;39601:15;39628:180;39676:77;39673:1;39666:88;39773:4;39770:1;39763:15;39797:4;39794:1;39787:15;39814:180;39862:77;39859:1;39852:88;39959:4;39956:1;39949:15;39983:4;39980:1;39973:15;40000:117;40109:1;40106;40099:12;40123:117;40232:1;40229;40222:12;40246:117;40355:1;40352;40345:12;40369:117;40478:1;40475;40468:12;40492:102;40533:6;40584:2;40580:7;40575:2;40568:5;40564:14;40560:28;40550:38;;40492:102;;;:::o;40600:238::-;40740:34;40736:1;40728:6;40724:14;40717:58;40809:21;40804:2;40796:6;40792:15;40785:46;40600:238;:::o;40844:230::-;40984:34;40980:1;40972:6;40968:14;40961:58;41053:13;41048:2;41040:6;41036:15;41029:38;40844:230;:::o;41080:237::-;41220:34;41216:1;41208:6;41204:14;41197:58;41289:20;41284:2;41276:6;41272:15;41265:45;41080:237;:::o;41323:225::-;41463:34;41459:1;41451:6;41447:14;41440:58;41532:8;41527:2;41519:6;41515:15;41508:33;41323:225;:::o;41554:178::-;41694:30;41690:1;41682:6;41678:14;41671:54;41554:178;:::o;41738:223::-;41878:34;41874:1;41866:6;41862:14;41855:58;41947:6;41942:2;41934:6;41930:15;41923:31;41738:223;:::o;41967:175::-;42107:27;42103:1;42095:6;42091:14;42084:51;41967:175;:::o;42148:168::-;42288:20;42284:1;42276:6;42272:14;42265:44;42148:168;:::o;42322:231::-;42462:34;42458:1;42450:6;42446:14;42439:58;42531:14;42526:2;42518:6;42514:15;42507:39;42322:231;:::o;42559:243::-;42699:34;42695:1;42687:6;42683:14;42676:58;42768:26;42763:2;42755:6;42751:15;42744:51;42559:243;:::o;42808:229::-;42948:34;42944:1;42936:6;42932:14;42925:58;43017:12;43012:2;43004:6;43000:15;42993:37;42808:229;:::o;43043:228::-;43183:34;43179:1;43171:6;43167:14;43160:58;43252:11;43247:2;43239:6;43235:15;43228:36;43043:228;:::o;43277:222::-;43417:34;43413:1;43405:6;43401:14;43394:58;43486:5;43481:2;43473:6;43469:15;43462:30;43277:222;:::o;43505:179::-;43645:31;43641:1;43633:6;43629:14;43622:55;43505:179;:::o;43690:182::-;43830:34;43826:1;43818:6;43814:14;43807:58;43690:182;:::o;43878:158::-;44018:10;44014:1;44006:6;44002:14;43995:34;43878:158;:::o;44042:231::-;44182:34;44178:1;44170:6;44166:14;44159:58;44251:14;44246:2;44238:6;44234:15;44227:39;44042:231;:::o;44279:224::-;44419:34;44415:1;44407:6;44403:14;44396:58;44488:7;44483:2;44475:6;44471:15;44464:32;44279:224;:::o;44509:182::-;44649:34;44645:1;44637:6;44633:14;44626:58;44509:182;:::o;44697:225::-;44837:34;44833:1;44825:6;44821:14;44814:58;44906:8;44901:2;44893:6;44889:15;44882:33;44697:225;:::o;44928:228::-;45068:34;45064:1;45056:6;45052:14;45045:58;45137:11;45132:2;45124:6;45120:15;45113:36;44928:228;:::o;45162:234::-;45302:34;45298:1;45290:6;45286:14;45279:58;45371:17;45366:2;45358:6;45354:15;45347:42;45162:234;:::o;45402:220::-;45542:34;45538:1;45530:6;45526:14;45519:58;45611:3;45606:2;45598:6;45594:15;45587:28;45402:220;:::o;45628:236::-;45768:34;45764:1;45756:6;45752:14;45745:58;45837:19;45832:2;45824:6;45820:15;45813:44;45628:236;:::o;45870:231::-;46010:34;46006:1;45998:6;45994:14;45987:58;46079:14;46074:2;46066:6;46062:15;46055:39;45870:231;:::o;46107:122::-;46180:24;46198:5;46180:24;:::i;:::-;46173:5;46170:35;46160:63;;46219:1;46216;46209:12;46160:63;46107:122;:::o;46235:116::-;46305:21;46320:5;46305:21;:::i;:::-;46298:5;46295:32;46285:60;;46341:1;46338;46331:12;46285:60;46235:116;:::o;46357:120::-;46429:23;46446:5;46429:23;:::i;:::-;46422:5;46419:34;46409:62;;46467:1;46464;46457:12;46409:62;46357:120;:::o;46483:122::-;46556:24;46574:5;46556:24;:::i;:::-;46549:5;46546:35;46536:63;;46595:1;46592;46585:12;46536:63;46483:122;:::o;46611:118::-;46682:22;46698:5;46682:22;:::i;:::-;46675:5;46672:33;46662:61;;46719:1;46716;46709:12;46662:61;46611:118;:::o
Swarm Source
ipfs://38287b2abdb70f310a0b823023b93a588f69be58fd2559d0a2b7916f0094b238
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.