{"matchId":"57919330","creationMatch":"exact_match","runtimeMatch":"exact_match","verifiedAt":"2026-11-01T05:41:06Z","creationBytecode":{"onchainBytecode":"0x60a0604052600180556001600255348015610018575f80fd5b50604051611b3c380380611b3c833981016040819052610037916100b1565b6001600160a01b038116608081905260405163095ea7b360e01b8152600481018290525f19602482015263095ea7b3906044016020604051808303815f875af1158015610086573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100aa91906100de565b50506100fd565b5f602082840312156100c1575f80fd5b81516001600160a01b03811681146100d7575f80fd5b9392505050565b5f602082840312156100ee575f80fd5b815180151581146100d7575f80fd5b6080516119fd61013f5f395f8181610384015281816104e00152818161056b01528181610ba401528181610c2d01528181610efe0152610f8701526119fd5ff3fe608060405234801561000f575f80fd5b5060043610610131575f3560e01c806301ffc9a71461013557806306fdde031461015d57806307afe4921461019b578063081812fc146101bc578063095ea7b3146101fc578063145a8bdf1461021157806323b872dd146102a357806342842e0e146102b65780635221d2dd146102c95780635f581fe6146102d25780636352211e146102e557806367dfd4c9146102f857806370a082311461030b5780637c32999e1461032a57806395d89b4114610349578063a22cb4651461036c578063b2424a901461037f578063b88d4fde146103a6578063c87b56dd146103b9578063cadf338f146103cc578063cd067e12146103df578063ced17c13146103f2578063d0886f97146103fb578063dc04208914610405578063e985e9c514610415575b5f80fd5b61014861014336600461117e565b610442565b60405190151581526020015b60405180910390f35b61018e604051806040016040528060128152602001712430b6b9ba32b91026b7ba37b9399021b0b960711b81525081565b60405161015491906111c7565b6101ae6101a93660046111d9565b610493565b604051908152602001610154565b6101e46101ca3660046111d9565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610154565b61020f61020a366004611206565b6106d8565b005b61026361021f3660046111d9565b5f602081905290815260409020805460018201546002909201546001600160a01b03821692600160a01b83046001600160401b031692600160e01b900460ff169185565b604080516001600160a01b0390961686526001600160401b039094166020860152911515928401929092526060830191909152608082015260a001610154565b61020f6102b136600461122e565b610799565b61020f6102c436600461122e565b61091a565b6101ae60025481565b6101ae6102e03660046111d9565b610939565b6101e46102f33660046111d9565b610a9b565b6101ae6103063660046111d9565b610ad5565b6101ae610319366004611268565b60046020525f908152604090205481565b6101ae6103383660046111d9565b60076020525f908152604090205481565b61018e604051806040016040528060048152602001632421a0a960e11b81525081565b61020f61037a36600461128e565b610cd4565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b61020f6103b43660046112d7565b610d3f565b61018e6103c73660046111d9565b610e03565b6101ae6103da3660046111d9565b610efa565b6101ae6103ed3660046111d9565b611038565b6101ae60015481565b6101ae62278d0081565b6101ae68056bc75e2d6310000081565b6101486104233660046113b1565b600660209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b03198316148061047257506380ac58cd60e01b6001600160e01b03198316145b8061048d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f68056bc75e2d631000008210156104be5760405163453bf23360e01b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561052e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055291906113e2565b5060405163534a7e1d60e11b8152600481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a694fc3a906024016020604051808303815f875af11580156105b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105dd91906113fd565b600180549192505f6105ee83611428565b909155506040805160a081018252338082526001600160401b0342811660208085019182525f858701818152606087018a8152608088018d81528a8452938390529188902096518754945191511515600160e01b0260ff60e01b1992909616600160a01b026001600160e01b03199095166001600160a01b03919091161793909317929092169290921784555160018401555160029092019190915590519193509083907f273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7906106ca9087908690918252602082015260400190565b60405180910390a350919050565b5f6106e282610a9b565b9050336001600160a01b0382161480159061072057506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b1561073e5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f6107a382610a9b565b9050836001600160a01b0316816001600160a01b03161415806107cd57506001600160a01b038316155b156107eb576040516330cd747160e01b815260040160405180910390fd5b336001600160a01b0382161480159061081a57505f828152600560205260409020546001600160a01b03163314155b801561084957506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b156108675760405163c19f17a960e01b815260040160405180910390fd5b5f82815260056020908152604080832080546001600160a01b03191690556001600160a01b0387168352600490915281208054916108a483611440565b90915550506001600160a01b0383165f9081526004602052604081208054916108cc83611428565b90915550505f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816915f805160206119a883398151915291a450505050565b61093483838360405180602001604052805f815250610d3f565b505050565b5f81815260208190526040812080546001600160a01b03163314610970576040516330cd747160e01b815260040160405180910390fd5b8054600160e01b900460ff161561099a576040516317968e5360e31b815260040160405180910390fd5b6109a383611038565b4210156109d8576109b383611038565b604051637437acf560e11b81526004016109cf91815260200190565b60405180910390fd5b805460ff60e01b1916600160e01b17815560028054905f6109f883611428565b9091555060028201545f828152600760209081526040808320939093556003815282822080546001600160a01b03191633908117909155825260049052908120805492945090610a4783611428565b9091555050604051829033905f905f805160206119a8833981519152908290a4604051828152339084907f9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287906020016106ca565b5f818152600360205260409020546001600160a01b031680610ad0576040516330cd747160e01b815260040160405180910390fd5b919050565b5f81815260208181526040808320815160a08101835281546001600160a01b038116808352600160a01b82046001600160401b031695830195909552600160e01b900460ff1615159281019290925260018101546060830152600201546080820152903314610b57576040516330cd747160e01b815260040160405180910390fd5b5f8381526020819052604080822080546001600160e81b03191681556001810183905560020191909155606082015190516305c2fbcf60e31b815260048101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e17de78906024016020604051808303815f875af1158015610bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0e91906113fd565b60405163a9059cbb60e01b8152336004820152602481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906113e2565b50604051828152339084907f81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397906020016106ca565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d4a848484610799565b6001600160a01b0383163b15801590610ddf5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610d92903390899088908890600401611455565b6020604051808303815f875af1158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd29190611491565b6001600160e01b03191614155b15610dfd5760405163e290486f60e01b815260040160405180910390fd5b50505050565b6060610e0e82610a9b565b505f82604051602001610e2391815260200190565b60408051601f19818403018152919052805160209091012090505f610e5c610e4c60aa846114c0565b610e579060506114d3565b611064565b610e6e610e4c60aa600886901c6114c0565b610e80610e4c60aa601087901c6114c0565b604051602001610e92939291906114fd565b60405160208183030381529060405290505f81604051602001610eb59190611553565b6040516020818303038152906040529050610ecf85611064565b81604051602001610ee192919061188d565b6040516020818303038152906040529350505050919050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d86acc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c91906113fd565b9050801561102f57807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166390a577ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100591906113fd565b5f858152602081905260409020600101546110209190611969565b61102a9190611980565b611031565b5f5b9392505050565b5f8181526020819052604081205461048d9062278d0090600160a01b90046001600160401b03166114d3565b6060815f0361108a5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156110b3578061109d81611428565b91506110ac9050600a83611980565b915061108d565b5f816001600160401b038111156110cc576110cc6112c3565b6040519080825280601f01601f1916602001820160405280156110f6576020820181803683370190505b5090505b841561115e5761110b600a866114c0565b6111169060306114d3565b60f81b8161112384611440565b9350838151811061113657611136611993565b60200101906001600160f81b03191690815f1a905350611157600a86611980565b94506110fa565b949350505050565b6001600160e01b03198116811461117b575f80fd5b50565b5f6020828403121561118e575f80fd5b813561103181611166565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110316020830184611199565b5f602082840312156111e9575f80fd5b5035919050565b80356001600160a01b0381168114610ad0575f80fd5b5f8060408385031215611217575f80fd5b611220836111f0565b946020939093013593505050565b5f805f60608486031215611240575f80fd5b611249846111f0565b9250611257602085016111f0565b929592945050506040919091013590565b5f60208284031215611278575f80fd5b611031826111f0565b801515811461117b575f80fd5b5f806040838503121561129f575f80fd5b6112a8836111f0565b915060208301356112b881611281565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f80608085870312156112ea575f80fd5b6112f3856111f0565b9350611301602086016111f0565b92506040850135915060608501356001600160401b03811115611322575f80fd5b8501601f81018713611332575f80fd5b80356001600160401b0381111561134b5761134b6112c3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611379576113796112c3565b604052818152828201602001891015611390575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f80604083850312156113c2575f80fd5b6113cb836111f0565b91506113d9602084016111f0565b90509250929050565b5f602082840312156113f2575f80fd5b815161103181611281565b5f6020828403121561140d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161143957611439611414565b5060010190565b5f8161144e5761144e611414565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061148790830184611199565b9695505050505050565b5f602082840312156114a1575f80fd5b815161103181611166565b634e487b7160e01b5f52601260045260245ffd5b5f826114ce576114ce6114ac565b500690565b8082018082111561048d5761048d611414565b5f81518060208401855e5f93019283525090919050565b630e4cec4560e31b81525f61151560048301866114e6565b600b60fa1b815261152960018201866114e6565b9050600b60fa1b815261153f60018201856114e6565b602960f81b81526001019695505050505050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272076696577426f783d273020302033323020333230273e3c7260208201527f6563742077696474683d2733323027206865696768743d27333230272066696c604082015271361e93b933b1141898961898161c9493979f60711b60608201527f3c7061746820643d274d35302032303068323230762d33306c2d34342d382d3360728201527f302d3434682d37306c2d33342034342d34322031327a272066696c6c3d27000060928201525f61163760b08301846114e6565b6213979f60e91b81527f3c636972636c652063783d27313034272063793d273230362720723d2733302760038201527f2066696c6c3d276e6f6e6527207374726f6b653d27726762283139362c31393960238201527f2c3230332927207374726f6b652d77696474683d2738272f3e3c636972636c6560438201527f2063783d27323136272063793d273230362720723d273330272066696c6c3d2760638201527f6e6f6e6527207374726f6b653d27726762283139362c3139392c32303329272060838201527139ba3937b5b296bbb4b23a341e939c13979f60711b60a38201527f3c636972636c652063783d27313034272063793d273230362720723d2735272060b58201527f66696c6c3d27726762283231302c3136302c373429272f3e3c636972636c652060d58201527f63783d27323136272063793d273230362720723d2735272066696c6c3d27726760f58201526f311419189816189b18161b9a1493979f60811b6101158201527f3c636972636c652063783d27313638272063793d273134322720723d273135276101258201527f2066696c6c3d27726762283231372c3135342c373829272f3e3c636972636c656101458201527f2063783d27313538272063793d273132382720723d2735272066696c6c3d27726101658201527f6762283233332c3136362c31363029272f3e3c636972636c652063783d2731376101858201527f38272063793d273132382720723d2735272066696c6c3d27726762283233332c6101a582015270189b1b16189b181493979f1e17b9bb339f60791b6101c58201526101d6810161115e565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81527765223a2248616d73746572204d6f746f727320436172202360401b60208201525f6118df60388301856114e6565b7f222c226465736372697074696f6e223a224561726e6564206279207061726b6981527f6e6720484d545220666f7220333020646179732e222c22696d616765223a2264602082015276185d184e9a5b5859d94bdcdd99cade1b5b0edd5d198e0b604a1b604082015261195560578201856114e6565b61227d60f01b815260020195945050505050565b808202811582820484141761048d5761048d611414565b5f8261198e5761198e6114ac565b500490565b634e487b7160e01b5f52603260045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a003300000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce","recompiledBytecode":"0x60a0604052600180556001600255348015610018575f80fd5b50604051611b3c380380611b3c833981016040819052610037916100b1565b6001600160a01b038116608081905260405163095ea7b360e01b8152600481018290525f19602482015263095ea7b3906044016020604051808303815f875af1158015610086573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100aa91906100de565b50506100fd565b5f602082840312156100c1575f80fd5b81516001600160a01b03811681146100d7575f80fd5b9392505050565b5f602082840312156100ee575f80fd5b815180151581146100d7575f80fd5b6080516119fd61013f5f395f8181610384015281816104e00152818161056b01528181610ba401528181610c2d01528181610efe0152610f8701526119fd5ff3fe608060405234801561000f575f80fd5b5060043610610131575f3560e01c806301ffc9a71461013557806306fdde031461015d57806307afe4921461019b578063081812fc146101bc578063095ea7b3146101fc578063145a8bdf1461021157806323b872dd146102a357806342842e0e146102b65780635221d2dd146102c95780635f581fe6146102d25780636352211e146102e557806367dfd4c9146102f857806370a082311461030b5780637c32999e1461032a57806395d89b4114610349578063a22cb4651461036c578063b2424a901461037f578063b88d4fde146103a6578063c87b56dd146103b9578063cadf338f146103cc578063cd067e12146103df578063ced17c13146103f2578063d0886f97146103fb578063dc04208914610405578063e985e9c514610415575b5f80fd5b61014861014336600461117e565b610442565b60405190151581526020015b60405180910390f35b61018e604051806040016040528060128152602001712430b6b9ba32b91026b7ba37b9399021b0b960711b81525081565b60405161015491906111c7565b6101ae6101a93660046111d9565b610493565b604051908152602001610154565b6101e46101ca3660046111d9565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610154565b61020f61020a366004611206565b6106d8565b005b61026361021f3660046111d9565b5f602081905290815260409020805460018201546002909201546001600160a01b03821692600160a01b83046001600160401b031692600160e01b900460ff169185565b604080516001600160a01b0390961686526001600160401b039094166020860152911515928401929092526060830191909152608082015260a001610154565b61020f6102b136600461122e565b610799565b61020f6102c436600461122e565b61091a565b6101ae60025481565b6101ae6102e03660046111d9565b610939565b6101e46102f33660046111d9565b610a9b565b6101ae6103063660046111d9565b610ad5565b6101ae610319366004611268565b60046020525f908152604090205481565b6101ae6103383660046111d9565b60076020525f908152604090205481565b61018e604051806040016040528060048152602001632421a0a960e11b81525081565b61020f61037a36600461128e565b610cd4565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b61020f6103b43660046112d7565b610d3f565b61018e6103c73660046111d9565b610e03565b6101ae6103da3660046111d9565b610efa565b6101ae6103ed3660046111d9565b611038565b6101ae60015481565b6101ae62278d0081565b6101ae68056bc75e2d6310000081565b6101486104233660046113b1565b600660209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b03198316148061047257506380ac58cd60e01b6001600160e01b03198316145b8061048d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f68056bc75e2d631000008210156104be5760405163453bf23360e01b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561052e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055291906113e2565b5060405163534a7e1d60e11b8152600481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a694fc3a906024016020604051808303815f875af11580156105b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105dd91906113fd565b600180549192505f6105ee83611428565b909155506040805160a081018252338082526001600160401b0342811660208085019182525f858701818152606087018a8152608088018d81528a8452938390529188902096518754945191511515600160e01b0260ff60e01b1992909616600160a01b026001600160e01b03199095166001600160a01b03919091161793909317929092169290921784555160018401555160029092019190915590519193509083907f273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7906106ca9087908690918252602082015260400190565b60405180910390a350919050565b5f6106e282610a9b565b9050336001600160a01b0382161480159061072057506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b1561073e5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f6107a382610a9b565b9050836001600160a01b0316816001600160a01b03161415806107cd57506001600160a01b038316155b156107eb576040516330cd747160e01b815260040160405180910390fd5b336001600160a01b0382161480159061081a57505f828152600560205260409020546001600160a01b03163314155b801561084957506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b156108675760405163c19f17a960e01b815260040160405180910390fd5b5f82815260056020908152604080832080546001600160a01b03191690556001600160a01b0387168352600490915281208054916108a483611440565b90915550506001600160a01b0383165f9081526004602052604081208054916108cc83611428565b90915550505f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816915f805160206119a883398151915291a450505050565b61093483838360405180602001604052805f815250610d3f565b505050565b5f81815260208190526040812080546001600160a01b03163314610970576040516330cd747160e01b815260040160405180910390fd5b8054600160e01b900460ff161561099a576040516317968e5360e31b815260040160405180910390fd5b6109a383611038565b4210156109d8576109b383611038565b604051637437acf560e11b81526004016109cf91815260200190565b60405180910390fd5b805460ff60e01b1916600160e01b17815560028054905f6109f883611428565b9091555060028201545f828152600760209081526040808320939093556003815282822080546001600160a01b03191633908117909155825260049052908120805492945090610a4783611428565b9091555050604051829033905f905f805160206119a8833981519152908290a4604051828152339084907f9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287906020016106ca565b5f818152600360205260409020546001600160a01b031680610ad0576040516330cd747160e01b815260040160405180910390fd5b919050565b5f81815260208181526040808320815160a08101835281546001600160a01b038116808352600160a01b82046001600160401b031695830195909552600160e01b900460ff1615159281019290925260018101546060830152600201546080820152903314610b57576040516330cd747160e01b815260040160405180910390fd5b5f8381526020819052604080822080546001600160e81b03191681556001810183905560020191909155606082015190516305c2fbcf60e31b815260048101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e17de78906024016020604051808303815f875af1158015610bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0e91906113fd565b60405163a9059cbb60e01b8152336004820152602481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906113e2565b50604051828152339084907f81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397906020016106ca565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d4a848484610799565b6001600160a01b0383163b15801590610ddf5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610d92903390899088908890600401611455565b6020604051808303815f875af1158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd29190611491565b6001600160e01b03191614155b15610dfd5760405163e290486f60e01b815260040160405180910390fd5b50505050565b6060610e0e82610a9b565b505f82604051602001610e2391815260200190565b60408051601f19818403018152919052805160209091012090505f610e5c610e4c60aa846114c0565b610e579060506114d3565b611064565b610e6e610e4c60aa600886901c6114c0565b610e80610e4c60aa601087901c6114c0565b604051602001610e92939291906114fd565b60405160208183030381529060405290505f81604051602001610eb59190611553565b6040516020818303038152906040529050610ecf85611064565b81604051602001610ee192919061188d565b6040516020818303038152906040529350505050919050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d86acc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c91906113fd565b9050801561102f57807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166390a577ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100591906113fd565b5f858152602081905260409020600101546110209190611969565b61102a9190611980565b611031565b5f5b9392505050565b5f8181526020819052604081205461048d9062278d0090600160a01b90046001600160401b03166114d3565b6060815f0361108a5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156110b3578061109d81611428565b91506110ac9050600a83611980565b915061108d565b5f816001600160401b038111156110cc576110cc6112c3565b6040519080825280601f01601f1916602001820160405280156110f6576020820181803683370190505b5090505b841561115e5761110b600a866114c0565b6111169060306114d3565b60f81b8161112384611440565b9350838151811061113657611136611993565b60200101906001600160f81b03191690815f1a905350611157600a86611980565b94506110fa565b949350505050565b6001600160e01b03198116811461117b575f80fd5b50565b5f6020828403121561118e575f80fd5b813561103181611166565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110316020830184611199565b5f602082840312156111e9575f80fd5b5035919050565b80356001600160a01b0381168114610ad0575f80fd5b5f8060408385031215611217575f80fd5b611220836111f0565b946020939093013593505050565b5f805f60608486031215611240575f80fd5b611249846111f0565b9250611257602085016111f0565b929592945050506040919091013590565b5f60208284031215611278575f80fd5b611031826111f0565b801515811461117b575f80fd5b5f806040838503121561129f575f80fd5b6112a8836111f0565b915060208301356112b881611281565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f80608085870312156112ea575f80fd5b6112f3856111f0565b9350611301602086016111f0565b92506040850135915060608501356001600160401b03811115611322575f80fd5b8501601f81018713611332575f80fd5b80356001600160401b0381111561134b5761134b6112c3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611379576113796112c3565b604052818152828201602001891015611390575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f80604083850312156113c2575f80fd5b6113cb836111f0565b91506113d9602084016111f0565b90509250929050565b5f602082840312156113f2575f80fd5b815161103181611281565b5f6020828403121561140d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161143957611439611414565b5060010190565b5f8161144e5761144e611414565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061148790830184611199565b9695505050505050565b5f602082840312156114a1575f80fd5b815161103181611166565b634e487b7160e01b5f52601260045260245ffd5b5f826114ce576114ce6114ac565b500690565b8082018082111561048d5761048d611414565b5f81518060208401855e5f93019283525090919050565b630e4cec4560e31b81525f61151560048301866114e6565b600b60fa1b815261152960018201866114e6565b9050600b60fa1b815261153f60018201856114e6565b602960f81b81526001019695505050505050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272076696577426f783d273020302033323020333230273e3c7260208201527f6563742077696474683d2733323027206865696768743d27333230272066696c604082015271361e93b933b1141898961898161c9493979f60711b60608201527f3c7061746820643d274d35302032303068323230762d33306c2d34342d382d3360728201527f302d3434682d37306c2d33342034342d34322031327a272066696c6c3d27000060928201525f61163760b08301846114e6565b6213979f60e91b81527f3c636972636c652063783d27313034272063793d273230362720723d2733302760038201527f2066696c6c3d276e6f6e6527207374726f6b653d27726762283139362c31393960238201527f2c3230332927207374726f6b652d77696474683d2738272f3e3c636972636c6560438201527f2063783d27323136272063793d273230362720723d273330272066696c6c3d2760638201527f6e6f6e6527207374726f6b653d27726762283139362c3139392c32303329272060838201527139ba3937b5b296bbb4b23a341e939c13979f60711b60a38201527f3c636972636c652063783d27313034272063793d273230362720723d2735272060b58201527f66696c6c3d27726762283231302c3136302c373429272f3e3c636972636c652060d58201527f63783d27323136272063793d273230362720723d2735272066696c6c3d27726760f58201526f311419189816189b18161b9a1493979f60811b6101158201527f3c636972636c652063783d27313638272063793d273134322720723d273135276101258201527f2066696c6c3d27726762283231372c3135342c373829272f3e3c636972636c656101458201527f2063783d27313538272063793d273132382720723d2735272066696c6c3d27726101658201527f6762283233332c3136362c31363029272f3e3c636972636c652063783d2731376101858201527f38272063793d273132382720723d2735272066696c6c3d27726762283233332c6101a582015270189b1b16189b181493979f1e17b9bb339f60791b6101c58201526101d6810161115e565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81527765223a2248616d73746572204d6f746f727320436172202360401b60208201525f6118df60388301856114e6565b7f222c226465736372697074696f6e223a224561726e6564206279207061726b6981527f6e6720484d545220666f7220333020646179732e222c22696d616765223a2264602082015276185d184e9a5b5859d94bdcdd99cade1b5b0edd5d198e0b604a1b604082015261195560578201856114e6565b61227d60f01b815260020195945050505050565b808202811582820484141761048d5761048d611414565b5f8261198e5761198e6114ac565b500490565b634e487b7160e01b5f52603260045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","sourceMap":"1111:6545:0:-:0;;;1588:1;1562:27;;1620:1;1595:26;;2628:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2665:19:0;;;;;;2694:46;;-1:-1:-1;;;2694:46:0;;;;;483:51:1;;;-1:-1:-1;;550:18:1;;;543:34;2694:20:0;;456:18:1;;2694:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2628:119;1111:6545;;14:290:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:1;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:1:o;588:277::-;655:6;708:2;696:9;687:7;683:23;679:32;676:52;;;724:1;721;714:12;676:52;756:9;750:16;809:5;802:13;795:21;788:5;785:32;775:60;;831:1;828;821:12;588:277;1111:6545:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","offset":6919}},"transformations":[{"type":"insert","offset":6972,"reason":"constructorArguments"}],"transformationValues":{"constructorArguments":"0x00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce"}},"runtimeBytecode":{"onchainBytecode":"0x608060405234801561000f575f80fd5b5060043610610131575f3560e01c806301ffc9a71461013557806306fdde031461015d57806307afe4921461019b578063081812fc146101bc578063095ea7b3146101fc578063145a8bdf1461021157806323b872dd146102a357806342842e0e146102b65780635221d2dd146102c95780635f581fe6146102d25780636352211e146102e557806367dfd4c9146102f857806370a082311461030b5780637c32999e1461032a57806395d89b4114610349578063a22cb4651461036c578063b2424a901461037f578063b88d4fde146103a6578063c87b56dd146103b9578063cadf338f146103cc578063cd067e12146103df578063ced17c13146103f2578063d0886f97146103fb578063dc04208914610405578063e985e9c514610415575b5f80fd5b61014861014336600461117e565b610442565b60405190151581526020015b60405180910390f35b61018e604051806040016040528060128152602001712430b6b9ba32b91026b7ba37b9399021b0b960711b81525081565b60405161015491906111c7565b6101ae6101a93660046111d9565b610493565b604051908152602001610154565b6101e46101ca3660046111d9565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610154565b61020f61020a366004611206565b6106d8565b005b61026361021f3660046111d9565b5f602081905290815260409020805460018201546002909201546001600160a01b03821692600160a01b83046001600160401b031692600160e01b900460ff169185565b604080516001600160a01b0390961686526001600160401b039094166020860152911515928401929092526060830191909152608082015260a001610154565b61020f6102b136600461122e565b610799565b61020f6102c436600461122e565b61091a565b6101ae60025481565b6101ae6102e03660046111d9565b610939565b6101e46102f33660046111d9565b610a9b565b6101ae6103063660046111d9565b610ad5565b6101ae610319366004611268565b60046020525f908152604090205481565b6101ae6103383660046111d9565b60076020525f908152604090205481565b61018e604051806040016040528060048152602001632421a0a960e11b81525081565b61020f61037a36600461128e565b610cd4565b6101e47f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce81565b61020f6103b43660046112d7565b610d3f565b61018e6103c73660046111d9565b610e03565b6101ae6103da3660046111d9565b610efa565b6101ae6103ed3660046111d9565b611038565b6101ae60015481565b6101ae62278d0081565b6101ae68056bc75e2d6310000081565b6101486104233660046113b1565b600660209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b03198316148061047257506380ac58cd60e01b6001600160e01b03198316145b8061048d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f68056bc75e2d631000008210156104be5760405163453bf23360e01b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce6001600160a01b0316906323b872dd906064016020604051808303815f875af115801561052e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055291906113e2565b5060405163534a7e1d60e11b8152600481018390525f907f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce6001600160a01b03169063a694fc3a906024016020604051808303815f875af11580156105b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105dd91906113fd565b600180549192505f6105ee83611428565b909155506040805160a081018252338082526001600160401b0342811660208085019182525f858701818152606087018a8152608088018d81528a8452938390529188902096518754945191511515600160e01b0260ff60e01b1992909616600160a01b026001600160e01b03199095166001600160a01b03919091161793909317929092169290921784555160018401555160029092019190915590519193509083907f273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7906106ca9087908690918252602082015260400190565b60405180910390a350919050565b5f6106e282610a9b565b9050336001600160a01b0382161480159061072057506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b1561073e5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f6107a382610a9b565b9050836001600160a01b0316816001600160a01b03161415806107cd57506001600160a01b038316155b156107eb576040516330cd747160e01b815260040160405180910390fd5b336001600160a01b0382161480159061081a57505f828152600560205260409020546001600160a01b03163314155b801561084957506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b156108675760405163c19f17a960e01b815260040160405180910390fd5b5f82815260056020908152604080832080546001600160a01b03191690556001600160a01b0387168352600490915281208054916108a483611440565b90915550506001600160a01b0383165f9081526004602052604081208054916108cc83611428565b90915550505f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816915f805160206119a883398151915291a450505050565b61093483838360405180602001604052805f815250610d3f565b505050565b5f81815260208190526040812080546001600160a01b03163314610970576040516330cd747160e01b815260040160405180910390fd5b8054600160e01b900460ff161561099a576040516317968e5360e31b815260040160405180910390fd5b6109a383611038565b4210156109d8576109b383611038565b604051637437acf560e11b81526004016109cf91815260200190565b60405180910390fd5b805460ff60e01b1916600160e01b17815560028054905f6109f883611428565b9091555060028201545f828152600760209081526040808320939093556003815282822080546001600160a01b03191633908117909155825260049052908120805492945090610a4783611428565b9091555050604051829033905f905f805160206119a8833981519152908290a4604051828152339084907f9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287906020016106ca565b5f818152600360205260409020546001600160a01b031680610ad0576040516330cd747160e01b815260040160405180910390fd5b919050565b5f81815260208181526040808320815160a08101835281546001600160a01b038116808352600160a01b82046001600160401b031695830195909552600160e01b900460ff1615159281019290925260018101546060830152600201546080820152903314610b57576040516330cd747160e01b815260040160405180910390fd5b5f8381526020819052604080822080546001600160e81b03191681556001810183905560020191909155606082015190516305c2fbcf60e31b815260048101919091526001600160a01b037f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce1690632e17de78906024016020604051808303815f875af1158015610bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0e91906113fd565b60405163a9059cbb60e01b8152336004820152602481018290529092507f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce6001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906113e2565b50604051828152339084907f81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397906020016106ca565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d4a848484610799565b6001600160a01b0383163b15801590610ddf5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610d92903390899088908890600401611455565b6020604051808303815f875af1158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd29190611491565b6001600160e01b03191614155b15610dfd5760405163e290486f60e01b815260040160405180910390fd5b50505050565b6060610e0e82610a9b565b505f82604051602001610e2391815260200190565b60408051601f19818403018152919052805160209091012090505f610e5c610e4c60aa846114c0565b610e579060506114d3565b611064565b610e6e610e4c60aa600886901c6114c0565b610e80610e4c60aa601087901c6114c0565b604051602001610e92939291906114fd565b60405160208183030381529060405290505f81604051602001610eb59190611553565b6040516020818303038152906040529050610ecf85611064565b81604051602001610ee192919061188d565b6040516020818303038152906040529350505050919050565b5f807f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce6001600160a01b0316636d86acc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c91906113fd565b9050801561102f57807f00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce6001600160a01b03166390a577ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100591906113fd565b5f858152602081905260409020600101546110209190611969565b61102a9190611980565b611031565b5f5b9392505050565b5f8181526020819052604081205461048d9062278d0090600160a01b90046001600160401b03166114d3565b6060815f0361108a5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156110b3578061109d81611428565b91506110ac9050600a83611980565b915061108d565b5f816001600160401b038111156110cc576110cc6112c3565b6040519080825280601f01601f1916602001820160405280156110f6576020820181803683370190505b5090505b841561115e5761110b600a866114c0565b6111169060306114d3565b60f81b8161112384611440565b9350838151811061113657611136611993565b60200101906001600160f81b03191690815f1a905350611157600a86611980565b94506110fa565b949350505050565b6001600160e01b03198116811461117b575f80fd5b50565b5f6020828403121561118e575f80fd5b813561103181611166565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110316020830184611199565b5f602082840312156111e9575f80fd5b5035919050565b80356001600160a01b0381168114610ad0575f80fd5b5f8060408385031215611217575f80fd5b611220836111f0565b946020939093013593505050565b5f805f60608486031215611240575f80fd5b611249846111f0565b9250611257602085016111f0565b929592945050506040919091013590565b5f60208284031215611278575f80fd5b611031826111f0565b801515811461117b575f80fd5b5f806040838503121561129f575f80fd5b6112a8836111f0565b915060208301356112b881611281565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f80608085870312156112ea575f80fd5b6112f3856111f0565b9350611301602086016111f0565b92506040850135915060608501356001600160401b03811115611322575f80fd5b8501601f81018713611332575f80fd5b80356001600160401b0381111561134b5761134b6112c3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611379576113796112c3565b604052818152828201602001891015611390575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f80604083850312156113c2575f80fd5b6113cb836111f0565b91506113d9602084016111f0565b90509250929050565b5f602082840312156113f2575f80fd5b815161103181611281565b5f6020828403121561140d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161143957611439611414565b5060010190565b5f8161144e5761144e611414565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061148790830184611199565b9695505050505050565b5f602082840312156114a1575f80fd5b815161103181611166565b634e487b7160e01b5f52601260045260245ffd5b5f826114ce576114ce6114ac565b500690565b8082018082111561048d5761048d611414565b5f81518060208401855e5f93019283525090919050565b630e4cec4560e31b81525f61151560048301866114e6565b600b60fa1b815261152960018201866114e6565b9050600b60fa1b815261153f60018201856114e6565b602960f81b81526001019695505050505050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272076696577426f783d273020302033323020333230273e3c7260208201527f6563742077696474683d2733323027206865696768743d27333230272066696c604082015271361e93b933b1141898961898161c9493979f60711b60608201527f3c7061746820643d274d35302032303068323230762d33306c2d34342d382d3360728201527f302d3434682d37306c2d33342034342d34322031327a272066696c6c3d27000060928201525f61163760b08301846114e6565b6213979f60e91b81527f3c636972636c652063783d27313034272063793d273230362720723d2733302760038201527f2066696c6c3d276e6f6e6527207374726f6b653d27726762283139362c31393960238201527f2c3230332927207374726f6b652d77696474683d2738272f3e3c636972636c6560438201527f2063783d27323136272063793d273230362720723d273330272066696c6c3d2760638201527f6e6f6e6527207374726f6b653d27726762283139362c3139392c32303329272060838201527139ba3937b5b296bbb4b23a341e939c13979f60711b60a38201527f3c636972636c652063783d27313034272063793d273230362720723d2735272060b58201527f66696c6c3d27726762283231302c3136302c373429272f3e3c636972636c652060d58201527f63783d27323136272063793d273230362720723d2735272066696c6c3d27726760f58201526f311419189816189b18161b9a1493979f60811b6101158201527f3c636972636c652063783d27313638272063793d273134322720723d273135276101258201527f2066696c6c3d27726762283231372c3135342c373829272f3e3c636972636c656101458201527f2063783d27313538272063793d273132382720723d2735272066696c6c3d27726101658201527f6762283233332c3136362c31363029272f3e3c636972636c652063783d2731376101858201527f38272063793d273132382720723d2735272066696c6c3d27726762283233332c6101a582015270189b1b16189b181493979f1e17b9bb339f60791b6101c58201526101d6810161115e565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81527765223a2248616d73746572204d6f746f727320436172202360401b60208201525f6118df60388301856114e6565b7f222c226465736372697074696f6e223a224561726e6564206279207061726b6981527f6e6720484d545220666f7220333020646179732e222c22696d616765223a2264602082015276185d184e9a5b5859d94bdcdd99cade1b5b0edd5d198e0b604a1b604082015261195560578201856114e6565b61227d60f01b815260020195945050505050565b808202811582820484141761048d5761048d611414565b5f8261198e5761198e6114ac565b500490565b634e487b7160e01b5f52603260045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","recompiledBytecode":"0x608060405234801561000f575f80fd5b5060043610610131575f3560e01c806301ffc9a71461013557806306fdde031461015d57806307afe4921461019b578063081812fc146101bc578063095ea7b3146101fc578063145a8bdf1461021157806323b872dd146102a357806342842e0e146102b65780635221d2dd146102c95780635f581fe6146102d25780636352211e146102e557806367dfd4c9146102f857806370a082311461030b5780637c32999e1461032a57806395d89b4114610349578063a22cb4651461036c578063b2424a901461037f578063b88d4fde146103a6578063c87b56dd146103b9578063cadf338f146103cc578063cd067e12146103df578063ced17c13146103f2578063d0886f97146103fb578063dc04208914610405578063e985e9c514610415575b5f80fd5b61014861014336600461117e565b610442565b60405190151581526020015b60405180910390f35b61018e604051806040016040528060128152602001712430b6b9ba32b91026b7ba37b9399021b0b960711b81525081565b60405161015491906111c7565b6101ae6101a93660046111d9565b610493565b604051908152602001610154565b6101e46101ca3660046111d9565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610154565b61020f61020a366004611206565b6106d8565b005b61026361021f3660046111d9565b5f602081905290815260409020805460018201546002909201546001600160a01b03821692600160a01b83046001600160401b031692600160e01b900460ff169185565b604080516001600160a01b0390961686526001600160401b039094166020860152911515928401929092526060830191909152608082015260a001610154565b61020f6102b136600461122e565b610799565b61020f6102c436600461122e565b61091a565b6101ae60025481565b6101ae6102e03660046111d9565b610939565b6101e46102f33660046111d9565b610a9b565b6101ae6103063660046111d9565b610ad5565b6101ae610319366004611268565b60046020525f908152604090205481565b6101ae6103383660046111d9565b60076020525f908152604090205481565b61018e604051806040016040528060048152602001632421a0a960e11b81525081565b61020f61037a36600461128e565b610cd4565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b61020f6103b43660046112d7565b610d3f565b61018e6103c73660046111d9565b610e03565b6101ae6103da3660046111d9565b610efa565b6101ae6103ed3660046111d9565b611038565b6101ae60015481565b6101ae62278d0081565b6101ae68056bc75e2d6310000081565b6101486104233660046113b1565b600660209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b03198316148061047257506380ac58cd60e01b6001600160e01b03198316145b8061048d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f68056bc75e2d631000008210156104be5760405163453bf23360e01b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561052e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055291906113e2565b5060405163534a7e1d60e11b8152600481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a694fc3a906024016020604051808303815f875af11580156105b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105dd91906113fd565b600180549192505f6105ee83611428565b909155506040805160a081018252338082526001600160401b0342811660208085019182525f858701818152606087018a8152608088018d81528a8452938390529188902096518754945191511515600160e01b0260ff60e01b1992909616600160a01b026001600160e01b03199095166001600160a01b03919091161793909317929092169290921784555160018401555160029092019190915590519193509083907f273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7906106ca9087908690918252602082015260400190565b60405180910390a350919050565b5f6106e282610a9b565b9050336001600160a01b0382161480159061072057506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b1561073e5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f6107a382610a9b565b9050836001600160a01b0316816001600160a01b03161415806107cd57506001600160a01b038316155b156107eb576040516330cd747160e01b815260040160405180910390fd5b336001600160a01b0382161480159061081a57505f828152600560205260409020546001600160a01b03163314155b801561084957506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b156108675760405163c19f17a960e01b815260040160405180910390fd5b5f82815260056020908152604080832080546001600160a01b03191690556001600160a01b0387168352600490915281208054916108a483611440565b90915550506001600160a01b0383165f9081526004602052604081208054916108cc83611428565b90915550505f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816915f805160206119a883398151915291a450505050565b61093483838360405180602001604052805f815250610d3f565b505050565b5f81815260208190526040812080546001600160a01b03163314610970576040516330cd747160e01b815260040160405180910390fd5b8054600160e01b900460ff161561099a576040516317968e5360e31b815260040160405180910390fd5b6109a383611038565b4210156109d8576109b383611038565b604051637437acf560e11b81526004016109cf91815260200190565b60405180910390fd5b805460ff60e01b1916600160e01b17815560028054905f6109f883611428565b9091555060028201545f828152600760209081526040808320939093556003815282822080546001600160a01b03191633908117909155825260049052908120805492945090610a4783611428565b9091555050604051829033905f905f805160206119a8833981519152908290a4604051828152339084907f9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287906020016106ca565b5f818152600360205260409020546001600160a01b031680610ad0576040516330cd747160e01b815260040160405180910390fd5b919050565b5f81815260208181526040808320815160a08101835281546001600160a01b038116808352600160a01b82046001600160401b031695830195909552600160e01b900460ff1615159281019290925260018101546060830152600201546080820152903314610b57576040516330cd747160e01b815260040160405180910390fd5b5f8381526020819052604080822080546001600160e81b03191681556001810183905560020191909155606082015190516305c2fbcf60e31b815260048101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e17de78906024016020604051808303815f875af1158015610bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0e91906113fd565b60405163a9059cbb60e01b8152336004820152602481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906113e2565b50604051828152339084907f81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397906020016106ca565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d4a848484610799565b6001600160a01b0383163b15801590610ddf5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610d92903390899088908890600401611455565b6020604051808303815f875af1158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd29190611491565b6001600160e01b03191614155b15610dfd5760405163e290486f60e01b815260040160405180910390fd5b50505050565b6060610e0e82610a9b565b505f82604051602001610e2391815260200190565b60408051601f19818403018152919052805160209091012090505f610e5c610e4c60aa846114c0565b610e579060506114d3565b611064565b610e6e610e4c60aa600886901c6114c0565b610e80610e4c60aa601087901c6114c0565b604051602001610e92939291906114fd565b60405160208183030381529060405290505f81604051602001610eb59190611553565b6040516020818303038152906040529050610ecf85611064565b81604051602001610ee192919061188d565b6040516020818303038152906040529350505050919050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d86acc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c91906113fd565b9050801561102f57807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166390a577ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100591906113fd565b5f858152602081905260409020600101546110209190611969565b61102a9190611980565b611031565b5f5b9392505050565b5f8181526020819052604081205461048d9062278d0090600160a01b90046001600160401b03166114d3565b6060815f0361108a5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156110b3578061109d81611428565b91506110ac9050600a83611980565b915061108d565b5f816001600160401b038111156110cc576110cc6112c3565b6040519080825280601f01601f1916602001820160405280156110f6576020820181803683370190505b5090505b841561115e5761110b600a866114c0565b6111169060306114d3565b60f81b8161112384611440565b9350838151811061113657611136611993565b60200101906001600160f81b03191690815f1a905350611157600a86611980565b94506110fa565b949350505050565b6001600160e01b03198116811461117b575f80fd5b50565b5f6020828403121561118e575f80fd5b813561103181611166565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110316020830184611199565b5f602082840312156111e9575f80fd5b5035919050565b80356001600160a01b0381168114610ad0575f80fd5b5f8060408385031215611217575f80fd5b611220836111f0565b946020939093013593505050565b5f805f60608486031215611240575f80fd5b611249846111f0565b9250611257602085016111f0565b929592945050506040919091013590565b5f60208284031215611278575f80fd5b611031826111f0565b801515811461117b575f80fd5b5f806040838503121561129f575f80fd5b6112a8836111f0565b915060208301356112b881611281565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f80608085870312156112ea575f80fd5b6112f3856111f0565b9350611301602086016111f0565b92506040850135915060608501356001600160401b03811115611322575f80fd5b8501601f81018713611332575f80fd5b80356001600160401b0381111561134b5761134b6112c3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611379576113796112c3565b604052818152828201602001891015611390575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f80604083850312156113c2575f80fd5b6113cb836111f0565b91506113d9602084016111f0565b90509250929050565b5f602082840312156113f2575f80fd5b815161103181611281565b5f6020828403121561140d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161143957611439611414565b5060010190565b5f8161144e5761144e611414565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061148790830184611199565b9695505050505050565b5f602082840312156114a1575f80fd5b815161103181611166565b634e487b7160e01b5f52601260045260245ffd5b5f826114ce576114ce6114ac565b500690565b8082018082111561048d5761048d611414565b5f81518060208401855e5f93019283525090919050565b630e4cec4560e31b81525f61151560048301866114e6565b600b60fa1b815261152960018201866114e6565b9050600b60fa1b815261153f60018201856114e6565b602960f81b81526001019695505050505050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272076696577426f783d273020302033323020333230273e3c7260208201527f6563742077696474683d2733323027206865696768743d27333230272066696c604082015271361e93b933b1141898961898161c9493979f60711b60608201527f3c7061746820643d274d35302032303068323230762d33306c2d34342d382d3360728201527f302d3434682d37306c2d33342034342d34322031327a272066696c6c3d27000060928201525f61163760b08301846114e6565b6213979f60e91b81527f3c636972636c652063783d27313034272063793d273230362720723d2733302760038201527f2066696c6c3d276e6f6e6527207374726f6b653d27726762283139362c31393960238201527f2c3230332927207374726f6b652d77696474683d2738272f3e3c636972636c6560438201527f2063783d27323136272063793d273230362720723d273330272066696c6c3d2760638201527f6e6f6e6527207374726f6b653d27726762283139362c3139392c32303329272060838201527139ba3937b5b296bbb4b23a341e939c13979f60711b60a38201527f3c636972636c652063783d27313034272063793d273230362720723d2735272060b58201527f66696c6c3d27726762283231302c3136302c373429272f3e3c636972636c652060d58201527f63783d27323136272063793d273230362720723d2735272066696c6c3d27726760f58201526f311419189816189b18161b9a1493979f60811b6101158201527f3c636972636c652063783d27313638272063793d273134322720723d273135276101258201527f2066696c6c3d27726762283231372c3135342c373829272f3e3c636972636c656101458201527f2063783d27313538272063793d273132382720723d2735272066696c6c3d27726101658201527f6762283233332c3136362c31363029272f3e3c636972636c652063783d2731376101858201527f38272063793d273132382720723d2735272066696c6c3d27726762283233332c6101a582015270189b1b16189b181493979f1e17b9bb339f60791b6101c58201526101d6810161115e565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81527765223a2248616d73746572204d6f746f727320436172202360401b60208201525f6118df60388301856114e6565b7f222c226465736372697074696f6e223a224561726e6564206279207061726b6981527f6e6720484d545220666f7220333020646179732e222c22696d616765223a2264602082015276185d184e9a5b5859d94bdcdd99cade1b5b0edd5d198e0b604a1b604082015261195560578201856114e6565b61227d60f01b815260020195945050505050565b808202811582820484141761048d5761048d611414565b5f8261198e5761198e6114ac565b500490565b634e487b7160e01b5f52603260045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","sourceMap":"1111:6545:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:143;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;4514:143:0;;;;;;;;1140:50;;;;;;;;;;;;;;;-1:-1:-1;;;1140:50:0;;;;;;;;;;;;:::i;3122:382::-;;;;;;:::i;:::-;;:::i;:::-;;;1510:25:1;;;1498:2;1483:18;3122:382:0;1364:177:1;1726:46:0;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1726:46:0;;;;;;-1:-1:-1;;;;;1710:32:1;;;1692:51;;1680:2;1665:18;1726:46:0;1546:203:1;4663:241:0;;;;;;:::i;:::-;;:::i;:::-;;1519:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1519:37:0;;;-1:-1:-1;;;1519:37:0;;-1:-1:-1;;;;;1519:37:0;;-1:-1:-1;;;1519:37:0;;;;;;;;;;;-1:-1:-1;;;;;2506:32:1;;;2488:51;;-1:-1:-1;;;;;2575:31:1;;;2570:2;2555:18;;2548:59;2650:14;;2643:22;2623:18;;;2616:50;;;;2697:2;2682:18;;2675:34;;;;2740:3;2725:19;;2718:35;2475:3;2460:19;1519:37:0;2237:522:1;5076:427:0;;;;;;:::i;:::-;;:::i;5509:112::-;;;;;;:::i;:::-;;:::i;1595:26::-;;;;;;3510:526;;;;;;:::i;:::-;;:::i;4368:140::-;;;;;;:::i;:::-;;:::i;4042:297::-;;;;;;:::i;:::-;;:::i;1676:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1852:50;;;;;;:::i;:::-;;;;;;;;;;;;;;1196:38;;;;;;;;;;;;;;;-1:-1:-1;;;1196:38:0;;;;;4910:160;;;;;;:::i;:::-;;:::i;1388:27::-;;;;;5627:301;;;;;;:::i;:::-;;:::i;6045:1291::-;;;;;;:::i;:::-;;:::i;2938:178::-;;;;;;:::i;:::-;;:::i;2753:105::-;;;;;;:::i;:::-;;:::i;1562:27::-;;;;;;1240:38;;1271:7;1240:38;;1284:41;;1319:6;1284:41;;1778:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:143;4574:4;-1:-1:-1;;;;;;;;;4597:15:0;;;;:34;;-1:-1:-1;;;;;;;;;;4616:15:0;;;4597:34;:53;;;-1:-1:-1;;;;;;;;;;4635:15:0;;;4597:53;4590:60;4514:143;-1:-1:-1;;4514:143:0:o;3122:382::-;3170:10;1319:6;3196;:17;3192:37;;;3222:7;;-1:-1:-1;;;3222:7:0;;;;;;;;;;;3192:37;3239:52;;-1:-1:-1;;;3239:52:0;;3257:10;3239:52;;;5808:51:1;3277:4:0;5875:18:1;;;5868:60;5944:18;;;5937:34;;;3239:4:0;-1:-1:-1;;;;;3239:17:0;;;;5781:18:1;;3239:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3317:18:0;;-1:-1:-1;;;3317:18:0;;;;;1510:25:1;;;3301:13:0;;3317:4;-1:-1:-1;;;;;3317:10:0;;;;1483:18:1;;3317::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3350:8;:10;;3301:34;;-1:-1:-1;3350:8:0;:10;;;:::i;:::-;;;;-1:-1:-1;3382:63:0;;;;;;;;3387:10;3382:63;;;-1:-1:-1;;;;;3406:15:0;3382:63;;;;;;;;;-1:-1:-1;3382:63:0;;;;;;;;;;;;;;;;;;3370:9;;;;;;;;;;;:75;;;;;;;;;;-1:-1:-1;;;3370:75:0;-1:-1:-1;;;;3370:75:0;;;;-1:-1:-1;;;3370:75:0;-1:-1:-1;;;;;;3370:75:0;;;-1:-1:-1;;;;;3370:75:0;;;;;;;;;;;;;;;;;;;;3382:63;3370:75;;;;;;;;;;;;3460:37;;3345:15;;-1:-1:-1;3387:10:0;3345:15;;3460:37;;;;3438:6;;3431:5;;6867:25:1;;;6923:2;6908:18;;6901:34;6855:2;6840:18;;6693:248;3460:37:0;;;;;;;;3182:322;3122:382;;;:::o;4663:241::-;4723:9;4735:11;4743:2;4735:7;:11::i;:::-;4723:23;-1:-1:-1;4760:10:0;-1:-1:-1;;;;;4760:15:0;;;;;;:51;;-1:-1:-1;;;;;;4780:19:0;;;;;;:16;:19;;;;;;;;4800:10;4780:31;;;;;;;;;;4779:32;4760:51;4756:77;;;4820:13;;-1:-1:-1;;;4820:13:0;;;;;;;;;;;4756:77;4843:15;;;;:11;:15;;;;;;:20;;-1:-1:-1;;;;;;4843:20:0;-1:-1:-1;;;;;4843:20:0;;;;;;;;;4878:19;;4843:15;;4878:19;;;;;;;4713:191;4663:241;;:::o;5076:427::-;5153:9;5165:11;5173:2;5165:7;:11::i;:::-;5153:23;;5195:4;-1:-1:-1;;;;;5190:9:0;:1;-1:-1:-1;;;;;5190:9:0;;;:29;;;-1:-1:-1;;;;;;5203:16:0;;;5190:29;5186:52;;;5228:10;;-1:-1:-1;;;5228:10:0;;;;;;;;;;;5186:52;5252:10;-1:-1:-1;;;;;5252:15:0;;;;;;:48;;-1:-1:-1;5285:15:0;;;;:11;:15;;;;;;-1:-1:-1;;;;;5285:15:0;5271:10;:29;;5252:48;:84;;;;-1:-1:-1;;;;;;5305:19:0;;;;;;:16;:19;;;;;;;;5325:10;5305:31;;;;;;;;;;5304:32;5252:84;5248:110;;;5345:13;;-1:-1:-1;;;5345:13:0;;;;;;;;;;;5248:110;5375:15;;;;:11;:15;;;;;;;;5368:22;;-1:-1:-1;;;;;;5368:22:0;;;-1:-1:-1;;;;;5400:15:0;;;;:9;:15;;;;;:17;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5419:13:0;;;;;;:9;:13;;;;;:15;;;;;;:::i;:::-;;;;-1:-1:-1;;5444:10:0;;;;:6;:10;;;;;;:15;;-1:-1:-1;;;;;;5444:15:0;-1:-1:-1;;;;;5444:15:0;;;;;;;;;5474:22;;5444:10;;5474:22;;;;-1:-1:-1;;;;;;;;;;;5474:22:0;;5143:360;5076:427;;;:::o;5509:112::-;5584:34;5601:4;5607:2;5611;5584:34;;;;;;;;;;;;:16;:34::i;:::-;5509:112;;;:::o;3510:526::-;3556:11;3596:9;;;;;;;;;;3619:7;;-1:-1:-1;;;;;3619:7:0;3630:10;3619:21;3615:44;;3649:10;;-1:-1:-1;;;3649:10:0;;;;;;;;;;;3615:44;3673:9;;-1:-1:-1;;;3673:9:0;;;;3669:31;;;3691:9;;-1:-1:-1;;;3691:9:0;;;;;;;;;;;3669:31;3732:11;3740:2;3732:7;:11::i;:::-;3714:15;:29;3710:62;;;3760:11;3768:2;3760:7;:11::i;:::-;3752:20;;-1:-1:-1;;;3752:20:0;;;;;;1510:25:1;;1498:2;1483:18;;1364:177;3752:20:0;;;;;;;;3710:62;3782:16;;-1:-1:-1;;;;3782:16:0;-1:-1:-1;;;3782:16:0;;;3814:7;:9;;;3782;3814;;;:::i;:::-;;;;-1:-1:-1;3856:8:0;;;;3833:20;;;;:15;:20;;;;;;;;:31;;;;3874:6;:11;;;;;:24;;-1:-1:-1;;;;;;3874:24:0;3888:10;3874:24;;;;;;3908:21;;:9;:21;;;;;:23;;3808:15;;-1:-1:-1;3908:21:0;:23;;;:::i;:::-;;;;-1:-1:-1;;3946:37:0;;3979:3;;3967:10;;3963:1;;-1:-1:-1;;;;;;;;;;;3946:37:0;3963:1;;3946:37;3998:31;;1510:25:1;;;4013:10:0;;4009:2;;3998:31;;1498:2:1;1483:18;3998:31:0;1364:177:1;4368:140:0;4418:9;4443:10;;;:6;:10;;;;;;-1:-1:-1;;;;;4443:10:0;;4463:38;;4491:10;;-1:-1:-1;;;4491:10:0;;;;;;;;;;;4463:38;4368:140;;;:::o;4042:297::-;4087:11;4126:9;;;;;;;;;;;4110:25;;;;;;;;;-1:-1:-1;;;;;4110:25:0;;;;;-1:-1:-1;;;4110:25:0;;-1:-1:-1;;;;;4110:25:0;;;;;;;;-1:-1:-1;;;4110:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4160:10;4149:21;4145:44;;4179:10;;-1:-1:-1;;;4179:10:0;;;;;;;;;;;4145:44;4206:5;:9;;;;;;;;;;;4199:16;;-1:-1:-1;;;;;;4199:16:0;;;-1:-1:-1;4199:16:0;;;;;;;;;;;4244:7;;;;4231:21;;-1:-1:-1;;;4231:21:0;;;;;1510:25:1;;;;-1:-1:-1;;;;;4231:4:0;:12;;;;1483:18:1;;4231:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4262:30;;-1:-1:-1;;;4262:30:0;;4276:10;4262:30;;;7261:51:1;7328:18;;;7321:34;;;4225:27:0;;-1:-1:-1;4262:4:0;-1:-1:-1;;;;;4262:13:0;;;;7234:18:1;;4262:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4307:25:0;;1510::1;;;4316:10:0;;4312:2;;4307:25;;1498:2:1;1483:18;4307:25:0;1364:177:1;4910:160:0;4994:10;4977:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;4977:32:0;;;;;;;;;;;;:37;;-1:-1:-1;;4977:37:0;;;;;;;;;;5029:34;;540:41:1;;;4977:32:0;;4994:10;5029:34;;513:18:1;5029:34:0;;;;;;;4910:160;;:::o;5627:301::-;5727:26;5740:4;5746:2;5750;5727:12;:26::i;:::-;-1:-1:-1;;;;;5767:14:0;;;:19;;;;:132;;-1:-1:-1;5790:64:0;;-1:-1:-1;;;5790:64:0;;;5858:41;-1:-1:-1;;;;;5790:36:0;;;5858:41;;5790:64;;5827:10;;5839:4;;5845:2;;5849:4;;5790:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5790:109:0;;;5767:132;5763:158;;;5908:13;;-1:-1:-1;;;5908:13:0;;;;;;;;;;;5763:158;5627:301;;;;:::o;6045:1291::-;6098:13;6123:11;6131:2;6123:7;:11::i;:::-;;6144:9;6185:2;6174:14;;;;;;1510:25:1;;1498:2;1483:18;;1364:177;6174:14:0;;;;-1:-1:-1;;6174:14:0;;;;;;;;;6164:25;;6174:14;6164:25;;;;;-1:-1:-1;6156:34:0;6244:16;6252:7;6256:3;6164:25;6252:7;:::i;:::-;6247:12;;:2;:12;:::i;:::-;6244:2;:16::i;:::-;6267:23;6275:14;6286:3;6281:1;6276:6;;;6275:14;:::i;6267:23::-;6297:24;6305:15;6317:3;6311:2;6306:7;;;6305:15;:::i;6297:24::-;6222:105;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6200:127;;6337:17;6580:5;6357:760;;;;;;;;:::i;:::-;;;;;;;;;;;;;6337:780;;7211:6;7214:2;7211;:6::i;:::-;7318:3;7134:195;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7127:202;;;;;6045:1291;;;:::o;2938:178::-;2990:7;3009:9;3021:4;-1:-1:-1;;;;;3021:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3009:29;-1:-1:-1;3055:6:0;;:54;;3108:1;3086:4;-1:-1:-1;;;;;3086:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3068:5;:9;;;;;;;;;;:15;;;:37;;;;:::i;:::-;:41;;;;:::i;:::-;3055:54;;;3064:1;3055:54;3048:61;2938:178;-1:-1:-1;;;2938:178:0:o;2753:105::-;2803:7;2829:9;;;;;;;;;;:18;2821:34;;1271:7;;-1:-1:-1;;;2829:18:0;;-1:-1:-1;;;;;2829:18:0;2821:34;:::i;7342:312::-;7387:13;7416:1;7421;7416:6;7412:22;;-1:-1:-1;;7424:10:0;;;;;;;;;;;;-1:-1:-1;;;7424:10:0;;;;;7342:312::o;7412:22::-;7456:1;7444:9;7478:32;7485:6;;7478:32;;7495:3;;;;:::i;:::-;;-1:-1:-1;7500:7:0;;-1:-1:-1;7505:2:0;7500:7;;:::i;:::-;;;7478:32;;;7519:14;7546:1;-1:-1:-1;;;;;7536:12:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7536:12:0;;7519:29;;7558:64;7565:6;;7558:64;;7602:6;7606:2;7602:1;:6;:::i;:::-;7597:11;;:2;:11;:::i;:::-;7584:26;;7575:1;7577:3;;;:::i;:::-;;;;7575:6;;;;;;;;:::i;:::-;;;;:35;-1:-1:-1;;;;;7575:35:0;;;;;;;;-1:-1:-1;7612:7:0;7617:2;7612:7;;:::i;:::-;;;7558:64;;;7645:1;7342:312;-1:-1:-1;;;;7342:312:0:o;14:131:1:-;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:300::-;645:3;683:5;677:12;710:6;705:3;698:19;766:6;759:4;752:5;748:16;741:4;736:3;732:14;726:47;818:1;811:4;802:6;797:3;793:16;789:27;782:38;881:4;874:2;870:7;865:2;857:6;853:15;849:29;844:3;840:39;836:50;829:57;;;592:300;;;;:::o;897:231::-;1046:2;1035:9;1028:21;1009:4;1066:56;1118:2;1107:9;1103:18;1095:6;1066:56;:::i;1133:226::-;1192:6;1245:2;1233:9;1224:7;1220:23;1216:32;1213:52;;;1261:1;1258;1251:12;1213:52;-1:-1:-1;1306:23:1;;1133:226;-1:-1:-1;1133:226:1:o;1754:173::-;1822:20;;-1:-1:-1;;;;;1871:31:1;;1861:42;;1851:70;;1917:1;1914;1907:12;1932:300;2000:6;2008;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;2198:2;2183:18;;;;2170:32;;-1:-1:-1;;;1932:300:1:o;2764:374::-;2841:6;2849;2857;2910:2;2898:9;2889:7;2885:23;2881:32;2878:52;;;2926:1;2923;2916:12;2878:52;2949:29;2968:9;2949:29;:::i;:::-;2939:39;;2997:38;3031:2;3020:9;3016:18;2997:38;:::i;:::-;2764:374;;2987:48;;-1:-1:-1;;;3104:2:1;3089:18;;;;3076:32;;2764:374::o;3143:186::-;3202:6;3255:2;3243:9;3234:7;3230:23;3226:32;3223:52;;;3271:1;3268;3261:12;3223:52;3294:29;3313:9;3294:29;:::i;3334:118::-;3420:5;3413:13;3406:21;3399:5;3396:32;3386:60;;3442:1;3439;3432:12;3457:315;3522:6;3530;3583:2;3571:9;3562:7;3558:23;3554:32;3551:52;;;3599:1;3596;3589:12;3551:52;3622:29;3641:9;3622:29;:::i;:::-;3612:39;;3701:2;3690:9;3686:18;3673:32;3714:28;3736:5;3714:28;:::i;:::-;3761:5;3751:15;;;3457:315;;;;;:::o;3997:127::-;4058:10;4053:3;4049:20;4046:1;4039:31;4089:4;4086:1;4079:15;4113:4;4110:1;4103:15;4129:1207;4224:6;4232;4240;4248;4301:3;4289:9;4280:7;4276:23;4272:33;4269:53;;;4318:1;4315;4308:12;4269:53;4341:29;4360:9;4341:29;:::i;:::-;4331:39;;4389:38;4423:2;4412:9;4408:18;4389:38;:::i;:::-;4379:48;-1:-1:-1;4496:2:1;4481:18;;4468:32;;-1:-1:-1;4575:2:1;4560:18;;4547:32;-1:-1:-1;;;;;4591:30:1;;4588:50;;;4634:1;4631;4624:12;4588:50;4657:22;;4710:4;4702:13;;4698:27;-1:-1:-1;4688:55:1;;4739:1;4736;4729:12;4688:55;4766:16;;-1:-1:-1;;;;;4794:30:1;;4791:56;;;4827:18;;:::i;:::-;4876:2;4870:9;4968:2;4930:17;;-1:-1:-1;;4926:31:1;;;4959:2;4922:40;4918:54;4906:67;;-1:-1:-1;;;;;4988:34:1;;5024:22;;;4985:62;4982:88;;;5050:18;;:::i;:::-;5086:2;5079:22;5110;;;5151:15;;;5168:2;5147:24;5144:37;-1:-1:-1;5141:57:1;;;5194:1;5191;5184:12;5141:57;5250:6;5245:2;5241;5237:11;5232:2;5224:6;5220:15;5207:50;5303:1;5298:2;5289:6;5281;5277:19;5273:28;5266:39;5324:6;5314:16;;;;;4129:1207;;;;;;;:::o;5341:260::-;5409:6;5417;5470:2;5458:9;5449:7;5445:23;5441:32;5438:52;;;5486:1;5483;5476:12;5438:52;5509:29;5528:9;5509:29;:::i;:::-;5499:39;;5557:38;5591:2;5580:9;5576:18;5557:38;:::i;:::-;5547:48;;5341:260;;;;;:::o;5982:245::-;6049:6;6102:2;6090:9;6081:7;6077:23;6073:32;6070:52;;;6118:1;6115;6108:12;6070:52;6150:9;6144:16;6169:28;6191:5;6169:28;:::i;6232:184::-;6302:6;6355:2;6343:9;6334:7;6330:23;6326:32;6323:52;;;6371:1;6368;6361:12;6323:52;-1:-1:-1;6394:16:1;;6232:184;-1:-1:-1;6232:184:1:o;6421:127::-;6482:10;6477:3;6473:20;6470:1;6463:31;6513:4;6510:1;6503:15;6537:4;6534:1;6527:15;6553:135;6592:3;6613:17;;;6610:43;;6633:18;;:::i;:::-;-1:-1:-1;6680:1:1;6669:13;;6553:135::o;6946:136::-;6985:3;7013:5;7003:39;;7022:18;;:::i;:::-;-1:-1:-1;;;7058:18:1;;6946:136::o;7366:496::-;-1:-1:-1;;;;;7597:32:1;;;7579:51;;7666:32;;7661:2;7646:18;;7639:60;7730:2;7715:18;;7708:34;;;7778:3;7773:2;7758:18;;7751:31;;;-1:-1:-1;;7799:57:1;;7836:19;;7828:6;7799:57;:::i;:::-;7791:65;7366:496;-1:-1:-1;;;;;;7366:496:1:o;7867:249::-;7936:6;7989:2;7977:9;7968:7;7964:23;7960:32;7957:52;;;8005:1;8002;7995:12;7957:52;8037:9;8031:16;8056:30;8080:5;8056:30;:::i;8121:127::-;8182:10;8177:3;8173:20;8170:1;8163:31;8213:4;8210:1;8203:15;8237:4;8234:1;8227:15;8253:112;8285:1;8311;8301:35;;8316:18;;:::i;:::-;-1:-1:-1;8350:9:1;;8253:112::o;8370:125::-;8435:9;;;8456:10;;;8453:36;;;8469:18;;:::i;8500:212::-;8542:3;8580:5;8574:12;8624:6;8617:4;8610:5;8606:16;8601:3;8595:36;8686:1;8650:16;;8675:13;;;-1:-1:-1;8650:16:1;;8500:212;-1:-1:-1;8500:212:1:o;8717:924::-;-1:-1:-1;;;9329:3:1;9322:19;9304:3;9363:38;9398:1;9393:3;9389:11;9381:6;9363:38;:::i;:::-;-1:-1:-1;;;9417:5:1;9410:18;9450:40;9487:1;9480:5;9476:13;9468:6;9450:40;:::i;:::-;9437:53;;-1:-1:-1;;;9506:5:1;9499:18;9539:40;9576:1;9569:5;9565:13;9557:6;9539:40;:::i;:::-;-1:-1:-1;;;9588:18:1;;9633:1;9622:13;;8717:924;-1:-1:-1;;;;;;8717:924:1:o;10441:1681::-;11197:34;11192:3;11185:47;11262:34;11257:2;11252:3;11248:12;11241:56;11327:34;11322:2;11317:3;11313:12;11306:56;-1:-1:-1;;;11387:2:1;11382:3;11378:12;11371:42;11444:34;11438:3;11433;11429:13;11422:57;11510:32;11504:3;11499;11495:13;11488:55;11167:3;11565:40;11600:3;11595;11591:13;11583:6;11565:40;:::i;:::-;-1:-1:-1;;;11614:20:1;;11665:34;11661:1;11650:13;;11643:57;11732:34;11727:2;11716:14;;11709:58;11799:34;11794:2;11783:14;;11776:58;11866:34;11861:2;11850:14;;11843:58;11934:34;11928:3;11917:15;;11910:59;-1:-1:-1;;;11996:3:1;11985:15;;11978:45;9723:34;12110:3;12099:15;;9711:47;9788:34;9774:12;;;9767:56;9853:34;9839:12;;;9832:56;-1:-1:-1;;;9904:12:1;;;9897:40;10054:34;9953:13;;;10042:47;10119:34;10105:12;;;10098:56;10184:34;10170:12;;;10163:56;10249:34;10235:12;;;10228:56;10315:34;10300:13;;;10293:57;-1:-1:-1;;;10366:13:1;;;10359:42;10417:13;;;12039:77;9977:459;12127:1087;12628:66;12616:79;;-1:-1:-1;;;12720:2:1;12711:12;;12704:81;-1:-1:-1;12804:39:1;12839:2;12830:12;;12822:6;12804:39;:::i;:::-;12863:66;12859:2;12852:78;12959:66;12954:2;12950;12946:11;12939:87;-1:-1:-1;;;13050:2:1;13046;13042:11;13035:46;13103:38;13137:2;13133;13129:11;13121:6;13103:38;:::i;:::-;-1:-1:-1;;;13150:29:1;;13206:1;13195:13;;12127:1087;-1:-1:-1;;;;;12127:1087:1:o;13219:168::-;13292:9;;;13323;;13340:15;;;13334:22;;13320:37;13310:71;;13361:18;;:::i;13392:120::-;13432:1;13458;13448:35;;13463:18;;:::i;:::-;-1:-1:-1;13497:9:1;;13392:120::o;13517:127::-;13578:10;13573:3;13569:20;13566:1;13559:31;13609:4;13606:1;13599:15;13633:4;13630:1;13623:15","linkReferences":{},"cborAuxdata":{"1":{"value":"0xa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","offset":6600}},"immutableReferences":{"92":[{"start":900,"length":32},{"start":1248,"length":32},{"start":1387,"length":32},{"start":2980,"length":32},{"start":3117,"length":32},{"start":3838,"length":32},{"start":3975,"length":32}]},"transformations":[{"id":"92","type":"replace","offset":900,"reason":"immutable"},{"id":"92","type":"replace","offset":1248,"reason":"immutable"},{"id":"92","type":"replace","offset":1387,"reason":"immutable"},{"id":"92","type":"replace","offset":2980,"reason":"immutable"},{"id":"92","type":"replace","offset":3117,"reason":"immutable"},{"id":"92","type":"replace","offset":3838,"reason":"immutable"},{"id":"92","type":"replace","offset":3975,"reason":"immutable"}],"transformationValues":{"immutables":{"92":"0x00000000000000000000000048313863170fe6845182fd9b516d6d7d9279ffce"}}},"deployment":{"transactionHash":"0x82d4155a58593f55061a07717ab4c6f9c099e2bf21880325d41e67cb6a8abe32","blockNumber":"12038970","transactionIndex":"55","deployer":"0xbC8744370bCb6D5AbF5dE8B4086ecfBB4C5629C3"},"sources":{"src/HamsterGarage.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.26;\n\ninterface IHMTR {\n    function transferFrom(address f, address t, uint256 v) external returns (bool);\n    function transfer(address t, uint256 v) external returns (bool);\n    function approve(address s, uint256 v) external returns (bool);\n    function stake(uint256 shares) external returns (uint256);\n    function unstake(uint256 units) external returns (uint256);\n    function unitsOf(address who) external view returns (uint256);\n    function stakedShares() external view returns (uint256);\n    function totalUnits() external view returns (uint256);\n}\ninterface IERC721Receiver { function onERC721Received(address, address, uint256, bytes calldata) external returns (bytes4); }\n\n/// @title HamsterGarage\n/// @notice Park HMTR here and the garage stakes it back, so the position keeps compounding exit fees.\n///         After 30 days parked the owner can claim one Hamster Motors car, an on-chain ERC-721.\n///         Parking can end at any time, keeping the compounded HMTR but forfeiting an unclaimed car.\n///         There is no owner and no admin.\ncontract HamsterGarage {\n    string public constant name = \"Hamster Motors Car\";\n    string public constant symbol = \"HCAR\";\n    uint256 public constant HOLD = 30 days;\n    uint256 public constant MIN_PARK = 100e18;   // makes restarting the stake wait expensive to grief\n\n    IHMTR public immutable hmtr;\n\n    struct Spot { address owner; uint64 parkedAt; bool claimed; uint256 units; uint256 shares; }\n    mapping(uint256 => Spot) public spots;\n    uint256 public nextSpot = 1;\n    uint256 public nextCar = 1;\n\n    mapping(uint256 => address) private _owner;\n    mapping(address => uint256) public balanceOf;\n    mapping(uint256 => address) public getApproved;\n    mapping(address => mapping(address => bool)) public isApprovedForAll;\n    mapping(uint256 => uint256) public carParkedShares;   // size of the position that earned the car\n\n    error Small();\n    error NotOwner();\n    error TooSoon(uint256 readyAt);\n    error Claimed();\n    error NotApproved();\n    error BadReceiver();\n\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n    event Approval(address indexed owner, address indexed spender, uint256 indexed tokenId);\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n    event Parked(uint256 indexed spot, address indexed owner, uint256 shares, uint256 units);\n    event Left(uint256 indexed spot, address indexed owner, uint256 shares);\n    event CarClaimed(uint256 indexed spot, address indexed owner, uint256 carId);\n\n    constructor(address hmtr_) {\n        hmtr = IHMTR(hmtr_);\n        IHMTR(hmtr_).approve(hmtr_, type(uint256).max);\n    }\n\n    function readyAt(uint256 id) public view returns (uint256) { return uint256(spots[id].parkedAt) + HOLD; }\n\n    /// @return current HMTR value of the spot, including compounded fees\n    function valueOf(uint256 id) external view returns (uint256) {\n        uint256 t = hmtr.totalUnits();\n        return t == 0 ? 0 : spots[id].units * hmtr.stakedShares() / t;\n    }\n\n    function park(uint256 shares) external returns (uint256 id) {\n        if (shares < MIN_PARK) revert Small();\n        hmtr.transferFrom(msg.sender, address(this), shares);\n        uint256 units = hmtr.stake(shares);\n        id = nextSpot++;\n        spots[id] = Spot(msg.sender, uint64(block.timestamp), false, units, shares);\n        emit Parked(id, msg.sender, shares, units);\n    }\n\n    function claimCar(uint256 id) public returns (uint256 car) {\n        Spot storage s = spots[id];\n        if (s.owner != msg.sender) revert NotOwner();\n        if (s.claimed) revert Claimed();\n        if (block.timestamp < readyAt(id)) revert TooSoon(readyAt(id));\n        s.claimed = true;\n        car = nextCar++;\n        carParkedShares[car] = s.shares;\n        _owner[car] = msg.sender;\n        balanceOf[msg.sender]++;\n        emit Transfer(address(0), msg.sender, car);\n        emit CarClaimed(id, msg.sender, car);\n    }\n\n    function leave(uint256 id) external returns (uint256 out) {\n        Spot memory s = spots[id];\n        if (s.owner != msg.sender) revert NotOwner();\n        delete spots[id];\n        out = hmtr.unstake(s.units);\n        hmtr.transfer(msg.sender, out);\n        emit Left(id, msg.sender, out);\n    }\n\n    // --- ERC-721 ---\n    function ownerOf(uint256 id) public view returns (address o) {\n        o = _owner[id];\n        if (o == address(0)) revert NotOwner();\n    }\n\n    function supportsInterface(bytes4 i) external pure returns (bool) {\n        return i == 0x01ffc9a7 || i == 0x80ac58cd || i == 0x5b5e139f;\n    }\n\n    function approve(address to, uint256 id) external {\n        address o = ownerOf(id);\n        if (msg.sender != o && !isApprovedForAll[o][msg.sender]) revert NotApproved();\n        getApproved[id] = to;\n        emit Approval(o, to, id);\n    }\n\n    function setApprovalForAll(address op, bool ok) external {\n        isApprovedForAll[msg.sender][op] = ok;\n        emit ApprovalForAll(msg.sender, op, ok);\n    }\n\n    function transferFrom(address from, address to, uint256 id) public {\n        address o = ownerOf(id);\n        if (o != from || to == address(0)) revert NotOwner();\n        if (msg.sender != o && msg.sender != getApproved[id] && !isApprovedForAll[o][msg.sender]) revert NotApproved();\n        delete getApproved[id];\n        balanceOf[from]--; balanceOf[to]++;\n        _owner[id] = to;\n        emit Transfer(from, to, id);\n    }\n\n    function safeTransferFrom(address from, address to, uint256 id) external { safeTransferFrom(from, to, id, \"\"); }\n\n    function safeTransferFrom(address from, address to, uint256 id, bytes memory data) public {\n        transferFrom(from, to, id);\n        if (to.code.length != 0 && IERC721Receiver(to).onERC721Received(msg.sender, from, id, data) != IERC721Receiver.onERC721Received.selector) revert BadReceiver();\n    }\n\n    /// @notice A car drawn on-chain. Paint comes from the token id, plain rgb() so the SVG needs no escaping.\n    function tokenURI(uint256 id) external view returns (string memory) {\n        ownerOf(id);\n        uint256 h = uint256(keccak256(abi.encode(id)));\n        string memory paint = string.concat(\"rgb(\", _s(80 + h % 170), \",\", _s(80 + (h >> 8) % 170), \",\", _s(80 + (h >> 16) % 170), \")\");\n        string memory svg = string.concat(\n            \"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320'><rect width='320' height='320' fill='rgb(11,10,9)'/>\",\n            \"<path d='M50 200h220v-30l-44-8-30-44h-70l-34 44-42 12z' fill='\", paint, \"'/>\",\n            \"<circle cx='104' cy='206' r='30' fill='none' stroke='rgb(196,199,203)' stroke-width='8'/><circle cx='216' cy='206' r='30' fill='none' stroke='rgb(196,199,203)' stroke-width='8'/>\",\n            \"<circle cx='104' cy='206' r='5' fill='rgb(210,160,74)'/><circle cx='216' cy='206' r='5' fill='rgb(210,160,74)'/>\",\n            \"<circle cx='168' cy='142' r='15' fill='rgb(217,154,78)'/><circle cx='158' cy='128' r='5' fill='rgb(233,166,160)'/><circle cx='178' cy='128' r='5' fill='rgb(233,166,160)'/></svg>\"\n        );\n        return string.concat(\"data:application/json;utf8,{\\\"name\\\":\\\"Hamster Motors Car #\", _s(id), \"\\\",\\\"description\\\":\\\"Earned by parking HMTR for 30 days.\\\",\\\"image\\\":\\\"data:image/svg+xml;utf8,\", svg, \"\\\"}\");\n    }\n\n    function _s(uint256 v) private pure returns (string memory) {\n        if (v == 0) return \"0\";\n        uint256 n = v; uint256 d;\n        while (n != 0) { d++; n /= 10; }\n        bytes memory b = new bytes(d);\n        while (v != 0) { b[--d] = bytes1(uint8(48 + v % 10)); v /= 10; }\n        return string(b);\n    }\n}\n"}},"compilation":{"language":"Solidity","compiler":"solc","compilerVersion":"0.8.26+commit.8a97fa7a","compilerSettings":{"viaIR":false,"metadata":{"appendCBOR":true,"bytecodeHash":"ipfs","useLiteralContent":false},"libraries":{},"optimizer":{"runs":1,"enabled":true},"evmVersion":"cancun","remappings":["forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/"]},"name":"HamsterGarage","fullyQualifiedName":"src/HamsterGarage.sol:HamsterGarage"},"abi":[{"type":"constructor","inputs":[{"name":"hmtr_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"name":"BadReceiver","type":"error","inputs":[]},{"name":"Claimed","type":"error","inputs":[]},{"name":"NotApproved","type":"error","inputs":[]},{"name":"NotOwner","type":"error","inputs":[]},{"name":"Small","type":"error","inputs":[]},{"name":"TooSoon","type":"error","inputs":[{"name":"readyAt","type":"uint256","internalType":"uint256"}]},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"name":"ApprovalForAll","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"name":"CarClaimed","type":"event","inputs":[{"name":"spot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"carId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Left","type":"event","inputs":[{"name":"spot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Parked","type":"event","inputs":[{"name":"spot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"units","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"name":"HOLD","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MIN_PARK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"balanceOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"carParkedShares","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"claimCar","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"car","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"getApproved","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"hmtr","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IHMTR"}],"stateMutability":"view"},{"name":"isApprovedForAll","type":"function","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"leave","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"out","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"name","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"nextCar","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"nextSpot","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"ownerOf","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"o","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"park","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"readyAt","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"safeTransferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"safeTransferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setApprovalForAll","type":"function","inputs":[{"name":"op","type":"address","internalType":"address"},{"name":"ok","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"spots","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"parkedAt","type":"uint64","internalType":"uint64"},{"name":"claimed","type":"bool","internalType":"bool"},{"name":"units","type":"uint256","internalType":"uint256"},{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"supportsInterface","type":"function","inputs":[{"name":"i","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"tokenURI","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"transferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"valueOf","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"hmtr_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BadReceiver","type":"error"},{"inputs":[],"name":"Claimed","type":"error"},{"inputs":[],"name":"NotApproved","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"Small","type":"error"},{"inputs":[{"internalType":"uint256","name":"readyAt","type":"uint256"}],"name":"TooSoon","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","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":"spot","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"carId","type":"uint256"}],"name":"CarClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"spot","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Left","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"spot","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"units","type":"uint256"}],"name":"Parked","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":"HOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_PARK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"carParkedShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"claimCar","outputs":[{"internalType":"uint256","name":"car","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hmtr","outputs":[{"internalType":"contract IHMTR","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"leave","outputs":[{"internalType":"uint256","name":"out","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextCar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextSpot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"o","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"park","outputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"readyAt","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":"id","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":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"op","type":"address"},{"internalType":"bool","name":"ok","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"spots","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"parkedAt","type":"uint64"},{"internalType":"bool","name":"claimed","type":"bool"},{"internalType":"uint256","name":"units","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"i","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","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":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"valueOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"valueOf(uint256)":{"returns":{"_0":"current HMTR value of the spot, including compounded fees"}}},"title":"HamsterGarage","version":1},"userdoc":{"kind":"user","methods":{"tokenURI(uint256)":{"notice":"A car drawn on-chain. Paint comes from the token id, plain rgb() so the SVG needs no escaping."}},"notice":"Park HMTR here and the garage stakes it back, so the position keeps compounding exit fees.         After 30 days parked the owner can claim one Hamster Motors car, an on-chain ERC-721.         Parking can end at any time, keeping the compounded HMTR but forfeiting an unclaimed car.         There is no owner and no admin.","version":1}},"settings":{"compilationTarget":{"src/HamsterGarage.sol":"HamsterGarage"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":1},"remappings":[":forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/"]},"sources":{"src/HamsterGarage.sol":{"keccak256":"0x2307cfc0798997d3b619b445811adfc5964fc1b732f92ab6d36a93db6f1b55db","license":"MIT","urls":["bzz-raw://c3c14989981cba12597def02b9165593b2661386d0f940990fbbdf14c5bb00b9","dweb:/ipfs/QmWWLJiaFDTVnjZcc8Mhx5ATSgbeSH1gJkrsu1quafWGQd"]}},"version":1},"storageLayout":{"types":{"t_bool":{"label":"bool","encoding":"inplace","numberOfBytes":"1"},"t_uint64":{"label":"uint64","encoding":"inplace","numberOfBytes":"8"},"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_struct(Spot)103_storage":{"label":"struct HamsterGarage.Spot","members":[{"slot":"0","type":"t_address","astId":94,"label":"owner","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"0","type":"t_uint64","astId":96,"label":"parkedAt","offset":20,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"0","type":"t_bool","astId":98,"label":"claimed","offset":28,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"1","type":"t_uint256","astId":100,"label":"units","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"2","type":"t_uint256","astId":102,"label":"shares","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"}],"encoding":"inplace","numberOfBytes":"96"},"t_mapping(t_address,t_bool)":{"key":"t_address","label":"mapping(address => bool)","value":"t_bool","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"key":"t_address","label":"mapping(address => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_uint256,t_address)":{"key":"t_uint256","label":"mapping(uint256 => address)","value":"t_address","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_uint256,t_uint256)":{"key":"t_uint256","label":"mapping(uint256 => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_uint256,t_struct(Spot)103_storage)":{"key":"t_uint256","label":"mapping(uint256 => struct HamsterGarage.Spot)","value":"t_struct(Spot)103_storage","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"key":"t_address","label":"mapping(address => mapping(address => bool))","value":"t_mapping(t_address,t_bool)","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_mapping(t_uint256,t_struct(Spot)103_storage)","astId":108,"label":"spots","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"1","type":"t_uint256","astId":111,"label":"nextSpot","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"2","type":"t_uint256","astId":114,"label":"nextCar","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"3","type":"t_mapping(t_uint256,t_address)","astId":118,"label":"_owner","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"4","type":"t_mapping(t_address,t_uint256)","astId":122,"label":"balanceOf","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"5","type":"t_mapping(t_uint256,t_address)","astId":126,"label":"getApproved","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"6","type":"t_mapping(t_address,t_mapping(t_address,t_bool))","astId":132,"label":"isApprovedForAll","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"7","type":"t_mapping(t_uint256,t_uint256)","astId":136,"label":"carParkedShares","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"}]},"transientStorageLayout":null,"userdoc":{"kind":"user","notice":"Park HMTR here and the garage stakes it back, so the position keeps compounding exit fees.         After 30 days parked the owner can claim one Hamster Motors car, an on-chain ERC-721.         Parking can end at any time, keeping the compounded HMTR but forfeiting an unclaimed car.         There is no owner and no admin.","methods":{"tokenURI(uint256)":{"notice":"A car drawn on-chain. Paint comes from the token id, plain rgb() so the SVG needs no escaping."}},"version":1},"devdoc":{"kind":"dev","title":"HamsterGarage","methods":{"valueOf(uint256)":{"returns":{"_0":"current HMTR value of the spot, including compounded fees"}}},"version":1},"sourceIds":{"src/HamsterGarage.sol":{"id":0}},"additionalInput":null,"stdJsonInput":{"sources":{"src/HamsterGarage.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity 0.8.26;\n\ninterface IHMTR {\n    function transferFrom(address f, address t, uint256 v) external returns (bool);\n    function transfer(address t, uint256 v) external returns (bool);\n    function approve(address s, uint256 v) external returns (bool);\n    function stake(uint256 shares) external returns (uint256);\n    function unstake(uint256 units) external returns (uint256);\n    function unitsOf(address who) external view returns (uint256);\n    function stakedShares() external view returns (uint256);\n    function totalUnits() external view returns (uint256);\n}\ninterface IERC721Receiver { function onERC721Received(address, address, uint256, bytes calldata) external returns (bytes4); }\n\n/// @title HamsterGarage\n/// @notice Park HMTR here and the garage stakes it back, so the position keeps compounding exit fees.\n///         After 30 days parked the owner can claim one Hamster Motors car, an on-chain ERC-721.\n///         Parking can end at any time, keeping the compounded HMTR but forfeiting an unclaimed car.\n///         There is no owner and no admin.\ncontract HamsterGarage {\n    string public constant name = \"Hamster Motors Car\";\n    string public constant symbol = \"HCAR\";\n    uint256 public constant HOLD = 30 days;\n    uint256 public constant MIN_PARK = 100e18;   // makes restarting the stake wait expensive to grief\n\n    IHMTR public immutable hmtr;\n\n    struct Spot { address owner; uint64 parkedAt; bool claimed; uint256 units; uint256 shares; }\n    mapping(uint256 => Spot) public spots;\n    uint256 public nextSpot = 1;\n    uint256 public nextCar = 1;\n\n    mapping(uint256 => address) private _owner;\n    mapping(address => uint256) public balanceOf;\n    mapping(uint256 => address) public getApproved;\n    mapping(address => mapping(address => bool)) public isApprovedForAll;\n    mapping(uint256 => uint256) public carParkedShares;   // size of the position that earned the car\n\n    error Small();\n    error NotOwner();\n    error TooSoon(uint256 readyAt);\n    error Claimed();\n    error NotApproved();\n    error BadReceiver();\n\n    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n    event Approval(address indexed owner, address indexed spender, uint256 indexed tokenId);\n    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n    event Parked(uint256 indexed spot, address indexed owner, uint256 shares, uint256 units);\n    event Left(uint256 indexed spot, address indexed owner, uint256 shares);\n    event CarClaimed(uint256 indexed spot, address indexed owner, uint256 carId);\n\n    constructor(address hmtr_) {\n        hmtr = IHMTR(hmtr_);\n        IHMTR(hmtr_).approve(hmtr_, type(uint256).max);\n    }\n\n    function readyAt(uint256 id) public view returns (uint256) { return uint256(spots[id].parkedAt) + HOLD; }\n\n    /// @return current HMTR value of the spot, including compounded fees\n    function valueOf(uint256 id) external view returns (uint256) {\n        uint256 t = hmtr.totalUnits();\n        return t == 0 ? 0 : spots[id].units * hmtr.stakedShares() / t;\n    }\n\n    function park(uint256 shares) external returns (uint256 id) {\n        if (shares < MIN_PARK) revert Small();\n        hmtr.transferFrom(msg.sender, address(this), shares);\n        uint256 units = hmtr.stake(shares);\n        id = nextSpot++;\n        spots[id] = Spot(msg.sender, uint64(block.timestamp), false, units, shares);\n        emit Parked(id, msg.sender, shares, units);\n    }\n\n    function claimCar(uint256 id) public returns (uint256 car) {\n        Spot storage s = spots[id];\n        if (s.owner != msg.sender) revert NotOwner();\n        if (s.claimed) revert Claimed();\n        if (block.timestamp < readyAt(id)) revert TooSoon(readyAt(id));\n        s.claimed = true;\n        car = nextCar++;\n        carParkedShares[car] = s.shares;\n        _owner[car] = msg.sender;\n        balanceOf[msg.sender]++;\n        emit Transfer(address(0), msg.sender, car);\n        emit CarClaimed(id, msg.sender, car);\n    }\n\n    function leave(uint256 id) external returns (uint256 out) {\n        Spot memory s = spots[id];\n        if (s.owner != msg.sender) revert NotOwner();\n        delete spots[id];\n        out = hmtr.unstake(s.units);\n        hmtr.transfer(msg.sender, out);\n        emit Left(id, msg.sender, out);\n    }\n\n    // --- ERC-721 ---\n    function ownerOf(uint256 id) public view returns (address o) {\n        o = _owner[id];\n        if (o == address(0)) revert NotOwner();\n    }\n\n    function supportsInterface(bytes4 i) external pure returns (bool) {\n        return i == 0x01ffc9a7 || i == 0x80ac58cd || i == 0x5b5e139f;\n    }\n\n    function approve(address to, uint256 id) external {\n        address o = ownerOf(id);\n        if (msg.sender != o && !isApprovedForAll[o][msg.sender]) revert NotApproved();\n        getApproved[id] = to;\n        emit Approval(o, to, id);\n    }\n\n    function setApprovalForAll(address op, bool ok) external {\n        isApprovedForAll[msg.sender][op] = ok;\n        emit ApprovalForAll(msg.sender, op, ok);\n    }\n\n    function transferFrom(address from, address to, uint256 id) public {\n        address o = ownerOf(id);\n        if (o != from || to == address(0)) revert NotOwner();\n        if (msg.sender != o && msg.sender != getApproved[id] && !isApprovedForAll[o][msg.sender]) revert NotApproved();\n        delete getApproved[id];\n        balanceOf[from]--; balanceOf[to]++;\n        _owner[id] = to;\n        emit Transfer(from, to, id);\n    }\n\n    function safeTransferFrom(address from, address to, uint256 id) external { safeTransferFrom(from, to, id, \"\"); }\n\n    function safeTransferFrom(address from, address to, uint256 id, bytes memory data) public {\n        transferFrom(from, to, id);\n        if (to.code.length != 0 && IERC721Receiver(to).onERC721Received(msg.sender, from, id, data) != IERC721Receiver.onERC721Received.selector) revert BadReceiver();\n    }\n\n    /// @notice A car drawn on-chain. Paint comes from the token id, plain rgb() so the SVG needs no escaping.\n    function tokenURI(uint256 id) external view returns (string memory) {\n        ownerOf(id);\n        uint256 h = uint256(keccak256(abi.encode(id)));\n        string memory paint = string.concat(\"rgb(\", _s(80 + h % 170), \",\", _s(80 + (h >> 8) % 170), \",\", _s(80 + (h >> 16) % 170), \")\");\n        string memory svg = string.concat(\n            \"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320'><rect width='320' height='320' fill='rgb(11,10,9)'/>\",\n            \"<path d='M50 200h220v-30l-44-8-30-44h-70l-34 44-42 12z' fill='\", paint, \"'/>\",\n            \"<circle cx='104' cy='206' r='30' fill='none' stroke='rgb(196,199,203)' stroke-width='8'/><circle cx='216' cy='206' r='30' fill='none' stroke='rgb(196,199,203)' stroke-width='8'/>\",\n            \"<circle cx='104' cy='206' r='5' fill='rgb(210,160,74)'/><circle cx='216' cy='206' r='5' fill='rgb(210,160,74)'/>\",\n            \"<circle cx='168' cy='142' r='15' fill='rgb(217,154,78)'/><circle cx='158' cy='128' r='5' fill='rgb(233,166,160)'/><circle cx='178' cy='128' r='5' fill='rgb(233,166,160)'/></svg>\"\n        );\n        return string.concat(\"data:application/json;utf8,{\\\"name\\\":\\\"Hamster Motors Car #\", _s(id), \"\\\",\\\"description\\\":\\\"Earned by parking HMTR for 30 days.\\\",\\\"image\\\":\\\"data:image/svg+xml;utf8,\", svg, \"\\\"}\");\n    }\n\n    function _s(uint256 v) private pure returns (string memory) {\n        if (v == 0) return \"0\";\n        uint256 n = v; uint256 d;\n        while (n != 0) { d++; n /= 10; }\n        bytes memory b = new bytes(d);\n        while (v != 0) { b[--d] = bytes1(uint8(48 + v % 10)); v /= 10; }\n        return string(b);\n    }\n}\n"}},"language":"Solidity","settings":{"viaIR":false,"metadata":{"appendCBOR":true,"bytecodeHash":"ipfs","useLiteralContent":false},"libraries":{},"optimizer":{"runs":1,"enabled":true},"evmVersion":"cancun","remappings":["forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/"]}},"stdJsonOutput":{"sources":{"src/HamsterGarage.sol":{"id":0}},"contracts":{"src/HamsterGarage.sol":{"HamsterGarage":{"abi":[{"type":"constructor","inputs":[{"name":"hmtr_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"name":"BadReceiver","type":"error","inputs":[]},{"name":"Claimed","type":"error","inputs":[]},{"name":"NotApproved","type":"error","inputs":[]},{"name":"NotOwner","type":"error","inputs":[]},{"name":"Small","type":"error","inputs":[]},{"name":"TooSoon","type":"error","inputs":[{"name":"readyAt","type":"uint256","internalType":"uint256"}]},{"name":"Approval","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"name":"ApprovalForAll","type":"event","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"name":"CarClaimed","type":"event","inputs":[{"name":"spot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"carId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Left","type":"event","inputs":[{"name":"spot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Parked","type":"event","inputs":[{"name":"spot","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"units","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"name":"Transfer","type":"event","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"name":"HOLD","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"MIN_PARK","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"approve","type":"function","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"balanceOf","type":"function","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"carParkedShares","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"claimCar","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"car","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"getApproved","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"hmtr","type":"function","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IHMTR"}],"stateMutability":"view"},{"name":"isApprovedForAll","type":"function","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"name":"leave","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"out","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"name","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"nextCar","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"nextSpot","type":"function","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"ownerOf","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"o","type":"address","internalType":"address"}],"stateMutability":"view"},{"name":"park","type":"function","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"name":"readyAt","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"safeTransferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"safeTransferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"setApprovalForAll","type":"function","inputs":[{"name":"op","type":"address","internalType":"address"},{"name":"ok","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"spots","type":"function","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"parkedAt","type":"uint64","internalType":"uint64"},{"name":"claimed","type":"bool","internalType":"bool"},{"name":"units","type":"uint256","internalType":"uint256"},{"name":"shares","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"name":"supportsInterface","type":"function","inputs":[{"name":"i","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"name":"symbol","type":"function","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"tokenURI","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"name":"transferFrom","type":"function","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"name":"valueOf","type":"function","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"metadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hmtr_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"BadReceiver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Claimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotApproved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Small\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"readyAt\",\"type\":\"uint256\"}],\"name\":\"TooSoon\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"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\":\"spot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"carId\",\"type\":\"uint256\"}],\"name\":\"CarClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"spot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Left\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"spot\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"units\",\"type\":\"uint256\"}],\"name\":\"Parked\",\"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\":\"HOLD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MIN_PARK\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"carParkedShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"claimCar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"car\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hmtr\",\"outputs\":[{\"internalType\":\"contract IHMTR\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"leave\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"out\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextCar\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextSpot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"o\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"park\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"readyAt\",\"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\":\"id\",\"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\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"op\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"ok\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"spots\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"parkedAt\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"claimed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"units\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"i\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"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\":\"id\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"valueOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"valueOf(uint256)\":{\"returns\":{\"_0\":\"current HMTR value of the spot, including compounded fees\"}}},\"title\":\"HamsterGarage\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"tokenURI(uint256)\":{\"notice\":\"A car drawn on-chain. Paint comes from the token id, plain rgb() so the SVG needs no escaping.\"}},\"notice\":\"Park HMTR here and the garage stakes it back, so the position keeps compounding exit fees.         After 30 days parked the owner can claim one Hamster Motors car, an on-chain ERC-721.         Parking can end at any time, keeping the compounded HMTR but forfeiting an unclaimed car.         There is no owner and no admin.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/HamsterGarage.sol\":\"HamsterGarage\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[\":forge-std/=/Users/loserzx/squeek/burrow-lite/lib/forge-std/src/\"]},\"sources\":{\"src/HamsterGarage.sol\":{\"keccak256\":\"0x2307cfc0798997d3b619b445811adfc5964fc1b732f92ab6d36a93db6f1b55db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3c14989981cba12597def02b9165593b2661386d0f940990fbbdf14c5bb00b9\",\"dweb:/ipfs/QmWWLJiaFDTVnjZcc8Mhx5ATSgbeSH1gJkrsu1quafWGQd\"]}},\"version\":1}","userdoc":{"kind":"user","notice":"Park HMTR here and the garage stakes it back, so the position keeps compounding exit fees.         After 30 days parked the owner can claim one Hamster Motors car, an on-chain ERC-721.         Parking can end at any time, keeping the compounded HMTR but forfeiting an unclaimed car.         There is no owner and no admin.","methods":{"tokenURI(uint256)":{"notice":"A car drawn on-chain. Paint comes from the token id, plain rgb() so the SVG needs no escaping."}},"version":1},"devdoc":{"kind":"dev","title":"HamsterGarage","methods":{"valueOf(uint256)":{"returns":{"_0":"current HMTR value of the spot, including compounded fees"}}},"version":1},"storageLayout":{"types":{"t_bool":{"label":"bool","encoding":"inplace","numberOfBytes":"1"},"t_uint64":{"label":"uint64","encoding":"inplace","numberOfBytes":"8"},"t_address":{"label":"address","encoding":"inplace","numberOfBytes":"20"},"t_uint256":{"label":"uint256","encoding":"inplace","numberOfBytes":"32"},"t_struct(Spot)103_storage":{"label":"struct HamsterGarage.Spot","members":[{"slot":"0","type":"t_address","astId":94,"label":"owner","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"0","type":"t_uint64","astId":96,"label":"parkedAt","offset":20,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"0","type":"t_bool","astId":98,"label":"claimed","offset":28,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"1","type":"t_uint256","astId":100,"label":"units","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"2","type":"t_uint256","astId":102,"label":"shares","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"}],"encoding":"inplace","numberOfBytes":"96"},"t_mapping(t_address,t_bool)":{"key":"t_address","label":"mapping(address => bool)","value":"t_bool","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_uint256)":{"key":"t_address","label":"mapping(address => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_uint256,t_address)":{"key":"t_uint256","label":"mapping(uint256 => address)","value":"t_address","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_uint256,t_uint256)":{"key":"t_uint256","label":"mapping(uint256 => uint256)","value":"t_uint256","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_uint256,t_struct(Spot)103_storage)":{"key":"t_uint256","label":"mapping(uint256 => struct HamsterGarage.Spot)","value":"t_struct(Spot)103_storage","encoding":"mapping","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"key":"t_address","label":"mapping(address => mapping(address => bool))","value":"t_mapping(t_address,t_bool)","encoding":"mapping","numberOfBytes":"32"}},"storage":[{"slot":"0","type":"t_mapping(t_uint256,t_struct(Spot)103_storage)","astId":108,"label":"spots","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"1","type":"t_uint256","astId":111,"label":"nextSpot","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"2","type":"t_uint256","astId":114,"label":"nextCar","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"3","type":"t_mapping(t_uint256,t_address)","astId":118,"label":"_owner","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"4","type":"t_mapping(t_address,t_uint256)","astId":122,"label":"balanceOf","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"5","type":"t_mapping(t_uint256,t_address)","astId":126,"label":"getApproved","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"6","type":"t_mapping(t_address,t_mapping(t_address,t_bool))","astId":132,"label":"isApprovedForAll","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"},{"slot":"7","type":"t_mapping(t_uint256,t_uint256)","astId":136,"label":"carParkedShares","offset":0,"contract":"src/HamsterGarage.sol:HamsterGarage"}]},"transientStorageLayout":null,"evm":{"bytecode":{"object":"60a0604052600180556001600255348015610018575f80fd5b50604051611b3c380380611b3c833981016040819052610037916100b1565b6001600160a01b038116608081905260405163095ea7b360e01b8152600481018290525f19602482015263095ea7b3906044016020604051808303815f875af1158015610086573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100aa91906100de565b50506100fd565b5f602082840312156100c1575f80fd5b81516001600160a01b03811681146100d7575f80fd5b9392505050565b5f602082840312156100ee575f80fd5b815180151581146100d7575f80fd5b6080516119fd61013f5f395f8181610384015281816104e00152818161056b01528181610ba401528181610c2d01528181610efe0152610f8701526119fd5ff3fe608060405234801561000f575f80fd5b5060043610610131575f3560e01c806301ffc9a71461013557806306fdde031461015d57806307afe4921461019b578063081812fc146101bc578063095ea7b3146101fc578063145a8bdf1461021157806323b872dd146102a357806342842e0e146102b65780635221d2dd146102c95780635f581fe6146102d25780636352211e146102e557806367dfd4c9146102f857806370a082311461030b5780637c32999e1461032a57806395d89b4114610349578063a22cb4651461036c578063b2424a901461037f578063b88d4fde146103a6578063c87b56dd146103b9578063cadf338f146103cc578063cd067e12146103df578063ced17c13146103f2578063d0886f97146103fb578063dc04208914610405578063e985e9c514610415575b5f80fd5b61014861014336600461117e565b610442565b60405190151581526020015b60405180910390f35b61018e604051806040016040528060128152602001712430b6b9ba32b91026b7ba37b9399021b0b960711b81525081565b60405161015491906111c7565b6101ae6101a93660046111d9565b610493565b604051908152602001610154565b6101e46101ca3660046111d9565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610154565b61020f61020a366004611206565b6106d8565b005b61026361021f3660046111d9565b5f602081905290815260409020805460018201546002909201546001600160a01b03821692600160a01b83046001600160401b031692600160e01b900460ff169185565b604080516001600160a01b0390961686526001600160401b039094166020860152911515928401929092526060830191909152608082015260a001610154565b61020f6102b136600461122e565b610799565b61020f6102c436600461122e565b61091a565b6101ae60025481565b6101ae6102e03660046111d9565b610939565b6101e46102f33660046111d9565b610a9b565b6101ae6103063660046111d9565b610ad5565b6101ae610319366004611268565b60046020525f908152604090205481565b6101ae6103383660046111d9565b60076020525f908152604090205481565b61018e604051806040016040528060048152602001632421a0a960e11b81525081565b61020f61037a36600461128e565b610cd4565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b61020f6103b43660046112d7565b610d3f565b61018e6103c73660046111d9565b610e03565b6101ae6103da3660046111d9565b610efa565b6101ae6103ed3660046111d9565b611038565b6101ae60015481565b6101ae62278d0081565b6101ae68056bc75e2d6310000081565b6101486104233660046113b1565b600660209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b03198316148061047257506380ac58cd60e01b6001600160e01b03198316145b8061048d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f68056bc75e2d631000008210156104be5760405163453bf23360e01b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561052e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055291906113e2565b5060405163534a7e1d60e11b8152600481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a694fc3a906024016020604051808303815f875af11580156105b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105dd91906113fd565b600180549192505f6105ee83611428565b909155506040805160a081018252338082526001600160401b0342811660208085019182525f858701818152606087018a8152608088018d81528a8452938390529188902096518754945191511515600160e01b0260ff60e01b1992909616600160a01b026001600160e01b03199095166001600160a01b03919091161793909317929092169290921784555160018401555160029092019190915590519193509083907f273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7906106ca9087908690918252602082015260400190565b60405180910390a350919050565b5f6106e282610a9b565b9050336001600160a01b0382161480159061072057506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b1561073e5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f6107a382610a9b565b9050836001600160a01b0316816001600160a01b03161415806107cd57506001600160a01b038316155b156107eb576040516330cd747160e01b815260040160405180910390fd5b336001600160a01b0382161480159061081a57505f828152600560205260409020546001600160a01b03163314155b801561084957506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b156108675760405163c19f17a960e01b815260040160405180910390fd5b5f82815260056020908152604080832080546001600160a01b03191690556001600160a01b0387168352600490915281208054916108a483611440565b90915550506001600160a01b0383165f9081526004602052604081208054916108cc83611428565b90915550505f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816915f805160206119a883398151915291a450505050565b61093483838360405180602001604052805f815250610d3f565b505050565b5f81815260208190526040812080546001600160a01b03163314610970576040516330cd747160e01b815260040160405180910390fd5b8054600160e01b900460ff161561099a576040516317968e5360e31b815260040160405180910390fd5b6109a383611038565b4210156109d8576109b383611038565b604051637437acf560e11b81526004016109cf91815260200190565b60405180910390fd5b805460ff60e01b1916600160e01b17815560028054905f6109f883611428565b9091555060028201545f828152600760209081526040808320939093556003815282822080546001600160a01b03191633908117909155825260049052908120805492945090610a4783611428565b9091555050604051829033905f905f805160206119a8833981519152908290a4604051828152339084907f9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287906020016106ca565b5f818152600360205260409020546001600160a01b031680610ad0576040516330cd747160e01b815260040160405180910390fd5b919050565b5f81815260208181526040808320815160a08101835281546001600160a01b038116808352600160a01b82046001600160401b031695830195909552600160e01b900460ff1615159281019290925260018101546060830152600201546080820152903314610b57576040516330cd747160e01b815260040160405180910390fd5b5f8381526020819052604080822080546001600160e81b03191681556001810183905560020191909155606082015190516305c2fbcf60e31b815260048101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e17de78906024016020604051808303815f875af1158015610bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0e91906113fd565b60405163a9059cbb60e01b8152336004820152602481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906113e2565b50604051828152339084907f81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397906020016106ca565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d4a848484610799565b6001600160a01b0383163b15801590610ddf5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610d92903390899088908890600401611455565b6020604051808303815f875af1158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd29190611491565b6001600160e01b03191614155b15610dfd5760405163e290486f60e01b815260040160405180910390fd5b50505050565b6060610e0e82610a9b565b505f82604051602001610e2391815260200190565b60408051601f19818403018152919052805160209091012090505f610e5c610e4c60aa846114c0565b610e579060506114d3565b611064565b610e6e610e4c60aa600886901c6114c0565b610e80610e4c60aa601087901c6114c0565b604051602001610e92939291906114fd565b60405160208183030381529060405290505f81604051602001610eb59190611553565b6040516020818303038152906040529050610ecf85611064565b81604051602001610ee192919061188d565b6040516020818303038152906040529350505050919050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d86acc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c91906113fd565b9050801561102f57807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166390a577ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100591906113fd565b5f858152602081905260409020600101546110209190611969565b61102a9190611980565b611031565b5f5b9392505050565b5f8181526020819052604081205461048d9062278d0090600160a01b90046001600160401b03166114d3565b6060815f0361108a5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156110b3578061109d81611428565b91506110ac9050600a83611980565b915061108d565b5f816001600160401b038111156110cc576110cc6112c3565b6040519080825280601f01601f1916602001820160405280156110f6576020820181803683370190505b5090505b841561115e5761110b600a866114c0565b6111169060306114d3565b60f81b8161112384611440565b9350838151811061113657611136611993565b60200101906001600160f81b03191690815f1a905350611157600a86611980565b94506110fa565b949350505050565b6001600160e01b03198116811461117b575f80fd5b50565b5f6020828403121561118e575f80fd5b813561103181611166565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110316020830184611199565b5f602082840312156111e9575f80fd5b5035919050565b80356001600160a01b0381168114610ad0575f80fd5b5f8060408385031215611217575f80fd5b611220836111f0565b946020939093013593505050565b5f805f60608486031215611240575f80fd5b611249846111f0565b9250611257602085016111f0565b929592945050506040919091013590565b5f60208284031215611278575f80fd5b611031826111f0565b801515811461117b575f80fd5b5f806040838503121561129f575f80fd5b6112a8836111f0565b915060208301356112b881611281565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f80608085870312156112ea575f80fd5b6112f3856111f0565b9350611301602086016111f0565b92506040850135915060608501356001600160401b03811115611322575f80fd5b8501601f81018713611332575f80fd5b80356001600160401b0381111561134b5761134b6112c3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611379576113796112c3565b604052818152828201602001891015611390575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f80604083850312156113c2575f80fd5b6113cb836111f0565b91506113d9602084016111f0565b90509250929050565b5f602082840312156113f2575f80fd5b815161103181611281565b5f6020828403121561140d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161143957611439611414565b5060010190565b5f8161144e5761144e611414565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061148790830184611199565b9695505050505050565b5f602082840312156114a1575f80fd5b815161103181611166565b634e487b7160e01b5f52601260045260245ffd5b5f826114ce576114ce6114ac565b500690565b8082018082111561048d5761048d611414565b5f81518060208401855e5f93019283525090919050565b630e4cec4560e31b81525f61151560048301866114e6565b600b60fa1b815261152960018201866114e6565b9050600b60fa1b815261153f60018201856114e6565b602960f81b81526001019695505050505050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272076696577426f783d273020302033323020333230273e3c7260208201527f6563742077696474683d2733323027206865696768743d27333230272066696c604082015271361e93b933b1141898961898161c9493979f60711b60608201527f3c7061746820643d274d35302032303068323230762d33306c2d34342d382d3360728201527f302d3434682d37306c2d33342034342d34322031327a272066696c6c3d27000060928201525f61163760b08301846114e6565b6213979f60e91b81527f3c636972636c652063783d27313034272063793d273230362720723d2733302760038201527f2066696c6c3d276e6f6e6527207374726f6b653d27726762283139362c31393960238201527f2c3230332927207374726f6b652d77696474683d2738272f3e3c636972636c6560438201527f2063783d27323136272063793d273230362720723d273330272066696c6c3d2760638201527f6e6f6e6527207374726f6b653d27726762283139362c3139392c32303329272060838201527139ba3937b5b296bbb4b23a341e939c13979f60711b60a38201527f3c636972636c652063783d27313034272063793d273230362720723d2735272060b58201527f66696c6c3d27726762283231302c3136302c373429272f3e3c636972636c652060d58201527f63783d27323136272063793d273230362720723d2735272066696c6c3d27726760f58201526f311419189816189b18161b9a1493979f60811b6101158201527f3c636972636c652063783d27313638272063793d273134322720723d273135276101258201527f2066696c6c3d27726762283231372c3135342c373829272f3e3c636972636c656101458201527f2063783d27313538272063793d273132382720723d2735272066696c6c3d27726101658201527f6762283233332c3136362c31363029272f3e3c636972636c652063783d2731376101858201527f38272063793d273132382720723d2735272066696c6c3d27726762283233332c6101a582015270189b1b16189b181493979f1e17b9bb339f60791b6101c58201526101d6810161115e565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81527765223a2248616d73746572204d6f746f727320436172202360401b60208201525f6118df60388301856114e6565b7f222c226465736372697074696f6e223a224561726e6564206279207061726b6981527f6e6720484d545220666f7220333020646179732e222c22696d616765223a2264602082015276185d184e9a5b5859d94bdcdd99cade1b5b0edd5d198e0b604a1b604082015261195560578201856114e6565b61227d60f01b815260020195945050505050565b808202811582820484141761048d5761048d611414565b5f8261198e5761198e6114ac565b500490565b634e487b7160e01b5f52603260045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","sourceMap":"1111:6545:0:-:0;;;1588:1;1562:27;;1620:1;1595:26;;2628:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2665:19:0;;;;;;2694:46;;-1:-1:-1;;;2694:46:0;;;;;483:51:1;;;-1:-1:-1;;550:18:1;;;543:34;2694:20:0;;456:18:1;;2694:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2628:119;1111:6545;;14:290:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:1;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:1:o;588:277::-;655:6;708:2;696:9;687:7;683:23;679:32;676:52;;;724:1;721;714:12;676:52;756:9;750:16;809:5;802:13;795:21;788:5;785:32;775:60;;831:1;828;821:12;588:277;1111:6545:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"608060405234801561000f575f80fd5b5060043610610131575f3560e01c806301ffc9a71461013557806306fdde031461015d57806307afe4921461019b578063081812fc146101bc578063095ea7b3146101fc578063145a8bdf1461021157806323b872dd146102a357806342842e0e146102b65780635221d2dd146102c95780635f581fe6146102d25780636352211e146102e557806367dfd4c9146102f857806370a082311461030b5780637c32999e1461032a57806395d89b4114610349578063a22cb4651461036c578063b2424a901461037f578063b88d4fde146103a6578063c87b56dd146103b9578063cadf338f146103cc578063cd067e12146103df578063ced17c13146103f2578063d0886f97146103fb578063dc04208914610405578063e985e9c514610415575b5f80fd5b61014861014336600461117e565b610442565b60405190151581526020015b60405180910390f35b61018e604051806040016040528060128152602001712430b6b9ba32b91026b7ba37b9399021b0b960711b81525081565b60405161015491906111c7565b6101ae6101a93660046111d9565b610493565b604051908152602001610154565b6101e46101ca3660046111d9565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610154565b61020f61020a366004611206565b6106d8565b005b61026361021f3660046111d9565b5f602081905290815260409020805460018201546002909201546001600160a01b03821692600160a01b83046001600160401b031692600160e01b900460ff169185565b604080516001600160a01b0390961686526001600160401b039094166020860152911515928401929092526060830191909152608082015260a001610154565b61020f6102b136600461122e565b610799565b61020f6102c436600461122e565b61091a565b6101ae60025481565b6101ae6102e03660046111d9565b610939565b6101e46102f33660046111d9565b610a9b565b6101ae6103063660046111d9565b610ad5565b6101ae610319366004611268565b60046020525f908152604090205481565b6101ae6103383660046111d9565b60076020525f908152604090205481565b61018e604051806040016040528060048152602001632421a0a960e11b81525081565b61020f61037a36600461128e565b610cd4565b6101e47f000000000000000000000000000000000000000000000000000000000000000081565b61020f6103b43660046112d7565b610d3f565b61018e6103c73660046111d9565b610e03565b6101ae6103da3660046111d9565b610efa565b6101ae6103ed3660046111d9565b611038565b6101ae60015481565b6101ae62278d0081565b6101ae68056bc75e2d6310000081565b6101486104233660046113b1565b600660209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b03198316148061047257506380ac58cd60e01b6001600160e01b03198316145b8061048d5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f68056bc75e2d631000008210156104be5760405163453bf23360e01b815260040160405180910390fd5b6040516323b872dd60e01b8152336004820152306024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906323b872dd906064016020604051808303815f875af115801561052e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055291906113e2565b5060405163534a7e1d60e11b8152600481018390525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a694fc3a906024016020604051808303815f875af11580156105b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105dd91906113fd565b600180549192505f6105ee83611428565b909155506040805160a081018252338082526001600160401b0342811660208085019182525f858701818152606087018a8152608088018d81528a8452938390529188902096518754945191511515600160e01b0260ff60e01b1992909616600160a01b026001600160e01b03199095166001600160a01b03919091161793909317929092169290921784555160018401555160029092019190915590519193509083907f273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7906106ca9087908690918252602082015260400190565b60405180910390a350919050565b5f6106e282610a9b565b9050336001600160a01b0382161480159061072057506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b1561073e5760405163c19f17a960e01b815260040160405180910390fd5b5f8281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f6107a382610a9b565b9050836001600160a01b0316816001600160a01b03161415806107cd57506001600160a01b038316155b156107eb576040516330cd747160e01b815260040160405180910390fd5b336001600160a01b0382161480159061081a57505f828152600560205260409020546001600160a01b03163314155b801561084957506001600160a01b0381165f90815260066020908152604080832033845290915290205460ff16155b156108675760405163c19f17a960e01b815260040160405180910390fd5b5f82815260056020908152604080832080546001600160a01b03191690556001600160a01b0387168352600490915281208054916108a483611440565b90915550506001600160a01b0383165f9081526004602052604081208054916108cc83611428565b90915550505f8281526003602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918816915f805160206119a883398151915291a450505050565b61093483838360405180602001604052805f815250610d3f565b505050565b5f81815260208190526040812080546001600160a01b03163314610970576040516330cd747160e01b815260040160405180910390fd5b8054600160e01b900460ff161561099a576040516317968e5360e31b815260040160405180910390fd5b6109a383611038565b4210156109d8576109b383611038565b604051637437acf560e11b81526004016109cf91815260200190565b60405180910390fd5b805460ff60e01b1916600160e01b17815560028054905f6109f883611428565b9091555060028201545f828152600760209081526040808320939093556003815282822080546001600160a01b03191633908117909155825260049052908120805492945090610a4783611428565b9091555050604051829033905f905f805160206119a8833981519152908290a4604051828152339084907f9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287906020016106ca565b5f818152600360205260409020546001600160a01b031680610ad0576040516330cd747160e01b815260040160405180910390fd5b919050565b5f81815260208181526040808320815160a08101835281546001600160a01b038116808352600160a01b82046001600160401b031695830195909552600160e01b900460ff1615159281019290925260018101546060830152600201546080820152903314610b57576040516330cd747160e01b815260040160405180910390fd5b5f8381526020819052604080822080546001600160e81b03191681556001810183905560020191909155606082015190516305c2fbcf60e31b815260048101919091526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632e17de78906024016020604051808303815f875af1158015610bea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c0e91906113fd565b60405163a9059cbb60e01b8152336004820152602481018290529092507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a9059cbb906044016020604051808303815f875af1158015610c7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9f91906113e2565b50604051828152339084907f81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397906020016106ca565b335f8181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610d4a848484610799565b6001600160a01b0383163b15801590610ddf5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610d92903390899088908890600401611455565b6020604051808303815f875af1158015610dae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd29190611491565b6001600160e01b03191614155b15610dfd5760405163e290486f60e01b815260040160405180910390fd5b50505050565b6060610e0e82610a9b565b505f82604051602001610e2391815260200190565b60408051601f19818403018152919052805160209091012090505f610e5c610e4c60aa846114c0565b610e579060506114d3565b611064565b610e6e610e4c60aa600886901c6114c0565b610e80610e4c60aa601087901c6114c0565b604051602001610e92939291906114fd565b60405160208183030381529060405290505f81604051602001610eb59190611553565b6040516020818303038152906040529050610ecf85611064565b81604051602001610ee192919061188d565b6040516020818303038152906040529350505050919050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636d86acc46040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f7c91906113fd565b9050801561102f57807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166390a577ef6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fe1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061100591906113fd565b5f858152602081905260409020600101546110209190611969565b61102a9190611980565b611031565b5f5b9392505050565b5f8181526020819052604081205461048d9062278d0090600160a01b90046001600160401b03166114d3565b6060815f0361108a5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156110b3578061109d81611428565b91506110ac9050600a83611980565b915061108d565b5f816001600160401b038111156110cc576110cc6112c3565b6040519080825280601f01601f1916602001820160405280156110f6576020820181803683370190505b5090505b841561115e5761110b600a866114c0565b6111169060306114d3565b60f81b8161112384611440565b9350838151811061113657611136611993565b60200101906001600160f81b03191690815f1a905350611157600a86611980565b94506110fa565b949350505050565b6001600160e01b03198116811461117b575f80fd5b50565b5f6020828403121561118e575f80fd5b813561103181611166565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110316020830184611199565b5f602082840312156111e9575f80fd5b5035919050565b80356001600160a01b0381168114610ad0575f80fd5b5f8060408385031215611217575f80fd5b611220836111f0565b946020939093013593505050565b5f805f60608486031215611240575f80fd5b611249846111f0565b9250611257602085016111f0565b929592945050506040919091013590565b5f60208284031215611278575f80fd5b611031826111f0565b801515811461117b575f80fd5b5f806040838503121561129f575f80fd5b6112a8836111f0565b915060208301356112b881611281565b809150509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f805f80608085870312156112ea575f80fd5b6112f3856111f0565b9350611301602086016111f0565b92506040850135915060608501356001600160401b03811115611322575f80fd5b8501601f81018713611332575f80fd5b80356001600160401b0381111561134b5761134b6112c3565b604051601f8201601f19908116603f011681016001600160401b0381118282101715611379576113796112c3565b604052818152828201602001891015611390575f80fd5b816020840160208301375f6020838301015280935050505092959194509250565b5f80604083850312156113c2575f80fd5b6113cb836111f0565b91506113d9602084016111f0565b90509250929050565b5f602082840312156113f2575f80fd5b815161103181611281565b5f6020828403121561140d575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f6001820161143957611439611414565b5060010190565b5f8161144e5761144e611414565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061148790830184611199565b9695505050505050565b5f602082840312156114a1575f80fd5b815161103181611166565b634e487b7160e01b5f52601260045260245ffd5b5f826114ce576114ce6114ac565b500690565b8082018082111561048d5761048d611414565b5f81518060208401855e5f93019283525090919050565b630e4cec4560e31b81525f61151560048301866114e6565b600b60fa1b815261152960018201866114e6565b9050600b60fa1b815261153f60018201856114e6565b602960f81b81526001019695505050505050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272076696577426f783d273020302033323020333230273e3c7260208201527f6563742077696474683d2733323027206865696768743d27333230272066696c604082015271361e93b933b1141898961898161c9493979f60711b60608201527f3c7061746820643d274d35302032303068323230762d33306c2d34342d382d3360728201527f302d3434682d37306c2d33342034342d34322031327a272066696c6c3d27000060928201525f61163760b08301846114e6565b6213979f60e91b81527f3c636972636c652063783d27313034272063793d273230362720723d2733302760038201527f2066696c6c3d276e6f6e6527207374726f6b653d27726762283139362c31393960238201527f2c3230332927207374726f6b652d77696474683d2738272f3e3c636972636c6560438201527f2063783d27323136272063793d273230362720723d273330272066696c6c3d2760638201527f6e6f6e6527207374726f6b653d27726762283139362c3139392c32303329272060838201527139ba3937b5b296bbb4b23a341e939c13979f60711b60a38201527f3c636972636c652063783d27313034272063793d273230362720723d2735272060b58201527f66696c6c3d27726762283231302c3136302c373429272f3e3c636972636c652060d58201527f63783d27323136272063793d273230362720723d2735272066696c6c3d27726760f58201526f311419189816189b18161b9a1493979f60811b6101158201527f3c636972636c652063783d27313638272063793d273134322720723d273135276101258201527f2066696c6c3d27726762283231372c3135342c373829272f3e3c636972636c656101458201527f2063783d27313538272063793d273132382720723d2735272066696c6c3d27726101658201527f6762283233332c3136362c31363029272f3e3c636972636c652063783d2731376101858201527f38272063793d273132382720723d2735272066696c6c3d27726762283233332c6101a582015270189b1b16189b181493979f1e17b9bb339f60791b6101c58201526101d6810161115e565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c7b226e616d81527765223a2248616d73746572204d6f746f727320436172202360401b60208201525f6118df60388301856114e6565b7f222c226465736372697074696f6e223a224561726e6564206279207061726b6981527f6e6720484d545220666f7220333020646179732e222c22696d616765223a2264602082015276185d184e9a5b5859d94bdcdd99cade1b5b0edd5d198e0b604a1b604082015261195560578201856114e6565b61227d60f01b815260020195945050505050565b808202811582820484141761048d5761048d611414565b5f8261198e5761198e6114ac565b500490565b634e487b7160e01b5f52603260045260245ffdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122075b2278535b1f64d54651b423c8afc0899ef502f3b498394838b75b382ad224f64736f6c634300081a0033","sourceMap":"1111:6545:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:143;;;;;;:::i;:::-;;:::i;:::-;;;565:14:1;;558:22;540:41;;528:2;513:18;4514:143:0;;;;;;;;1140:50;;;;;;;;;;;;;;;-1:-1:-1;;;1140:50:0;;;;;;;;;;;;:::i;3122:382::-;;;;;;:::i;:::-;;:::i;:::-;;;1510:25:1;;;1498:2;1483:18;3122:382:0;1364:177:1;1726:46:0;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1726:46:0;;;;;;-1:-1:-1;;;;;1710:32:1;;;1692:51;;1680:2;1665:18;1726:46:0;1546:203:1;4663:241:0;;;;;;:::i;:::-;;:::i;:::-;;1519:37;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1519:37:0;;;-1:-1:-1;;;1519:37:0;;-1:-1:-1;;;;;1519:37:0;;-1:-1:-1;;;1519:37:0;;;;;;;;;;;-1:-1:-1;;;;;2506:32:1;;;2488:51;;-1:-1:-1;;;;;2575:31:1;;;2570:2;2555:18;;2548:59;2650:14;;2643:22;2623:18;;;2616:50;;;;2697:2;2682:18;;2675:34;;;;2740:3;2725:19;;2718:35;2475:3;2460:19;1519:37:0;2237:522:1;5076:427:0;;;;;;:::i;:::-;;:::i;5509:112::-;;;;;;:::i;:::-;;:::i;1595:26::-;;;;;;3510:526;;;;;;:::i;:::-;;:::i;4368:140::-;;;;;;:::i;:::-;;:::i;4042:297::-;;;;;;:::i;:::-;;:::i;1676:44::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1852:50;;;;;;:::i;:::-;;;;;;;;;;;;;;1196:38;;;;;;;;;;;;;;;-1:-1:-1;;;1196:38:0;;;;;4910:160;;;;;;:::i;:::-;;:::i;1388:27::-;;;;;5627:301;;;;;;:::i;:::-;;:::i;6045:1291::-;;;;;;:::i;:::-;;:::i;2938:178::-;;;;;;:::i;:::-;;:::i;2753:105::-;;;;;;:::i;:::-;;:::i;1562:27::-;;;;;;1240:38;;1271:7;1240:38;;1284:41;;1319:6;1284:41;;1778:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:143;4574:4;-1:-1:-1;;;;;;;;;4597:15:0;;;;:34;;-1:-1:-1;;;;;;;;;;4616:15:0;;;4597:34;:53;;;-1:-1:-1;;;;;;;;;;4635:15:0;;;4597:53;4590:60;4514:143;-1:-1:-1;;4514:143:0:o;3122:382::-;3170:10;1319:6;3196;:17;3192:37;;;3222:7;;-1:-1:-1;;;3222:7:0;;;;;;;;;;;3192:37;3239:52;;-1:-1:-1;;;3239:52:0;;3257:10;3239:52;;;5808:51:1;3277:4:0;5875:18:1;;;5868:60;5944:18;;;5937:34;;;3239:4:0;-1:-1:-1;;;;;3239:17:0;;;;5781:18:1;;3239:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3317:18:0;;-1:-1:-1;;;3317:18:0;;;;;1510:25:1;;;3301:13:0;;3317:4;-1:-1:-1;;;;;3317:10:0;;;;1483:18:1;;3317::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3350:8;:10;;3301:34;;-1:-1:-1;3350:8:0;:10;;;:::i;:::-;;;;-1:-1:-1;3382:63:0;;;;;;;;3387:10;3382:63;;;-1:-1:-1;;;;;3406:15:0;3382:63;;;;;;;;;-1:-1:-1;3382:63:0;;;;;;;;;;;;;;;;;;3370:9;;;;;;;;;;;:75;;;;;;;;;;-1:-1:-1;;;3370:75:0;-1:-1:-1;;;;3370:75:0;;;;-1:-1:-1;;;3370:75:0;-1:-1:-1;;;;;;3370:75:0;;;-1:-1:-1;;;;;3370:75:0;;;;;;;;;;;;;;;;;;;;3382:63;3370:75;;;;;;;;;;;;3460:37;;3345:15;;-1:-1:-1;3387:10:0;3345:15;;3460:37;;;;3438:6;;3431:5;;6867:25:1;;;6923:2;6908:18;;6901:34;6855:2;6840:18;;6693:248;3460:37:0;;;;;;;;3182:322;3122:382;;;:::o;4663:241::-;4723:9;4735:11;4743:2;4735:7;:11::i;:::-;4723:23;-1:-1:-1;4760:10:0;-1:-1:-1;;;;;4760:15:0;;;;;;:51;;-1:-1:-1;;;;;;4780:19:0;;;;;;:16;:19;;;;;;;;4800:10;4780:31;;;;;;;;;;4779:32;4760:51;4756:77;;;4820:13;;-1:-1:-1;;;4820:13:0;;;;;;;;;;;4756:77;4843:15;;;;:11;:15;;;;;;:20;;-1:-1:-1;;;;;;4843:20:0;-1:-1:-1;;;;;4843:20:0;;;;;;;;;4878:19;;4843:15;;4878:19;;;;;;;4713:191;4663:241;;:::o;5076:427::-;5153:9;5165:11;5173:2;5165:7;:11::i;:::-;5153:23;;5195:4;-1:-1:-1;;;;;5190:9:0;:1;-1:-1:-1;;;;;5190:9:0;;;:29;;;-1:-1:-1;;;;;;5203:16:0;;;5190:29;5186:52;;;5228:10;;-1:-1:-1;;;5228:10:0;;;;;;;;;;;5186:52;5252:10;-1:-1:-1;;;;;5252:15:0;;;;;;:48;;-1:-1:-1;5285:15:0;;;;:11;:15;;;;;;-1:-1:-1;;;;;5285:15:0;5271:10;:29;;5252:48;:84;;;;-1:-1:-1;;;;;;5305:19:0;;;;;;:16;:19;;;;;;;;5325:10;5305:31;;;;;;;;;;5304:32;5252:84;5248:110;;;5345:13;;-1:-1:-1;;;5345:13:0;;;;;;;;;;;5248:110;5375:15;;;;:11;:15;;;;;;;;5368:22;;-1:-1:-1;;;;;;5368:22:0;;;-1:-1:-1;;;;;5400:15:0;;;;:9;:15;;;;;:17;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;5419:13:0;;;;;;:9;:13;;;;;:15;;;;;;:::i;:::-;;;;-1:-1:-1;;5444:10:0;;;;:6;:10;;;;;;:15;;-1:-1:-1;;;;;;5444:15:0;-1:-1:-1;;;;;5444:15:0;;;;;;;;;5474:22;;5444:10;;5474:22;;;;-1:-1:-1;;;;;;;;;;;5474:22:0;;5143:360;5076:427;;;:::o;5509:112::-;5584:34;5601:4;5607:2;5611;5584:34;;;;;;;;;;;;:16;:34::i;:::-;5509:112;;;:::o;3510:526::-;3556:11;3596:9;;;;;;;;;;3619:7;;-1:-1:-1;;;;;3619:7:0;3630:10;3619:21;3615:44;;3649:10;;-1:-1:-1;;;3649:10:0;;;;;;;;;;;3615:44;3673:9;;-1:-1:-1;;;3673:9:0;;;;3669:31;;;3691:9;;-1:-1:-1;;;3691:9:0;;;;;;;;;;;3669:31;3732:11;3740:2;3732:7;:11::i;:::-;3714:15;:29;3710:62;;;3760:11;3768:2;3760:7;:11::i;:::-;3752:20;;-1:-1:-1;;;3752:20:0;;;;;;1510:25:1;;1498:2;1483:18;;1364:177;3752:20:0;;;;;;;;3710:62;3782:16;;-1:-1:-1;;;;3782:16:0;-1:-1:-1;;;3782:16:0;;;3814:7;:9;;;3782;3814;;;:::i;:::-;;;;-1:-1:-1;3856:8:0;;;;3833:20;;;;:15;:20;;;;;;;;:31;;;;3874:6;:11;;;;;:24;;-1:-1:-1;;;;;;3874:24:0;3888:10;3874:24;;;;;;3908:21;;:9;:21;;;;;:23;;3808:15;;-1:-1:-1;3908:21:0;:23;;;:::i;:::-;;;;-1:-1:-1;;3946:37:0;;3979:3;;3967:10;;3963:1;;-1:-1:-1;;;;;;;;;;;3946:37:0;3963:1;;3946:37;3998:31;;1510:25:1;;;4013:10:0;;4009:2;;3998:31;;1498:2:1;1483:18;3998:31:0;1364:177:1;4368:140:0;4418:9;4443:10;;;:6;:10;;;;;;-1:-1:-1;;;;;4443:10:0;;4463:38;;4491:10;;-1:-1:-1;;;4491:10:0;;;;;;;;;;;4463:38;4368:140;;;:::o;4042:297::-;4087:11;4126:9;;;;;;;;;;;4110:25;;;;;;;;;-1:-1:-1;;;;;4110:25:0;;;;;-1:-1:-1;;;4110:25:0;;-1:-1:-1;;;;;4110:25:0;;;;;;;;-1:-1:-1;;;4110:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4160:10;4149:21;4145:44;;4179:10;;-1:-1:-1;;;4179:10:0;;;;;;;;;;;4145:44;4206:5;:9;;;;;;;;;;;4199:16;;-1:-1:-1;;;;;;4199:16:0;;;-1:-1:-1;4199:16:0;;;;;;;;;;;4244:7;;;;4231:21;;-1:-1:-1;;;4231:21:0;;;;;1510:25:1;;;;-1:-1:-1;;;;;4231:4:0;:12;;;;1483:18:1;;4231:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4262:30;;-1:-1:-1;;;4262:30:0;;4276:10;4262:30;;;7261:51:1;7328:18;;;7321:34;;;4225:27:0;;-1:-1:-1;4262:4:0;-1:-1:-1;;;;;4262:13:0;;;;7234:18:1;;4262:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4307:25:0;;1510::1;;;4316:10:0;;4312:2;;4307:25;;1498:2:1;1483:18;4307:25:0;1364:177:1;4910:160:0;4994:10;4977:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;4977:32:0;;;;;;;;;;;;:37;;-1:-1:-1;;4977:37:0;;;;;;;;;;5029:34;;540:41:1;;;4977:32:0;;4994:10;5029:34;;513:18:1;5029:34:0;;;;;;;4910:160;;:::o;5627:301::-;5727:26;5740:4;5746:2;5750;5727:12;:26::i;:::-;-1:-1:-1;;;;;5767:14:0;;;:19;;;;:132;;-1:-1:-1;5790:64:0;;-1:-1:-1;;;5790:64:0;;;5858:41;-1:-1:-1;;;;;5790:36:0;;;5858:41;;5790:64;;5827:10;;5839:4;;5845:2;;5849:4;;5790:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;5790:109:0;;;5767:132;5763:158;;;5908:13;;-1:-1:-1;;;5908:13:0;;;;;;;;;;;5763:158;5627:301;;;;:::o;6045:1291::-;6098:13;6123:11;6131:2;6123:7;:11::i;:::-;;6144:9;6185:2;6174:14;;;;;;1510:25:1;;1498:2;1483:18;;1364:177;6174:14:0;;;;-1:-1:-1;;6174:14:0;;;;;;;;;6164:25;;6174:14;6164:25;;;;;-1:-1:-1;6156:34:0;6244:16;6252:7;6256:3;6164:25;6252:7;:::i;:::-;6247:12;;:2;:12;:::i;:::-;6244:2;:16::i;:::-;6267:23;6275:14;6286:3;6281:1;6276:6;;;6275:14;:::i;6267:23::-;6297:24;6305:15;6317:3;6311:2;6306:7;;;6305:15;:::i;6297:24::-;6222:105;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6200:127;;6337:17;6580:5;6357:760;;;;;;;;:::i;:::-;;;;;;;;;;;;;6337:780;;7211:6;7214:2;7211;:6::i;:::-;7318:3;7134:195;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7127:202;;;;;6045:1291;;;:::o;2938:178::-;2990:7;3009:9;3021:4;-1:-1:-1;;;;;3021:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3009:29;-1:-1:-1;3055:6:0;;:54;;3108:1;3086:4;-1:-1:-1;;;;;3086:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3068:5;:9;;;;;;;;;;:15;;;:37;;;;:::i;:::-;:41;;;;:::i;:::-;3055:54;;;3064:1;3055:54;3048:61;2938:178;-1:-1:-1;;;2938:178:0:o;2753:105::-;2803:7;2829:9;;;;;;;;;;:18;2821:34;;1271:7;;-1:-1:-1;;;2829:18:0;;-1:-1:-1;;;;;2829:18:0;2821:34;:::i;7342:312::-;7387:13;7416:1;7421;7416:6;7412:22;;-1:-1:-1;;7424:10:0;;;;;;;;;;;;-1:-1:-1;;;7424:10:0;;;;;7342:312::o;7412:22::-;7456:1;7444:9;7478:32;7485:6;;7478:32;;7495:3;;;;:::i;:::-;;-1:-1:-1;7500:7:0;;-1:-1:-1;7505:2:0;7500:7;;:::i;:::-;;;7478:32;;;7519:14;7546:1;-1:-1:-1;;;;;7536:12:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7536:12:0;;7519:29;;7558:64;7565:6;;7558:64;;7602:6;7606:2;7602:1;:6;:::i;:::-;7597:11;;:2;:11;:::i;:::-;7584:26;;7575:1;7577:3;;;:::i;:::-;;;;7575:6;;;;;;;;:::i;:::-;;;;:35;-1:-1:-1;;;;;7575:35:0;;;;;;;;-1:-1:-1;7612:7:0;7617:2;7612:7;;:::i;:::-;;;7558:64;;;7645:1;7342:312;-1:-1:-1;;;;7342:312:0:o;14:131:1:-;-1:-1:-1;;;;;;88:32:1;;78:43;;68:71;;135:1;132;125:12;68:71;14:131;:::o;150:245::-;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:300::-;645:3;683:5;677:12;710:6;705:3;698:19;766:6;759:4;752:5;748:16;741:4;736:3;732:14;726:47;818:1;811:4;802:6;797:3;793:16;789:27;782:38;881:4;874:2;870:7;865:2;857:6;853:15;849:29;844:3;840:39;836:50;829:57;;;592:300;;;;:::o;897:231::-;1046:2;1035:9;1028:21;1009:4;1066:56;1118:2;1107:9;1103:18;1095:6;1066:56;:::i;1133:226::-;1192:6;1245:2;1233:9;1224:7;1220:23;1216:32;1213:52;;;1261:1;1258;1251:12;1213:52;-1:-1:-1;1306:23:1;;1133:226;-1:-1:-1;1133:226:1:o;1754:173::-;1822:20;;-1:-1:-1;;;;;1871:31:1;;1861:42;;1851:70;;1917:1;1914;1907:12;1932:300;2000:6;2008;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;2198:2;2183:18;;;;2170:32;;-1:-1:-1;;;1932:300:1:o;2764:374::-;2841:6;2849;2857;2910:2;2898:9;2889:7;2885:23;2881:32;2878:52;;;2926:1;2923;2916:12;2878:52;2949:29;2968:9;2949:29;:::i;:::-;2939:39;;2997:38;3031:2;3020:9;3016:18;2997:38;:::i;:::-;2764:374;;2987:48;;-1:-1:-1;;;3104:2:1;3089:18;;;;3076:32;;2764:374::o;3143:186::-;3202:6;3255:2;3243:9;3234:7;3230:23;3226:32;3223:52;;;3271:1;3268;3261:12;3223:52;3294:29;3313:9;3294:29;:::i;3334:118::-;3420:5;3413:13;3406:21;3399:5;3396:32;3386:60;;3442:1;3439;3432:12;3457:315;3522:6;3530;3583:2;3571:9;3562:7;3558:23;3554:32;3551:52;;;3599:1;3596;3589:12;3551:52;3622:29;3641:9;3622:29;:::i;:::-;3612:39;;3701:2;3690:9;3686:18;3673:32;3714:28;3736:5;3714:28;:::i;:::-;3761:5;3751:15;;;3457:315;;;;;:::o;3997:127::-;4058:10;4053:3;4049:20;4046:1;4039:31;4089:4;4086:1;4079:15;4113:4;4110:1;4103:15;4129:1207;4224:6;4232;4240;4248;4301:3;4289:9;4280:7;4276:23;4272:33;4269:53;;;4318:1;4315;4308:12;4269:53;4341:29;4360:9;4341:29;:::i;:::-;4331:39;;4389:38;4423:2;4412:9;4408:18;4389:38;:::i;:::-;4379:48;-1:-1:-1;4496:2:1;4481:18;;4468:32;;-1:-1:-1;4575:2:1;4560:18;;4547:32;-1:-1:-1;;;;;4591:30:1;;4588:50;;;4634:1;4631;4624:12;4588:50;4657:22;;4710:4;4702:13;;4698:27;-1:-1:-1;4688:55:1;;4739:1;4736;4729:12;4688:55;4766:16;;-1:-1:-1;;;;;4794:30:1;;4791:56;;;4827:18;;:::i;:::-;4876:2;4870:9;4968:2;4930:17;;-1:-1:-1;;4926:31:1;;;4959:2;4922:40;4918:54;4906:67;;-1:-1:-1;;;;;4988:34:1;;5024:22;;;4985:62;4982:88;;;5050:18;;:::i;:::-;5086:2;5079:22;5110;;;5151:15;;;5168:2;5147:24;5144:37;-1:-1:-1;5141:57:1;;;5194:1;5191;5184:12;5141:57;5250:6;5245:2;5241;5237:11;5232:2;5224:6;5220:15;5207:50;5303:1;5298:2;5289:6;5281;5277:19;5273:28;5266:39;5324:6;5314:16;;;;;4129:1207;;;;;;;:::o;5341:260::-;5409:6;5417;5470:2;5458:9;5449:7;5445:23;5441:32;5438:52;;;5486:1;5483;5476:12;5438:52;5509:29;5528:9;5509:29;:::i;:::-;5499:39;;5557:38;5591:2;5580:9;5576:18;5557:38;:::i;:::-;5547:48;;5341:260;;;;;:::o;5982:245::-;6049:6;6102:2;6090:9;6081:7;6077:23;6073:32;6070:52;;;6118:1;6115;6108:12;6070:52;6150:9;6144:16;6169:28;6191:5;6169:28;:::i;6232:184::-;6302:6;6355:2;6343:9;6334:7;6330:23;6326:32;6323:52;;;6371:1;6368;6361:12;6323:52;-1:-1:-1;6394:16:1;;6232:184;-1:-1:-1;6232:184:1:o;6421:127::-;6482:10;6477:3;6473:20;6470:1;6463:31;6513:4;6510:1;6503:15;6537:4;6534:1;6527:15;6553:135;6592:3;6613:17;;;6610:43;;6633:18;;:::i;:::-;-1:-1:-1;6680:1:1;6669:13;;6553:135::o;6946:136::-;6985:3;7013:5;7003:39;;7022:18;;:::i;:::-;-1:-1:-1;;;7058:18:1;;6946:136::o;7366:496::-;-1:-1:-1;;;;;7597:32:1;;;7579:51;;7666:32;;7661:2;7646:18;;7639:60;7730:2;7715:18;;7708:34;;;7778:3;7773:2;7758:18;;7751:31;;;-1:-1:-1;;7799:57:1;;7836:19;;7828:6;7799:57;:::i;:::-;7791:65;7366:496;-1:-1:-1;;;;;;7366:496:1:o;7867:249::-;7936:6;7989:2;7977:9;7968:7;7964:23;7960:32;7957:52;;;8005:1;8002;7995:12;7957:52;8037:9;8031:16;8056:30;8080:5;8056:30;:::i;8121:127::-;8182:10;8177:3;8173:20;8170:1;8163:31;8213:4;8210:1;8203:15;8237:4;8234:1;8227:15;8253:112;8285:1;8311;8301:35;;8316:18;;:::i;:::-;-1:-1:-1;8350:9:1;;8253:112::o;8370:125::-;8435:9;;;8456:10;;;8453:36;;;8469:18;;:::i;8500:212::-;8542:3;8580:5;8574:12;8624:6;8617:4;8610:5;8606:16;8601:3;8595:36;8686:1;8650:16;;8675:13;;;-1:-1:-1;8650:16:1;;8500:212;-1:-1:-1;8500:212:1:o;8717:924::-;-1:-1:-1;;;9329:3:1;9322:19;9304:3;9363:38;9398:1;9393:3;9389:11;9381:6;9363:38;:::i;:::-;-1:-1:-1;;;9417:5:1;9410:18;9450:40;9487:1;9480:5;9476:13;9468:6;9450:40;:::i;:::-;9437:53;;-1:-1:-1;;;9506:5:1;9499:18;9539:40;9576:1;9569:5;9565:13;9557:6;9539:40;:::i;:::-;-1:-1:-1;;;9588:18:1;;9633:1;9622:13;;8717:924;-1:-1:-1;;;;;;8717:924:1:o;10441:1681::-;11197:34;11192:3;11185:47;11262:34;11257:2;11252:3;11248:12;11241:56;11327:34;11322:2;11317:3;11313:12;11306:56;-1:-1:-1;;;11387:2:1;11382:3;11378:12;11371:42;11444:34;11438:3;11433;11429:13;11422:57;11510:32;11504:3;11499;11495:13;11488:55;11167:3;11565:40;11600:3;11595;11591:13;11583:6;11565:40;:::i;:::-;-1:-1:-1;;;11614:20:1;;11665:34;11661:1;11650:13;;11643:57;11732:34;11727:2;11716:14;;11709:58;11799:34;11794:2;11783:14;;11776:58;11866:34;11861:2;11850:14;;11843:58;11934:34;11928:3;11917:15;;11910:59;-1:-1:-1;;;11996:3:1;11985:15;;11978:45;9723:34;12110:3;12099:15;;9711:47;9788:34;9774:12;;;9767:56;9853:34;9839:12;;;9832:56;-1:-1:-1;;;9904:12:1;;;9897:40;10054:34;9953:13;;;10042:47;10119:34;10105:12;;;10098:56;10184:34;10170:12;;;10163:56;10249:34;10235:12;;;10228:56;10315:34;10300:13;;;10293:57;-1:-1:-1;;;10366:13:1;;;10359:42;10417:13;;;12039:77;9977:459;12127:1087;12628:66;12616:79;;-1:-1:-1;;;12720:2:1;12711:12;;12704:81;-1:-1:-1;12804:39:1;12839:2;12830:12;;12822:6;12804:39;:::i;:::-;12863:66;12859:2;12852:78;12959:66;12954:2;12950;12946:11;12939:87;-1:-1:-1;;;13050:2:1;13046;13042:11;13035:46;13103:38;13137:2;13133;13129:11;13121:6;13103:38;:::i;:::-;-1:-1:-1;;;13150:29:1;;13206:1;13195:13;;12127:1087;-1:-1:-1;;;;;12127:1087:1:o;13219:168::-;13292:9;;;13323;;13340:15;;;13334:22;;13320:37;13310:71;;13361:18;;:::i;13392:120::-;13432:1;13458;13448:35;;13463:18;;:::i;:::-;-1:-1:-1;13497:9:1;;13392:120::o;13517:127::-;13578:10;13573:3;13569:20;13566:1;13559:31;13609:4;13606:1;13599:15;13633:4;13630:1;13623:15","linkReferences":{},"immutableReferences":{"92":[{"start":900,"length":32},{"start":1248,"length":32},{"start":1387,"length":32},{"start":2980,"length":32},{"start":3117,"length":32},{"start":3838,"length":32},{"start":3975,"length":32}]}}}}}}},"signatures":{"function":[{"signature":"approve(address,uint256)","signatureHash4":"0x095ea7b3","signatureHash32":"0x095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba"},{"signature":"balanceOf(address)","signatureHash4":"0x70a08231","signatureHash32":"0x70a08231b98ef4ca268c9cc3f6b4590e4bfec28280db06bb5d45e689f2a360be"},{"signature":"carParkedShares(uint256)","signatureHash4":"0x7c32999e","signatureHash32":"0x7c32999ebed94fbe1c4626b45ddf2d3e19d04b5c73a4350ff0c9bc71ef542c3a"},{"signature":"claimCar(uint256)","signatureHash4":"0x5f581fe6","signatureHash32":"0x5f581fe672ab585453ebc4034e52686cd7dda9dfb039ee1cb42717f0d3820eb1"},{"signature":"getApproved(uint256)","signatureHash4":"0x081812fc","signatureHash32":"0x081812fc55e34fdc7cf5d8b5cf4e3621fa6423fde952ec6ab24afdc0d85c0b2e"},{"signature":"hmtr()","signatureHash4":"0xb2424a90","signatureHash32":"0xb2424a90d6bb610efe31a93a0db4fc15e7a18db6fabf9f94e8c9d50990c5bfe8"},{"signature":"HOLD()","signatureHash4":"0xd0886f97","signatureHash32":"0xd0886f978b8a79c7e0ba1e24922ee9500913ed81abf5cdbbe713c0511afa0cd3"},{"signature":"isApprovedForAll(address,address)","signatureHash4":"0xe985e9c5","signatureHash32":"0xe985e9c5c6636c6879256001057b28ccac7718ef0ac56553ff9b926452cab8a3"},{"signature":"leave(uint256)","signatureHash4":"0x67dfd4c9","signatureHash32":"0x67dfd4c9b326eccf8c0a32a7819e5a076f1cf991965d002bcf198916aa919d5c"},{"signature":"MIN_PARK()","signatureHash4":"0xdc042089","signatureHash32":"0xdc0420891c7749db5aa03a70803f6d5d7d72f188e67f8a8ac1df3fc2260c66c6"},{"signature":"name()","signatureHash4":"0x06fdde03","signatureHash32":"0x06fdde0383f15d582d1a74511486c9ddf862a882fb7904b3d9fe9b8b8e58a796"},{"signature":"nextCar()","signatureHash4":"0x5221d2dd","signatureHash32":"0x5221d2dd701af9bc169e4402a6bb1daeb23b1f9c520ed4ad0d0bbcb18de22b2b"},{"signature":"nextSpot()","signatureHash4":"0xced17c13","signatureHash32":"0xced17c13f8b440c4fc55c3ac71e523168a8d716eff7e454bc872bbcb890c07e8"},{"signature":"ownerOf(uint256)","signatureHash4":"0x6352211e","signatureHash32":"0x6352211e6566aa027e75ac9dbf2423197fbd9b82b9d981a3ab367d355866aa1c"},{"signature":"park(uint256)","signatureHash4":"0x07afe492","signatureHash32":"0x07afe4924fda0eb694da104311d5dc88cbe3932b2c4d46111498d3e8b08c0183"},{"signature":"readyAt(uint256)","signatureHash4":"0xcd067e12","signatureHash32":"0xcd067e12c0a6e35df05e3bdb808baa27bd662e410f4408ca95fc06c757caa9fe"},{"signature":"safeTransferFrom(address,address,uint256)","signatureHash4":"0x42842e0e","signatureHash32":"0x42842e0eb38857a7775b4e7364b2775df7325074d088e7fb39590cd6281184ed"},{"signature":"safeTransferFrom(address,address,uint256,bytes)","signatureHash4":"0xb88d4fde","signatureHash32":"0xb88d4fde60196325a28bb7f99a2582e0b46de55b18761e960c14ad7a32099465"},{"signature":"setApprovalForAll(address,bool)","signatureHash4":"0xa22cb465","signatureHash32":"0xa22cb4651ab9570f89bb516380c40ce76762284fb1f21337ceaf6adab99e7d4a"},{"signature":"spots(uint256)","signatureHash4":"0x145a8bdf","signatureHash32":"0x145a8bdfcc0e9110a5cb87292a6058c2035b14156cee45aa765d6f7d5160c3ed"},{"signature":"supportsInterface(bytes4)","signatureHash4":"0x01ffc9a7","signatureHash32":"0x01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e2"},{"signature":"symbol()","signatureHash4":"0x95d89b41","signatureHash32":"0x95d89b41e2f5f391a79ec54e9d87c79d6e777c63e32c28da95b4e9e4a79250ec"},{"signature":"tokenURI(uint256)","signatureHash4":"0xc87b56dd","signatureHash32":"0xc87b56dda752230262935940d907f047a9f86bb5ee6aa33511fc86db33fea6cc"},{"signature":"transferFrom(address,address,uint256)","signatureHash4":"0x23b872dd","signatureHash32":"0x23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b"},{"signature":"valueOf(uint256)","signatureHash4":"0xcadf338f","signatureHash32":"0xcadf338f8c4ccd65a09dfa11fe3bc3a1f098aa80b0a78d93fc7a170ca05cd939"}],"event":[{"signature":"Approval(address,address,uint256)","signatureHash4":"0x8c5be1e5","signatureHash32":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"},{"signature":"ApprovalForAll(address,address,bool)","signatureHash4":"0x17307eab","signatureHash32":"0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31"},{"signature":"CarClaimed(uint256,address,uint256)","signatureHash4":"0x9dde350c","signatureHash32":"0x9dde350c6a368db7dcf03558f9064f3a911dd2a223296abb2e426bd25c844287"},{"signature":"Left(uint256,address,uint256)","signatureHash4":"0x81ad0944","signatureHash32":"0x81ad094408c3611fc82163a609ce704440a8099db6338b7e4f4eb01dbe318397"},{"signature":"Parked(uint256,address,uint256,uint256)","signatureHash4":"0x273162a3","signatureHash32":"0x273162a392a067f617f00058584ed513241844b90c4e7efb5705338e706b7fc7"},{"signature":"Transfer(address,address,uint256)","signatureHash4":"0xddf252ad","signatureHash32":"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"}],"error":[{"signature":"BadReceiver()","signatureHash4":"0xe290486f","signatureHash32":"0xe290486f17601b1ddf4c1b6ff8fc23fd73373860aff4af383c5109048a392abb"},{"signature":"Claimed()","signatureHash4":"0xbcb47298","signatureHash32":"0xbcb472984264b16baa8cde752f2af002ea8ce06f35d81caee36625234edd2a46"},{"signature":"NotApproved()","signatureHash4":"0xc19f17a9","signatureHash32":"0xc19f17a932284abad72bd6ad2ab169119ae0a7ae820cf8420c0e651825b1d2d5"},{"signature":"NotOwner()","signatureHash4":"0x30cd7471","signatureHash32":"0x30cd74712f59d478562d48e2d35de830db72c60a63dd08ae59199eec990b5bc4"},{"signature":"Small()","signatureHash4":"0x453bf233","signatureHash32":"0x453bf233e6dcb0cdb59c196ed981cc05d214750f807ed631cd059e222e1ca79b"},{"signature":"TooSoon(uint256)","signatureHash4":"0xe86f59ea","signatureHash32":"0xe86f59ea7d18f44231dbc6cf92e7f43b6975c5d6e066441cd08664227144aab3"}]},"proxyResolution":{"isProxy":false,"proxyType":null,"implementations":[]},"match":"exact_match","chainId":"11155111","address":"0xfB7cEA0F7270ef5fF6DC38Be0e09e730dE28e652"}