[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Minted", "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": [ { "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": "string", "name": "imageURI", "type": "string" } ], "name": "formatTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "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": "string", "name": "svg", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "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": "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": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "svg", "type": "string" } ], "name": "svgToImageURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "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": [ { "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" } ]
60806040523480156200001157600080fd5b50336040518060400160405280600a81526020017f4f6e436861696e4e4654000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4f4e430000000000000000000000000000000000000000000000000000000000815250816000908162000090919062000472565b508060019081620000a2919062000472565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200011a5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200011191906200059e565b60405180910390fd5b6200012b816200013260201b60201c565b50620005bb565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200027a57607f821691505b60208210810362000290576200028f62000232565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002bb565b620003068683620002bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003536200034d62000347846200031e565b62000328565b6200031e565b9050919050565b6000819050919050565b6200036f8362000332565b620003876200037e826200035a565b848454620002c8565b825550505050565b600090565b6200039e6200038f565b620003ab81848462000364565b505050565b5b81811015620003d357620003c760008262000394565b600181019050620003b1565b5050565b601f8211156200042257620003ec8162000296565b620003f784620002ab565b8101602085101562000407578190505b6200041f6200041685620002ab565b830182620003b0565b50505b505050565b600082821c905092915050565b6000620004476000198460080262000427565b1980831691505092915050565b600062000462838362000434565b9150826002028217905092915050565b6200047d82620001f8565b67ffffffffffffffff81111562000499576200049862000203565b5b620004a5825462000261565b620004b2828285620003d7565b600060209050601f831160018114620004ea5760008415620004d5578287015190505b620004e1858262000454565b86555062000551565b601f198416620004fa8662000296565b60005b828110156200052457848901518255600182019150602085019450602081019050620004fd565b8683101562000544578489015162000540601f89168262000434565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005868262000559565b9050919050565b620005988162000579565b82525050565b6000602082019050620005b560008301846200058d565b92915050565b612bfc80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063b88d4fde11610071578063b88d4fde1461031a578063c87b56dd14610336578063d85d3d2714610366578063e985e9c514610382578063f2fde38b146103b257610121565b8063715018a61461028857806371aee193146102925780638da5cb5b146102c257806395d89b41146102e0578063a22cb465146102fe57610121565b806323b872dd116100f457806323b872dd146101c057806330d871c6146101dc57806342842e0e1461020c5780636352211e1461022857806370a082311461025857610121565b806301ffc9a71461012657806306fdde0314610156578063081812fc14610174578063095ea7b3146101a4575b600080fd5b610140600480360381019061013b9190611e01565b6103ce565b60405161014d9190611e49565b60405180910390f35b61015e61042f565b60405161016b9190611ef4565b60405180910390f35b61018e60048036038101906101899190611f4c565b6104c1565b60405161019b9190611fba565b60405180910390f35b6101be60048036038101906101b99190612001565b6104dd565b005b6101da60048036038101906101d59190612041565b6104f3565b005b6101f660048036038101906101f191906121c9565b6105f5565b6040516102039190611ef4565b60405180910390f35b61022660048036038101906102219190612041565b610669565b005b610242600480360381019061023d9190611f4c565b610689565b60405161024f9190611fba565b60405180910390f35b610272600480360381019061026d9190612212565b61069b565b60405161027f919061224e565b60405180910390f35b610290610755565b005b6102ac60048036038101906102a791906121c9565b610769565b6040516102b99190611ef4565b60405180910390f35b6102ca6107b9565b6040516102d79190611fba565b60405180910390f35b6102e86107e3565b6040516102f59190611ef4565b60405180910390f35b61031860048036038101906103139190612295565b610875565b005b610334600480360381019061032f9190612376565b61088b565b005b610350600480360381019061034b9190611f4c565b6108a8565b60405161035d9190611ef4565b60405180910390f35b610380600480360381019061037b91906121c9565b6109bb565b005b61039c600480360381019061039791906123f9565b610a4b565b6040516103a99190611e49565b60405180910390f35b6103cc60048036038101906103c79190612212565b610adf565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610428575061042782610b65565b5b9050919050565b60606000805461043e90612468565b80601f016020809104026020016040519081016040528092919081815260200182805461046a90612468565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b5050505050905090565b60006104cc82610c47565b506104d682610ccf565b9050919050565b6104ef82826104ea610d0c565b610d14565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036105655760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161055c9190611fba565b60405180910390fd5b60006105798383610574610d0c565b610d26565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105ef578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016105e693929190612499565b60405180910390fd5b50505050565b606060006040518060400160405280601a81526020017f646174613a696d6167652f7376672b786d6c3b6261736536342c0000000000008152509050600061063c84610f40565b9050818160405160200161065192919061250c565b60405160208183030381529060405292505050919050565b6106848383836040518060200160405280600081525061088b565b505050565b600061069482610c47565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361070e5760006040517f89c62b640000000000000000000000000000000000000000000000000000000081526004016107059190611fba565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075d610f6d565b6107676000610ff4565b565b60606107938260405160200161077f9190612614565b604051602081830303815290604052610f40565b6040516020016107a3919061268d565b6040516020818303038152906040529050919050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546107f290612468565b80601f016020809104026020016040519081016040528092919081815260200182805461081e90612468565b801561086b5780601f106108405761010080835404028352916020019161086b565b820191906000526020600020905b81548152906001019060200180831161084e57829003601f168201915b5050505050905090565b610887610880610d0c565b83836110ba565b5050565b6108968484846104f3565b6108a284848484611229565b50505050565b60606108b382610c47565b5060006006600084815260200190815260200160002080546108d490612468565b80601f016020809104026020016040519081016040528092919081815260200182805461090090612468565b801561094d5780601f106109225761010080835404028352916020019161094d565b820191906000526020600020905b81548152906001019060200180831161093057829003601f168201915b50505050509050600061095e6113e0565b905060008151036109735781925050506109b6565b6000825111156109a857808260405160200161099092919061250c565b604051602081830303815290604052925050506109b6565b6109b1846113f7565b925050505b919050565b6109c3610f6d565b60006109ce826105f5565b905060006109db82610769565b90506008600081546109ec906126de565b9190508190555060006008549050610a043382611460565b610a0e818361147e565b7f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a81604051610a3d919061224e565b60405180910390a150505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610ae7610f6d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b595760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610b509190611fba565b60405180910390fd5b610b6281610ff4565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610c3057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610c405750610c3f826114da565b5b9050919050565b600080610c5383611544565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610cc657826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610cbd919061224e565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b610d218383836001611581565b505050565b600080610d3284611544565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610d7457610d73818486611746565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610e0557610db6600085600080611581565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610e88576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b6060610f6682604051806060016040528060408152602001612b8760409139600161180a565b9050919050565b610f75610d0c565b73ffffffffffffffffffffffffffffffffffffffff16610f936107b9565b73ffffffffffffffffffffffffffffffffffffffff1614610ff257610fb6610d0c565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610fe99190611fba565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361112b57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016111229190611fba565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161121c9190611e49565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156113da578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261126d610d0c565b8685856040518563ffffffff1660e01b815260040161128f949392919061277b565b6020604051808303816000875af19250505080156112cb57506040513d601f19601f820116820180604052508101906112c891906127dc565b60015b61134f573d80600081146112fb576040519150601f19603f3d011682016040523d82523d6000602084013e611300565b606091505b50600081510361134757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161133e9190611fba565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146113d857836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016113cf9190611fba565b60405180910390fd5b505b50505050565b606060405180602001604052806000815250905090565b606061140282610c47565b50600061140d6113e0565b9050600081511161142d5760405180602001604052806000815250611458565b806114378461199e565b60405160200161144892919061250c565b6040516020818303038152906040525b915050919050565b61147a828260405180602001604052806000815250611a6c565b5050565b8060066000848152602001908152602001600020908161149e91906129b5565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516114ce919061224e565b60405180910390a15050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806115ba5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116ee5760006115ca84610c47565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561163557508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561164857506116468184610a4b565b155b1561168a57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016116819190611fba565b60405180910390fd5b81156116ec57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611751838383611a88565b61180557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c657806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016117bd919061224e565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016117fc929190612a87565b60405180910390fd5b505050565b6060600084510361182c57604051806020016040528060008152509050611997565b60008261185e5760036002865160046118459190612ab0565b61184f9190612af2565b6118599190612b55565b611885565b60036002865161186e9190612af2565b6118789190612b55565b60046118849190612ab0565b5b905060008167ffffffffffffffff8111156118a3576118a261209e565b5b6040519080825280601f01601f1916602001820160405280156118d55781602001600182028036833780820191505090505b50905060018501602082018788518901602081018051600082525b8284101561194b576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f81168701518653600186019550506118f0565b808252891561198b5760038c51066001811461196e576002811461198157611989565b603d6001870353603d6002870353611989565b603d60018703535b505b50505050505080925050505b9392505050565b6060600060016119ad84611b49565b01905060008167ffffffffffffffff8111156119cc576119cb61209e565b5b6040519080825280601f01601f1916602001820160405280156119fe5781602001600182028036833780820191505090505b509050600082602001820190505b600115611a61578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611a5557611a54612b26565b5b04945060008503611a0c575b819350505050919050565b611a768383611c9c565b611a836000848484611229565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b4057508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b015750611b008484610a4b565b5b80611b3f57508273ffffffffffffffffffffffffffffffffffffffff16611b2783610ccf565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611ba7577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611b9d57611b9c612b26565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611be4576d04ee2d6d415b85acef81000000008381611bda57611bd9612b26565b5b0492506020810190505b662386f26fc100008310611c1357662386f26fc100008381611c0957611c08612b26565b5b0492506010810190505b6305f5e1008310611c3c576305f5e1008381611c3257611c31612b26565b5b0492506008810190505b6127108310611c61576127108381611c5757611c56612b26565b5b0492506004810190505b60648310611c845760648381611c7a57611c79612b26565b5b0492506002810190505b600a8310611c93576001810190505b80915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0e5760006040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d059190611fba565b60405180910390fd5b6000611d1c83836000610d26565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611d905760006040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611d879190611fba565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611dde81611da9565b8114611de957600080fd5b50565b600081359050611dfb81611dd5565b92915050565b600060208284031215611e1757611e16611d9f565b5b6000611e2584828501611dec565b91505092915050565b60008115159050919050565b611e4381611e2e565b82525050565b6000602082019050611e5e6000830184611e3a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e9e578082015181840152602081019050611e83565b60008484015250505050565b6000601f19601f8301169050919050565b6000611ec682611e64565b611ed08185611e6f565b9350611ee0818560208601611e80565b611ee981611eaa565b840191505092915050565b60006020820190508181036000830152611f0e8184611ebb565b905092915050565b6000819050919050565b611f2981611f16565b8114611f3457600080fd5b50565b600081359050611f4681611f20565b92915050565b600060208284031215611f6257611f61611d9f565b5b6000611f7084828501611f37565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fa482611f79565b9050919050565b611fb481611f99565b82525050565b6000602082019050611fcf6000830184611fab565b92915050565b611fde81611f99565b8114611fe957600080fd5b50565b600081359050611ffb81611fd5565b92915050565b6000806040838503121561201857612017611d9f565b5b600061202685828601611fec565b925050602061203785828601611f37565b9150509250929050565b60008060006060848603121561205a57612059611d9f565b5b600061206886828701611fec565b935050602061207986828701611fec565b925050604061208a86828701611f37565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120d682611eaa565b810181811067ffffffffffffffff821117156120f5576120f461209e565b5b80604052505050565b6000612108611d95565b905061211482826120cd565b919050565b600067ffffffffffffffff8211156121345761213361209e565b5b61213d82611eaa565b9050602081019050919050565b82818337600083830152505050565b600061216c61216784612119565b6120fe565b90508281526020810184848401111561218857612187612099565b5b61219384828561214a565b509392505050565b600082601f8301126121b0576121af612094565b5b81356121c0848260208601612159565b91505092915050565b6000602082840312156121df576121de611d9f565b5b600082013567ffffffffffffffff8111156121fd576121fc611da4565b5b6122098482850161219b565b91505092915050565b60006020828403121561222857612227611d9f565b5b600061223684828501611fec565b91505092915050565b61224881611f16565b82525050565b6000602082019050612263600083018461223f565b92915050565b61227281611e2e565b811461227d57600080fd5b50565b60008135905061228f81612269565b92915050565b600080604083850312156122ac576122ab611d9f565b5b60006122ba85828601611fec565b92505060206122cb85828601612280565b9150509250929050565b600067ffffffffffffffff8211156122f0576122ef61209e565b5b6122f982611eaa565b9050602081019050919050565b6000612319612314846122d5565b6120fe565b90508281526020810184848401111561233557612334612099565b5b61234084828561214a565b509392505050565b600082601f83011261235d5761235c612094565b5b813561236d848260208601612306565b91505092915050565b600080600080608085870312156123905761238f611d9f565b5b600061239e87828801611fec565b94505060206123af87828801611fec565b93505060406123c087828801611f37565b925050606085013567ffffffffffffffff8111156123e1576123e0611da4565b5b6123ed87828801612348565b91505092959194509250565b600080604083850312156124105761240f611d9f565b5b600061241e85828601611fec565b925050602061242f85828601611fec565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061248057607f821691505b60208210810361249357612492612439565b5b50919050565b60006060820190506124ae6000830186611fab565b6124bb602083018561223f565b6124c86040830184611fab565b949350505050565b600081905092915050565b60006124e682611e64565b6124f081856124d0565b9350612500818560208601611e80565b80840191505092915050565b600061251882856124db565b915061252482846124db565b91508190509392505050565b7f7b226e616d65223a20224c434d204f4e2d434841494e4544222c20226465736360008201527f72697074696f6e223a2022412073696d706c6520535647206261736564206f6e60208201527f2d636861696e204e4654222c2022696d616765223a2200000000000000000000604082015250565b60006125b26056836124d0565b91506125bd82612530565b605682019050919050565b7f227d000000000000000000000000000000000000000000000000000000000000600082015250565b60006125fe6002836124d0565b9150612609826125c8565b600282019050919050565b600061261f826125a5565b915061262b82846124db565b9150612636826125f1565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000600082015250565b6000612677601d836124d0565b915061268282612641565b601d82019050919050565b60006126988261266a565b91506126a482846124db565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126e982611f16565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361271b5761271a6126af565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b600061274d82612726565b6127578185612731565b9350612767818560208601611e80565b61277081611eaa565b840191505092915050565b60006080820190506127906000830187611fab565b61279d6020830186611fab565b6127aa604083018561223f565b81810360608301526127bc8184612742565b905095945050505050565b6000815190506127d681611dd5565b92915050565b6000602082840312156127f2576127f1611d9f565b5b6000612800848285016127c7565b91505092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261286b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261282e565b612875868361282e565b95508019841693508086168417925050509392505050565b6000819050919050565b60006128b26128ad6128a884611f16565b61288d565b611f16565b9050919050565b6000819050919050565b6128cc83612897565b6128e06128d8826128b9565b84845461283b565b825550505050565b600090565b6128f56128e8565b6129008184846128c3565b505050565b5b81811015612924576129196000826128ed565b600181019050612906565b5050565b601f8211156129695761293a81612809565b6129438461281e565b81016020851015612952578190505b61296661295e8561281e565b830182612905565b50505b505050565b600082821c905092915050565b600061298c6000198460080261296e565b1980831691505092915050565b60006129a5838361297b565b9150826002028217905092915050565b6129be82611e64565b67ffffffffffffffff8111156129d7576129d661209e565b5b6129e18254612468565b6129ec828285612928565b600060209050601f831160018114612a1f5760008415612a0d578287015190505b612a178582612999565b865550612a7f565b601f198416612a2d86612809565b60005b82811015612a5557848901518255600182019150602085019450602081019050612a30565b86831015612a725784890151612a6e601f89168261297b565b8355505b6001600288020188555050505b505050505050565b6000604082019050612a9c6000830185611fab565b612aa9602083018461223f565b9392505050565b6000612abb82611f16565b9150612ac683611f16565b9250828202612ad481611f16565b91508282048414831517612aeb57612aea6126af565b5b5092915050565b6000612afd82611f16565b9150612b0883611f16565b9250828201905080821115612b2057612b1f6126af565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b6082611f16565b9150612b6b83611f16565b925082612b7b57612b7a612b26565b5b82820490509291505056fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122000d84504dcbcc2083212795cb1a2c21a0181f5af1d1addefd22bfa0f693a064c64736f6c63430008180033