[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "baseTokenURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "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": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "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": true, "internalType": "address", "name": "freeMintAddress", "type": "address" } ], "name": "FreeMintAddressAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "freeMintAddress", "type": "address" } ], "name": "FreeMintAddressRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newPrice", "type": "uint256" } ], "name": "MintPriceChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "listingTime", "type": "uint256" } ], "name": "NFTListedForSale", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "seller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "buyer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "NFTSold", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "NFTTransferred", "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Withdrawn", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "freeMintAddress", "type": "address" } ], "name": "addFreeMintAddress", "outputs": [], "stateMutability": "nonpayable", "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": "buyNFT", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "canMint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newPrice", "type": "uint256" } ], "name": "changeMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "freeMintAddresses", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "hasMinted", "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": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "isFreeMintAddress", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "listNFTForSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxNFTSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mintNFT", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "reclaimNFT", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "freeMintAddress", "type": "address" } ], "name": "removeFreeMintAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseTokenURI", "type": "string" } ], "name": "setBaseURI", "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": "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": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transactions", "outputs": [ { "internalType": "address", "name": "seller", "type": "address" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "bool", "name": "isSold", "type": "bool" }, { "internalType": "uint256", "name": "listingTime", "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" } ]
608060405266082bd67afbc000600c5534801561001a575f80fd5b50604051614716380380614716833981810160405281019061003c9190610308565b338383815f908161004d91906105b9565b50806001908161005d91906105b9565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100d0575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100c791906106c7565b60405180910390fd5b6100df816100f860201b60201c565b5080600b90816100ef91906105b9565b505050506106e0565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61021a826101d4565b810181811067ffffffffffffffff82111715610239576102386101e4565b5b80604052505050565b5f61024b6101bb565b90506102578282610211565b919050565b5f67ffffffffffffffff821115610276576102756101e4565b5b61027f826101d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6102ac6102a78461025c565b610242565b9050828152602081018484840111156102c8576102c76101d0565b5b6102d384828561028c565b509392505050565b5f82601f8301126102ef576102ee6101cc565b5b81516102ff84826020860161029a565b91505092915050565b5f805f6060848603121561031f5761031e6101c4565b5b5f84015167ffffffffffffffff81111561033c5761033b6101c8565b5b610348868287016102db565b935050602084015167ffffffffffffffff811115610369576103686101c8565b5b610375868287016102db565b925050604084015167ffffffffffffffff811115610396576103956101c8565b5b6103a2868287016102db565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103fa57607f821691505b60208210810361040d5761040c6103b6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261046f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610434565b6104798683610434565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104bd6104b86104b384610491565b61049a565b610491565b9050919050565b5f819050919050565b6104d6836104a3565b6104ea6104e2826104c4565b848454610440565b825550505050565b5f90565b6104fe6104f2565b6105098184846104cd565b505050565b5b8181101561052c576105215f826104f6565b60018101905061050f565b5050565b601f8211156105715761054281610413565b61054b84610425565b8101602085101561055a578190505b61056e61056685610425565b83018261050e565b50505b505050565b5f82821c905092915050565b5f6105915f1984600802610576565b1980831691505092915050565b5f6105a98383610582565b9150826002028217905092915050565b6105c2826103ac565b67ffffffffffffffff8111156105db576105da6101e4565b5b6105e582546103e3565b6105f0828285610530565b5f60209050601f831160018114610621575f841561060f578287015190505b610619858261059e565b865550610680565b601f19841661062f86610413565b5f5b8281101561065657848901518255600182019150602085019450602081019050610631565b86831015610673578489015161066f601f891682610582565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106b182610688565b9050919050565b6106c1816106a7565b82525050565b5f6020820190506106da5f8301846106b8565b92915050565b614029806106ed5f395ff3fe608060405260043610610203575f3560e01c806351ed828811610117578063a08db82e1161009f578063b88d4fde1161006e578063b88d4fde14610740578063beb9716d14610768578063c87b56dd14610792578063e985e9c5146107ce578063f2fde38b1461080a57610203565b8063a08db82e1461068c578063a22cb465146106b4578063a7ab09f9146106dc578063b2733b391461071857610203565b8063715018a6116100e6578063715018a6146105bb57806384028697146105d15780638da5cb5b146105f957806395d89b41146106235780639ace38c21461064d57610203565b806351ed8288146104ff57806355f804b31461051b5780636352211e1461054357806370a082311461057f57610203565b806318160ddd1161019a57806338e21cce1161016957806338e21cce146104215780633ccfd60b1461045d5780633fd173661461047357806342842e0e1461049b5780634f6ccce7146104c357610203565b806318160ddd1461036957806323b872dd1461039357806324c979a3146103bb5780632f745c59146103e557610203565b8063081812fc116101d6578063081812fc146102d1578063095ea7b31461030d5780630d39fc811461033557806314f710fe1461035f57610203565b806301fab91a1461020757806301ffc9a71461024357806304890b241461027f57806306fdde03146102a7575b5f80fd5b348015610212575f80fd5b5061022d60048036038101906102289190612f3a565b610832565b60405161023a9190612f7f565b60405180910390f35b34801561024e575f80fd5b5061026960048036038101906102649190612fed565b61084f565b6040516102769190612f7f565b60405180910390f35b34801561028a575f80fd5b506102a560048036038101906102a09190612f3a565b6108c8565b005b3480156102b2575f80fd5b506102bb61096a565b6040516102c89190613088565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f291906130db565b6109f9565b6040516103049190613115565b60405180910390f35b348015610318575f80fd5b50610333600480360381019061032e919061312e565b610a14565b005b348015610340575f80fd5b50610349610a2a565b604051610356919061317b565b60405180910390f35b610367610a30565b005b348015610374575f80fd5b5061037d610d14565b60405161038a919061317b565b60405180910390f35b34801561039e575f80fd5b506103b960048036038101906103b49190613194565b610d20565b005b3480156103c6575f80fd5b506103cf610e1f565b6040516103dc919061317b565b60405180910390f35b3480156103f0575f80fd5b5061040b6004803603810190610406919061312e565b610e25565b604051610418919061317b565b60405180910390f35b34801561042c575f80fd5b5061044760048036038101906104429190612f3a565b610ec9565b6040516104549190612f7f565b60405180910390f35b348015610468575f80fd5b50610471610ee6565b005b34801561047e575f80fd5b50610499600480360381019061049491906130db565b610f87565b005b3480156104a6575f80fd5b506104c160048036038101906104bc9190613194565b610fd0565b005b3480156104ce575f80fd5b506104e960048036038101906104e491906130db565b610fef565b6040516104f6919061317b565b60405180910390f35b610519600480360381019061051491906130db565b611061565b005b348015610526575f80fd5b50610541600480360381019061053c9190613310565b61121d565b005b34801561054e575f80fd5b50610569600480360381019061056491906130db565b611238565b6040516105769190613115565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190612f3a565b611249565b6040516105b2919061317b565b60405180910390f35b3480156105c6575f80fd5b506105cf6112ff565b005b3480156105dc575f80fd5b506105f760048036038101906105f29190612f3a565b611312565b005b348015610604575f80fd5b5061060d6113b5565b60405161061a9190613115565b60405180910390f35b34801561062e575f80fd5b506106376113dd565b6040516106449190613088565b60405180910390f35b348015610658575f80fd5b50610673600480360381019061066e91906130db565b61146d565b6040516106839493929190613357565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad91906130db565b6114c4565b005b3480156106bf575f80fd5b506106da60048036038101906106d591906133c4565b6115ca565b005b3480156106e7575f80fd5b5061070260048036038101906106fd9190612f3a565b6115e0565b60405161070f9190612f7f565b60405180910390f35b348015610723575f80fd5b5061073e60048036038101906107399190613402565b611632565b005b34801561074b575f80fd5b50610766600480360381019061076191906134de565b6117ec565b005b348015610773575f80fd5b5061077c611811565b6040516107899190612f7f565b60405180910390f35b34801561079d575f80fd5b506107b860048036038101906107b391906130db565b6118d8565b6040516107c59190613088565b60405180910390f35b3480156107d9575f80fd5b506107f460048036038101906107ef919061355e565b611982565b6040516108019190612f7f565b60405180910390f35b348015610815575f80fd5b50610830600480360381019061082b9190612f3a565b611a10565b005b600f602052805f5260405f205f915054906101000a900460ff1681565b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c157506108c082611a94565b5b9050919050565b6108d0611b75565b5f600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f1a4cc99e217d085c464cfb75164a5e2d0297c48dccfe099373913a93c81fcdae60405160405180910390a250565b60605f8054610978906135c9565b80601f01602080910402602001604051908101604052809291908181526020018280546109a4906135c9565b80156109ef5780601f106109c6576101008083540402835291602001916109ef565b820191905f5260205f20905b8154815290600101906020018083116109d257829003601f168201915b5050505050905090565b5f610a0382611bfc565b50610a0d82611c82565b9050919050565b610a268282610a21611cbb565b611cc2565b5050565b600c5481565b61012c610a3b610d14565b10610a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7290613643565b60405180910390fd5b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610ad25750600c543410155b610b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b08906136ab565b60405180910390fd5b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9290613739565b60405180910390fd5b610ba56010611cd4565b5f610bb06010611ce8565b9050610bbc3382611cf4565b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c5657610c126113b5565b73ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f19350505050158015610c54573d5f803e3d5ffd5b505b6001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff16827f8562eb94748e30bb0071e932744ce902b460c683474fcb3bfd567ffa16b1afb234604051610d09919061317b565b60405180910390a450565b5f600880549050905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d90575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610d879190613115565b60405180910390fd5b5f610da38383610d9e611cbb565b611de7565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e19578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610e1093929190613757565b60405180910390fd5b50505050565b61012c81565b5f610e2f83611249565b8210610e745782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610e6b92919061378c565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b610eee611b75565b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610f35573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d582604051610f7c919061317b565b60405180910390a250565b610f8f611b75565b80600c819055507f25b1f9f6b6e61dfca5575239769e4450ed2e49176670837f5d1a82a9a2fc693f81604051610fc5919061317b565b60405180910390a150565b610fea83838360405180602001604052805f8152506117ec565b505050565b5f610ff8610d14565b821061103d575f826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161103492919061378c565b60405180910390fd5b60088281548110611051576110506137b3565b5b905f5260205f2001549050919050565b5f600d5f8381526020019081526020015f209050806002015f9054906101000a900460ff16156110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd9061382a565b60405180910390fd5b806001015434101561110d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110490613892565b60405180910390fd5b5f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f34905061115182338660405180602001604052805f815250611f01565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611194573d5f803e3d5ffd5b506001836002015f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16857f8562eb94748e30bb0071e932744ce902b460c683474fcb3bfd567ffa16b1afb28460405161120f919061317b565b60405180910390a450505050565b611225611b75565b80600b90816112349190613a4d565b5050565b5f61124282611bfc565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112ba575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016112b19190613115565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611307611b75565b6113105f611f26565b565b61131a611b75565b6001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f4a720df7efb74395906b386e2782fc71f9847a664ca498fba6aff4fa757ba5e260405160405180910390a250565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546113ec906135c9565b80601f0160208091040260200160405190810160405280929190818152602001828054611418906135c9565b80156114635780601f1061143a57610100808354040283529160200191611463565b820191905f5260205f20905b81548152906001019060200180831161144657829003601f168201915b5050505050905090565b600d602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015f9054906101000a900460ff16908060030154905084565b6114cc611b75565b5f6114d682611238565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153d90613b66565b60405180910390fd5b61156081338460405180602001604052805f815250611f01565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f6a64dcba95bf473fff7da0fdf74710d1178f99f72f94db03faaaa2850188adeb5f6040516115be9190613bbd565b60405180910390a45050565b6115dc6115d5611cbb565b8383611fe9565b5050565b5f600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661165283611238565b73ffffffffffffffffffffffffffffffffffffffff16146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f90613c46565b60405180910390fd5b5f81116116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190613cae565b60405180910390fd5b60405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020015f1515815260200142815250600d5f8481526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015f6101000a81548160ff02191690831515021790555060608201518160030155905050817fe13e4c5e18a62ac1723ea164c833de80c778f3e55b13b5cd8f166179eac7e44f82426040516117e0929190613ccc565b60405180910390a25050565b6117f7848484610d20565b61180b611802611cbb565b85858585612152565b50505050565b5f600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806118805750600c543373ffffffffffffffffffffffffffffffffffffffff163110155b80156118d35750600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905090565b60605f73ffffffffffffffffffffffffffffffffffffffff166118fa83611238565b73ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613d63565b60405180910390fd5b600b61195b836122fe565b60405160200161196c929190613e3b565b6040516020818303038152906040529050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b611a18611b75565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a88575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611a7f9190613115565b60405180910390fd5b611a9181611f26565b50565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611b5e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611b6e5750611b6d826123c8565b5b9050919050565b611b7d611cbb565b73ffffffffffffffffffffffffffffffffffffffff16611b9b6113b5565b73ffffffffffffffffffffffffffffffffffffffff1614611bfa57611bbe611cbb565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611bf19190613115565b60405180910390fd5b565b5f80611c0783612431565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c7957826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611c70919061317b565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b611ccf838383600161246a565b505050565b6001815f015f828254019250508190555050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d64575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d5b9190613115565b60405180910390fd5b5f611d7083835f611de7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611de2575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611dd99190613115565b60405180910390fd5b505050565b5f80611df4858585612629565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611e3757611e3284612834565b611e76565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e7557611e748185612878565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611eb757611eb28461294f565b611ef6565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611ef557611ef48585612a0f565b5b5b809150509392505050565b611f0c848484612a93565b611f20611f17611cbb565b85858585612152565b50505050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361205957816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016120509190613115565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121459190612f7f565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b11156122f7578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016121b09493929190613eb0565b6020604051808303815f875af19250505080156121eb57506040513d601f19601f820116820180604052508101906121e89190613f0e565b60015b61226c573d805f8114612219576040519150601f19603f3d011682016040523d82523d5f602084013e61221e565b606091505b505f81510361226457836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161225b9190613115565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122f557836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016122ec9190613115565b60405180910390fd5b505b5050505050565b60605f600161230c84612bfb565b0190505f8167ffffffffffffffff81111561232a576123296131ec565b5b6040519080825280601f01601f19166020018201604052801561235c5781602001600182028036833780820191505090505b5090505f82602001820190505b6001156123bd578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816123b2576123b1613f39565b5b0494505f8503612369575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806124a257505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156125d4575f6124b184611bfc565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561251b57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561252e575061252c8184611982565b155b1561257057826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016125679190613115565b60405180910390fd5b81156125d257838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f8061263484612431565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461267557612674818486612d4c565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612700576126b45f855f8061246a565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461277f57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f61288283611249565b90505f60075f8481526020019081526020015f205490505f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f209050828214612921575f815f8581526020019081526020015f2054905080825f8581526020019081526020015f20819055508260075f8381526020019081526020015f2081905550505b60075f8581526020019081526020015f205f9055805f8481526020019081526020015f205f90555050505050565b5f60016008805490506129629190613f93565b90505f60095f8481526020019081526020015f205490505f6008838154811061298e5761298d6137b3565b5b905f5260205f200154905080600883815481106129ae576129ad6137b3565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f905560088054806129f6576129f5613fc6565b5b600190038181905f5260205f20015f9055905550505050565b5f6001612a1b84611249565b612a259190613f93565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b03575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612afa9190613115565b60405180910390fd5b5f612b0f83835f611de7565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612b8157816040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612b78919061317b565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612bf5578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401612bec93929190613757565b60405180910390fd5b50505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612c57577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612c4d57612c4c613f39565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612c94576d04ee2d6d415b85acef81000000008381612c8a57612c89613f39565b5b0492506020810190505b662386f26fc100008310612cc357662386f26fc100008381612cb957612cb8613f39565b5b0492506010810190505b6305f5e1008310612cec576305f5e1008381612ce257612ce1613f39565b5b0492506008810190505b6127108310612d11576127108381612d0757612d06613f39565b5b0492506004810190505b60648310612d345760648381612d2a57612d29613f39565b5b0492506002810190505b600a8310612d43576001810190505b80915050919050565b612d57838383612e0f565b612e0a575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612dcb57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612dc2919061317b565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612e0192919061378c565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612ec657508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612e875750612e868484611982565b5b80612ec557508273ffffffffffffffffffffffffffffffffffffffff16612ead83611c82565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612f0982612ee0565b9050919050565b612f1981612eff565b8114612f23575f80fd5b50565b5f81359050612f3481612f10565b92915050565b5f60208284031215612f4f57612f4e612ed8565b5b5f612f5c84828501612f26565b91505092915050565b5f8115159050919050565b612f7981612f65565b82525050565b5f602082019050612f925f830184612f70565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612fcc81612f98565b8114612fd6575f80fd5b50565b5f81359050612fe781612fc3565b92915050565b5f6020828403121561300257613001612ed8565b5b5f61300f84828501612fd9565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61305a82613018565b6130648185613022565b9350613074818560208601613032565b61307d81613040565b840191505092915050565b5f6020820190508181035f8301526130a08184613050565b905092915050565b5f819050919050565b6130ba816130a8565b81146130c4575f80fd5b50565b5f813590506130d5816130b1565b92915050565b5f602082840312156130f0576130ef612ed8565b5b5f6130fd848285016130c7565b91505092915050565b61310f81612eff565b82525050565b5f6020820190506131285f830184613106565b92915050565b5f806040838503121561314457613143612ed8565b5b5f61315185828601612f26565b9250506020613162858286016130c7565b9150509250929050565b613175816130a8565b82525050565b5f60208201905061318e5f83018461316c565b92915050565b5f805f606084860312156131ab576131aa612ed8565b5b5f6131b886828701612f26565b93505060206131c986828701612f26565b92505060406131da868287016130c7565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61322282613040565b810181811067ffffffffffffffff82111715613241576132406131ec565b5b80604052505050565b5f613253612ecf565b905061325f8282613219565b919050565b5f67ffffffffffffffff82111561327e5761327d6131ec565b5b61328782613040565b9050602081019050919050565b828183375f83830152505050565b5f6132b46132af84613264565b61324a565b9050828152602081018484840111156132d0576132cf6131e8565b5b6132db848285613294565b509392505050565b5f82601f8301126132f7576132f66131e4565b5b81356133078482602086016132a2565b91505092915050565b5f6020828403121561332557613324612ed8565b5b5f82013567ffffffffffffffff81111561334257613341612edc565b5b61334e848285016132e3565b91505092915050565b5f60808201905061336a5f830187613106565b613377602083018661316c565b6133846040830185612f70565b613391606083018461316c565b95945050505050565b6133a381612f65565b81146133ad575f80fd5b50565b5f813590506133be8161339a565b92915050565b5f80604083850312156133da576133d9612ed8565b5b5f6133e785828601612f26565b92505060206133f8858286016133b0565b9150509250929050565b5f806040838503121561341857613417612ed8565b5b5f613425858286016130c7565b9250506020613436858286016130c7565b9150509250929050565b5f67ffffffffffffffff82111561345a576134596131ec565b5b61346382613040565b9050602081019050919050565b5f61348261347d84613440565b61324a565b90508281526020810184848401111561349e5761349d6131e8565b5b6134a9848285613294565b509392505050565b5f82601f8301126134c5576134c46131e4565b5b81356134d5848260208601613470565b91505092915050565b5f805f80608085870312156134f6576134f5612ed8565b5b5f61350387828801612f26565b945050602061351487828801612f26565b9350506040613525878288016130c7565b925050606085013567ffffffffffffffff81111561354657613545612edc565b5b613552878288016134b1565b91505092959194509250565b5f806040838503121561357457613573612ed8565b5b5f61358185828601612f26565b925050602061359285828601612f26565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806135e057607f821691505b6020821081036135f3576135f261359c565b5b50919050565b7f45786365656473206d6178696d756d20737570706c79000000000000000000005f82015250565b5f61362d601683613022565b9150613638826135f9565b602082019050919050565b5f6020820190508181035f83015261365a81613621565b9050919050565b7f496e73756666696369656e742066756e647320746f206d696e74204e465400005f82015250565b5f613695601e83613022565b91506136a082613661565b602082019050919050565b5f6020820190508181035f8301526136c281613689565b9050919050565b7f416464726573732068617320616c7265616479206d696e74656420616e204e465f8201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b5f613723602183613022565b915061372e826136c9565b604082019050919050565b5f6020820190508181035f83015261375081613717565b9050919050565b5f60608201905061376a5f830186613106565b613777602083018561316c565b6137846040830184613106565b949350505050565b5f60408201905061379f5f830185613106565b6137ac602083018461316c565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54686973204e46542068617320616c7265616479206265656e20736f6c642e005f82015250565b5f613814601f83613022565b915061381f826137e0565b602082019050919050565b5f6020820190508181035f83015261384181613808565b9050919050565b7f4e6f7420656e6f7567682045544820746f206275792074686973204e46542e005f82015250565b5f61387c601f83613022565b915061388782613848565b602082019050919050565b5f6020820190508181035f8301526138a981613870565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261390c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826138d1565b61391686836138d1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61395161394c613947846130a8565b61392e565b6130a8565b9050919050565b5f819050919050565b61396a83613937565b61397e61397682613958565b8484546138dd565b825550505050565b5f90565b613992613986565b61399d818484613961565b505050565b5b818110156139c0576139b55f8261398a565b6001810190506139a3565b5050565b601f821115613a05576139d6816138b0565b6139df846138c2565b810160208510156139ee578190505b613a026139fa856138c2565b8301826139a2565b50505b505050565b5f82821c905092915050565b5f613a255f1984600802613a0a565b1980831691505092915050565b5f613a3d8383613a16565b9150826002028217905092915050565b613a5682613018565b67ffffffffffffffff811115613a6f57613a6e6131ec565b5b613a7982546135c9565b613a848282856139c4565b5f60209050601f831160018114613ab5575f8415613aa3578287015190505b613aad8582613a32565b865550613b14565b601f198416613ac3866138b0565b5f5b82811015613aea57848901518255600182019150602085019450602081019050613ac5565b86831015613b075784890151613b03601f891682613a16565b8355505b6001600288020188555050505b505050505050565b7f546f6b656e20646f6573206e6f742065786973742e00000000000000000000005f82015250565b5f613b50601583613022565b9150613b5b82613b1c565b602082019050919050565b5f6020820190508181035f830152613b7d81613b44565b9050919050565b5f819050919050565b5f613ba7613ba2613b9d84613b84565b61392e565b6130a8565b9050919050565b613bb781613b8d565b82525050565b5f602082019050613bd05f830184613bae565b92915050565b7f596f7520617265206e6f7420746865206f776e6572206f662074686973204e465f8201527f542e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c30602283613022565b9150613c3b82613bd6565b604082019050919050565b5f6020820190508181035f830152613c5d81613c24565b9050919050565b7f5072696365206d7573742062652067726561746572207468616e20302e0000005f82015250565b5f613c98601d83613022565b9150613ca382613c64565b602082019050919050565b5f6020820190508181035f830152613cc581613c8c565b9050919050565b5f604082019050613cdf5f83018561316c565b613cec602083018461316c565b9392505050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f613d4d602f83613022565b9150613d5882613cf3565b604082019050919050565b5f6020820190508181035f830152613d7a81613d41565b9050919050565b5f81905092915050565b5f8154613d97816135c9565b613da18186613d81565b9450600182165f8114613dbb5760018114613dd057613e02565b60ff1983168652811515820286019350613e02565b613dd9856138b0565b5f5b83811015613dfa57815481890152600182019150602081019050613ddb565b838801955050505b50505092915050565b5f613e1582613018565b613e1f8185613d81565b9350613e2f818560208601613032565b80840191505092915050565b5f613e468285613d8b565b9150613e528284613e0b565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f613e8282613e5e565b613e8c8185613e68565b9350613e9c818560208601613032565b613ea581613040565b840191505092915050565b5f608082019050613ec35f830187613106565b613ed06020830186613106565b613edd604083018561316c565b8181036060830152613eef8184613e78565b905095945050505050565b5f81519050613f0881612fc3565b92915050565b5f60208284031215613f2357613f22612ed8565b5b5f613f3084828501613efa565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613f9d826130a8565b9150613fa8836130a8565b9250828203905081811115613fc057613fbf613f66565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea2646970667358221220ad5b2dc75df5a1e476b8ba3f6ce338a8b95399231112a3412bb3c23cbdea94c364736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000034e4552000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034e42540000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005068747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d4e6e7471397a363578744667744e565a727264566e6a314e4b45704132775166684c56776a506a744a32506400000000000000000000000000000000