Loading
[ { "inputs": [ { "internalType": "address", "name": "minter", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_url", "type": "string" }, { "internalType": "uint256", "name": "_supply", "type": "uint256" }, { "internalType": "uint256", "name": "_mintPrice", "type": "uint256" }, { "internalType": "uint256", "name": "_mintLimit", "type": "uint256" }, { "internalType": "address", "name": "_treasury", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [], "name": "EnforcedPause", "type": "error" }, { "inputs": [], "name": "ExpectedPause", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "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": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_user", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "UserPaid", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "KOMET_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "amount_paid", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "base_url", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "claimGM", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "has_paid", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "mint_Limit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint_price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "public_minted_address", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setBaseUrl", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setMintSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" }, { "internalType": "uint256", "name": "_perWalletLimit", "type": "uint256" }, { "internalType": "bool", "name": "_gmclaim", "type": "bool" } ], "name": "setMintType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "setTreasuryWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_user", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "treasuryMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdrawAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526000600d556040518060200160405280600081525060109081620000299190620007d6565b503480156200003757600080fd5b506040516200486a3803806200486a83398181016040528101906200005d919062000ab7565b3387878160009081620000719190620007d6565b508060019081620000839190620007d6565b5050506000600760006101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001165760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200010d919062000bee565b60405180910390fd5b62000127816200031f60201b60201c565b506200013d6000801b33620003e560201b60201c565b50620001707f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620003e560201b60201c565b50620001a37f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620003e560201b60201c565b50620001d67fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb89620003e560201b60201c565b50620001ec6000801b89620003e560201b60201c565b506200021f7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a89620003e560201b60201c565b50620002527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a689620003e560201b60201c565b50620002857fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb89620003e560201b60201c565b506000600f8190555084601090816200029f9190620007d6565b5083600d819055508260098190555081600e8190555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60006101000a81548160ff021916908315150217905550505050505050505062000c0b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000620003f98383620004e960201b60201c565b620004de5760016008600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200047a6200055460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620004e3565b600090505b92915050565b60006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005de57607f821691505b602082108103620005f457620005f362000596565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200065e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200061f565b6200066a86836200061f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620006b7620006b1620006ab8462000682565b6200068c565b62000682565b9050919050565b6000819050919050565b620006d38362000696565b620006eb620006e282620006be565b8484546200062c565b825550505050565b600090565b62000702620006f3565b6200070f818484620006c8565b505050565b5b8181101562000737576200072b600082620006f8565b60018101905062000715565b5050565b601f82111562000786576200075081620005fa565b6200075b846200060f565b810160208510156200076b578190505b620007836200077a856200060f565b83018262000714565b50505b505050565b600082821c905092915050565b6000620007ab600019846008026200078b565b1980831691505092915050565b6000620007c6838362000798565b9150826002028217905092915050565b620007e1826200055c565b67ffffffffffffffff811115620007fd57620007fc62000567565b5b620008098254620005c5565b620008168282856200073b565b600060209050601f8311600181146200084e576000841562000839578287015190505b620008458582620007b8565b865550620008b5565b601f1984166200085e86620005fa565b60005b82811015620008885784890151825560018201915060208501945060208101905062000861565b86831015620008a85784890151620008a4601f89168262000798565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008fe82620008d1565b9050919050565b6200091081620008f1565b81146200091c57600080fd5b50565b600081519050620009308162000905565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b6200095c8262000940565b810181811067ffffffffffffffff821117156200097e576200097d62000567565b5b80604052505050565b600062000993620008bd565b9050620009a1828262000951565b919050565b600067ffffffffffffffff821115620009c457620009c362000567565b5b620009cf8262000940565b9050602081019050919050565b60005b83811015620009fc578082015181840152602081019050620009df565b60008484015250505050565b600062000a1f62000a1984620009a6565b62000987565b90508281526020810184848401111562000a3e5762000a3d6200093b565b5b62000a4b848285620009dc565b509392505050565b600082601f83011262000a6b5762000a6a62000936565b5b815162000a7d84826020860162000a08565b91505092915050565b62000a918162000682565b811462000a9d57600080fd5b50565b60008151905062000ab18162000a86565b92915050565b600080600080600080600080610100898b03121562000adb5762000ada620008c7565b5b600062000aeb8b828c016200091f565b985050602089015167ffffffffffffffff81111562000b0f5762000b0e620008cc565b5b62000b1d8b828c0162000a53565b975050604089015167ffffffffffffffff81111562000b415762000b40620008cc565b5b62000b4f8b828c0162000a53565b965050606089015167ffffffffffffffff81111562000b735762000b72620008cc565b5b62000b818b828c0162000a53565b955050608062000b948b828c0162000aa0565b94505060a062000ba78b828c0162000aa0565b93505060c062000bba8b828c0162000aa0565b92505060e062000bcd8b828c016200091f565b9150509295985092959890939650565b62000be881620008f1565b82525050565b600060208201905062000c05600083018462000bdd565b92915050565b613c4f8062000c1b6000396000f3fe6080604052600436106102555760003560e01c80638da5cb5b11610139578063c87b56dd116100b6578063e63ab1e91161007a578063e63ab1e914610999578063e985e9c5146109c4578063eda1d5e914610a01578063efdc778814610a3e578063f2fde38b14610a67578063fdd46f6014610a905761033c565b8063c87b56dd146108a0578063d3fc8cdf146108dd578063d53913931461091a578063d547741f14610945578063e175bd201461096e5761033c565b8063a3f8013f116100fd578063a3f8013f146107d3578063a8602fea146107fc578063ac568e8414610825578063b88d4fde1461084e578063c7c3268b146108775761033c565b80638da5cb5b146106ec57806391d148541461071757806395d89b4114610754578063a217fddf1461077f578063a22cb465146107aa5761033c565b806333190f70116101d257806342842e0e1161019657806342842e0e146105dc5780635c975abb1461060557806361d027b3146106305780636352211e1461065b57806370a0823114610698578063715018a6146106d55761033c565b806333190f701461050b57806333a1bb261461054857806336568abe146105735780633ccfd60b1461059c57806341b5e3dc146105b35761033c565b806318160ddd1161021957806318160ddd146104265780631a4231a41461045157806323b872dd1461047c578063248a9ca3146104a55780632f2ff15d146104e25761033c565b806301ffc9a71461034157806304c76af01461037e57806306fdde0314610395578063081812fc146103c0578063095ea7b3146103fd5761033c565b3661033c576001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555034601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550343373ffffffffffffffffffffffffffffffffffffffff167f188c4d19b4fadd1889d9bd9bf0ab7c97e0719434751e6c05feac6339c1c001ec60405160405180910390a3005b600080fd5b34801561034d57600080fd5b5061036860048036038101906103639190612c47565b610abb565b6040516103759190612c8f565b60405180910390f35b34801561038a57600080fd5b50610393610acd565b005b3480156103a157600080fd5b506103aa610b5f565b6040516103b79190612d3a565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190612d92565b610bf1565b6040516103f49190612e00565b60405180910390f35b34801561040957600080fd5b50610424600480360381019061041f9190612e47565b610c0d565b005b34801561043257600080fd5b5061043b610c23565b6040516104489190612e96565b60405180910390f35b34801561045d57600080fd5b50610466610c29565b6040516104739190612e96565b60405180910390f35b34801561048857600080fd5b506104a3600480360381019061049e9190612eb1565b610c2f565b005b3480156104b157600080fd5b506104cc60048036038101906104c79190612f3a565b610d31565b6040516104d99190612f76565b60405180910390f35b3480156104ee57600080fd5b5061050960048036038101906105049190612f91565b610d51565b005b34801561051757600080fd5b50610532600480360381019061052d9190612fd1565b610d73565b60405161053f9190612e96565b60405180910390f35b34801561055457600080fd5b5061055d610d8b565b60405161056a9190612d3a565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190612f91565b610e19565b005b3480156105a857600080fd5b506105b1610e94565b005b3480156105bf57600080fd5b506105da60048036038101906105d59190612fd1565b611078565b005b3480156105e857600080fd5b5061060360048036038101906105fe9190612eb1565b6112e7565b005b34801561061157600080fd5b5061061a611307565b6040516106279190612c8f565b60405180910390f35b34801561063c57600080fd5b5061064561131e565b6040516106529190612e00565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612d92565b611344565b60405161068f9190612e00565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba9190612fd1565b611356565b6040516106cc9190612e96565b60405180910390f35b3480156106e157600080fd5b506106ea611410565b005b3480156106f857600080fd5b50610701611424565b60405161070e9190612e00565b60405180910390f35b34801561072357600080fd5b5061073e60048036038101906107399190612f91565b61144e565b60405161074b9190612c8f565b60405180910390f35b34801561076057600080fd5b506107696114b9565b6040516107769190612d3a565b60405180910390f35b34801561078b57600080fd5b5061079461154b565b6040516107a19190612f76565b60405180910390f35b3480156107b657600080fd5b506107d160048036038101906107cc919061302a565b611552565b005b3480156107df57600080fd5b506107fa60048036038101906107f5919061306a565b611568565b005b34801561080857600080fd5b50610823600480360381019061081e9190612fd1565b6115a3565b005b34801561083157600080fd5b5061084c60048036038101906108479190612d92565b6115f5565b005b34801561085a57600080fd5b50610875600480360381019061087091906131f2565b61160d565b005b34801561088357600080fd5b5061089e60048036038101906108999190613316565b61162a565b005b3480156108ac57600080fd5b506108c760048036038101906108c29190612d92565b61164b565b6040516108d49190612d3a565b60405180910390f35b3480156108e957600080fd5b5061090460048036038101906108ff9190612fd1565b61165d565b6040516109119190612c8f565b60405180910390f35b34801561092657600080fd5b5061092f61167d565b60405161093c9190612f76565b60405180910390f35b34801561095157600080fd5b5061096c60048036038101906109679190612f91565b6116a1565b005b34801561097a57600080fd5b506109836116c3565b6040516109909190612e96565b60405180910390f35b3480156109a557600080fd5b506109ae6116c9565b6040516109bb9190612f76565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e6919061335f565b6116ed565b6040516109f89190612c8f565b60405180910390f35b348015610a0d57600080fd5b50610a286004803603810190610a239190612fd1565b611781565b604051610a359190612e96565b60405180910390f35b348015610a4a57600080fd5b50610a656004803603810190610a609190612d92565b611799565b005b348015610a7357600080fd5b50610a8e6004803603810190610a899190612fd1565b611879565b005b348015610a9c57600080fd5b50610aa56118a9565b604051610ab29190612f76565b60405180910390f35b6000610ac6826118cd565b9050919050565b6000801b610ada81611947565b610ae261195b565b60003373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050905080610b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b52906133eb565b60405180910390fd5b5050565b606060008054610b6e9061343a565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9a9061343a565b8015610be75780601f10610bbc57610100808354040283529160200191610be7565b820191906000526020600020905b815481529060010190602001808311610bca57829003601f168201915b5050505050905090565b6000610bfc826119e2565b50610c0682611a6a565b9050919050565b610c1f8282610c1a611aa7565b611aaf565b5050565b600f5481565b60095481565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ca15760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610c989190612e00565b60405180910390fd5b6000610cb58383610cb0611aa7565b611ac1565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d2b578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610d229392919061346b565b60405180910390fd5b50505050565b600060086000838152602001908152602001600020600101549050919050565b610d5a82610d31565b610d6381611947565b610d6d8383611cdb565b50505050565b60126020528060005260406000206000915090505481565b60108054610d989061343a565b80601f0160208091040260200160405190810160405280929190818152602001828054610dc49061343a565b8015610e115780601f10610de657610100808354040283529160200191610e11565b820191906000526020600020905b815481529060010190602001808311610df457829003601f168201915b505050505081565b610e21611aa7565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e85576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e8f8282611dcd565b505050565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f17906134ee565b60405180910390fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060003373ffffffffffffffffffffffffffffffffffffffff166108fc601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549081150290604051600060405180830381858888f19350505050905080611030576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611027906133eb565b60405180910390fd5b6000601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b600c60009054906101000a900460ff166110c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110be9061355a565b60405180910390fd5b600d54600e54600f546110da91906135a9565b111561111b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111290613629565b60405180910390fd5b600e54600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561119f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119690613695565b60405180910390fd5b600e54600e54600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111ef91906135a9565b1115611230576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122790613695565b60405180910390fd5b60005b600e548110156112e3576001600f600082825461125091906135a9565b925050819055506001600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112a791906135a9565b925050819055506112ba82600f54611ec0565b6112d0600f546112cb600f54611fb9565b611fed565b80806112db906136b5565b915050611233565b5050565b6113028383836040518060200160405280600081525061160d565b505050565b6000600760009054906101000a900460ff16905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061134f826119e2565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c95760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016113c09190612e00565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61141861195b565b6114226000612049565b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006008600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6060600180546114c89061343a565b80601f01602080910402602001604051908101604052809291908181526020018280546114f49061343a565b80156115415780601f1061151657610100808354040283529160200191611541565b820191906000526020600020905b81548152906001019060200180831161152457829003601f168201915b5050505050905090565b6000801b81565b61156461155d611aa7565b838361210f565b5050565b6000801b61157581611947565b8360098190555082600e8190555081600c60006101000a81548160ff02191690831515021790555050505050565b6000801b6115b081611947565b81600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000801b61160281611947565b81600d819055505050565b611618848484610c2f565b6116248484848461227e565b50505050565b6000801b61163781611947565b816010908161164691906138a9565b505050565b606061165682611fb9565b9050919050565b60116020528060005260406000206000915054906101000a900460ff1681565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6116aa82610d31565b6116b381611947565b6116bd8383611dcd565b50505050565b600e5481565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b6000801b6117a681611947565b600d5482600f546117b791906135a9565b11156117f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ef90613629565b60405180910390fd5b60005b82811015611874576001600f600082825461181691906135a9565b9250508190555061184b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54611ec0565b611861600f5461185c600f54611fb9565b611fed565b808061186c906136b5565b9150506117fb565b505050565b61188161195b565b61188e6000801b33611dcd565b5061189c6000801b82611cdb565b506118a681612049565b50565b7fc5abefe4aed277fb344652e626c3c4fe5cdab1313b8ac46cdd6da9bbe98161cb81565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611940575061193f82612435565b5b9050919050565b61195881611953611aa7565b612496565b50565b611963611aa7565b73ffffffffffffffffffffffffffffffffffffffff16611981611424565b73ffffffffffffffffffffffffffffffffffffffff16146119e0576119a4611aa7565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016119d79190612e00565b60405180910390fd5b565b6000806119ee836124e7565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a6157826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611a589190612e96565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b611abc8383836001612524565b505050565b600080611acd846124e7565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b0f57611b0e8184866126e9565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ba057611b51600085600080612524565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611c23576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6000611ce7838361144e565b611dc25760016008600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d5f611aa7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050611dc7565b600090505b92915050565b6000611dd9838361144e565b15611eb55760006008600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611e52611aa7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611eba565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f325760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f299190612e00565b60405180910390fd5b6000611f4083836000611ac1565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611fb45760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611fab9190612e00565b60405180910390fd5b505050565b60606010611fc6836127ad565b604051602001611fd7929190613a86565b6040516020818303038152906040529050919050565b8060066000848152602001908152602001600020908161200d91906138a9565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78260405161203d9190612e96565b60405180910390a15050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361218057816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016121779190612e00565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516122719190612c8f565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b111561242f578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026122c2611aa7565b8685856040518563ffffffff1660e01b81526004016122e49493929190613b0a565b6020604051808303816000875af192505050801561232057506040513d601f19601f8201168201806040525081019061231d9190613b6b565b60015b6123a4573d8060008114612350576040519150601f19603f3d011682016040523d82523d6000602084013e612355565b606091505b50600081510361239c57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016123939190612e00565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461242d57836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016124249190612e00565b60405180910390fd5b505b50505050565b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061248f575061248e8261287b565b5b9050919050565b6124a0828261144e565b6124e35780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016124da929190613b98565b60405180910390fd5b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061255d5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561269157600061256d846119e2565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125d857508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156125eb57506125e981846116ed565b155b1561262d57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016126249190612e00565b60405180910390fd5b811561268f57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6126f483838361295d565b6127a857600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361276957806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016127609190612e96565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161279f929190613bc1565b60405180910390fd5b505050565b6060600060016127bc84612a1e565b01905060008167ffffffffffffffff8111156127db576127da6130c7565b5b6040519080825280601f01601f19166020018201604052801561280d5781602001600182028036833780820191505090505b509050600082602001820190505b600115612870578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161286457612863613bea565b5b0494506000850361281b575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061294657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612956575061295582612b71565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612a1557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806129d657506129d584846116ed565b5b80612a1457508273ffffffffffffffffffffffffffffffffffffffff166129fc83611a6a565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612a7c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612a7257612a71613bea565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612ab9576d04ee2d6d415b85acef81000000008381612aaf57612aae613bea565b5b0492506020810190505b662386f26fc100008310612ae857662386f26fc100008381612ade57612add613bea565b5b0492506010810190505b6305f5e1008310612b11576305f5e1008381612b0757612b06613bea565b5b0492506008810190505b6127108310612b36576127108381612b2c57612b2b613bea565b5b0492506004810190505b60648310612b595760648381612b4f57612b4e613bea565b5b0492506002810190505b600a8310612b68576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612c2481612bef565b8114612c2f57600080fd5b50565b600081359050612c4181612c1b565b92915050565b600060208284031215612c5d57612c5c612be5565b5b6000612c6b84828501612c32565b91505092915050565b60008115159050919050565b612c8981612c74565b82525050565b6000602082019050612ca46000830184612c80565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612ce4578082015181840152602081019050612cc9565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d0c82612caa565b612d168185612cb5565b9350612d26818560208601612cc6565b612d2f81612cf0565b840191505092915050565b60006020820190508181036000830152612d548184612d01565b905092915050565b6000819050919050565b612d6f81612d5c565b8114612d7a57600080fd5b50565b600081359050612d8c81612d66565b92915050565b600060208284031215612da857612da7612be5565b5b6000612db684828501612d7d565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dea82612dbf565b9050919050565b612dfa81612ddf565b82525050565b6000602082019050612e156000830184612df1565b92915050565b612e2481612ddf565b8114612e2f57600080fd5b50565b600081359050612e4181612e1b565b92915050565b60008060408385031215612e5e57612e5d612be5565b5b6000612e6c85828601612e32565b9250506020612e7d85828601612d7d565b9150509250929050565b612e9081612d5c565b82525050565b6000602082019050612eab6000830184612e87565b92915050565b600080600060608486031215612eca57612ec9612be5565b5b6000612ed886828701612e32565b9350506020612ee986828701612e32565b9250506040612efa86828701612d7d565b9150509250925092565b6000819050919050565b612f1781612f04565b8114612f2257600080fd5b50565b600081359050612f3481612f0e565b92915050565b600060208284031215612f5057612f4f612be5565b5b6000612f5e84828501612f25565b91505092915050565b612f7081612f04565b82525050565b6000602082019050612f8b6000830184612f67565b92915050565b60008060408385031215612fa857612fa7612be5565b5b6000612fb685828601612f25565b9250506020612fc785828601612e32565b9150509250929050565b600060208284031215612fe757612fe6612be5565b5b6000612ff584828501612e32565b91505092915050565b61300781612c74565b811461301257600080fd5b50565b60008135905061302481612ffe565b92915050565b6000806040838503121561304157613040612be5565b5b600061304f85828601612e32565b925050602061306085828601613015565b9150509250929050565b60008060006060848603121561308357613082612be5565b5b600061309186828701612d7d565b93505060206130a286828701612d7d565b92505060406130b386828701613015565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130ff82612cf0565b810181811067ffffffffffffffff8211171561311e5761311d6130c7565b5b80604052505050565b6000613131612bdb565b905061313d82826130f6565b919050565b600067ffffffffffffffff82111561315d5761315c6130c7565b5b61316682612cf0565b9050602081019050919050565b82818337600083830152505050565b600061319561319084613142565b613127565b9050828152602081018484840111156131b1576131b06130c2565b5b6131bc848285613173565b509392505050565b600082601f8301126131d9576131d86130bd565b5b81356131e9848260208601613182565b91505092915050565b6000806000806080858703121561320c5761320b612be5565b5b600061321a87828801612e32565b945050602061322b87828801612e32565b935050604061323c87828801612d7d565b925050606085013567ffffffffffffffff81111561325d5761325c612bea565b5b613269878288016131c4565b91505092959194509250565b600067ffffffffffffffff8211156132905761328f6130c7565b5b61329982612cf0565b9050602081019050919050565b60006132b96132b484613275565b613127565b9050828152602081018484840111156132d5576132d46130c2565b5b6132e0848285613173565b509392505050565b600082601f8301126132fd576132fc6130bd565b5b813561330d8482602086016132a6565b91505092915050565b60006020828403121561332c5761332b612be5565b5b600082013567ffffffffffffffff81111561334a57613349612bea565b5b613356848285016132e8565b91505092915050565b6000806040838503121561337657613375612be5565b5b600061338485828601612e32565b925050602061339585828601612e32565b9150509250929050565b7f4574686572207472616e73666572206661696c65642e00000000000000000000600082015250565b60006133d5601683612cb5565b91506133e08261339f565b602082019050919050565b60006020820190508181036000830152613404816133c8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061345257607f821691505b6020821081036134655761346461340b565b5b50919050565b60006060820190506134806000830186612df1565b61348d6020830185612e87565b61349a6040830184612df1565b949350505050565b7f5573657220686173206e6f742079657420706169640000000000000000000000600082015250565b60006134d8601583612cb5565b91506134e3826134a2565b602082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b7f474d20636c61696d206f66660000000000000000000000000000000000000000600082015250565b6000613544600c83612cb5565b915061354f8261350e565b602082019050919050565b6000602082019050818103600083015261357381613537565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135b482612d5c565b91506135bf83612d5c565b92508282019050808211156135d7576135d661357a565b5b92915050565b7f737570706c792065786365656400000000000000000000000000000000000000600082015250565b6000613613600d83612cb5565b915061361e826135dd565b602082019050919050565b6000602082019050818103600083015261364281613606565b9050919050565b7f5573657220616c7265616479206d696e7465642073747265616b000000000000600082015250565b600061367f601a83612cb5565b915061368a82613649565b602082019050919050565b600060208201905081810360008301526136ae81613672565b9050919050565b60006136c082612d5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136f2576136f161357a565b5b600182019050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261375f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613722565b6137698683613722565b95508019841693508086168417925050509392505050565b6000819050919050565b60006137a66137a161379c84612d5c565b613781565b612d5c565b9050919050565b6000819050919050565b6137c08361378b565b6137d46137cc826137ad565b84845461372f565b825550505050565b600090565b6137e96137dc565b6137f48184846137b7565b505050565b5b818110156138185761380d6000826137e1565b6001810190506137fa565b5050565b601f82111561385d5761382e816136fd565b61383784613712565b81016020851015613846578190505b61385a61385285613712565b8301826137f9565b50505b505050565b600082821c905092915050565b600061388060001984600802613862565b1980831691505092915050565b6000613899838361386f565b9150826002028217905092915050565b6138b282612caa565b67ffffffffffffffff8111156138cb576138ca6130c7565b5b6138d5825461343a565b6138e082828561381c565b600060209050601f8311600181146139135760008415613901578287015190505b61390b858261388d565b865550613973565b601f198416613921866136fd565b60005b8281101561394957848901518255600182019150602085019450602081019050613924565b868310156139665784890151613962601f89168261386f565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b600081546139938161343a565b61399d818661397b565b945060018216600081146139b857600181146139cd57613a00565b60ff1983168652811515820286019350613a00565b6139d6856136fd565b60005b838110156139f8578154818901526001820191506020810190506139d9565b838801955050505b50505092915050565b6000613a1482612caa565b613a1e818561397b565b9350613a2e818560208601612cc6565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000613a7060058361397b565b9150613a7b82613a3a565b600582019050919050565b6000613a928285613986565b9150613a9e8284613a09565b9150613aa982613a63565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000613adc82613ab5565b613ae68185613ac0565b9350613af6818560208601612cc6565b613aff81612cf0565b840191505092915050565b6000608082019050613b1f6000830187612df1565b613b2c6020830186612df1565b613b396040830185612e87565b8181036060830152613b4b8184613ad1565b905095945050505050565b600081519050613b6581612c1b565b92915050565b600060208284031215613b8157613b80612be5565b5b6000613b8f84828501613b56565b91505092915050565b6000604082019050613bad6000830185612df1565b613bba6020830184612f67565b9392505050565b6000604082019050613bd66000830185612df1565b613be36020830184612e87565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220316821b841737bd499d02607542f0db9c12ccd770443d3775b861d49c145cd9a64736f6c63430008140033000000000000000000000000ef6070be0954ea67985120eef153802180ec77d8000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000271000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000192c3baa95235b84b46e76ea3fbff51b092dc0ed0000000000000000000000000000000000000000000000000000000000000008474d20426c6173740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003474d420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004268747470733a2f2f70726f642d6170692e6b6f6d65742e6d652f626c61737453747265616b2f66657463682f7075626c69632f6d657461646174613f746f6b656e3d000000000000000000000000000000000000000000000000000000000000