[ { "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" } ]
6080604052666a94d74f430000600c5534801561001a575f80fd5b5060405161449b38038061449b833981810160405281019061003c9190610308565b338383815f908161004d91906105b9565b50806001908161005d91906105b9565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100d0575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016100c791906106c7565b60405180910390fd5b6100df816100f860201b60201c565b5080600b90816100ef91906105b9565b505050506106e0565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61021a826101d4565b810181811067ffffffffffffffff82111715610239576102386101e4565b5b80604052505050565b5f61024b6101bb565b90506102578282610211565b919050565b5f67ffffffffffffffff821115610276576102756101e4565b5b61027f826101d4565b9050602081019050919050565b8281835e5f83830152505050565b5f6102ac6102a78461025c565b610242565b9050828152602081018484840111156102c8576102c76101d0565b5b6102d384828561028c565b509392505050565b5f82601f8301126102ef576102ee6101cc565b5b81516102ff84826020860161029a565b91505092915050565b5f805f6060848603121561031f5761031e6101c4565b5b5f84015167ffffffffffffffff81111561033c5761033b6101c8565b5b610348868287016102db565b935050602084015167ffffffffffffffff811115610369576103686101c8565b5b610375868287016102db565b925050604084015167ffffffffffffffff811115610396576103956101c8565b5b6103a2868287016102db565b9150509250925092565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103fa57607f821691505b60208210810361040d5761040c6103b6565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261046f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610434565b6104798683610434565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104bd6104b86104b384610491565b61049a565b610491565b9050919050565b5f819050919050565b6104d6836104a3565b6104ea6104e2826104c4565b848454610440565b825550505050565b5f90565b6104fe6104f2565b6105098184846104cd565b505050565b5b8181101561052c576105215f826104f6565b60018101905061050f565b5050565b601f8211156105715761054281610413565b61054b84610425565b8101602085101561055a578190505b61056e61056685610425565b83018261050e565b50505b505050565b5f82821c905092915050565b5f6105915f1984600802610576565b1980831691505092915050565b5f6105a98383610582565b9150826002028217905092915050565b6105c2826103ac565b67ffffffffffffffff8111156105db576105da6101e4565b5b6105e582546103e3565b6105f0828285610530565b5f60209050601f831160018114610621575f841561060f578287015190505b610619858261059e565b865550610680565b601f19841661062f86610413565b5f5b8281101561065657848901518255600182019150602085019450602081019050610631565b86831015610673578489015161066f601f891682610582565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6106b182610688565b9050919050565b6106c1816106a7565b82525050565b5f6020820190506106da5f8301846106b8565b92915050565b613dae806106ed5f395ff3fe608060405260043610610203575f3560e01c806351ed828811610117578063a08db82e1161009f578063b88d4fde1161006e578063b88d4fde14610740578063beb9716d14610768578063c87b56dd14610792578063e985e9c5146107ce578063f2fde38b1461080a57610203565b8063a08db82e1461068c578063a22cb465146106b4578063a7ab09f9146106dc578063b2733b391461071857610203565b8063715018a6116100e6578063715018a6146105bb57806384028697146105d15780638da5cb5b146105f957806395d89b41146106235780639ace38c21461064d57610203565b806351ed8288146104ff57806355f804b31461051b5780636352211e1461054357806370a082311461057f57610203565b806318160ddd1161019a57806338e21cce1161016957806338e21cce146104215780633ccfd60b1461045d5780633fd173661461047357806342842e0e1461049b5780634f6ccce7146104c357610203565b806318160ddd1461036957806323b872dd1461039357806324c979a3146103bb5780632f745c59146103e557610203565b8063081812fc116101d6578063081812fc146102d1578063095ea7b31461030d5780630d39fc811461033557806314f710fe1461035f57610203565b806301fab91a1461020757806301ffc9a71461024357806304890b241461027f57806306fdde03146102a7575b5f80fd5b348015610212575f80fd5b5061022d60048036038101906102289190612dc9565b610832565b60405161023a9190612e0e565b60405180910390f35b34801561024e575f80fd5b5061026960048036038101906102649190612e7c565b61084f565b6040516102769190612e0e565b60405180910390f35b34801561028a575f80fd5b506102a560048036038101906102a09190612dc9565b6108c8565b005b3480156102b2575f80fd5b506102bb61096a565b6040516102c89190612f17565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190612f6a565b6109f9565b6040516103049190612fa4565b60405180910390f35b348015610318575f80fd5b50610333600480360381019061032e9190612fbd565b610a14565b005b348015610340575f80fd5b50610349610a2a565b604051610356919061300a565b60405180910390f35b610367610a30565b005b348015610374575f80fd5b5061037d610d13565b60405161038a919061300a565b60405180910390f35b34801561039e575f80fd5b506103b960048036038101906103b49190613023565b610d1f565b005b3480156103c6575f80fd5b506103cf610e1e565b6040516103dc919061300a565b60405180910390f35b3480156103f0575f80fd5b5061040b60048036038101906104069190612fbd565b610e23565b604051610418919061300a565b60405180910390f35b34801561042c575f80fd5b5061044760048036038101906104429190612dc9565b610ec7565b6040516104549190612e0e565b60405180910390f35b348015610468575f80fd5b50610471610ee4565b005b34801561047e575f80fd5b5061049960048036038101906104949190612f6a565b610f93565b005b3480156104a6575f80fd5b506104c160048036038101906104bc9190613023565b610fdc565b005b3480156104ce575f80fd5b506104e960048036038101906104e49190612f6a565b610ffb565b6040516104f6919061300a565b60405180910390f35b61051960048036038101906105149190612f6a565b61106d565b005b348015610526575f80fd5b50610541600480360381019061053c919061319f565b611229565b005b34801561054e575f80fd5b5061056960048036038101906105649190612f6a565b611244565b6040516105769190612fa4565b60405180910390f35b34801561058a575f80fd5b506105a560048036038101906105a09190612dc9565b611255565b6040516105b2919061300a565b60405180910390f35b3480156105c6575f80fd5b506105cf61130b565b005b3480156105dc575f80fd5b506105f760048036038101906105f29190612dc9565b61131e565b005b348015610604575f80fd5b5061060d6113c1565b60405161061a9190612fa4565b60405180910390f35b34801561062e575f80fd5b506106376113e9565b6040516106449190612f17565b60405180910390f35b348015610658575f80fd5b50610673600480360381019061066e9190612f6a565b611479565b60405161068394939291906131e6565b60405180910390f35b348015610697575f80fd5b506106b260048036038101906106ad9190612f6a565b6114d0565b005b3480156106bf575f80fd5b506106da60048036038101906106d59190613253565b6115d6565b005b3480156106e7575f80fd5b5061070260048036038101906106fd9190612dc9565b6115ec565b60405161070f9190612e0e565b60405180910390f35b348015610723575f80fd5b5061073e60048036038101906107399190613291565b61163e565b005b34801561074b575f80fd5b506107666004803603810190610761919061336d565b6117f8565b005b348015610773575f80fd5b5061077c61181d565b6040516107899190612e0e565b60405180910390f35b34801561079d575f80fd5b506107b860048036038101906107b39190612f6a565b6118e4565b6040516107c59190612f17565b60405180910390f35b3480156107d9575f80fd5b506107f460048036038101906107ef91906133ed565b6119ec565b6040516108019190612e0e565b60405180910390f35b348015610815575f80fd5b50610830600480360381019061082b9190612dc9565b611a7a565b005b600f602052805f5260405f205f915054906101000a900460ff1681565b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108c157506108c082611afe565b5b9050919050565b6108d0611bdf565b5f600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f1a4cc99e217d085c464cfb75164a5e2d0297c48dccfe099373913a93c81fcdae60405160405180910390a250565b60605f805461097890613458565b80601f01602080910402602001604051908101604052809291908181526020018280546109a490613458565b80156109ef5780601f106109c6576101008083540402835291602001916109ef565b820191905f5260205f20905b8154815290600101906020018083116109d257829003601f168201915b5050505050905090565b5f610a0382611c66565b50610a0d82611cec565b9050919050565b610a268282610a21611d25565b611d2c565b5050565b600c5481565b60c8610a3a610d13565b10610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a71906134d2565b60405180910390fd5b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610ad15750600c543410155b610b10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b079061353a565b60405180910390fd5b600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b91906135c8565b60405180910390fd5b610ba46010611d3e565b5f610baf6010611d52565b9050610bbb3382611d5e565b600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610c5557610c116113c1565b73ffffffffffffffffffffffffffffffffffffffff166108fc3490811502906040515f60405180830381858888f19350505050158015610c53573d5f803e3d5ffd5b505b6001600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff16827f8562eb94748e30bb0071e932744ce902b460c683474fcb3bfd567ffa16b1afb234604051610d08919061300a565b60405180910390a450565b5f600880549050905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d8f575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401610d869190612fa4565b60405180910390fd5b5f610da28383610d9d611d25565b611d7b565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e18578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401610e0f939291906135e6565b60405180910390fd5b50505050565b60c881565b5f610e2d83611255565b8210610e725782826040517fa57d13dc000000000000000000000000000000000000000000000000000000008152600401610e6992919061361b565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b600e602052805f5260405f205f915054906101000a900460ff1681565b610eec611bdf565b5f479050610ef86113c1565b73ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610f3a573d5f803e3d5ffd5b50610f436113c1565b73ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d582604051610f88919061300a565b60405180910390a250565b610f9b611bdf565b80600c819055507f25b1f9f6b6e61dfca5575239769e4450ed2e49176670837f5d1a82a9a2fc693f81604051610fd1919061300a565b60405180910390a150565b610ff683838360405180602001604052805f8152506117f8565b505050565b5f611004610d13565b8210611049575f826040517fa57d13dc00000000000000000000000000000000000000000000000000000000815260040161104092919061361b565b60405180910390fd5b6008828154811061105d5761105c613642565b5b905f5260205f2001549050919050565b5f600d5f8381526020019081526020015f209050806002015f9054906101000a900460ff16156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c9906136b9565b60405180910390fd5b8060010154341015611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613721565b60405180910390fd5b5f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f34905061115d82338660405180602001604052805f815250611e95565b8173ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156111a0573d5f803e3d5ffd5b506001836002015f6101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16857f8562eb94748e30bb0071e932744ce902b460c683474fcb3bfd567ffa16b1afb28460405161121b919061300a565b60405180910390a450505050565b611231611bdf565b80600b908161124091906138dc565b5050565b5f61124e82611c66565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112c6575f6040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016112bd9190612fa4565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b611313611bdf565b61131c5f611eba565b565b611326611bdf565b6001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f4a720df7efb74395906b386e2782fc71f9847a664ca498fba6aff4fa757ba5e260405160405180910390a250565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546113f890613458565b80601f016020809104026020016040519081016040528092919081815260200182805461142490613458565b801561146f5780601f106114465761010080835404028352916020019161146f565b820191905f5260205f20905b81548152906001019060200180831161145257829003601f168201915b5050505050905090565b600d602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015f9054906101000a900460ff16908060030154905084565b6114d8611bdf565b5f6114e282611244565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611552576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611549906139f5565b60405180910390fd5b61156c81338460405180602001604052805f815250611e95565b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f6a64dcba95bf473fff7da0fdf74710d1178f99f72f94db03faaaa2850188adeb5f6040516115ca9190613a4c565b60405180910390a45050565b6115e86115e1611d25565b8383611f7d565b5050565b5f600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661165e83611244565b73ffffffffffffffffffffffffffffffffffffffff16146116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90613ad5565b60405180910390fd5b5f81116116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed90613b3d565b60405180910390fd5b60405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020015f1515815260200142815250600d5f8481526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101556040820151816002015f6101000a81548160ff02191690831515021790555060608201518160030155905050817fe13e4c5e18a62ac1723ea164c833de80c778f3e55b13b5cd8f166179eac7e44f82426040516117ec929190613b5b565b60405180910390a25050565b611803848484610d1f565b61181761180e611d25565b858585856120e6565b50505050565b5f600f5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061188c5750600c543373ffffffffffffffffffffffffffffffffffffffff163110155b80156118df5750600e5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b905090565b60605f73ffffffffffffffffffffffffffffffffffffffff1661190683611244565b73ffffffffffffffffffffffffffffffffffffffff160361195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390613bf2565b60405180910390fd5b600b805461196990613458565b80601f016020809104026020016040519081016040528092919081815260200182805461199590613458565b80156119e05780601f106119b7576101008083540402835291602001916119e0565b820191905f5260205f20905b8154815290600101906020018083116119c357829003601f168201915b50505050509050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b611a82611bdf565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611af2575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401611ae99190612fa4565b60405180910390fd5b611afb81611eba565b50565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611bc857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611bd85750611bd782612292565b5b9050919050565b611be7611d25565b73ffffffffffffffffffffffffffffffffffffffff16611c056113c1565b73ffffffffffffffffffffffffffffffffffffffff1614611c6457611c28611d25565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401611c5b9190612fa4565b60405180910390fd5b565b5f80611c71836122fb565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ce357826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611cda919061300a565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b611d398383836001612334565b505050565b6001815f015f828254019250508190555050565b5f815f01549050919050565b611d77828260405180602001604052805f8152506124f3565b5050565b5f80611d88858585612516565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611dcb57611dc684612721565b611e0a565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e0957611e088185612765565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611e4b57611e468461283c565b611e8a565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e8957611e8885856128fc565b5b5b809150509392505050565b611ea0848484612980565b611eb4611eab611d25565b858585856120e6565b50505050565b5f600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611fed57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611fe49190612fa4565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516120d99190612e0e565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b111561228b578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b81526004016121449493929190613c62565b6020604051808303815f875af192505050801561217f57506040513d601f19601f8201168201806040525081019061217c9190613cc0565b60015b612200573d805f81146121ad576040519150601f19603f3d011682016040523d82523d5f602084013e6121b2565b606091505b505f8151036121f857836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016121ef9190612fa4565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461228957836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016122809190612fa4565b60405180910390fd5b505b5050505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b808061236c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561249e575f61237b84611c66565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123e557508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b80156123f857506123f681846119ec565b155b1561243a57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016124319190612fa4565b60405180910390fd5b811561249c57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6124fd8383612ae8565b612511612508611d25565b5f8585856120e6565b505050565b5f80612521846122fb565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461256257612561818486612bdb565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146125ed576125a15f855f80612334565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461266c57600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f61276f83611255565b90505f60075f8481526020019081526020015f205490505f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905082821461280e575f815f8581526020019081526020015f2054905080825f8581526020019081526020015f20819055508260075f8381526020019081526020015f2081905550505b60075f8581526020019081526020015f205f9055805f8481526020019081526020015f205f90555050505050565b5f600160088054905061284f9190613d18565b90505f60095f8481526020019081526020015f205490505f6008838154811061287b5761287a613642565b5b905f5260205f2001549050806008838154811061289b5761289a613642565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f905560088054806128e3576128e2613d4b565b5b600190038181905f5260205f20015f9055905550505050565b5f600161290884611255565b6129129190613d18565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036129f0575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016129e79190612fa4565b60405180910390fd5b5f6129fc83835f611d7b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612a6e57816040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612a65919061300a565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612ae2578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401612ad9939291906135e6565b60405180910390fd5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612b58575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401612b4f9190612fa4565b60405180910390fd5b5f612b6483835f611d7b565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614612bd6575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401612bcd9190612fa4565b60405180910390fd5b505050565b612be6838383612c9e565b612c99575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612c5a57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401612c51919061300a565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612c9092919061361b565b60405180910390fd5b505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612d5557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612d165750612d1584846119ec565b5b80612d5457508273ffffffffffffffffffffffffffffffffffffffff16612d3c83611cec565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d9882612d6f565b9050919050565b612da881612d8e565b8114612db2575f80fd5b50565b5f81359050612dc381612d9f565b92915050565b5f60208284031215612dde57612ddd612d67565b5b5f612deb84828501612db5565b91505092915050565b5f8115159050919050565b612e0881612df4565b82525050565b5f602082019050612e215f830184612dff565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e5b81612e27565b8114612e65575f80fd5b50565b5f81359050612e7681612e52565b92915050565b5f60208284031215612e9157612e90612d67565b5b5f612e9e84828501612e68565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612ee982612ea7565b612ef38185612eb1565b9350612f03818560208601612ec1565b612f0c81612ecf565b840191505092915050565b5f6020820190508181035f830152612f2f8184612edf565b905092915050565b5f819050919050565b612f4981612f37565b8114612f53575f80fd5b50565b5f81359050612f6481612f40565b92915050565b5f60208284031215612f7f57612f7e612d67565b5b5f612f8c84828501612f56565b91505092915050565b612f9e81612d8e565b82525050565b5f602082019050612fb75f830184612f95565b92915050565b5f8060408385031215612fd357612fd2612d67565b5b5f612fe085828601612db5565b9250506020612ff185828601612f56565b9150509250929050565b61300481612f37565b82525050565b5f60208201905061301d5f830184612ffb565b92915050565b5f805f6060848603121561303a57613039612d67565b5b5f61304786828701612db5565b935050602061305886828701612db5565b925050604061306986828701612f56565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6130b182612ecf565b810181811067ffffffffffffffff821117156130d0576130cf61307b565b5b80604052505050565b5f6130e2612d5e565b90506130ee82826130a8565b919050565b5f67ffffffffffffffff82111561310d5761310c61307b565b5b61311682612ecf565b9050602081019050919050565b828183375f83830152505050565b5f61314361313e846130f3565b6130d9565b90508281526020810184848401111561315f5761315e613077565b5b61316a848285613123565b509392505050565b5f82601f83011261318657613185613073565b5b8135613196848260208601613131565b91505092915050565b5f602082840312156131b4576131b3612d67565b5b5f82013567ffffffffffffffff8111156131d1576131d0612d6b565b5b6131dd84828501613172565b91505092915050565b5f6080820190506131f95f830187612f95565b6132066020830186612ffb565b6132136040830185612dff565b6132206060830184612ffb565b95945050505050565b61323281612df4565b811461323c575f80fd5b50565b5f8135905061324d81613229565b92915050565b5f806040838503121561326957613268612d67565b5b5f61327685828601612db5565b92505060206132878582860161323f565b9150509250929050565b5f80604083850312156132a7576132a6612d67565b5b5f6132b485828601612f56565b92505060206132c585828601612f56565b9150509250929050565b5f67ffffffffffffffff8211156132e9576132e861307b565b5b6132f282612ecf565b9050602081019050919050565b5f61331161330c846132cf565b6130d9565b90508281526020810184848401111561332d5761332c613077565b5b613338848285613123565b509392505050565b5f82601f83011261335457613353613073565b5b81356133648482602086016132ff565b91505092915050565b5f805f806080858703121561338557613384612d67565b5b5f61339287828801612db5565b94505060206133a387828801612db5565b93505060406133b487828801612f56565b925050606085013567ffffffffffffffff8111156133d5576133d4612d6b565b5b6133e187828801613340565b91505092959194509250565b5f806040838503121561340357613402612d67565b5b5f61341085828601612db5565b925050602061342185828601612db5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061346f57607f821691505b6020821081036134825761348161342b565b5b50919050565b7f45786365656473206d6178696d756d20737570706c79000000000000000000005f82015250565b5f6134bc601683612eb1565b91506134c782613488565b602082019050919050565b5f6020820190508181035f8301526134e9816134b0565b9050919050565b7f496e73756666696369656e742066756e647320746f206d696e74204e465400005f82015250565b5f613524601e83612eb1565b915061352f826134f0565b602082019050919050565b5f6020820190508181035f83015261355181613518565b9050919050565b7f416464726573732068617320616c7265616479206d696e74656420616e204e465f8201527f5400000000000000000000000000000000000000000000000000000000000000602082015250565b5f6135b2602183612eb1565b91506135bd82613558565b604082019050919050565b5f6020820190508181035f8301526135df816135a6565b9050919050565b5f6060820190506135f95f830186612f95565b6136066020830185612ffb565b6136136040830184612f95565b949350505050565b5f60408201905061362e5f830185612f95565b61363b6020830184612ffb565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f54686973204e46542068617320616c7265616479206265656e20736f6c642e005f82015250565b5f6136a3601f83612eb1565b91506136ae8261366f565b602082019050919050565b5f6020820190508181035f8301526136d081613697565b9050919050565b7f4e6f7420656e6f7567682045544820746f206275792074686973204e46542e005f82015250565b5f61370b601f83612eb1565b9150613716826136d7565b602082019050919050565b5f6020820190508181035f830152613738816136ff565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261379b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613760565b6137a58683613760565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6137e06137db6137d684612f37565b6137bd565b612f37565b9050919050565b5f819050919050565b6137f9836137c6565b61380d613805826137e7565b84845461376c565b825550505050565b5f90565b613821613815565b61382c8184846137f0565b505050565b5b8181101561384f576138445f82613819565b600181019050613832565b5050565b601f821115613894576138658161373f565b61386e84613751565b8101602085101561387d578190505b61389161388985613751565b830182613831565b50505b505050565b5f82821c905092915050565b5f6138b45f1984600802613899565b1980831691505092915050565b5f6138cc83836138a5565b9150826002028217905092915050565b6138e582612ea7565b67ffffffffffffffff8111156138fe576138fd61307b565b5b6139088254613458565b613913828285613853565b5f60209050601f831160018114613944575f8415613932578287015190505b61393c85826138c1565b8655506139a3565b601f1984166139528661373f565b5f5b8281101561397957848901518255600182019150602085019450602081019050613954565b868310156139965784890151613992601f8916826138a5565b8355505b6001600288020188555050505b505050505050565b7f546f6b656e20646f6573206e6f742065786973742e00000000000000000000005f82015250565b5f6139df601583612eb1565b91506139ea826139ab565b602082019050919050565b5f6020820190508181035f830152613a0c816139d3565b9050919050565b5f819050919050565b5f613a36613a31613a2c84613a13565b6137bd565b612f37565b9050919050565b613a4681613a1c565b82525050565b5f602082019050613a5f5f830184613a3d565b92915050565b7f596f7520617265206e6f7420746865206f776e6572206f662074686973204e465f8201527f542e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613abf602283612eb1565b9150613aca82613a65565b604082019050919050565b5f6020820190508181035f830152613aec81613ab3565b9050919050565b7f5072696365206d7573742062652067726561746572207468616e20302e0000005f82015250565b5f613b27601d83612eb1565b9150613b3282613af3565b602082019050919050565b5f6020820190508181035f830152613b5481613b1b565b9050919050565b5f604082019050613b6e5f830185612ffb565b613b7b6020830184612ffb565b9392505050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f5f8201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b5f613bdc602f83612eb1565b9150613be782613b82565b604082019050919050565b5f6020820190508181035f830152613c0981613bd0565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f613c3482613c10565b613c3e8185613c1a565b9350613c4e818560208601612ec1565b613c5781612ecf565b840191505092915050565b5f608082019050613c755f830187612f95565b613c826020830186612f95565b613c8f6040830185612ffb565b8181036060830152613ca18184613c2a565b905095945050505050565b5f81519050613cba81612e52565b92915050565b5f60208284031215613cd557613cd4612d67565b5b5f613ce284828501613cac565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d2282612f37565b9150613d2d83612f37565b9250828203905081811115613d4557613d44613ceb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212203eafbd7623b05fab75bbd89e35e933b6b79ed084b9bdaa86deabf924202806e064736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000f4e657847656e657369735072696d65000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054e47535052000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005068747470733a2f2f676174657761792e70696e6174612e636c6f75642f697066732f516d54345548653358477841324a5353514b556244385553374477336b6e397a393238695553474e33537568626e00000000000000000000000000000000