[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "msgSender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "mintQuantity", "type": "uint256" } ], "name": "NewMint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "changeDefURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "flag", "type": "uint256" } ], "name": "changeTokenURIFlag", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "changeURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "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": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "transferOut", "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" } ]
6080604052604051806080016040528060438152602001620036a860439139600a90816200002e91906200047d565b5060405180602001604052806000815250600b90816200004f91906200047d565b503480156200005d57600080fd5b506040518060400160405280601581526020017f41727261792052657365617263682058205061737300000000000000000000008152506040518060400160405280600481526020017f41525850000000000000000000000000000000000000000000000000000000008152508160029081620000db91906200047d565b508060039081620000ed91906200047d565b50620000fe6200012c60201b60201c565b6000819055505050620001266200011a6200013560201b60201c565b6200013d60201b60201c565b62000564565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028557607f821691505b6020821081036200029b576200029a6200023d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002c6565b620003118683620002c6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200035e62000358620003528462000329565b62000333565b62000329565b9050919050565b6000819050919050565b6200037a836200033d565b62000392620003898262000365565b848454620002d3565b825550505050565b600090565b620003a96200039a565b620003b68184846200036f565b505050565b5b81811015620003de57620003d26000826200039f565b600181019050620003bc565b5050565b601f8211156200042d57620003f781620002a1565b6200040284620002b6565b8101602085101562000412578190505b6200042a6200042185620002b6565b830182620003bb565b50505b505050565b600082821c905092915050565b6000620004526000198460080262000432565b1980831691505092915050565b60006200046d83836200043f565b9150826002028217905092915050565b620004888262000203565b67ffffffffffffffff811115620004a457620004a36200020e565b5b620004b082546200026c565b620004bd828285620003e2565b600060209050601f831160018114620004f55760008415620004e0578287015190505b620004ec85826200045f565b8655506200055c565b601f1984166200050586620002a1565b60005b828110156200052f5784890151825560018201915060208501945060208101905062000508565b868310156200054f57848901516200054b601f8916826200043f565b8355505b6001600288020188555050505b505050505050565b61313480620005746000396000f3fe60806040526004361061014b5760003560e01c806370a08231116100b6578063a22cb4651161006f578063a22cb46514610434578063b88d4fde1461045d578063c87b56dd14610479578063e5e01c11146104b6578063e985e9c5146104df578063f2fde38b1461051c5761014b565b806370a0823114610345578063715018a6146103825780638da5cb5b1461039957806395d89b41146103c45780639894ba7c146103ef578063a0712d68146104185761014b565b806323b872dd1161010857806323b872dd1461026557806332cb6b0c146102815780633ccfd60b146102ac57806342842e0e146102c3578063528c06cc146102df5780636352211e146103085761014b565b806301ffc9a71461015057806306fdde031461018d578063081812fc146101b8578063095ea7b3146101f55780630e5c19191461021157806318160ddd1461023a575b600080fd5b34801561015c57600080fd5b5061017760048036038101906101729190612131565b610545565b6040516101849190612179565b60405180910390f35b34801561019957600080fd5b506101a26105d7565b6040516101af9190612224565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da919061227c565b610669565b6040516101ec91906122ea565b60405180910390f35b61020f600480360381019061020a9190612331565b6106e8565b005b34801561021d57600080fd5b50610238600480360381019061023391906123d6565b61082c565b005b34801561024657600080fd5b5061024f6108be565b60405161025c9190612432565b60405180910390f35b61027f600480360381019061027a919061244d565b6108d5565b005b34801561028d57600080fd5b50610296610bf7565b6040516102a39190612432565b60405180910390f35b3480156102b857600080fd5b506102c1610bfd565b005b6102dd60048036038101906102d8919061244d565b610d28565b005b3480156102eb57600080fd5b506103066004803603810190610301919061227c565b610d48565b005b34801561031457600080fd5b5061032f600480360381019061032a919061227c565b610dce565b60405161033c91906122ea565b60405180910390f35b34801561035157600080fd5b5061036c600480360381019061036791906124a0565b610de0565b6040516103799190612432565b60405180910390f35b34801561038e57600080fd5b50610397610e98565b005b3480156103a557600080fd5b506103ae610f20565b6040516103bb91906122ea565b60405180910390f35b3480156103d057600080fd5b506103d9610f4a565b6040516103e69190612224565b60405180910390f35b3480156103fb57600080fd5b50610416600480360381019061041191906124a0565b610fdc565b005b610432600480360381019061042d919061227c565b6110a8565b005b34801561044057600080fd5b5061045b600480360381019061045691906124f9565b6113fe565b005b61047760048036038101906104729190612669565b611509565b005b34801561048557600080fd5b506104a0600480360381019061049b919061227c565b61157c565b6040516104ad9190612224565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d891906123d6565b611695565b005b3480156104eb57600080fd5b50610506600480360381019061050191906126ec565b611727565b6040516105139190612179565b60405180910390f35b34801561052857600080fd5b50610543600480360381019061053e91906124a0565b6117bb565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105a057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105d05750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b6060600280546105e69061275b565b80601f01602080910402602001604051908101604052809291908181526020018280546106129061275b565b801561065f5780601f106106345761010080835404028352916020019161065f565b820191906000526020600020905b81548152906001019060200180831161064257829003601f168201915b5050505050905090565b6000610674826118b2565b6106aa576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106f382610dce565b90508073ffffffffffffffffffffffffffffffffffffffff16610714611911565b73ffffffffffffffffffffffffffffffffffffffff1614610777576107408161073b611911565b611727565b610776576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610834611919565b73ffffffffffffffffffffffffffffffffffffffff16610852610f20565b73ffffffffffffffffffffffffffffffffffffffff16146108a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089f906127d8565b60405180910390fd5b8181600a91826108b99291906129af565b505050565b60006108c8611921565b6001546000540303905090565b60006108e08261192a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610947576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610953846119f6565b915091506109698187610964611911565b611a1d565b6109b55761097e86610979611911565b611727565b6109b4576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610a1b576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a288686866001611a61565b8015610a3357600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610b0185610add888887611a67565b7c020000000000000000000000000000000000000000000000000000000017611a8f565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610b875760006001850190506000600460008381526020019081526020016000205403610b85576000548114610b84578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610bef8686866001611aba565b505050505050565b610cf481565b610c05611919565b73ffffffffffffffffffffffffffffffffffffffff16610c23610f20565b73ffffffffffffffffffffffffffffffffffffffff1614610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c70906127d8565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610c9f90612ab0565b60006040518083038185875af1925050503d8060008114610cdc576040519150601f19603f3d011682016040523d82523d6000602084013e610ce1565b606091505b5050905080610d25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1c90612b11565b60405180910390fd5b50565b610d4383838360405180602001604052806000815250611509565b505050565b610d50611919565b73ffffffffffffffffffffffffffffffffffffffff16610d6e610f20565b73ffffffffffffffffffffffffffffffffffffffff1614610dc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbb906127d8565b60405180910390fd5b8060098190555050565b6000610dd98261192a565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e47576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610ea0611919565b73ffffffffffffffffffffffffffffffffffffffff16610ebe610f20565b73ffffffffffffffffffffffffffffffffffffffff1614610f14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0b906127d8565b60405180910390fd5b610f1e6000611ac0565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610f599061275b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f859061275b565b8015610fd25780601f10610fa757610100808354040283529160200191610fd2565b820191906000526020600020905b815481529060010190602001808311610fb557829003601f168201915b5050505050905090565b610fe4611919565b73ffffffffffffffffffffffffffffffffffffffff16611002610f20565b73ffffffffffffffffffffffffffffffffffffffff1614611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f906127d8565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a3573d6000803e3d6000fd5b505050565b610cf4816110b46108be565b6110be9190612b60565b11156110ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f690612be0565b60405180910390fd5b600181148061110e5750600281145b806111195750600381145b806111245750600581145b8061112f5750600a81145b8061113a5750606481145b611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090612c4c565b60405180910390fd5b600181036111da576602c2ad68fd90003410156111cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c290612cb8565b60405180910390fd5b6111d53382611b86565b6113b7565b6002810361123b576604b9a0c18d200034101561122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390612cb8565b60405180910390fd5b6112363382611b86565b6113b6565b6003810361129c576605e5c2de53c00034101561128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490612cb8565b60405180910390fd5b6112973382611b86565b6113b5565b600581036112fd576609d74ce20720003410156112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e590612cb8565b60405180910390fd5b6112f83382611b86565b6113b4565b600a810361135e57661156558a81000034101561134f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134690612cb8565b60405180910390fd5b6113593382611b86565b6113b3565b6689d864f94900003410156113a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139f90612cb8565b60405180910390fd5b6113b23382611b86565b5b5b5b5b5b803373ffffffffffffffffffffffffffffffffffffffff167f52277f0b4a9b555c5aa96900a13546f972bda413737ec164aac947c87eec602460405160405180910390a350565b806007600061140b611911565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166114b8611911565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114fd9190612179565b60405180910390a35050565b6115148484846108d5565b60008373ffffffffffffffffffffffffffffffffffffffff163b146115765761153f84848484611ba4565b611575576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606060006009540361161a57600a80546115959061275b565b80601f01602080910402602001604051908101604052809291908181526020018280546115c19061275b565b801561160e5780601f106115e35761010080835404028352916020019161160e565b820191906000526020600020905b8154815290600101906020018083116115f157829003601f168201915b50505050509050611690565b611623826118b2565b611662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165990612d4a565b60405180910390fd5b600b61166d83611cf4565b60405160200161167e929190612e29565b60405160208183030381529060405290505b919050565b61169d611919565b73ffffffffffffffffffffffffffffffffffffffff166116bb610f20565b73ffffffffffffffffffffffffffffffffffffffff1614611711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611708906127d8565b60405180910390fd5b8181600b91826117229291906129af565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6117c3611919565b73ffffffffffffffffffffffffffffffffffffffff166117e1610f20565b73ffffffffffffffffffffffffffffffffffffffff1614611837576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182e906127d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189d90612ebf565b60405180910390fd5b6118af81611ac0565b50565b6000816118bd611921565b111580156118cc575060005482105b801561190a575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b60006001905090565b60008082905080611939611921565b116119bf576000548110156119be5760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216036119bc575b600081036119b2576004600083600190039350838152602001908152602001600020549050611988565b80925050506119f1565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611a7e868684611e54565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611ba0828260405180602001604052806000815250611e5d565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611bca611911565b8786866040518563ffffffff1660e01b8152600401611bec9493929190612f34565b6020604051808303816000875af1925050508015611c2857506040513d601f19601f82011682018060405250810190611c259190612f95565b60015b611ca1573d8060008114611c58576040519150601f19603f3d011682016040523d82523d6000602084013e611c5d565b606091505b506000815103611c99576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060008203611d3b576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611e4f565b600082905060005b60008214611d6d578080611d5690612fc2565b915050600a82611d669190613039565b9150611d43565b60008167ffffffffffffffff811115611d8957611d8861253e565b5b6040519080825280601f01601f191660200182016040528015611dbb5781602001600182028036833780820191505090505b5090505b60008514611e4857600182611dd4919061306a565b9150600a85611de3919061309e565b6030611def9190612b60565b60f81b818381518110611e0557611e046130cf565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611e419190613039565b9450611dbf565b8093505050505b919050565b60009392505050565b611e678383611efa565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611ef557600080549050600083820390505b611ea76000868380600101945086611ba4565b611edd576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110611e94578160005414611ef257600080fd5b50505b505050565b60008054905060008203611f3a576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f476000848385611a61565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611fbe83611faf6000866000611a67565b611fb8856120b5565b17611a8f565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b81811461205f57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612024565b506000820361209a576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506120b06000848385611aba565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61210e816120d9565b811461211957600080fd5b50565b60008135905061212b81612105565b92915050565b600060208284031215612147576121466120cf565b5b60006121558482850161211c565b91505092915050565b60008115159050919050565b6121738161215e565b82525050565b600060208201905061218e600083018461216a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121ce5780820151818401526020810190506121b3565b60008484015250505050565b6000601f19601f8301169050919050565b60006121f682612194565b612200818561219f565b93506122108185602086016121b0565b612219816121da565b840191505092915050565b6000602082019050818103600083015261223e81846121eb565b905092915050565b6000819050919050565b61225981612246565b811461226457600080fd5b50565b60008135905061227681612250565b92915050565b600060208284031215612292576122916120cf565b5b60006122a084828501612267565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006122d4826122a9565b9050919050565b6122e4816122c9565b82525050565b60006020820190506122ff60008301846122db565b92915050565b61230e816122c9565b811461231957600080fd5b50565b60008135905061232b81612305565b92915050565b60008060408385031215612348576123476120cf565b5b60006123568582860161231c565b925050602061236785828601612267565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261239657612395612371565b5b8235905067ffffffffffffffff8111156123b3576123b2612376565b5b6020830191508360018202830111156123cf576123ce61237b565b5b9250929050565b600080602083850312156123ed576123ec6120cf565b5b600083013567ffffffffffffffff81111561240b5761240a6120d4565b5b61241785828601612380565b92509250509250929050565b61242c81612246565b82525050565b60006020820190506124476000830184612423565b92915050565b600080600060608486031215612466576124656120cf565b5b60006124748682870161231c565b93505060206124858682870161231c565b925050604061249686828701612267565b9150509250925092565b6000602082840312156124b6576124b56120cf565b5b60006124c48482850161231c565b91505092915050565b6124d68161215e565b81146124e157600080fd5b50565b6000813590506124f3816124cd565b92915050565b600080604083850312156125105761250f6120cf565b5b600061251e8582860161231c565b925050602061252f858286016124e4565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612576826121da565b810181811067ffffffffffffffff821117156125955761259461253e565b5b80604052505050565b60006125a86120c5565b90506125b4828261256d565b919050565b600067ffffffffffffffff8211156125d4576125d361253e565b5b6125dd826121da565b9050602081019050919050565b82818337600083830152505050565b600061260c612607846125b9565b61259e565b90508281526020810184848401111561262857612627612539565b5b6126338482856125ea565b509392505050565b600082601f8301126126505761264f612371565b5b81356126608482602086016125f9565b91505092915050565b60008060008060808587031215612683576126826120cf565b5b60006126918782880161231c565b94505060206126a28782880161231c565b93505060406126b387828801612267565b925050606085013567ffffffffffffffff8111156126d4576126d36120d4565b5b6126e08782880161263b565b91505092959194509250565b60008060408385031215612703576127026120cf565b5b60006127118582860161231c565b92505060206127228582860161231c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061277357607f821691505b6020821081036127865761278561272c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127c260208361219f565b91506127cd8261278c565b602082019050919050565b600060208201905081810360008301526127f1816127b5565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026128657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612828565b61286f8683612828565b95508019841693508086168417925050509392505050565b6000819050919050565b60006128ac6128a76128a284612246565b612887565b612246565b9050919050565b6000819050919050565b6128c683612891565b6128da6128d2826128b3565b848454612835565b825550505050565b600090565b6128ef6128e2565b6128fa8184846128bd565b505050565b5b8181101561291e576129136000826128e7565b600181019050612900565b5050565b601f8211156129635761293481612803565b61293d84612818565b8101602085101561294c578190505b61296061295885612818565b8301826128ff565b50505b505050565b600082821c905092915050565b600061298660001984600802612968565b1980831691505092915050565b600061299f8383612975565b9150826002028217905092915050565b6129b983836127f8565b67ffffffffffffffff8111156129d2576129d161253e565b5b6129dc825461275b565b6129e7828285612922565b6000601f831160018114612a165760008415612a04578287013590505b612a0e8582612993565b865550612a76565b601f198416612a2486612803565b60005b82811015612a4c57848901358255600182019150602085019450602081019050612a27565b86831015612a695784890135612a65601f891682612975565b8355505b6001600288020188555050505b50505050505050565b600081905092915050565b50565b6000612a9a600083612a7f565b9150612aa582612a8a565b600082019050919050565b6000612abb82612a8d565b9150819050919050565b7f5769746864726177206661696c65642e00000000000000000000000000000000600082015250565b6000612afb60108361219f565b9150612b0682612ac5565b602082019050919050565b60006020820190508181036000830152612b2a81612aee565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b6b82612246565b9150612b7683612246565b9250828201905080821115612b8e57612b8d612b31565b5b92915050565b7f4552433732313a2045786365656473206d6178696d756d20737570706c790000600082015250565b6000612bca601e8361219f565b9150612bd582612b94565b602082019050919050565b60006020820190508181036000830152612bf981612bbd565b9050919050565b7f4552433732313a20496e76616c6964207175616e746974790000000000000000600082015250565b6000612c3660188361219f565b9150612c4182612c00565b602082019050919050565b60006020820190508181036000830152612c6581612c29565b9050919050565b7f4552433732313a20496e73756666696369656e74207061796d656e7400000000600082015250565b6000612ca2601c8361219f565b9150612cad82612c6c565b602082019050919050565b60006020820190508181036000830152612cd181612c95565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000612d34602f8361219f565b9150612d3f82612cd8565b604082019050919050565b60006020820190508181036000830152612d6381612d27565b9050919050565b600081905092915050565b60008154612d828161275b565b612d8c8186612d6a565b94506001821660008114612da75760018114612dbc57612def565b60ff1983168652811515820286019350612def565b612dc585612803565b60005b83811015612de757815481890152600182019150602081019050612dc8565b838801955050505b50505092915050565b6000612e0382612194565b612e0d8185612d6a565b9350612e1d8185602086016121b0565b80840191505092915050565b6000612e358285612d75565b9150612e418284612df8565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612ea960268361219f565b9150612eb482612e4d565b604082019050919050565b60006020820190508181036000830152612ed881612e9c565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000612f0682612edf565b612f108185612eea565b9350612f208185602086016121b0565b612f29816121da565b840191505092915050565b6000608082019050612f4960008301876122db565b612f5660208301866122db565b612f636040830185612423565b8181036060830152612f758184612efb565b905095945050505050565b600081519050612f8f81612105565b92915050565b600060208284031215612fab57612faa6120cf565b5b6000612fb984828501612f80565b91505092915050565b6000612fcd82612246565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fff57612ffe612b31565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061304482612246565b915061304f83612246565b92508261305f5761305e61300a565b5b828204905092915050565b600061307582612246565b915061308083612246565b925082820390508181111561309857613097612b31565b5b92915050565b60006130a982612246565b91506130b483612246565b9250826130c4576130c361300a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122092f1bb91f1cfb2f65af111148a73430a83f95f985c18f5e99bf95d43e9cf916b64736f6c6343000811003368747470733a2f2f697066732e696f2f697066732f516d5343687a77717a556e57314b57726d5a423673424a4c576144564358624736744737386663594d4b69534471