{"abi":[{"type":"function","name":"AMOUNT_TO_FUND","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"AMOUNT_TO_SEND","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"ERC20","inputs":[],"outputs":[{"name":"coreIndexId","type":"uint64","internalType":"uint64"},{"name":"decimalDiff","type":"int8","internalType":"int8"},{"name":"assetBridgeAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ETH_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"HLP_CORE_WRITER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HLP_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"HLP_PRECOMPILE_READ_SPOT_BALANCE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HLP_PRECOMPILE_READ_USER_EXISTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HL_LZ_ENDPOINT_V2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HL_LZ_ENDPOINT_V2_MAINNET","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HL_LZ_ENDPOINT_V2_TESTNET","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HYPE","inputs":[],"outputs":[{"name":"coreIndexId","type":"uint64","internalType":"uint64"},{"name":"decimalDiff","type":"int8","internalType":"int8"},{"name":"assetBridgeAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"coreSpotFromChainId","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"erc20","type":"uint64","internalType":"uint64"},{"name":"hype","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"eidFromChainId","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ethEid","type":"uint32","internalType":"uint32"},{"name":"hlpEid","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getComposeMessage","inputs":[{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"pure"},{"type":"function","name":"hyperLiquidComposer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract HyperLiquidComposer"}],"stateMutability":"view"},{"type":"function","name":"oft","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OFTMock"}],"stateMutability":"view"},{"type":"function","name":"recovery","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_erc20_refund_sender_malformed_receiver","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_malformed_payload","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_native_refund_receiver_not_activated","inputs":[{"name":"_dust","type":"uint64","internalType":"uint64"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_non_evm_sender_malformed_receiver","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"typeConversionTest","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract TypeConversionTest"}],"stateMutability":"view"},{"type":"function","name":"userA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"userB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601f8054909116909117905560248054600160a01b600160e01b0319166503782dace9d960b21b1790556025805466038d7ea4c680006001600160401b031990911617905560c06040526005608090815264757365724160d81b60a05262000078906200013c565b602880546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260058152643ab9b2b92160d91b6020820152620000bf906200013c565b602980546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260088152677265636f7665727960c01b602082015262000109906200013c565b602a80546001600160a01b0319166001600160a01b039290921691909117905534801562000135575f80fd5b5062000319565b5f62000148826200014f565b5092915050565b5f80826040516020016200016491906200028a565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015620001ce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f49190620002a7565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c71890620002329085908790600401620002d6565b5f604051808303815f87803b1580156200024a575f80fd5b505af11580156200025d573d5f803e3d5ffd5b50505050915091565b5f5b838110156200028257818101518382015260200162000268565b50505f910152565b5f82516200029d81846020870162000266565b9190910192915050565b5f60208284031215620002b8575f80fd5b81516001600160a01b0381168114620002cf575f80fd5b9392505050565b60018060a01b0383168152604060208201525f82518060408401526200030481606085016020870162000266565b601f01601f1916919091016060019392505050565b61eec580620003275f395ff3fe608060405234801562000010575f80fd5b5060043610620002b8575f3560e01c8063929c05791162000173578063c203ccab11620000e3578063e20c9f711162000093578063f8ba719e1162000077578063f8ba719e14620006f5578063fa7626d4146200070c578063fbe021a1146200071a575f80fd5b8063e20c9f7114620006e1578063e970bd6914620006eb575f80fd5b8063cc4aa20411620000c7578063cc4aa204146200067d578063ddceafa914620006b9578063deb22e9a14620006cd575f80fd5b8063c203ccab146200064d578063cb1a295f1462000669575f80fd5b8063b5508aa9116200013f578063ba8726791162000123578063ba87267914620005fa578063bb641b3e1462000604578063c1d1ead81462000631575f80fd5b8063b5508aa914620005d5578063ba414fa614620005df575f80fd5b8063929c057914620005765780639b5215f614620005a3578063a09e743014620005b7578063b0464fdc14620005cb575f80fd5b806347d7694f116200022b5780637773fb7311620001db57806385226c8111620001bf57806385226c8114620005155780639127ace2146200052e578063916a17c6146200055d575f80fd5b80637773fb7314620004ef5780637ecd9ac314620004f9575f80fd5b806366d9a9a0116200020f57806366d9a9a0146200045e57806376e86e72146200047757806376e9227314620004e5575f80fd5b806347d7694f14620003e65780635f60057d146200040c575f80fd5b806325996dae1162000287578063318f405a116200026b578063318f405a14620003a55780633e5e3c2314620003d25780633f7286f414620003dc575f80fd5b806325996dae146200034d5780632ade3880146200038c575f80fd5b80630a85348314620002bc5780630a9254e4146200031e57806312659341146200032a5780631ed7831c1462000334575b5f80fd5b620002f8620002cd36600462004e37565b60276020525f908152604090205467ffffffffffffffff808216916801000000000000000090041682565b6040805167ffffffffffffffff9384168152929091166020830152015b60405180910390f35b620003286200072e565b005b6200032862000769565b6200033e62000ae1565b60405162000315919062004e4f565b602a54620003769074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200162000315565b6200039662000b43565b60405162000315919062004eee565b602b54620003b9906001600160a01b031681565b6040516001600160a01b03909116815260200162000315565b6200033e62000c8b565b6200033e62000ceb565b620003fd620003f736600462004fed565b62000d4b565b6040516200031591906200505e565b620004406200041d36600462004e37565b60266020525f908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff93841681529290911660208301520162000315565b6200046862000d62565b604051620003159190620050d0565b602154620004b39067ffffffffffffffff8116906801000000000000000081045f0b90690100000000000000000090046001600160a01b031683565b6040805167ffffffffffffffff90941684525f9290920b60208401526001600160a01b03169082015260600162000315565b6200032862000ee7565b620003b961081081565b620003b973333333333333333333333333333333333333333381565b6200051f62001231565b60405162000315919062005179565b602554620005439067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200162000315565b6200056762001306565b604051620003159190620051fd565b602a5462000376907801000000000000000000000000000000000000000000000000900463ffffffff1681565b602254620003b9906001600160a01b031681565b602354620003b9906001600160a01b031681565b6200056762001400565b6200051f620014fa565b620005e9620015cf565b604051901515815260200162000315565b620003b961080181565b602454620005439074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b620003b973f9e1815f151024bde4b7c10bac10e8ba9f6b53e181565b620003b9733a73033c0b1407574c76bdbac67f126f6b4a9aa981565b602954620003b9906001600160a01b031681565b602054620004b39067ffffffffffffffff8116906801000000000000000081045f0b90690100000000000000000090046001600160a01b031683565b602a54620003b9906001600160a01b031681565b602854620003b9906001600160a01b031681565b6200033e620016a3565b6200032862001703565b62000328620007063660046200528e565b62001adf565b601f54620005e99060ff1681565b602454620003b9906001600160a01b031681565b620007386200211f565b602580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001664174876e800179055565b602254602354602454620007ad926001600160a01b0390811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002da8565b604080515f6020820181905281830192909252600560608201527f6572726f72000000000000000000000000000000000000000000000000000000608082015260a00160408051808303601f19018152919052602a546024546028549293505f9262000877928492740100000000000000000000000000000000000000009182900463ffffffff169291900467ffffffffffffffff16906001600160a01b03165b8660405160200162000862929190620052b7565b60405160208183030381529060405262002dbb565b602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620008ea575f80fd5b505af1158015620008fd573d5f803e3d5ffd5b50506023546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03928316945063d0a1026093506200095792909116905f9086903390600401620052de565b5f604051808303815f87803b1580156200096f575f80fd5b505af115801562000982573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620009d3575f80fd5b505af1158015620009e6573d5f803e3d5ffd5b50506023546040517fa4e7f8bd0000000000000000000000000000000000000000000000000000000081525f6004820181905293508392506001600160a01b039091169063a4e7f8bd906024015f60405180830381865afa15801562000a4e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000a7791908101906200543d565b602082015160285492945090925062000a99916001600160a01b031662002def565b604082015160245462000acf919074010000000000000000000000000000000000000000900467ffffffffffffffff1662002e6d565b62000adb815f62002e6d565b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000b1a575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101562000c82575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000c6a578382905f5260205f2001805462000bd89062005534565b80601f016020809104026020016040519081016040528092919081815260200182805462000c069062005534565b801562000c555780601f1062000c2b5761010080835404028352916020019162000c55565b820191905f5260205f20905b81548152906001019060200180831162000c3757829003601f168201915b50505050508152602001906001019062000bb8565b50505050815250508152602001906001019062000b66565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000b1a575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000b1a575050505050905090565b606062000d59838362002ec6565b90505b92915050565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000c82578382905f5260205f2090600202016040518060400160405290815f8201805462000db89062005534565b80601f016020809104026020016040519081016040528092919081815260200182805462000de69062005534565b801562000e355780601f1062000e0b5761010080835404028352916020019162000e35565b820191905f5260205f20905b81548152906001019060200180831162000e1757829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801562000ece57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e7a5790505b5050505050815250508152602001906001019062000d85565b60225460235460245462000f2b926001600160a01b0390811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002da8565b604080516020810182525f808252602b5483517ff4844814000000000000000000000000000000000000000000000000000000008152935192936001600160a01b039091163192737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f4844814926004808201939182900301818387803b15801562000faa575f80fd5b505af115801562000fbd573d5f803e3d5ffd5b5050602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562001031575f80fd5b505af115801562001044573d5f803e3d5ffd5b50506023546025546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063d0a10260945067ffffffffffffffff90921692620010ad929116905f9088903390600401620052de565b5f604051808303818588803b158015620010c5575f80fd5b505af1158015620010d8573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200112a575f80fd5b505af11580156200113d573d5f803e3d5ffd5b50506022546023546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620011fb9450911691506370a0823190602401602060405180830381865afa158015620011aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011d0919062005587565b60245474010000000000000000000000000000000000000000900467ffffffffffffffff1662002e6d565b60235462001214906001600160a01b0316315f62002e6d565b602b546200122d906001600160a01b0316318262002e6d565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000c82578382905f5260205f20018054620012749062005534565b80601f0160208091040260200160405190810160405280929190818152602001828054620012a29062005534565b8015620012f15780601f10620012c757610100808354040283529160200191620012f1565b820191905f5260205f20905b815481529060010190602001808311620012d357829003601f168201915b50505050508152602001906001019062001254565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000c82575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620013e757602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620013935790505b5050505050815250508152602001906001019062001329565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000c82575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014e157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200148d5790505b5050505050815250508152602001906001019062001423565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000c82578382905f5260205f200180546200153d9062005534565b80601f01602080910402602001604051908101604052809291908181526020018280546200156b9062005534565b8015620015ba5780601f106200159057610100808354040283529160200191620015ba565b820191905f5260205f20905b8154815290600101906020018083116200159c57829003601f168201915b5050505050815260200190600101906200151d565b6008545f9060ff1615620015e7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001676573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200169c919062005587565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000b1a575050505050905090565b60225460235460245462001747926001600160a01b0390811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002da8565b6025546040517f6c5d32a9000000000000000000000000000000000000000000000000000000008152602860048201525f9167ffffffffffffffff1690737109709ecfa91a80626ff3989d68f67f5b1dd12d90636c5d32a9906024015f60405180830381865afa158015620017be573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620017e791908101906200559f565b604051602001620017fa929190620055dd565b60408051808303601f19018152919052602a546024546028549293505f926200185d928492740100000000000000000000000000000000000000009182900463ffffffff169291900467ffffffffffffffff16906001600160a01b03166200084e565b602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620018d0575f80fd5b505af1158015620018e3573d5f803e3d5ffd5b50506023546025546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063d0a10260945067ffffffffffffffff909216926200194c929116905f9087903390600401620052de565b5f604051808303818588803b15801562001964575f80fd5b505af115801562001977573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620019c9575f80fd5b505af1158015620019dc573d5f803e3d5ffd5b50506023546040517fa4e7f8bd0000000000000000000000000000000000000000000000000000000081525f6004820181905293508392506001600160a01b039091169063a4e7f8bd906024015f60405180830381865afa15801562001a44573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a6d91908101906200543d565b602082015160285492945090925062001a8f916001600160a01b031662002def565b604082015160245462001ac5919074010000000000000000000000000000000000000000900467ffffffffffffffff1662002e6d565b60255462000adb90829067ffffffffffffffff1662002e6d565b62001b1d8167ffffffffffffffff165f678ac7230489e8000067ffffffffffffffff62001b0d91906200562e565b67ffffffffffffffff1662002f12565b6024549091505f9062001b5490839074010000000000000000000000000000000000000000900467ffffffffffffffff1662005652565b60225460235467ffffffffffffffff92909216925062001b82916001600160a01b0391821691168362002da8565b5f737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b031663d5bee9f56040518163ffffffff1660e01b81526004016020604051808303815f875af115801562001bd5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001bfb919062005676565b6040517f2501ecee0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201525f602482015290915061081090632501ecee906044015f604051808303815f87803b15801562001c5e575f80fd5b505af115801562001c71573d5f803e3d5ffd5b50506020545f925062001c959150680100000000000000009004820b600a620057d5565b6020546024549192506108019163312f619f91690100000000000000000081046001600160a01b03169167ffffffffffffffff9182169162001cf3918791740100000000000000000000000000000000000000009091041662005812565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b03909316600484015267ffffffffffffffff91821660248401521660448201526064015f604051808303815f87803b15801562001d61575f80fd5b505af115801562001d74573d5f803e3d5ffd5b50506025546040805167ffffffffffffffff90921660208301526001600160a01b038616908201525f9250606001905060408051808303601f19018152919052602a546028549192505f9162001df79183917401000000000000000000000000000000000000000090910463ffffffff169088906001600160a01b03166200084e565b6022546040517f86b9620d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906386b9620d906024015f604051808303815f87803b15801562001e6a575f80fd5b505af115801562001e7d573d5f803e3d5ffd5b50506023546040518881526001600160a01b03888116945090911691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001f37575f80fd5b505af115801562001f4a573d5f803e3d5ffd5b50506023546025546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063d0a10260945067ffffffffffffffff9092169262001fb3929116905f9087903390600401620052de565b5f604051808303818588803b15801562001fcb575f80fd5b505af115801562001fde573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562002030575f80fd5b505af115801562002043573d5f803e3d5ffd5b50506023546200206192506001600160a01b03163190505f62002e6d565b60255462002085906001600160a01b038616319067ffffffffffffffff1662002e6d565b6022546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152620021179216906370a0823190602401602060405180830381865afa158015620020ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002110919062005587565b8662002e6d565b505050505050565b604080518082018252619ce18152619daa60208083019182526103e65f818152602680845294517f113a6407f23900cfa1ecac751a02199ded2b9291b7b61d7b3fc27cad18581d048054955163ffffffff9283167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000978816176401000000009184168202179091558751808901895261765d815261769f8187019081526103e780865298875290517f354415ee754a59ff734517214ff8c4e3c5311a1050a5d2254382ba8bdca2307680549251918516929098169190911792160217909355845180860186526104da8152610451818401908152828552602780855291517f81f48bd84279ade89ca0299913d9e40d06f4ae51ee08f3cd6f968120d220e10d8054925167ffffffffffffffff9283167fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851617680100000000000000009184168202179091558851808a0190995260eb89526096898701908152979096529190935294517fcb63f41d83a6606379654c30ef8a1498bf816351aa303c37a41e329cc6e7a103805495519187169590931694909417939094169091029190911790554614801590620022f35750466103e714155b156200254b576040517ff877cb1900000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5250435f55524c5f48595045524c49515549440000000000000000000000000060448201525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f877cb19906064015f60405180830381865afa1580156200238f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620023b8919081019062005828565b6040517f98680034000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906398680034906200240d9084906004016200505e565b6020604051808303815f875af19250505080156200244a575060408051601f3d908101601f19168201909252620024479181019062005587565b60015b6200254757620024c66040518060400160405280601081526020017f466f726b696e67206d61696e6e65742000000000000000000000000000000000815250826040518060400160405280600781526020017f206661696c65640000000000000000000000000000000000000000000000000081525062002f6a565b6040517fdd82d13e00000000000000000000000000000000000000000000000000000000815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd82d13e906024015f604051808303815f87803b1580156200252a575f80fd5b505af11580156200253d573d5f803e3d5ffd5b5050505062002549565b505b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b031663b4d6c7826108016040516200257f9062004d83565b604051809103905ff08015801562002599573d5f803e3d5ffd5b506001600160a01b0316803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b8152600401620025dd92919062005872565b5f604051808303815f87803b158015620025f5575f80fd5b505af115801562002608573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b031663b4d6c782610810604051620026409062004d91565b604051809103905ff0801580156200265a573d5f803e3d5ffd5b506001600160a01b0316803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b81526004016200269e92919062005872565b5f604051808303815f87803b158015620026b6575f80fd5b505af1158015620026c9573d5f803e3d5ffd5b50505050466103e614620026f257733a73033c0b1407574c76bdbac67f126f6b4a9aa962002708565b73f9e1815f151024bde4b7c10bac10e8ba9f6b53e15b602b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055465f8181526026602090815260408083208054602a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff811663ffffffff9384167401000000000000000000000000000000000000000002908117835593547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9091167fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9094169390931764010000000090930490911678010000000000000000000000000000000000000000000000000291909117905560278252918290205482516060810190935267ffffffffffffffff80821680855294680100000000000000009092041692918201906103e6146200285f57600a62002862565b60095b5f0b8152602001620028748462002fe3565b6001600160a01b039081169091528151602080548482015160409586015185166901000000000000000000027fffffff0000000000000000000000000000000000000000ffffffffffffffffff60ff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000093841667ffffffffffffffff968716171782161783558551606081018752938716808552600a9385019390935273222222222222222222222222222222222222222293860193909352602180547c2222222222222222222222222222222222222222000000000000000000680a00000000000000009190931690931792909217909216919091179055602b5491519116903390620029909062004d9f565b6200299d92919062005895565b604051809103905ff080158015620029b7573d5f803e3d5ffd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216918217905560205460405167ffffffffffffffff8216916801000000000000000090045f0b9062002a1b9062004dad565b6001600160a01b03909316835267ffffffffffffffff90911660208301525f0b6040820152606001604051809103905ff08015801562002a5d573d5f803e3d5ffd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405162002aa49062004dbb565b604051809103905ff08015801562002abe573d5f803e3d5ffd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161781556020546040517f312f619f00000000000000000000000000000000000000000000000000000000815269010000000000000000008204909316600484015267ffffffffffffffff9081169183019190915260448201526108019063312f619f906064015f604051808303815f87803b15801562002b6e575f80fd5b505af115801562002b81573d5f803e3d5ffd5b50506021546040517f312f619f0000000000000000000000000000000000000000000000000000000081526001600160a01b036901000000000000000000830416600482015267ffffffffffffffff91821660248201526044810191909152610801925063312f619f91506064015f604051808303815f87803b15801562002c07575f80fd5b505af115801562002c1a573d5f803e3d5ffd5b50506028546040517f2501ecee0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152600160248201526108109250632501ecee91506044015f604051808303815f87803b15801562002c83575f80fd5b505af115801562002c96573d5f803e3d5ffd5b50506029546040517f2501ecee0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152600160248201526108109250632501ecee91506044015f604051808303815f87803b15801562002cff575f80fd5b505af115801562002d12573d5f803e3d5ffd5b5050602b546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015268056bc75e2d631000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d91506044015f604051808303815f87803b15801562002d95575f80fd5b505af115801562002117573d5f803e3d5ffd5b62002db68383835f6200300e565b505050565b60608484848460405160200162002dd6949392919062005932565b6040516020818303038152906040529050949350505050565b6040517f7c84c69b0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d90637c84c69b906044015b5f6040518083038186803b15801562002e5a575f80fd5b505afa15801562002117573d5f803e3d5ffd5b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440162002e43565b606062002ed782604c8186620059b1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b5f62002f2084848462003297565b905062002f636040518060400160405280600c81526020017f426f756e6420726573756c74000000000000000000000000000000000000000081525082620034fa565b9392505050565b62002db683838360405160240162002f8593929190620059da565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2ced7cef0000000000000000000000000000000000000000000000000000000017905262003571565b5f62000d5c67ffffffffffffffff831673200000000000000000000000000000000000000062005a22565b604080516001600160a01b0385811660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a082310000000000000000000000000000000000000000000000000000000017905291515f92871691620030919162005a38565b5f60405180830381855afa9150503d805f8114620030cb576040519150601f19603f3d011682016040523d82523d5f602084013e620030d0565b606091505b509150505f81806020019051810190620030eb919062005587565b90506200313e846200313787620031307f70a082310000000000000000000000000000000000000000000000000000000062003129600d8d62003586565b90620035c3565b90620035fb565b9062003626565b8215620021175760408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f18160ddd0000000000000000000000000000000000000000000000000000000017905290515f916001600160a01b03891691620031b6919062005a38565b5f60405180830381855afa9150503d805f8114620031f0576040519150601f19603f3d011682016040523d82523d5f602084013e620031f5565b606091505b509150505f8180602001905181019062003210919062005587565b9050828610156200323b5762003227868462005a55565b62003233908262005a55565b905062003256565b62003247838762005a55565b62003253908262005a22565b90505b6200328d81620031377f18160ddd0000000000000000000000000000000000000000000000000000000062003129600d8d62003586565b5050505050505050565b5f818311156200332e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084015b60405180910390fd5b8284101580156200333f5750818411155b156200334d57508262002f63565b5f6200335a848462005a55565b6200336790600162005a22565b9050600385111580156200337a57508481115b1562003395576200338c858562005a22565b91505062002f63565b620033c260037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62005a55565b8510158015620033fc5750620033f9857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62005a55565b81115b156200343a576200342e857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62005a55565b6200338c908462005a55565b8285111562003499575f62003450848762005a55565b90505f6200345f838362005a6b565b9050805f03620034755784935050505062002f63565b600162003483828862005a22565b6200348f919062005a55565b93505050620034f2565b83851015620034f2575f620034af868662005a55565b90505f620034be838362005a6b565b9050805f03620034d45785935050505062002f63565b620034e0818662005a55565b620034ed90600162005a22565b935050505b509392505050565b6200122d82826040516024016200351392919062005a81565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb60e72cc0000000000000000000000000000000000000000000000000000000017905262003632565b6200358381620036415b63ffffffff16565b50565b6004820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555f8262000d59565b6002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660e083901c1790555f8262000d59565b6001808301805491820181555f908152602081206001600160a01b0384169201919091558262000d59565b6200122d828262003660565b620035838162003bc36200357b565b5f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b6004820154600283015460038401546001600160a01b039092169160e09190911b905f6200368e8662003be3565b6001600160a01b0385165f908152602088815260408083207fffffffff00000000000000000000000000000000000000000000000000000000881684528252808320905193945092620036e691859187910162005aa4565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff16620037245762003722865f62003cfb565b505b6001600160a01b0384165f908152602087815260408083207fffffffff000000000000000000000000000000000000000000000000000000008716845282528083209051909183916200377c91869188910162005aa4565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f81600201548260010154620037b8919062005a22565b1115620038e7575f81600201548260010154620037d6919062005a22565b620037e49061010062005a55565b620037f190600262005ac7565b6040517f6900a3ae0000000000000000000000000000000000000000000000000000000081526004810182905290915081881090737109709ecfa91a80626ff3989d68f67f5b1dd12d90636900a3ae906024015f60405180830381865afa1580156200385f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262003888919081019062005828565b6040516020016200389a919062005ad4565b60405160208183030381529060405290620038e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200332591906200505e565b50505b80546040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b038716600482015260248101919091525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562003963573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003989919062005587565b60018381015460028501549293505f92908101610100039190911b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811b1983169089901b1783546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b038a166004820152602481019190915260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562003a50575f80fd5b505af115801562003a63573d5f803e3d5ffd5b505050505f8062003a748b62003d10565b9150915081158062003a865750898114155b1562003bab5784546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b038b166004820152602481019190915260448101859052737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562003b09575f80fd5b505af115801562003b1c573d5f803e3d5ffd5b50506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a2046616960448201527f6c656420746f2077726974652076616c75652e0000000000000000000000000060648201526084019150620033259050565b62003bb68b62003de1565b5050505050505050505050565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b606081600701805462003bf69062005534565b90505f0362003c5c5762000d5c8260010180548060200260200160405190810160405280929190818152602001828054801562003c5157602002820191905f5260205f20905b81548152602001906001019080831162003c3c575b505050505062003dec565b81600701805462003c6d9062005534565b80601f016020809104026020016040519081016040528092919081815260200182805462003c9b9062005534565b801562003cea5780601f1062003cc05761010080835404028352916020019162003cea565b820191905f5260205f20905b81548152906001019060200180831162003ccc57829003601f168201915b50505050509050919050565b919050565b5f62003d08838362003e90565b549392505050565b60028101545f908190819060e01b62003d298562003be3565b60405160200162003d3c92919062005b66565b60408051601f198184030181529082905260048601549092505f9182916001600160a01b03169062003d7090859062005a38565b5f60405180830381855afa9150503d805f811462003daa576040519150601f19603f3d011682016040523d82523d5f602084013e62003daf565b606091505b50915091505f62003dd3828860030154602062003dcd919062005baf565b6200474e565b929792965091945050505050565b6200358381620047e1565b60605f8251602062003dff919062005baf565b67ffffffffffffffff81111562003e1a5762003e1a62005326565b6040519080825280601f01601f19166020018201604052801562003e45576020820181803683370190505b5090505f5b835181101562003e89575f84828151811062003e6a5762003e6a62005bc9565b6020908102919091018101518382028501909101525060010162003e4a565b5092915050565b6004820154600283015460038401545f926001600160a01b03169160e01b908362003ebb8762003be3565b6001600160a01b0385165f908152602089815260408083207fffffffff0000000000000000000000000000000000000000000000000000000088168452825280832090519394509262003f1391859187910162005aa4565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff161562003fdc57851562003f565762003f5687620047e1565b6001600160a01b0384165f908152602088815260408083207fffffffff00000000000000000000000000000000000000000000000000000000871684528252808320905190929162003fad91859187910162005aa4565b6040516020818303038152906040528051906020012081526020019081526020015f2094505050505062000d5c565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562004037575f80fd5b505af11580156200404a573d5f803e3d5ffd5b505050505f6200405a8862003d10565b6040517f65bc94810000000000000000000000000000000000000000000000000000000081526001600160a01b03881660048201529092505f9150737109709ecfa91a80626ff3989d68f67f5b1dd12d906365bc9481906024015f604051808303815f875af1158015620040d0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620040f9919081019062005c7c565b50905080515f036200419057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e606482015260840162003325565b80515b5f6200419f8262005ce3565b91508110620045a3575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663667f9d7089858581518110620041f057620041f062005bc9565b60200260200101516040518363ffffffff1660e01b81526004016200422a9291906001600160a01b03929092168252602082015260400190565b602060405180830381865afa15801562004246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200426c919062005587565b905080620042d6577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a588848481518110620042ab57620042ab62005bc9565b602090810291909101810151604080516001600160a01b039094168452918301520160405180910390a15b620042fe8b848481518110620042f057620042f062005bc9565b602002602001015162004886565b6200430a575062004193565b60068b01545f90819060ff16156200435e575f620043458e87878151811062004337576200433762005bc9565b602002602001015162004ad6565b90945092509050806200435c575050505062004193565b505b6001828201610100031b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811b8316811c868114620043a2575050505062004193565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c604051602001620043da92919062005aa4565b6040516020818303038152906040528051906020012089898151811062004405576200440562005bc9565b602090810291909101810151604080516001600160a01b0390961686527fffffffff000000000000000000000000000000000000000000000000000000009094169185019190915291830152606082015260800160405180910390a1604051806080016040528087878151811062004481576200448162005bc9565b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d6001600160a01b03166001600160a01b031681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c6040516020016200452a92919062005aa4565b60408051808303601f1901815291815281516020928301208352828201939093529082015f2083518155908301516001820155908201516002820155606090910151600390910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055505050505b506001600160a01b0386165f90815260208a815260408083207fffffffff000000000000000000000000000000000000000000000000000000008916845282528083209051909291620045fb91879189910162005aa4565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff16620046b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000606482015260840162003325565b8715620046c657620046c689620047e1565b6001600160a01b0386165f90815260208a815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168452825280832090519092916200471d91879189910162005aa4565b6040516020818303038152906040528051906020012081526020019081526020015f20965050505050505092915050565b5f805f60208551116200476357845162004766565b60205b90505f5b81811015620047d7576200478081600862005baf565b866200478d838862005a22565b81518110620047a057620047a062005bc9565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c92909217916001016200476a565b5090949350505050565b6004810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016905562004844600182015f62004dc9565b5f600382018190556006820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556200358390600783019062004de6565b6004828101546040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018290525f908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa1580156200490a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062004930919062005587565b90505f806200493f8662003d10565b90925090505f811562004953575f62004975565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b6004888101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116918101919091526024810188905260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b158015620049fb575f80fd5b505af115801562004a0e573d5f803e3d5ffd5b505050505f62004a1e8862003d10565b60048a8101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018a905260448101889052909250737109709ecfa91a80626ff3989d68f67f5b1dd12d91506370ca10bb906064015f604051808303815f87803b15801562004aa5575f80fd5b505af115801562004ab8573d5f803e3d5ffd5b5050505083801562004aca5750808314155b98975050505050505050565b6004828101546040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018290525f90819081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562004b5e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062004b84919062005587565b90505f8062004b968888600162004c63565b915091505f8062004ba98a8a5f62004c63565b60048c8101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018c9052604481018890529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562004c31575f80fd5b505af115801562004c44573d5f803e3d5ffd5b5050505083801562004c535750815b9a92995097509095505050505050565b5f805f5b61010081101562004d73575f8462004c83576001821b62004c95565b62004c908260ff62005a55565b6001901b5b6004888101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116918101919091526024810188905260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562004d1b575f80fd5b505af115801562004d2e573d5f803e3d5ffd5b505050505f8062004d3f8962003d10565b9150915081801562004d5057508015155b1562004d6757600184955095505050505062004d7b565b50505060010162004c67565b505f80915091505b935093915050565b6102bb8062005d1b83390190565b6101be8062005fd683390190565b613f13806200619483390190565b612c41806200a0a783390190565b6121a8806200cce883390190565b5080545f8255905f5260205f209081019062003583919062004e1d565b50805462004df49062005534565b5f825580601f1062004e04575050565b601f0160209004905f5260205f20908101906200358391905b5b8082111562004e33575f815560010162004e1e565b5090565b5f6020828403121562004e48575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b8181101562004e915783516001600160a01b03168352928401929184019160010162004e6a565b50909695505050505050565b5f5b8381101562004eb957818101518382015260200162004e9f565b50505f910152565b5f815180845262004eda81602086016020860162004e9d565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562004fde577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562004fc7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088850301835262004fb484865162004ec1565b948d01949350918c019160010162004f77565b505050968901969350509087019060010162004f13565b50909998505050505050505050565b5f806020838503121562004fff575f80fd5b823567ffffffffffffffff8082111562005017575f80fd5b818501915085601f8301126200502b575f80fd5b8135818111156200503a575f80fd5b8660208285010111156200504c575f80fd5b60209290920196919550909350505050565b602081525f62000d59602083018462004ec1565b5f815180845260208085019450602084015f5b83811015620050c55781517fffffffff00000000000000000000000000000000000000000000000000000000168752958201959082019060010162005085565b509495945050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200516b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815180518785526200513c8886018262004ec1565b91890151858303868b015291905062005156818362005072565b968901969450505090860190600101620050f7565b509098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015620051f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452620051dd85835162004ec1565b94509285019290850190600101620051a0565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200516b578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b031684528701518784018790526200527a8785018262005072565b958801959350509086019060010162005224565b5f602082840312156200529f575f80fd5b813567ffffffffffffffff8116811462002f63575f80fd5b8281525f8251620052d081602085016020870162004e9d565b919091016020019392505050565b5f6001600160a01b03808716835285602084015260a060408401526200530860a084018662004ec1565b93166060830152508082036080909101525f81526020019392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff8111828210171562005379576200537962005326565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620053ab57620053ab62005326565b604052919050565b805163ffffffff8116811462003cf6575f80fd5b5f67ffffffffffffffff831115620053e357620053e362005326565b620053f86020601f19601f860116016200537f565b90508281528383830111156200540c575f80fd5b62002f6383602083018462004e9d565b5f82601f8301126200542c575f80fd5b62000d5983835160208501620053c7565b5f80604083850312156200544f575f80fd5b825167ffffffffffffffff8082111562005467575f80fd5b9084019060e082870312156200547b575f80fd5b6200548562005353565b6200549083620053b3565b8152602083015160208201526040830151604082015260608301516060820152608083015182811115620054c2575f80fd5b620054d0888286016200541c565b60808301525060a083015182811115620054e8575f80fd5b620054f6888286016200541c565b60a08301525060c0830151828111156200550e575f80fd5b6200551c888286016200541c565b60c08301525060209590950151949694955050505050565b600181811c908216806200554957607f821691505b60208210810362005581577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f6020828403121562005598575f80fd5b5051919050565b5f60208284031215620055b0575f80fd5b815167ffffffffffffffff811115620055c7575f80fd5b620055d5848285016200541c565b949350505050565b67ffffffffffffffff83168152604060208201525f620055d5604083018462004ec1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b67ffffffffffffffff82811682821603908082111562003e895762003e8962005601565b67ffffffffffffffff81811683821601908082111562003e895762003e8962005601565b5f6020828403121562005687575f80fd5b81516001600160a01b038116811462002f63575f80fd5b600181815b80851115620056fd57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115620056e157620056e162005601565b80851615620056ef57918102915b93841c9390800290620056a3565b509250929050565b5f82620057155750600162000d5c565b816200572357505f62000d5c565b81600181146200573c5760028114620057475762005767565b600191505062000d5c565b60ff8411156200575b576200575b62005601565b50506001821b62000d5c565b5060208310610133831016604e8410600b84101617156200578c575081810a62000d5c565b6200579883836200569e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115620057cd57620057cd62005601565b029392505050565b5f62000d5960ff84168362005705565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82620058235762005823620057e5565b500490565b5f6020828403121562005839575f80fd5b815167ffffffffffffffff81111562005850575f80fd5b8201601f8101841362005861575f80fd5b620055d584825160208401620053c7565b6001600160a01b0383168152604060208201525f620055d5604083018462004ec1565b608081525f620058d260808301600481527f7465737400000000000000000000000000000000000000000000000000000000602082015260400190565b82810360208401526200590f81600481527f7465737400000000000000000000000000000000000000000000000000000000602082015260400190565b9150506001600160a01b0380851660408401528084166060840152509392505050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f8251620059a181602c85016020870162004e9d565b91909101602c0195945050505050565b5f8085851115620059c0575f80fd5b83861115620059cd575f80fd5b5050820193919092039150565b606081525f620059ee606083018662004ec1565b828103602084015262005a02818662004ec1565b9050828103604084015262005a18818562004ec1565b9695505050505050565b8082018082111562000d5c5762000d5c62005601565b5f825162005a4b81846020870162004e9d565b9190910192915050565b8181038181111562000d5c5762000d5c62005601565b5f8262005a7c5762005a7c620057e5565b500690565b604081525f62005a95604083018562004ec1565b90508260208301529392505050565b5f835162005ab781846020880162004e9d565b9190910191825250602001919050565b5f62000d59838362005705565b7f73746453746f726167652066696e642853746453746f72616765293a2050616381527f6b656420736c6f742e2057652063616e2774206669742076616c75652067726560208201527f61746572207468616e200000000000000000000000000000000000000000000060408201525f825162005b5981604a85016020870162004e9d565b91909101604a0192915050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825162005ba181600485016020870162004e9d565b919091016004019392505050565b808202811582820484141762000d5c5762000d5c62005601565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82601f83011262005c06575f80fd5b8151602067ffffffffffffffff82111562005c255762005c2562005326565b8160051b62005c368282016200537f565b928352848101820192828101908785111562005c50575f80fd5b83870192505b8483101562005c715782518252918301919083019062005c56565b979650505050505050565b5f806040838503121562005c8e575f80fd5b825167ffffffffffffffff8082111562005ca6575f80fd5b62005cb48683870162005bf6565b9350602085015191508082111562005cca575f80fd5b5062005cd98582860162005bf6565b9150509250929050565b5f8162005cf45762005cf462005601565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fe608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063312f619f146100cb575b5f366060828061003984826101f3565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020818152604080832067ffffffffffffffff8516845282529182902091519395509193506100ad92909101905467ffffffffffffffff8082168352604082811c8216602085015260809290921c169082015260600190565b60405160208183030381529060405292505050915050805190602001f35b6101b16100d9366004610226565b6040805160608101825267ffffffffffffffff92831681525f602080830182815283850183815273ffffffffffffffffffffffffffffffffffffffff909816835282825284832096861683529590529190912090518154935194518316700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff95841668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000000000000000000090951691909316179290921792909216919091179055565b005b73ffffffffffffffffffffffffffffffffffffffff811681146101d4575f80fd5b50565b803567ffffffffffffffff811681146101ee575f80fd5b919050565b5f8060408385031215610204575f80fd5b823561020f816101b3565b915061021d602084016101d7565b90509250929050565b5f805f60608486031215610238575f80fd5b8335610243816101b3565b9250610251602085016101d7565b915061025f604085016101d7565b9050925092509256fea2646970667358221220d5b9ba32438724b70d20ac7197875ff3889106c2524e595f86d6e6608fa1001664736f6c63430008160033608060405234801561000f575f80fd5b506101a18061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80632501ecee14610085575b5f36606082610038838261010e565b73ffffffffffffffffffffffffffffffffffffffff165f908152602081815260409182902054825160ff909116151581830152825180820383018152908301909252815195500192505050f35b6100e8610093366004610130565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b73ffffffffffffffffffffffffffffffffffffffff8116811461010b575f80fd5b50565b5f6020828403121561011e575f80fd5b8135610129816100ea565b9392505050565b5f8060408385031215610141575f80fd5b823561014c816100ea565b915060208301358015158114610160575f80fd5b80915050925092905056fea264697066735822122035c0fff1825d88eb4bde8570970797b145c9dca642f89b4781127cecbb5d309764736f6c6343000816003360c060405234801562000010575f80fd5b5060405162003f1338038062003f138339810160408190526200003391620002c2565b83838383838360128484818181818d6001600160a01b0381166200007057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007b8162000191565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b158015620000ef575f80fd5b505af115801562000102573d5f803e3d5ffd5b50505050505050506200011a620001e060201b60201c565b60ff168360ff16101562000141576040516301e9714b60e41b815260040160405180910390fd5b6200014e60068462000360565b6200015b90600a6200047b565b60a052506008915062000171905083826200051c565b5060096200018082826200051c565b5050505050505050505050620005e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000209575f80fd5b81516001600160401b0380821115620002265762000226620001e5565b604051601f8301601f19908116603f01168101908282118183101715620002515762000251620001e5565b81604052838152602092508660208588010111156200026e575f80fd5b5f91505b8382101562000291578582018301518183018401529082019062000272565b5f602085830101528094505050505092915050565b80516001600160a01b0381168114620002bd575f80fd5b919050565b5f805f8060808587031215620002d6575f80fd5b84516001600160401b0380821115620002ed575f80fd5b620002fb88838901620001f9565b9550602087015191508082111562000311575f80fd5b506200032087828801620001f9565b9350506200033160408601620002a6565b91506200034160608601620002a6565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156200037c576200037c6200034c565b92915050565b600181815b80851115620003c257815f1904821115620003a657620003a66200034c565b80851615620003b457918102915b93841c939080029062000387565b509250929050565b5f82620003da575060016200037c565b81620003e857505f6200037c565b81600181146200040157600281146200040c576200042c565b60019150506200037c565b60ff8411156200042057620004206200034c565b50506001821b6200037c565b5060208310610133831016604e8410600b841016171562000451575081810a6200037c565b6200045d838362000382565b805f19048211156200047357620004736200034c565b029392505050565b5f6200048b60ff841683620003ca565b9392505050565b600181811c90821680620004a757607f821691505b602082108103620004c657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200051757805f5260205f20601f840160051c81016020851015620004f35750805b601f840160051c820191505b8181101562000514575f8155600101620004ff565b50505b505050565b81516001600160401b03811115620005385762000538620001e5565b620005508162000549845462000492565b84620004cc565b602080601f83116001811462000586575f84156200056e5750858301515b5f19600386901b1c1916600185901b178555620005e0565b5f85815260208120601f198616915b82811015620005b65788860151825594840194600190910190840162000595565b5085821015620005d457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a0516138c3620006505f395f81816106be01528181611e7f01528181611ef1015261217e01525f818161056e01528181610b050152818161122e01528181611554015281816119af015281816122d2015281816124ab015261259301526138c35ff3fe6080604052600436106102c1575f3560e01c80637d25a05e11610170578063bb0b6a53116100d1578063d045a0dc11610087578063f2fde38b11610062578063f2fde38b1461087c578063fc0c546a146104f7578063ff7bd03d1461089b575f80fd5b8063d045a0dc146107f9578063d42438851461080c578063dd62ed3e1461082b575f80fd5b8063bd815db0116100b7578063bd815db0146107a6578063c7c7f5b3146107b9578063ca5eb5e1146107da575f80fd5b8063bb0b6a531461075c578063bc70b35414610787575f80fd5b8063963efcaa11610126578063a9059cbb1161010c578063a9059cbb146106f2578063b731ea0a14610711578063b98bd0701461073d575f80fd5b8063963efcaa146106ad5780639f68b964146106e0575f80fd5b8063857749b011610156578063857749b01461065d5780638da5cb5b1461067057806395d89b4114610699575f80fd5b80637d25a05e1461060457806382413eac1461063e575f80fd5b806323b872dd116102255780635535d461116101db5780636fc1b31e116101b65780636fc1b31e1461059057806370a08231146105af578063715018a6146105f0575f80fd5b80635535d461146105095780635a0dfe4d146105285780635e280f111461055d575f80fd5b80633400288b1161020b5780633400288b146104ac5780633b6f743b146104cb57806352ae2879146104f7575f80fd5b806323b872dd1461046c578063313ce5671461048b575f80fd5b8063134d4f251161027a57806317442b701161026057806317442b701461041957806318160ddd1461043a5780631f5e133414610458575f80fd5b8063134d4f25146103b2578063156a0d0f146103d9575f80fd5b80630d35b415116102aa5780630d35b4151461031e578063111ecdad1461034c57806313137d651461039d575f80fd5b806306fdde03146102c5578063095ea7b3146102ef575b5f80fd5b3480156102d0575f80fd5b506102d96108ba565b6040516102e6919061278e565b60405180910390f35b3480156102fa575f80fd5b5061030e6103093660046127c1565b61094a565b60405190151581526020016102e6565b348015610329575f80fd5b5061033d610338366004612801565b610963565b6040516102e693929190612833565b348015610357575f80fd5b506004546103789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102e6565b6103b06103ab36600461293d565b610b03565b005b3480156103bd575f80fd5b506103c6600281565b60405161ffff90911681526020016102e6565b3480156103e4575f80fd5b50604080517f02e49c2c00000000000000000000000000000000000000000000000000000000815260016020820152016102e6565b348015610424575f80fd5b50604080516001815260026020820152016102e6565b348015610445575f80fd5b506007545b6040519081526020016102e6565b348015610463575f80fd5b506103c6600181565b348015610477575f80fd5b5061030e6104863660046129d6565b610c02565b348015610496575f80fd5b5060125b60405160ff90911681526020016102e6565b3480156104b7575f80fd5b506103b06104c6366004612a2c565b610c27565b3480156104d6575f80fd5b506104ea6104e5366004612a53565b610c3d565b6040516102e69190612aa2565b348015610502575f80fd5b5030610378565b348015610514575f80fd5b506102d9610523366004612aca565b610ca1565b348015610533575f80fd5b5061030e610542366004612a2c565b63ffffffff919091165f908152600160205260409020541490565b348015610568575f80fd5b506103787f000000000000000000000000000000000000000000000000000000000000000081565b34801561059b575f80fd5b506103b06105aa366004612afb565b610d43565b3480156105ba575f80fd5b5061044a6105c9366004612afb565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b3480156105fb575f80fd5b506103b0610dc5565b34801561060f575f80fd5b5061062561061e366004612a2c565b5f92915050565b60405167ffffffffffffffff90911681526020016102e6565b348015610649575f80fd5b5061030e610658366004612b16565b610dd8565b348015610668575f80fd5b50600661049a565b34801561067b575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610378565b3480156106a4575f80fd5b506102d9610dfa565b3480156106b8575f80fd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb575f80fd5b505f61030e565b3480156106fd575f80fd5b5061030e61070c3660046127c1565b610e09565b34801561071c575f80fd5b506002546103789073ffffffffffffffffffffffffffffffffffffffff1681565b348015610748575f80fd5b506103b0610757366004612bba565b610e16565b348015610767575f80fd5b5061044a610776366004612bf9565b60016020525f908152604090205481565b348015610792575f80fd5b506102d96107a1366004612c12565b610e30565b6103b06107b4366004612bba565b610fea565b6107cc6107c7366004612c6f565b6111ae565b6040516102e6929190612cf6565b3480156107e5575f80fd5b506103b06107f4366004612afb565b6111e1565b6103b061080736600461293d565b611288565b348015610817575f80fd5b506103b0610826366004612afb565b6112d0565b348015610836575f80fd5b5061044a610845366004612d48565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610887575f80fd5b506103b0610896366004612afb565b61134b565b3480156108a6575f80fd5b5061030e6108b5366004612d74565b6113ae565b6060600880546108c990612d8e565b80601f01602080910402602001604051908101604052809291908181526020018280546108f590612d8e565b80156109405780601f1061091757610100808354040283529160200191610940565b820191905f5260205f20905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b5f336109578185856113e2565b60019150505b92915050565b604080518082019091525f8082526020820152606061099360405180604001604052805f81526020015f81525090565b5f803073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109de573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a029190612dd9565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6e9190612df4565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610ac1565b604080518082019091525f815260606020820152815260200190600190039081610a9a5790505b5093505f80610ae5604089013560608a0135610ae060208c018c612bf9565b6113f4565b60408051808201909152918252602082015296989597505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610b79576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610b9390610b8e908a612bf9565b611448565b14610bea57610ba56020880188612bf9565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b70565b610bf98787878787878761149c565b50505050505050565b5f33610c0f85828561162d565b610c1a8585856116fa565b60019150505b9392505050565b610c2f6117a3565b610c3982826117f5565b5050565b604080518082019091525f80825260208201525f610c6b60408501356060860135610ae06020880188612bf9565b9150505f80610c7a8684611849565b9092509050610c97610c8f6020880188612bf9565b83838861199a565b9695505050505050565b600360209081525f928352604080842090915290825290208054610cc490612d8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf090612d8e565b8015610d3b5780601f10610d1257610100808354040283529160200191610d3b565b820191905f5260205f20905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b610d4b6117a3565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610dcd6117a3565b610dd65f611a85565b565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b6060600980546108c990612d8e565b5f336109578185856116fa565b610e1e6117a3565b610c39610e2b8284612f18565b611af9565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610e6390612d8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f90612d8e565b8015610eda5780601f10610eb157610100808354040283529160200191610eda565b820191905f5260205f20905b815481529060010190602001808311610ebd57829003601f168201915b5050505050905080515f03610f285783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610df29350505050565b5f839003610f37579050610df2565b60028310610fb457610f7d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bfa92505050565b80610f8b8460028188613021565b604051602001610f9d93929190613048565b604051602081830303815290604052915050610df2565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b709291906130b5565b5f5b818110156110ed5736838383818110611007576110076130c8565b905060200281019061101991906130f5565b905061104b61102b6020830183612bf9565b602083013563ffffffff919091165f908152600160205260409020541490565b61105557506110e5565b3063d045a0dc60c08301358360a0810135611074610100830183613131565b611085610100890160e08a01612afb565b6110936101208a018a613131565b6040518963ffffffff1660e01b81526004016110b597969594939291906131a7565b5f604051808303818588803b1580156110cc575f80fd5b505af11580156110de573d5f803e3d5ffd5b5050505050505b600101610fec565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611136573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261117b919081019061323a565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b70919061278e565b6111b66126df565b604080518082019091525f80825260208201526111d4858585611c3f565b915091505b935093915050565b6111e96117a3565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561126f575f80fd5b505af1158015611281573d5f803e3d5ffd5b5050505050565b3330146112c1576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf987878787878787610bea565b6112d86117a3565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610dba565b6113536117a3565b73ffffffffffffffffffffffffffffffffffffffff81166113a2576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b6113ab81611a85565b50565b5f6020820180359060019083906113c59086612bf9565b63ffffffff16815260208101919091526040015f20541492915050565b6113ef8383836001611d37565b505050565b5f806113ff85611e7c565b9150819050838110156111d9576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610b70565b63ffffffff81165f908152600160205260408120548061095d576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b70565b5f6114ad6114aa8787611eb2565b90565b90505f6114d8826114c66114c18a8a611ec9565b611eeb565b6114d360208d018d612bf9565b611f20565b905060288611156115be575f6115146114f760608c0160408d016132a3565b61150460208d018d612bf9565b8461150f8c8c611f54565b611f9e565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061158f9086908d905f9087906004016132be565b5f604051808303815f87803b1580156115a6575f80fd5b505af11580156115b8573d5f803e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61160460208d018d612bf9565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116f457818110156116e6576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610b70565b6116f484848484035f611d37565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611749576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b73ffffffffffffffffffffffffffffffffffffffff8216611798576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b6113ef838383611fd0565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd6576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610b70565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6060805f6118a4856020013561185e86612177565b61186b60a0890189613131565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121ea92505050565b90935090505f816118b65760016118b9565b60025b90506118d96118cb6020880188612bf9565b826107a160808a018a613131565b60045490935073ffffffffffffffffffffffffffffffffffffffff168015611990576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb9061194f90889088906004016132fc565b602060405180830381865afa15801561196a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061198e9190613320565b505b5050509250929050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611a0989611448565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a3e92919061333b565b6040805180830381865afa158015611a58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7c919061340c565b95945050505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611bca57611b2a828281518110611b1957611b196130c8565b602002602001015160400151611bfa565b818181518110611b3c57611b3c6130c8565b60200260200101516040015160035f848481518110611b5d57611b5d6130c8565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611b9457611b946130c8565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611bc1919061346a565b50600101611afb565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610dba9190613586565b600281015161ffff8116600314610c3957816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b70919061278e565b611c476126df565b604080518082019091525f80825260208201525f80611c7c33604089013560608a0135611c7760208c018c612bf9565b61227c565b915091505f80611c8c8984611849565b9092509050611cb8611ca160208b018b612bf9565b8383611cb2368d90038d018d61362d565b8b6122a1565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611d06908d018d612bf9565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b73ffffffffffffffffffffffffffffffffffffffff8416611d86576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b73ffffffffffffffffffffffffffffffffffffffff8316611dd5576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156116f4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e6e91815260200190565b60405180910390a350505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611ea8818461368a565b61095d91906136c2565b5f611ec06020828486613021565b610c20916136d9565b5f611ed8602860208486613021565b611ee191613715565b60c01c9392505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84166136c2565b5f73ffffffffffffffffffffffffffffffffffffffff8416611f425761dead93505b611f4c84846123b4565b509092915050565b6060611f638260288186613021565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611fb7949392919061375d565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff8316612007578060075f828254611ffc91906137da565b909155506120b79050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600560205260409020548181101561208c576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610b70565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166120e05760078054829003905561210b565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216a91815260200190565b60405180910390a3505050565b5f806121a37f00000000000000000000000000000000000000000000000000000000000000008461368a565b905067ffffffffffffffff81111561095d576040517fe2ce941300000000000000000000000000000000000000000000000000000000815260048101829052602401610b70565b805160609015158061224b57848460405160200161223792919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b604051602081830303815290604052612272565b8484338560405160200161226294939291906137ed565b6040516020818303038152906040525b9150935093915050565b5f806122898585856113f4565b9092509050612298868361240e565b94509492505050565b6122a96126df565b5f6122b6845f0151612468565b6020850151909150156122d0576122d084602001516124a8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161232d8c611448565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161236892919061333b565b60806040518083038185885af1158015612384573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123a99190613845565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216612403576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b610c395f8383611fd0565b73ffffffffffffffffffffffffffffffffffffffff821661245d576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b610c39825f83611fd0565b5f8134146124a4576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610b70565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612512573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125369190612dd9565b905073ffffffffffffffffffffffffffffffffffffffff8116612585576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133602482018190527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81811660448501526064808501889052855180860390910181526084909401909452602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001781528451610c399688169589936116f49388935f9283929091839182885af18061265f576040513d5f823e3d81fd5b50505f513d91508115612676578060011415612690565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156116f4576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610b70565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161271e60405180604001604052805f81526020015f81525090565b905290565b5f5b8381101561273d578181015183820152602001612725565b50505f910152565b5f815180845261275c816020860160208601612723565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610c206020830184612745565b73ffffffffffffffffffffffffffffffffffffffff811681146113ab575f80fd5b5f80604083850312156127d2575f80fd5b82356127dd816127a0565b946020939093013593505050565b5f60e082840312156127fb575f80fd5b50919050565b5f60208284031215612811575f80fd5b813567ffffffffffffffff811115612827575f80fd5b610df2848285016127eb565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156128ca578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff400185528151805188528301518388018790526128b787890182612745565b975050938201939082019060010161286d565b50508751606088015250505060208501516080850152509050610df2565b5f606082840312156127fb575f80fd5b5f8083601f840112612908575f80fd5b50813567ffffffffffffffff81111561291f575f80fd5b602083019150836020828501011115612936575f80fd5b9250929050565b5f805f805f805f60e0888a031215612953575f80fd5b61295d89896128e8565b965060608801359550608088013567ffffffffffffffff80821115612980575f80fd5b61298c8b838c016128f8565b909750955060a08a013591506129a1826127a0565b90935060c089013590808211156129b6575f80fd5b506129c38a828b016128f8565b989b979a50959850939692959293505050565b5f805f606084860312156129e8575f80fd5b83356129f3816127a0565b92506020840135612a03816127a0565b929592945050506040919091013590565b803563ffffffff81168114612a27575f80fd5b919050565b5f8060408385031215612a3d575f80fd5b6127dd83612a14565b80151581146113ab575f80fd5b5f8060408385031215612a64575f80fd5b823567ffffffffffffffff811115612a7a575f80fd5b612a86858286016127eb565b9250506020830135612a9781612a46565b809150509250929050565b81518152602080830151908201526040810161095d565b803561ffff81168114612a27575f80fd5b5f8060408385031215612adb575f80fd5b612ae483612a14565b9150612af260208401612ab9565b90509250929050565b5f60208284031215612b0b575f80fd5b8135610c20816127a0565b5f805f8060a08587031215612b29575f80fd5b612b3386866128e8565b9350606085013567ffffffffffffffff811115612b4e575f80fd5b612b5a878288016128f8565b9094509250506080850135612b6e816127a0565b939692955090935050565b5f8083601f840112612b89575f80fd5b50813567ffffffffffffffff811115612ba0575f80fd5b6020830191508360208260051b8501011115612936575f80fd5b5f8060208385031215612bcb575f80fd5b823567ffffffffffffffff811115612be1575f80fd5b612bed85828601612b79565b90969095509350505050565b5f60208284031215612c09575f80fd5b610c2082612a14565b5f805f8060608587031215612c25575f80fd5b612c2e85612a14565b9350612c3c60208601612ab9565b9250604085013567ffffffffffffffff811115612c57575f80fd5b612c63878288016128f8565b95989497509550505050565b5f805f8385036080811215612c82575f80fd5b843567ffffffffffffffff811115612c98575f80fd5b612ca4878288016127eb565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612cd6575f80fd5b506020840191506060840135612ceb816127a0565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151612d31604084018280518252602090810151910152565b5082516080830152602083015160a0830152610c20565b5f8060408385031215612d59575f80fd5b8235612d64816127a0565b91506020830135612a97816127a0565b5f60608284031215612d84575f80fd5b610c2083836128e8565b600181811c90821680612da257607f821691505b6020821081036127fb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215612de9575f80fd5b8151610c20816127a0565b5f60208284031215612e04575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715612e5b57612e5b612e0b565b60405290565b6040805190810167ffffffffffffffff81118282101715612e5b57612e5b612e0b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612ecb57612ecb612e0b565b604052919050565b5f67ffffffffffffffff821115612eec57612eec612e0b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff80841115612f3257612f32612e0b565b8360051b6020612f43818301612e84565b868152918501918181019036841115612f5a575f80fd5b865b8481101561301557803586811115612f72575f80fd5b88016060368290031215612f84575f80fd5b612f8c612e38565b612f9582612a14565b8152612fa2868301612ab9565b8682015260408083013589811115612fb8575f80fd5b929092019136601f840112612fcb575f80fd5b8235612fde612fd982612ed3565b612e84565b8181523689838701011115612ff1575f80fd5b818986018a8301375f91810189019190915290820152845250918301918301612f5c565b50979650505050505050565b5f808585111561302f575f80fd5b8386111561303b575f80fd5b5050820193919092039150565b5f8451613059818460208901612723565b8201838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610df260208301848661306e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112613127575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613164575f80fd5b83018035915067ffffffffffffffff82111561317e575f80fd5b602001915036819003821315612936575f80fd5b67ffffffffffffffff811681146113ab575f80fd5b63ffffffff6131b589612a14565b168152602088013560208201525f60408901356131d181613192565b67ffffffffffffffff811660408401525087606083015260e060808301526131fd60e08301878961306e565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c084015261322c81858761306e565b9a9950505050505050505050565b5f6020828403121561324a575f80fd5b815167ffffffffffffffff811115613260575f80fd5b8201601f81018413613270575f80fd5b805161327e612fd982612ed3565b818152856020838501011115613292575f80fd5b611a7c826020830160208601612723565b5f602082840312156132b3575f80fd5b8135610c2081613192565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610c976080830184612745565b604081525f61330e6040830185612745565b8281036020840152611a7c8185612745565b5f60208284031215613330575f80fd5b8151610c2081612a46565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261337060e0840182612745565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526133ab8282612745565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156133ee575f80fd5b6133f6612e61565b9050815181526020820151602082015292915050565b5f6040828403121561341c575f80fd5b610c2083836133de565b601f8211156113ef57805f5260205f20601f840160051c8101602085101561344b5750805b601f840160051c820191505b81811015611281575f8155600101613457565b815167ffffffffffffffff81111561348457613484612e0b565b613498816134928454612d8e565b84613426565b602080601f8311600181146134ea575f84156134b45750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561357e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561353657888601518255948401946001909101908401613517565b508582101561357257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101561361f578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261360b81860183612745565b9689019694505050908601906001016135ad565b509098975050505050505050565b5f6040828403121561363d575f80fd5b613645612e61565b82358152602083013560208201528091505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f826136bd577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761095d5761095d61365d565b8035602083101561095d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156137555780818660080360031b1b83161692505b505092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f82516137ca81602c850160208701612723565b91909101602c0195945050505050565b8082018082111561095d5761095d61365d565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f8251613835816048850160208701612723565b9190910160480195945050505050565b5f60808284031215613855575f80fd5b61385d612e38565b82518152602083015161386f81613192565b602082015261388184604085016133de565b6040820152939250505056fea26469706673582212203a62d5bac7756b003faa33a3654be29951d22eee7db71dfadf507916bc0d6c5964736f6c634300081600336101a060405234801562000011575f80fd5b5060405162002c4138038062002c41833981016040819052620000349162000259565b60015f556001600160a01b038316620000605760405163c23419a560e01b815260040160405180910390fd5b6001195f82900b128062000077575060125f82900b135b15620000ae5760405163470eb46160e01b81525f82900b600482015260011960248201526012604482015260640160405180910390fd5b826001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001119190620002b8565b6001600160a01b03908116608052831660a0525f466103e71462000138576104516200013b565b60965b73222222222222222222222222222222222222222260c052600a60e0526001600160401b0381166101005260a05160408051637e062a3560e11b815290519293506001600160a01b039091169163fc0c546a916004808201926020929091908290030181865afa158015620001b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d89190620002b8565b6001600160a01b031661012052620001f96001600160401b03841662000221565b6001600160a01b031661014052505f0b610160526001600160401b03166101805250620002fd565b5f6200023b6001600160401b0383166001609d1b620002dd565b92915050565b6001600160a01b038116811462000256575f80fd5b50565b5f805f606084860312156200026c575f80fd5b8351620002798162000241565b60208501519093506001600160401b038116811462000296575f80fd5b809250506040840151805f0b8114620002ad575f80fd5b809150509250925092565b5f60208284031215620002c9575f80fd5b8151620002d68162000241565b9392505050565b808201808211156200023b57634e487b7160e01b5f52601160045260245ffd5b60805160a05160c05160e051610100516101205161014051610160516101805161286e620003d35f395f81816105fd01528181611737015261182501525f8181610496015261175801525f81816105ca0152818161177901526117fa01525f818161052a0152818161170a01526117d701525f81816104c901528181611857015261198901525f81816103b4015261187801525f81816103050152818161189901526118e601525f818161022a0152818161095e01528181611008015261107f01525f81816103810152610f98015261286e5ff3fe60806040526004361061017b575f3560e01c8063a4e7f8bd116100d1578063cebb51201161007c578063f2f7141f11610057578063f2f7141f146105a6578063f34ec5e0146105b9578063fa69dc7b146105ec575f80fd5b8063cebb51201461054c578063d0a1026014610560578063d3af0cc114610573575f80fd5b8063b20bffdc116100ac578063b20bffdc146104b8578063c37bcb4c14610504578063cc4aa20414610519575f80fd5b8063a4e7f8bd14610406578063a69610d114610433578063a754403e14610485575f80fd5b806320d2c951116101315780636fad06f51161010c5780636fad06f51461037057806371139d6c146103a35780639dbfb13f146103d6575f80fd5b806320d2c951146102d5578063574ad4a8146102f4578063634d45b214610327575f80fd5b80631cd66690116101615780631cd66690146101c65780631ed0993d146102195780631f8164d914610271575f80fd5b806303a9437e1461018657806319180904146101b1575f80fd5b3661018257005b5f80fd5b348015610191575f80fd5b5061019a601281565b6040515f9190910b81526020015b60405180910390f35b6101c46101bf366004611dbf565b61061f565b005b3480156101d1575f80fd5b506101e56101e0366004611e0c565b610a07565b604080518251815260208084015167ffffffffffffffff9081169183019190915292820151909216908201526060016101a8565b348015610224575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a8565b34801561027c575f80fd5b506102a47f010000060000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101a8565b3480156102e0575f80fd5b50620249f05b6040519081526020016101a8565b3480156102ff575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610332575f80fd5b50610346610341366004611ea4565b610a45565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101a8565b34801561037b575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ae575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e1575f80fd5b506103f56103f0366004611ee3565b610a9b565b6040519051151581526020016101a8565b348015610411575f80fd5b50610425610420366004611dbf565b610bf5565b6040516101a8929190611fde565b34801561043e575f80fd5b5061045261044d366004611fff565b610df9565b60408051825167ffffffffffffffff908116825260208085015182169083015292820151909216908201526060016101a8565b348015610490575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c3575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff90911681526020016101a8565b34801561050f575f80fd5b5062030d406102e6565b348015610524575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610557575f80fd5b506102e6604081565b6101c461056e366004612036565b610f78565b34801561057e575f80fd5b5061019a7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81565b6101c46105b43660046120d0565b611423565b3480156105c4575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f7575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b5f818152600160208190526040808320815161012081018352815463ffffffff1692810192835292810154606084015260028101546080840152600381015460a0840152600481018054919284929091849160c085019190610680906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906120fa565b80156106f75780601f106106ce576101008083540402835291602001916106f7565b820191905f5260205f20905b8154815290600101906020018083116106da57829003601f168201915b50505050508152602001600582018054610710906120fa565b80601f016020809104026020016040519081016040528092919081815260200182805461073c906120fa565b80156107875780601f1061075e57610100808354040283529160200191610787565b820191905f5260205f20905b81548152906001019060200180831161076a57829003601f168201915b505050505081526020016006820180546107a0906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546107cc906120fa565b80156108175780601f106107ee57610100808354040283529160200191610817565b820191905f5260205f20905b8154815290600101906020018083116107fa57829003601f168201915b5050509190925250505081526007919091015460209091015280515190915063ffffffff165f0361087c576040517f0b948634000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b5f828152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016815590810182905560028101829055600381018290559081816108d56004830182611d6d565b6108e2600583015f611d6d565b6108ef600683015f611d6d565b5050600782015f905550505f34826020015161090b9190612172565b82516040805180820182528381525f602082015290517fc7c7f5b300000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263c7c7f5b3928592610995923290600401612185565b60c06040518083038185885af11580156109b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d69190612271565b505060405183907fd41d02272333251e6367f747c63d5cc227dcac6b0c799067569e80a30f9da369905f90a2505050565b604080516060810182525f8082526020820181905291810182905290610a2d8487610df9565b519050610a3b83828761147b565b9695505050505050565b5f8060408314610a84576040517f2b701db100000000000000000000000000000000000000000000000000000000815260048101849052602401610873565b610a90838501856122da565b909590945092505050565b60408051602081019091525f81526040805173ffffffffffffffffffffffffffffffffffffffff841660208201525f9182916108109101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610b0a916122fd565b5f60405180830381855afa9150503d805f8114610b42576040519150601f19603f3d011682016040523d82523d5f602084013e610b47565b606091505b509150915081610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f436f726520757365722065786973747320707265636f6d70696c652063616c6c60448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610bed9190612318565b949350505050565b600160208181525f928352604092839020835160e081018552815463ffffffff16815292810154918301919091526002810154928201929092526003820154606082015260048201805483916080840191610c4f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7b906120fa565b8015610cc65780601f10610c9d57610100808354040283529160200191610cc6565b820191905f5260205f20905b815481529060010190602001808311610ca957829003601f168201915b50505050508152602001600582018054610cdf906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0b906120fa565b8015610d565780601f10610d2d57610100808354040283529160200191610d56565b820191905f5260205f20905b815481529060010190602001808311610d3957829003601f168201915b50505050508152602001600682018054610d6f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9b906120fa565b8015610de65780601f10610dbd57610100808354040283529160200191610de6565b820191905f5260205f20905b815481529060010190602001808311610dc957829003601f168201915b5050509190925250505060079091015482565b604080516060810182525f80825260208201819052918101919091526040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff8416918101919091525f90819061080190606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610e8a916122fd565b5f60405180830381855afa9150503d805f8114610ec2576040519150601f19603f3d011682016040523d82523d5f602084013e610ec7565b606091505b509150915081610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f53706f7442616c616e636520707265636f6d70696c652063616c6c206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610f6d9190612366565b925050505b92915050565b610f80611520565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fef576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146110b4576040517fc8b356c600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015288166024820152604401610873565b5f6110bf8686611561565b90505f6110cc8787611580565b6040517f634d45b2000000000000000000000000000000000000000000000000000000008152909150309063634d45b29061110b9084906004016123b8565b6040805180830381865afa925050508015611161575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261115e918101906123ca565b60015b6112dd576111aa6040518060e001604052805f63ffffffff1681526020015f80191681526020015f81526020015f81526020016060815260200160608152602001606081525090565b6111b488886115ca565b63ffffffff1681526111c688886115ec565b60208281019190915260408083018590528051808201825283815234818401525f8c81526001808552908390208251805182547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff90911617825594850151918101919091559183015160028301556060830151600383015560808301519092908290600482019061125d9082612438565b5060a082015160058201906112729082612438565b5060c082015160068201906112879082612438565b50505060208201518160070155905050887f387fc8f821460fa8221428c9f4dc1f6d5db4f6a0a01f33dbeaa8cebd95e5d144826020015134856040516112cf93929190612554565b60405180910390a25061140f565b81341015611320576040517f7cb769dc00000000000000000000000000000000000000000000000000000000815234600482015260248101839052604401610873565b5f80341161133157620249f0611336565b62030d405b9050805a101561137e575a6040517f23e228cb000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610873565b6040517ff2f7141f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101869052309063f2f7141f9034906044015f604051808303818588803b1580156113eb575f80fd5b505af1935050505080156113fd575060015b61140b5761140b82866115fb565b5050505b505061141a60015f55565b50505050505050565b33301461145e576040517fa19dbf00000000000000000000000000000000000000000000000000000000008152336004820152602401610873565b6114688282611731565b34156114775761147782611851565b5050565b604080516060810182525f80825260208201819052918101919091525f805f845f0b13156114b8576114ae8686866119b2565b90925090506114f2565b6114ec86866114e7877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61257b565b611a4d565b90925090505b6040805160608101825292835267ffffffffffffffff91821660208401529085169082015290509392505050565b60025f540361155b576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f55565b5f611570602c600c848661259e565b611579916125c5565b9392505050565b606061158f82604c818661259e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b5f6115d9600c6008848661259e565b6115e291612601565b60e01c9392505050565b5f611570604c602c848661259e565b34156116ea575f8273ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f8114611657576040519150601f19603f3d011682016040523d82523d5f602084013e61165c565b606091505b50509050806116e8576040515f90329034908381818185875af1925050503d805f81146116a4576040519150601f19603f3d011682016040523d82523d5f602084013e6116a9565b606091505b50509050806116e6576040517f77479d32000000000000000000000000000000000000000000000000000000008152346004820152602401610873565b505b505b80156114775761147773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383611aca565b5f61179e7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085610a07565b80519091501561184c575f6117b7848360200151611b57565b825190915061181f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016907f000000000000000000000000000000000000000000000000000000000000000090611aca565b61184a847f000000000000000000000000000000000000000000000000000000000000000083611b9e565b505b505050565b5f6118be7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034610a07565b8051909150156114775780516040515f9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016918381818185875af1925050503d805f811461193d576040519150601f19603f3d011682016040523d82523d5f602084013e611942565b606091505b50509050806119835781516040517f77479d320000000000000000000000000000000000000000000000000000000081526004810191909152602401610873565b61184c837f00000000000000000000000000000000000000000000000000000000000000008460200151611b9e565b5f80806119c084600a612767565b90505f6119d78267ffffffffffffffff8816612775565b90508187816119e8576119e861278c565b068703935080841115611a31576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b818481611a4057611a4061278c565b0492505050935093915050565b5f8080611a5b84600a612767565b90505f611a728267ffffffffffffffff88166127b9565b905086935080871115611abb576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b81840292505050935093915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261184c908490611cce565b5f611b6183610a9b565b51611b98576040517fbdcf14ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff84811682840152831660608083019190915282518083039091018152608082019092525f90611c1c907f010000060000000000000000000000000000000000000000000000000000000090849060a0016127f1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f17938e130000000000000000000000000000000000000000000000000000000082529150733333333333333333333333333333333333333333906317938e1390611c9a9084906004016123b8565b5f604051808303815f87803b158015611cb1575f80fd5b505af1158015611cc3573d5f803e3d5ffd5b505050505050505050565b5f8060205f8451602086015f885af180611ced576040513d5f823e3d81fd5b50505f513d91508115611d04578060011415611d1e565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561184a576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610873565b508054611d79906120fa565b5f825580601f10611d88575050565b601f0160209004905f5260205f2090810190611da49190611da7565b50565b5b80821115611dbb575f8155600101611da8565b5090565b5f60208284031215611dcf575f80fd5b5035919050565b67ffffffffffffffff81168114611da4575f80fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611da4575f80fd5b5f805f8060808587031215611e1f575f80fd5b8435611e2a81611dd6565b935060208501355f81900b8114611e3f575f80fd5b92506040850135611e4f81611deb565b9396929550929360600135925050565b5f8083601f840112611e6f575f80fd5b50813567ffffffffffffffff811115611e86575f80fd5b602083019150836020828501011115611e9d575f80fd5b9250929050565b5f8060208385031215611eb5575f80fd5b823567ffffffffffffffff811115611ecb575f80fd5b611ed785828601611e5f565b90969095509350505050565b5f60208284031215611ef3575f80fd5b813561157981611deb565b5f5b83811015611f18578181015183820152602001611f00565b50505f910152565b5f8151808452611f37816020860160208601611efe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301525f608082015160e06080850152611fab60e0850182611f20565b905060a083015184820360a0860152611fc48282611f20565b91505060c083015184820360c0860152610f6d8282611f20565b604081525f611ff06040830185611f69565b90508260208301529392505050565b5f8060408385031215612010575f80fd5b823561201b81611deb565b9150602083013561202b81611dd6565b809150509250929050565b5f805f805f805f60a0888a03121561204c575f80fd5b873561205781611deb565b965060208801359550604088013567ffffffffffffffff8082111561207a575f80fd5b6120868b838c01611e5f565b909750955060608a0135915061209b82611deb565b909350608089013590808211156120b0575f80fd5b506120bd8a828b01611e5f565b989b979a50959850939692959293505050565b5f80604083850312156120e1575f80fd5b82356120ec81611deb565b946020939093013593505050565b600181811c9082168061210e57607f821691505b602082108103611b98577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f7257610f72612145565b608081525f6121976080830186611f69565b9050835160208301526020840151604083015273ffffffffffffffffffffffffffffffffffffffff83166060830152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561221e5761221e6121ce565b60405290565b5f60408284031215612234575f80fd5b6040516040810181811067ffffffffffffffff82111715612257576122576121ce565b604052825181526020928301519281019290925250919050565b5f8082840360c0811215612283575f80fd5b6080811215612290575f80fd5b506122996121fb565b8351815260208401516122ab81611dd6565b60208201526122bd8560408601612224565b604082015291506122d18460808501612224565b90509250929050565b5f80604083850312156122eb575f80fd5b82359150602083013561202b81611deb565b5f825161230e818460208701611efe565b9190910192915050565b5f60208284031215612328575f80fd5b6040516020810181811067ffffffffffffffff8211171561234b5761234b6121ce565b6040528251801515811461235d575f80fd5b81529392505050565b5f60608284031215612376575f80fd5b61237e6121fb565b825161238981611dd6565b8152602083015161239981611dd6565b602082015260408301516123ac81611dd6565b60408201529392505050565b602081525f6115796020830184611f20565b5f80604083850312156123db575f80fd5b82519150602083015161202b81611deb565b601f82111561184c57805f5260205f20601f840160051c810160208510156124125750805b601f840160051c820191505b81811015612431575f815560010161241e565b5050505050565b815167ffffffffffffffff811115612452576124526121ce565b6124668161246084546120fa565b846123ed565b602080601f8311600181146124b8575f84156124825750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561254c565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612504578886015182559484019460019091019084016124e5565b508582101561254057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b838152826020820152606060408201525f6125726060830184611f20565b95945050505050565b5f825f0b825f0b02805f0b915080821461259757612597612145565b5092915050565b5f80858511156125ac575f80fd5b838611156125b8575f80fd5b5050820193919092039150565b80356020831015610f72577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156126415780818660040360031b1b83161692505b505092915050565b600181815b808511156126a257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561268857612688612145565b8085161561269557918102915b93841c939080029061264e565b509250929050565b5f826126b857506001610f72565b816126c457505f610f72565b81600181146126da57600281146126e457612700565b6001915050610f72565b60ff8411156126f5576126f5612145565b50506001821b610f72565b5060208310610133831016604e8410600b8410161715612723575081810a610f72565b61272d8383612649565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561275f5761275f612145565b029392505050565b5f61157960ff8416836126aa565b8082028115828204841417610f7257610f72612145565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826127ec577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825161282a816004850160208701611efe565b91909101600401939250505056fea26469706673582212209aa6ef159b4233fc36e84c55a9bd5b1a107e3dd2503bc35f1bbf969465998faa64736f6c634300081600336080604052600c805460ff19166001179055601f805462f701ff600160581b036001600160581b0319909116179055348015610039575f80fd5b50612161806100475f395ff3fe608060405234801561000f575f80fd5b506004361061012f575f3560e01c806385226c81116100ad578063b0464fdc1161007d578063ba414fa611610063578063ba414fa614610210578063e20c9f7114610228578063fa7626d414610230575f80fd5b8063b0464fdc14610200578063b5508aa914610208575f80fd5b806385226c81146101c6578063867309a0146101db578063916a17c6146101e3578063a95fc549146101f8575f80fd5b80633f7286f41161010257806366d9a9a0116100e857806366d9a9a01461018b5780636f3b738f146101a05780637da665b2146101b3575f80fd5b80633f7286f41461017057806358d2244d14610178575f80fd5b80630a9254e4146101335780631ed7831c146101355780632ade3880146101535780633e5e3c2314610168575b5f80fd5b005b61013d61023d565b60405161014a91906118e9565b60405180910390f35b61015b6102aa565b60405161014a91906119ad565b61013d6103f3565b61013d61045e565b610133610186366004611acf565b6104c9565b610193610682565b60405161014a9190611b6c565b6101336101ae366004611c0f565b6107fb565b6101336101c1366004611acf565b610836565b6101ce61099f565b60405161014a9190611c28565b610133610a6a565b6101eb610aa4565b60405161014a9190611ca8565b610133610ba7565b6101eb610bd3565b6101ce610cd6565b610218610da1565b604051901515815260200161014a565b61013d610e71565b601f546102189060ff1681565b606060168054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156103ea575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b828210156103d3578382905f5260205f2001805461034890611d42565b80601f016020809104026020016040519081016040528092919081815260200182805461037490611d42565b80156103bf5780601f10610396576101008083540402835291602001916103bf565b820191905f5260205f20905b8154815290600101906020018083116103a257829003601f168201915b50505050508152602001906001019061032b565b5050505081525050815260200190600101906102cd565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575050505050905090565b601f546104e2905f83810b916101009004810b90610edc565b6040517f4c63e56200000000000000000000000000000000000000000000000000000000815264e8d4a5100085116004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e562906024015f6040518083038186803b15801561054d575f80fd5b505afa15801561055f573d5f803e3d5ffd5b505050505f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105909190611dc0565b61059b90600a611f01565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d634c63e5626105cb8367ffffffffffffffff8716611f3c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815290871060048201526024015f6040518083038186803b158015610618575f80fd5b505afa15801561062a573d5f803e3d5ffd5b505050505f61063a858585610fd8565b905061067b815f015183836020015167ffffffffffffffff1661065d9190611f3c565b6040518060600160405280603781526020016120f56037913961107d565b5050505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156103ea578382905f5260205f2090600202016040518060400160405290815f820180546106d590611d42565b80601f016020809104026020016040519081016040528092919081815260200182805461070190611d42565b801561074c5780601f106107235761010080835404028352916020019161074c565b820191905f5260205f20905b81548152906001019060200180831161072f57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156107e357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107905790505b505050505081525050815260200190600101906106a5565b5f61080582611102565b90505f61081182611131565b67ffffffffffffffff169050610831818467ffffffffffffffff16611166565b505050565b601f5461084f905f83810b91620100009004810b610edc565b6040517f4c63e56200000000000000000000000000000000000000000000000000000000815264e8d4a5100085116004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e562906024015f6040518083038186803b1580156108ba575f80fd5b505afa1580156108cc573d5f803e3d5ffd5b505050505f81600a6108de9190611f01565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d634c63e56261090e8367ffffffffffffffff8716611f4f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815290871060048201526024015f6040518083038186803b15801561095b575f80fd5b505afa15801561096d573d5f803e3d5ffd5b505050505f61097d858585610fd8565b8051602082015191925061067b9161065d9067ffffffffffffffff1685611f4f565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156103ea578382905f5260205f200180546109df90611d42565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0b90611d42565b8015610a565780601f10610a2d57610100808354040283529160200191610a56565b820191905f5260205f20905b815481529060010190602001808311610a3957829003601f168201915b5050505050815260200190600101906109c2565b7320000000000000000000000000000000000000015f610a8982611131565b67ffffffffffffffff169050610aa0816001611166565b5050565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156103ea575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610b8f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b3c5790505b50505050508152505081526020019060010190610ac7565b60015f610bb382611102565b9050610aa0817320000000000000000000000000000000000000016111ea565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156103ea575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610cbe57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610c6b5790505b50505050508152505081526020019060010190610bf6565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156103ea578382905f5260205f20018054610d1690611d42565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4290611d42565b8015610d8d5780601f10610d6457610100808354040283529160200191610d8d565b820191905f5260205f20905b815481529060010190602001808311610d7057829003601f168201915b505050505081526020019060010190610cf9565b6008545f9060ff1615610db8575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015610e46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a9190611f66565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575050505050905090565b5f610ee8848484611258565b604080518082018252600c81527f426f756e6420726573756c740000000000000000000000000000000000000000602082015290517fa322c40e00000000000000000000000000000000000000000000000000000000815260048101839052919250610fd191737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a322c40e906024015f60405180830381865afa158015610f87573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610fcc9190810190611faa565b6114e4565b9392505050565b604080516060810182525f80825260208201819052918101919091525f805f845f0b13156110155761100b868686611575565b909250905061104f565b6110498686611044877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611dc0565b611610565b90925090505b6040805160608101825292835267ffffffffffffffff91821660208401529085169082015290509392505050565b6040517f88b44c85000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d906388b44c85906110d190869086908690600401612070565b5f6040518083038186803b1580156110e7575f80fd5b505afa1580156110f9573d5f803e3d5ffd5b50505050505050565b5f61112b67ffffffffffffffff8316732000000000000000000000000000000000000000612097565b92915050565b5f61112b73200000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff84166120aa565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015b5f6040518083038186803b1580156111d0575f80fd5b505afa1580156111e2573d5f803e3d5ffd5b505050505050565b6040517f515361f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f6906044016111ba565b5f818313156112ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f5374645574696c7320626f756e6428696e743235362c696e743235362c696e7460448201527f323536293a204d6178206973206c657373207468616e206d696e2e000000000060648201526084015b60405180910390fd5b5f808512611325576113207f800000000000000000000000000000000000000000000000000000000000000086612097565b61135c565b600161135286197f80000000000000000000000000000000000000000000000000000000000000006120aa565b61135c91906120aa565b90505f808512611395576113907f800000000000000000000000000000000000000000000000000000000000000086612097565b6113cc565b60016113c286197f80000000000000000000000000000000000000000000000000000000000000006120aa565b6113cc91906120aa565b90505f808512611405576114007f800000000000000000000000000000000000000000000000000000000000000086612097565b61143c565b600161143286197f80000000000000000000000000000000000000000000000000000000000000006120aa565b61143c91906120aa565b90505f61144a84848461168d565b90507f800000000000000000000000000000000000000000000000000000000000000081106114a25761149d7f8000000000000000000000000000000000000000000000000000000000000000826120aa565b6114d8565b6114cc817f80000000000000000000000000000000000000000000000000000000000000006120aa565b6114d890196001612097565b98975050505050505050565b610aa082826040516024016114fa9291906120bd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4b5c4277000000000000000000000000000000000000000000000000000000001790526118bd565b5f808061158384600a611f01565b90505f61159a8267ffffffffffffffff8816611f4f565b90508187816115ab576115ab611f0f565b0687039350808411156115f4576040517f9a0c830f00000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016112e5565b81848161160357611603611f0f565b0492505050935093915050565b5f808061161e84600a611f01565b90505f6116358267ffffffffffffffff8816611f3c565b90508693508087111561167e576040517f9a0c830f00000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016112e5565b81840292505050935093915050565b5f8183111561171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084016112e5565b82841015801561172e5750818411155b1561173a575082610fd1565b5f61174584846120aa565b611750906001612097565b90506003851115801561176257508481115b15611779576117718585612097565b915050610fd1565b6117a460037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120aa565b85101580156117db57506117d8857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120aa565b81115b156118145761180a857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120aa565b61177190846120aa565b82851115611867575f61182784876120aa565b90505f61183483836120e1565b9050805f0361184857849350505050610fd1565b60016118548288612097565b61185e91906120aa565b935050506118b5565b838510156118b5575f61187a86866120aa565b90505f61188783836120e1565b9050805f0361189b57859350505050610fd1565b6118a581866120aa565b6118b0906001612097565b935050505b509392505050565b6118c6816118c9565b50565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b602080825282518282018190525f9190848201906040850190845b8181101561193657835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611904565b50909695505050505050565b5f5b8381101561195c578181015183820152602001611944565b50505f910152565b5f815180845261197b816020860160208601611942565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b84811015611aa4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a84030186528151805173ffffffffffffffffffffffffffffffffffffffff168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b81811015611a8e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888503018352611a7c848651611964565b948d01949350918c0191600101611a42565b50505096890196935050908701906001016119d2565b50909998505050505050505050565b803567ffffffffffffffff81168114611aca575f80fd5b919050565b5f805f60608486031215611ae1575f80fd5b83359250611af160208501611ab3565b91506040840135805f0b8114611b05575f80fd5b809150509250925092565b5f815180845260208085019450602084015f5b83811015611b615781517fffffffff000000000000000000000000000000000000000000000000000000001687529582019590820190600101611b23565b509495945050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c01577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089840301855281518051878552611bd588860182611964565b91890151858303868b0152919050611bed8183611b10565b968901969450505090860190600101611b93565b509098975050505050505050565b5f60208284031215611c1f575f80fd5b610fd182611ab3565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015611c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452611c89858351611964565b94509285019290850190600101611c4f565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c01578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff168452870151878401879052611d2f87850182611b10565b9588019593505090860190600101611ccf565b600181811c90821680611d5657607f821691505b602082108103611d8d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f825f0b825f0b02805f0b9150808214611ddc57611ddc611d93565b5092915050565b600181815b80851115611e3c57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611e2257611e22611d93565b80851615611e2f57918102915b93841c9390800290611de8565b509250929050565b5f82611e525750600161112b565b81611e5e57505f61112b565b8160018114611e745760028114611e7e57611e9a565b600191505061112b565b60ff841115611e8f57611e8f611d93565b50506001821b61112b565b5060208310610133831016604e8410600b8410161715611ebd575081810a61112b565b611ec78383611de3565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611ef957611ef9611d93565b029392505050565b5f610fd160ff841683611e44565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611f4a57611f4a611f0f565b500490565b808202811582820484141761112b5761112b611d93565b5f60208284031215611f76575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611fba575f80fd5b815167ffffffffffffffff80821115611fd1575f80fd5b818401915084601f830112611fe4575f80fd5b815181811115611ff657611ff6611f7d565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561203c5761203c611f7d565b81604052828152876020848701011115612054575f80fd5b612065836020830160208801611942565b979650505050505050565b838152826020820152606060408201525f61208e6060830184611964565b95945050505050565b8082018082111561112b5761112b611d93565b8181038181111561112b5761112b611d93565b604081525f6120cf6040830185611964565b828103602084015261208e8185611964565b5f826120ef576120ef611f0f565b50069056fe65766d20616e6420636f726520616d6f756e74732073686f756c6420646966666572206279206120666163746f72206f66207363616c65a2646970667358221220991e3aa45ec6f9c920e1d444b7b698ba88211f2d31e0c19ab8324afa7f234e5864736f6c63430008160033a2646970667358221220c176f74d1856c29aa3cee6aae6d6c61e460e19742ee93aa5215b5a8d3867451764736f6c63430008160033","sourceMap":"3126:44:43:-:0;;;3166:4;-1:-1:-1;;3126:44:43;;;;;;;;1065:26:54;;;;;;;;;;;1654:38:83;;;-1:-1:-1;;;;;;;;1654:38:83;-1:-1:-1;;;1654:38:83;;;1698:42;;;1729:11;-1:-1:-1;;;;;;1698:42:83;;;;;;1884:17;817:4715:81;1884:17:83;;817:4715:81;1884:17:83;;;-1:-1:-1;;;1884:17:83;;;;:8;:17::i;:::-;1861:40;;;-1:-1:-1;;;;;;1861:40:83;-1:-1:-1;;;;;1861:40:83;;;;;;;;;;1930:17;;;;;;;;;;;;-1:-1:-1;;;1930:17:83;;;;;;:8;:17::i;:::-;1907:40;;;-1:-1:-1;;;;;;1907:40:83;-1:-1:-1;;;;;1907:40:83;;;;;;;;;;1979:20;;;;;;;;;;;;-1:-1:-1;;;1979:20:83;;;;;;:8;:20::i;:::-;1953:46;;;-1:-1:-1;;;;;;1953:46:83;-1:-1:-1;;;;;1953:46:83;;;;;;;;;;817:4715:81;;;;;;;;;;;;20760:125:44;20824:12;20858:20;20873:4;20858:14;:20::i;:::-;-1:-1:-1;20848:30:44;20760:125;-1:-1:-1;;20760:125:44:o;20479:242::-;20549:12;20563:18;20641:4;20624:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20624:22:44;;;;;;;20614:33;;20624:22;20614:33;;;;-1:-1:-1;;;;;;20665:19:44;;;;;709:25:91;;;20614:33:44;-1:-1:-1;20665:7:44;;;;682:18:91;;20665:19:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20694:20;;-1:-1:-1;;;20694:20:44;;20658:26;;-1:-1:-1;20694:8:44;;;;:20;;20658:26;;20709:4;;20694:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20479:242;;;:::o;14:250:91:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:91;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:91:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:91;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:91:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:91;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:91:o;:::-;817:4715:81;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b5060043610620002b8575f3560e01c8063929c05791162000173578063c203ccab11620000e3578063e20c9f711162000093578063f8ba719e1162000077578063f8ba719e14620006f5578063fa7626d4146200070c578063fbe021a1146200071a575f80fd5b8063e20c9f7114620006e1578063e970bd6914620006eb575f80fd5b8063cc4aa20411620000c7578063cc4aa204146200067d578063ddceafa914620006b9578063deb22e9a14620006cd575f80fd5b8063c203ccab146200064d578063cb1a295f1462000669575f80fd5b8063b5508aa9116200013f578063ba8726791162000123578063ba87267914620005fa578063bb641b3e1462000604578063c1d1ead81462000631575f80fd5b8063b5508aa914620005d5578063ba414fa614620005df575f80fd5b8063929c057914620005765780639b5215f614620005a3578063a09e743014620005b7578063b0464fdc14620005cb575f80fd5b806347d7694f116200022b5780637773fb7311620001db57806385226c8111620001bf57806385226c8114620005155780639127ace2146200052e578063916a17c6146200055d575f80fd5b80637773fb7314620004ef5780637ecd9ac314620004f9575f80fd5b806366d9a9a0116200020f57806366d9a9a0146200045e57806376e86e72146200047757806376e9227314620004e5575f80fd5b806347d7694f14620003e65780635f60057d146200040c575f80fd5b806325996dae1162000287578063318f405a116200026b578063318f405a14620003a55780633e5e3c2314620003d25780633f7286f414620003dc575f80fd5b806325996dae146200034d5780632ade3880146200038c575f80fd5b80630a85348314620002bc5780630a9254e4146200031e57806312659341146200032a5780631ed7831c1462000334575b5f80fd5b620002f8620002cd36600462004e37565b60276020525f908152604090205467ffffffffffffffff808216916801000000000000000090041682565b6040805167ffffffffffffffff9384168152929091166020830152015b60405180910390f35b620003286200072e565b005b6200032862000769565b6200033e62000ae1565b60405162000315919062004e4f565b602a54620003769074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff909116815260200162000315565b6200039662000b43565b60405162000315919062004eee565b602b54620003b9906001600160a01b031681565b6040516001600160a01b03909116815260200162000315565b6200033e62000c8b565b6200033e62000ceb565b620003fd620003f736600462004fed565b62000d4b565b6040516200031591906200505e565b620004406200041d36600462004e37565b60266020525f908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff93841681529290911660208301520162000315565b6200046862000d62565b604051620003159190620050d0565b602154620004b39067ffffffffffffffff8116906801000000000000000081045f0b90690100000000000000000090046001600160a01b031683565b6040805167ffffffffffffffff90941684525f9290920b60208401526001600160a01b03169082015260600162000315565b6200032862000ee7565b620003b961081081565b620003b973333333333333333333333333333333333333333381565b6200051f62001231565b60405162000315919062005179565b602554620005439067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200162000315565b6200056762001306565b604051620003159190620051fd565b602a5462000376907801000000000000000000000000000000000000000000000000900463ffffffff1681565b602254620003b9906001600160a01b031681565b602354620003b9906001600160a01b031681565b6200056762001400565b6200051f620014fa565b620005e9620015cf565b604051901515815260200162000315565b620003b961080181565b602454620005439074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b620003b973f9e1815f151024bde4b7c10bac10e8ba9f6b53e181565b620003b9733a73033c0b1407574c76bdbac67f126f6b4a9aa981565b602954620003b9906001600160a01b031681565b602054620004b39067ffffffffffffffff8116906801000000000000000081045f0b90690100000000000000000090046001600160a01b031683565b602a54620003b9906001600160a01b031681565b602854620003b9906001600160a01b031681565b6200033e620016a3565b6200032862001703565b62000328620007063660046200528e565b62001adf565b601f54620005e99060ff1681565b602454620003b9906001600160a01b031681565b620007386200211f565b602580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001664174876e800179055565b602254602354602454620007ad926001600160a01b0390811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002da8565b604080515f6020820181905281830192909252600560608201527f6572726f72000000000000000000000000000000000000000000000000000000608082015260a00160408051808303601f19018152919052602a546024546028549293505f9262000877928492740100000000000000000000000000000000000000009182900463ffffffff169291900467ffffffffffffffff16906001600160a01b03165b8660405160200162000862929190620052b7565b60405160208183030381529060405262002dbb565b602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620008ea575f80fd5b505af1158015620008fd573d5f803e3d5ffd5b50506023546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03928316945063d0a1026093506200095792909116905f9086903390600401620052de565b5f604051808303815f87803b1580156200096f575f80fd5b505af115801562000982573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620009d3575f80fd5b505af1158015620009e6573d5f803e3d5ffd5b50506023546040517fa4e7f8bd0000000000000000000000000000000000000000000000000000000081525f6004820181905293508392506001600160a01b039091169063a4e7f8bd906024015f60405180830381865afa15801562000a4e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000a7791908101906200543d565b602082015160285492945090925062000a99916001600160a01b031662002def565b604082015160245462000acf919074010000000000000000000000000000000000000000900467ffffffffffffffff1662002e6d565b62000adb815f62002e6d565b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000b1a575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101562000c82575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000c6a578382905f5260205f2001805462000bd89062005534565b80601f016020809104026020016040519081016040528092919081815260200182805462000c069062005534565b801562000c555780601f1062000c2b5761010080835404028352916020019162000c55565b820191905f5260205f20905b81548152906001019060200180831162000c3757829003601f168201915b50505050508152602001906001019062000bb8565b50505050815250508152602001906001019062000b66565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000b1a575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000b1a575050505050905090565b606062000d59838362002ec6565b90505b92915050565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000c82578382905f5260205f2090600202016040518060400160405290815f8201805462000db89062005534565b80601f016020809104026020016040519081016040528092919081815260200182805462000de69062005534565b801562000e355780601f1062000e0b5761010080835404028352916020019162000e35565b820191905f5260205f20905b81548152906001019060200180831162000e1757829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801562000ece57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e7a5790505b5050505050815250508152602001906001019062000d85565b60225460235460245462000f2b926001600160a01b0390811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002da8565b604080516020810182525f808252602b5483517ff4844814000000000000000000000000000000000000000000000000000000008152935192936001600160a01b039091163192737109709ecfa91a80626ff3989d68f67f5b1dd12d9263f4844814926004808201939182900301818387803b15801562000faa575f80fd5b505af115801562000fbd573d5f803e3d5ffd5b5050602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562001031575f80fd5b505af115801562001044573d5f803e3d5ffd5b50506023546025546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063d0a10260945067ffffffffffffffff90921692620010ad929116905f9088903390600401620052de565b5f604051808303818588803b158015620010c5575f80fd5b505af1158015620010d8573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200112a575f80fd5b505af11580156200113d573d5f803e3d5ffd5b50506022546023546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152620011fb9450911691506370a0823190602401602060405180830381865afa158015620011aa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011d0919062005587565b60245474010000000000000000000000000000000000000000900467ffffffffffffffff1662002e6d565b60235462001214906001600160a01b0316315f62002e6d565b602b546200122d906001600160a01b0316318262002e6d565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000c82578382905f5260205f20018054620012749062005534565b80601f0160208091040260200160405190810160405280929190818152602001828054620012a29062005534565b8015620012f15780601f10620012c757610100808354040283529160200191620012f1565b820191905f5260205f20905b815481529060010190602001808311620012d357829003601f168201915b50505050508152602001906001019062001254565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000c82575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620013e757602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620013935790505b5050505050815250508152602001906001019062001329565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000c82575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014e157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200148d5790505b5050505050815250508152602001906001019062001423565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000c82578382905f5260205f200180546200153d9062005534565b80601f01602080910402602001604051908101604052809291908181526020018280546200156b9062005534565b8015620015ba5780601f106200159057610100808354040283529160200191620015ba565b820191905f5260205f20905b8154815290600101906020018083116200159c57829003601f168201915b5050505050815260200190600101906200151d565b6008545f9060ff1615620015e7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001676573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200169c919062005587565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000b3957602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000b1a575050505050905090565b60225460235460245462001747926001600160a01b0390811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002da8565b6025546040517f6c5d32a9000000000000000000000000000000000000000000000000000000008152602860048201525f9167ffffffffffffffff1690737109709ecfa91a80626ff3989d68f67f5b1dd12d90636c5d32a9906024015f60405180830381865afa158015620017be573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620017e791908101906200559f565b604051602001620017fa929190620055dd565b60408051808303601f19018152919052602a546024546028549293505f926200185d928492740100000000000000000000000000000000000000009182900463ffffffff169291900467ffffffffffffffff16906001600160a01b03166200084e565b602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620018d0575f80fd5b505af1158015620018e3573d5f803e3d5ffd5b50506023546025546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063d0a10260945067ffffffffffffffff909216926200194c929116905f9087903390600401620052de565b5f604051808303818588803b15801562001964575f80fd5b505af115801562001977573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620019c9575f80fd5b505af1158015620019dc573d5f803e3d5ffd5b50506023546040517fa4e7f8bd0000000000000000000000000000000000000000000000000000000081525f6004820181905293508392506001600160a01b039091169063a4e7f8bd906024015f60405180830381865afa15801562001a44573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a6d91908101906200543d565b602082015160285492945090925062001a8f916001600160a01b031662002def565b604082015160245462001ac5919074010000000000000000000000000000000000000000900467ffffffffffffffff1662002e6d565b60255462000adb90829067ffffffffffffffff1662002e6d565b62001b1d8167ffffffffffffffff165f678ac7230489e8000067ffffffffffffffff62001b0d91906200562e565b67ffffffffffffffff1662002f12565b6024549091505f9062001b5490839074010000000000000000000000000000000000000000900467ffffffffffffffff1662005652565b60225460235467ffffffffffffffff92909216925062001b82916001600160a01b0391821691168362002da8565b5f737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b031663d5bee9f56040518163ffffffff1660e01b81526004016020604051808303815f875af115801562001bd5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001bfb919062005676565b6040517f2501ecee0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201525f602482015290915061081090632501ecee906044015f604051808303815f87803b15801562001c5e575f80fd5b505af115801562001c71573d5f803e3d5ffd5b50506020545f925062001c959150680100000000000000009004820b600a620057d5565b6020546024549192506108019163312f619f91690100000000000000000081046001600160a01b03169167ffffffffffffffff9182169162001cf3918791740100000000000000000000000000000000000000009091041662005812565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1681526001600160a01b03909316600484015267ffffffffffffffff91821660248401521660448201526064015f604051808303815f87803b15801562001d61575f80fd5b505af115801562001d74573d5f803e3d5ffd5b50506025546040805167ffffffffffffffff90921660208301526001600160a01b038616908201525f9250606001905060408051808303601f19018152919052602a546028549192505f9162001df79183917401000000000000000000000000000000000000000090910463ffffffff169088906001600160a01b03166200084e565b6022546040517f86b9620d0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906386b9620d906024015f604051808303815f87803b15801562001e6a575f80fd5b505af115801562001e7d573d5f803e3d5ffd5b50506023546040518881526001600160a01b03888116945090911691507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3602b546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001f37575f80fd5b505af115801562001f4a573d5f803e3d5ffd5b50506023546025546022546040517fd0a102600000000000000000000000000000000000000000000000000000000081526001600160a01b03938416955063d0a10260945067ffffffffffffffff9092169262001fb3929116905f9087903390600401620052de565b5f604051808303818588803b15801562001fcb575f80fd5b505af115801562001fde573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562002030575f80fd5b505af115801562002043573d5f803e3d5ffd5b50506023546200206192506001600160a01b03163190505f62002e6d565b60255462002085906001600160a01b038616319067ffffffffffffffff1662002e6d565b6022546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152620021179216906370a0823190602401602060405180830381865afa158015620020ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002110919062005587565b8662002e6d565b505050505050565b604080518082018252619ce18152619daa60208083019182526103e65f818152602680845294517f113a6407f23900cfa1ecac751a02199ded2b9291b7b61d7b3fc27cad18581d048054955163ffffffff9283167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000978816176401000000009184168202179091558751808901895261765d815261769f8187019081526103e780865298875290517f354415ee754a59ff734517214ff8c4e3c5311a1050a5d2254382ba8bdca2307680549251918516929098169190911792160217909355845180860186526104da8152610451818401908152828552602780855291517f81f48bd84279ade89ca0299913d9e40d06f4ae51ee08f3cd6f968120d220e10d8054925167ffffffffffffffff9283167fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851617680100000000000000009184168202179091558851808a0190995260eb89526096898701908152979096529190935294517fcb63f41d83a6606379654c30ef8a1498bf816351aa303c37a41e329cc6e7a103805495519187169590931694909417939094169091029190911790554614801590620022f35750466103e714155b156200254b576040517ff877cb1900000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5250435f55524c5f48595045524c49515549440000000000000000000000000060448201525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f877cb19906064015f60405180830381865afa1580156200238f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620023b8919081019062005828565b6040517f98680034000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906398680034906200240d9084906004016200505e565b6020604051808303815f875af19250505080156200244a575060408051601f3d908101601f19168201909252620024479181019062005587565b60015b6200254757620024c66040518060400160405280601081526020017f466f726b696e67206d61696e6e65742000000000000000000000000000000000815250826040518060400160405280600781526020017f206661696c65640000000000000000000000000000000000000000000000000081525062002f6a565b6040517fdd82d13e00000000000000000000000000000000000000000000000000000000815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd82d13e906024015f604051808303815f87803b1580156200252a575f80fd5b505af11580156200253d573d5f803e3d5ffd5b5050505062002549565b505b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b031663b4d6c7826108016040516200257f9062004d83565b604051809103905ff08015801562002599573d5f803e3d5ffd5b506001600160a01b0316803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b8152600401620025dd92919062005872565b5f604051808303815f87803b158015620025f5575f80fd5b505af115801562002608573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d6001600160a01b031663b4d6c782610810604051620026409062004d91565b604051809103905ff0801580156200265a573d5f803e3d5ffd5b506001600160a01b0316803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b81526004016200269e92919062005872565b5f604051808303815f87803b158015620026b6575f80fd5b505af1158015620026c9573d5f803e3d5ffd5b50505050466103e614620026f257733a73033c0b1407574c76bdbac67f126f6b4a9aa962002708565b73f9e1815f151024bde4b7c10bac10e8ba9f6b53e15b602b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055465f8181526026602090815260408083208054602a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff811663ffffffff9384167401000000000000000000000000000000000000000002908117835593547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9091167fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9094169390931764010000000090930490911678010000000000000000000000000000000000000000000000000291909117905560278252918290205482516060810190935267ffffffffffffffff80821680855294680100000000000000009092041692918201906103e6146200285f57600a62002862565b60095b5f0b8152602001620028748462002fe3565b6001600160a01b039081169091528151602080548482015160409586015185166901000000000000000000027fffffff0000000000000000000000000000000000000000ffffffffffffffffff60ff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000093841667ffffffffffffffff968716171782161783558551606081018752938716808552600a9385019390935273222222222222222222222222222222222222222293860193909352602180547c2222222222222222222222222222222222222222000000000000000000680a00000000000000009190931690931792909217909216919091179055602b5491519116903390620029909062004d9f565b6200299d92919062005895565b604051809103905ff080158015620029b7573d5f803e3d5ffd5b50602280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216918217905560205460405167ffffffffffffffff8216916801000000000000000090045f0b9062002a1b9062004dad565b6001600160a01b03909316835267ffffffffffffffff90911660208301525f0b6040820152606001604051809103905ff08015801562002a5d573d5f803e3d5ffd5b50602380547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905560405162002aa49062004dbb565b604051809103905ff08015801562002abe573d5f803e3d5ffd5b50602480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039283161781556020546040517f312f619f00000000000000000000000000000000000000000000000000000000815269010000000000000000008204909316600484015267ffffffffffffffff9081169183019190915260448201526108019063312f619f906064015f604051808303815f87803b15801562002b6e575f80fd5b505af115801562002b81573d5f803e3d5ffd5b50506021546040517f312f619f0000000000000000000000000000000000000000000000000000000081526001600160a01b036901000000000000000000830416600482015267ffffffffffffffff91821660248201526044810191909152610801925063312f619f91506064015f604051808303815f87803b15801562002c07575f80fd5b505af115801562002c1a573d5f803e3d5ffd5b50506028546040517f2501ecee0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152600160248201526108109250632501ecee91506044015f604051808303815f87803b15801562002c83575f80fd5b505af115801562002c96573d5f803e3d5ffd5b50506029546040517f2501ecee0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152600160248201526108109250632501ecee91506044015f604051808303815f87803b15801562002cff575f80fd5b505af115801562002d12573d5f803e3d5ffd5b5050602b546040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015268056bc75e2d631000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d91506044015f604051808303815f87803b15801562002d95575f80fd5b505af115801562002117573d5f803e3d5ffd5b62002db68383835f6200300e565b505050565b60608484848460405160200162002dd6949392919062005932565b6040516020818303038152906040529050949350505050565b6040517f7c84c69b0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d90637c84c69b906044015b5f6040518083038186803b15801562002e5a575f80fd5b505afa15801562002117573d5f803e3d5ffd5b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c549060440162002e43565b606062002ed782604c8186620059b1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b5f62002f2084848462003297565b905062002f636040518060400160405280600c81526020017f426f756e6420726573756c74000000000000000000000000000000000000000081525082620034fa565b9392505050565b62002db683838360405160240162002f8593929190620059da565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2ced7cef0000000000000000000000000000000000000000000000000000000017905262003571565b5f62000d5c67ffffffffffffffff831673200000000000000000000000000000000000000062005a22565b604080516001600160a01b0385811660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a082310000000000000000000000000000000000000000000000000000000017905291515f92871691620030919162005a38565b5f60405180830381855afa9150503d805f8114620030cb576040519150601f19603f3d011682016040523d82523d5f602084013e620030d0565b606091505b509150505f81806020019051810190620030eb919062005587565b90506200313e846200313787620031307f70a082310000000000000000000000000000000000000000000000000000000062003129600d8d62003586565b90620035c3565b90620035fb565b9062003626565b8215620021175760408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f18160ddd0000000000000000000000000000000000000000000000000000000017905290515f916001600160a01b03891691620031b6919062005a38565b5f60405180830381855afa9150503d805f8114620031f0576040519150601f19603f3d011682016040523d82523d5f602084013e620031f5565b606091505b509150505f8180602001905181019062003210919062005587565b9050828610156200323b5762003227868462005a55565b62003233908262005a55565b905062003256565b62003247838762005a55565b62003253908262005a22565b90505b6200328d81620031377f18160ddd0000000000000000000000000000000000000000000000000000000062003129600d8d62003586565b5050505050505050565b5f818311156200332e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084015b60405180910390fd5b8284101580156200333f5750818411155b156200334d57508262002f63565b5f6200335a848462005a55565b6200336790600162005a22565b9050600385111580156200337a57508481115b1562003395576200338c858562005a22565b91505062002f63565b620033c260037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62005a55565b8510158015620033fc5750620033f9857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62005a55565b81115b156200343a576200342e857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62005a55565b6200338c908462005a55565b8285111562003499575f62003450848762005a55565b90505f6200345f838362005a6b565b9050805f03620034755784935050505062002f63565b600162003483828862005a22565b6200348f919062005a55565b93505050620034f2565b83851015620034f2575f620034af868662005a55565b90505f620034be838362005a6b565b9050805f03620034d45785935050505062002f63565b620034e0818662005a55565b620034ed90600162005a22565b935050505b509392505050565b6200122d82826040516024016200351392919062005a81565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb60e72cc0000000000000000000000000000000000000000000000000000000017905262003632565b6200358381620036415b63ffffffff16565b50565b6004820180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383161790555f8262000d59565b6002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660e083901c1790555f8262000d59565b6001808301805491820181555f908152602081206001600160a01b0384169201919091558262000d59565b6200122d828262003660565b620035838162003bc36200357b565b5f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b6004820154600283015460038401546001600160a01b039092169160e09190911b905f6200368e8662003be3565b6001600160a01b0385165f908152602088815260408083207fffffffff00000000000000000000000000000000000000000000000000000000881684528252808320905193945092620036e691859187910162005aa4565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff16620037245762003722865f62003cfb565b505b6001600160a01b0384165f908152602087815260408083207fffffffff000000000000000000000000000000000000000000000000000000008716845282528083209051909183916200377c91869188910162005aa4565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f81600201548260010154620037b8919062005a22565b1115620038e7575f81600201548260010154620037d6919062005a22565b620037e49061010062005a55565b620037f190600262005ac7565b6040517f6900a3ae0000000000000000000000000000000000000000000000000000000081526004810182905290915081881090737109709ecfa91a80626ff3989d68f67f5b1dd12d90636900a3ae906024015f60405180830381865afa1580156200385f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262003888919081019062005828565b6040516020016200389a919062005ad4565b60405160208183030381529060405290620038e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200332591906200505e565b50505b80546040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b038716600482015260248101919091525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562003963573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003989919062005587565b60018381015460028501549293505f92908101610100039190911b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811b1983169089901b1783546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b038a166004820152602481019190915260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562003a50575f80fd5b505af115801562003a63573d5f803e3d5ffd5b505050505f8062003a748b62003d10565b9150915081158062003a865750898114155b1562003bab5784546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b038b166004820152602481019190915260448101859052737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562003b09575f80fd5b505af115801562003b1c573d5f803e3d5ffd5b50506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a2046616960448201527f6c656420746f2077726974652076616c75652e0000000000000000000000000060648201526084019150620033259050565b62003bb68b62003de1565b5050505050505050505050565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b606081600701805462003bf69062005534565b90505f0362003c5c5762000d5c8260010180548060200260200160405190810160405280929190818152602001828054801562003c5157602002820191905f5260205f20905b81548152602001906001019080831162003c3c575b505050505062003dec565b81600701805462003c6d9062005534565b80601f016020809104026020016040519081016040528092919081815260200182805462003c9b9062005534565b801562003cea5780601f1062003cc05761010080835404028352916020019162003cea565b820191905f5260205f20905b81548152906001019060200180831162003ccc57829003601f168201915b50505050509050919050565b919050565b5f62003d08838362003e90565b549392505050565b60028101545f908190819060e01b62003d298562003be3565b60405160200162003d3c92919062005b66565b60408051601f198184030181529082905260048601549092505f9182916001600160a01b03169062003d7090859062005a38565b5f60405180830381855afa9150503d805f811462003daa576040519150601f19603f3d011682016040523d82523d5f602084013e62003daf565b606091505b50915091505f62003dd3828860030154602062003dcd919062005baf565b6200474e565b929792965091945050505050565b6200358381620047e1565b60605f8251602062003dff919062005baf565b67ffffffffffffffff81111562003e1a5762003e1a62005326565b6040519080825280601f01601f19166020018201604052801562003e45576020820181803683370190505b5090505f5b835181101562003e89575f84828151811062003e6a5762003e6a62005bc9565b6020908102919091018101518382028501909101525060010162003e4a565b5092915050565b6004820154600283015460038401545f926001600160a01b03169160e01b908362003ebb8762003be3565b6001600160a01b0385165f908152602089815260408083207fffffffff0000000000000000000000000000000000000000000000000000000088168452825280832090519394509262003f1391859187910162005aa4565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff161562003fdc57851562003f565762003f5687620047e1565b6001600160a01b0384165f908152602088815260408083207fffffffff00000000000000000000000000000000000000000000000000000000871684528252808320905190929162003fad91859187910162005aa4565b6040516020818303038152906040528051906020012081526020019081526020015f2094505050505062000d5c565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562004037575f80fd5b505af11580156200404a573d5f803e3d5ffd5b505050505f6200405a8862003d10565b6040517f65bc94810000000000000000000000000000000000000000000000000000000081526001600160a01b03881660048201529092505f9150737109709ecfa91a80626ff3989d68f67f5b1dd12d906365bc9481906024015f604051808303815f875af1158015620040d0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620040f9919081019062005c7c565b50905080515f036200419057604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e606482015260840162003325565b80515b5f6200419f8262005ce3565b91508110620045a3575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663667f9d7089858581518110620041f057620041f062005bc9565b60200260200101516040518363ffffffff1660e01b81526004016200422a9291906001600160a01b03929092168252602082015260400190565b602060405180830381865afa15801562004246573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200426c919062005587565b905080620042d6577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a588848481518110620042ab57620042ab62005bc9565b602090810291909101810151604080516001600160a01b039094168452918301520160405180910390a15b620042fe8b848481518110620042f057620042f062005bc9565b602002602001015162004886565b6200430a575062004193565b60068b01545f90819060ff16156200435e575f620043458e87878151811062004337576200433762005bc9565b602002602001015162004ad6565b90945092509050806200435c575050505062004193565b505b6001828201610100031b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811b8316811c868114620043a2575050505062004193565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c604051602001620043da92919062005aa4565b6040516020818303038152906040528051906020012089898151811062004405576200440562005bc9565b602090810291909101810151604080516001600160a01b0390961686527fffffffff000000000000000000000000000000000000000000000000000000009094169185019190915291830152606082015260800160405180910390a1604051806080016040528087878151811062004481576200448162005bc9565b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d6001600160a01b03166001600160a01b031681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c6040516020016200452a92919062005aa4565b60408051808303601f1901815291815281516020928301208352828201939093529082015f2083518155908301516001820155908201516002820155606090910151600390910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055505050505b506001600160a01b0386165f90815260208a815260408083207fffffffff000000000000000000000000000000000000000000000000000000008916845282528083209051909291620045fb91879189910162005aa4565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff16620046b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000606482015260840162003325565b8715620046c657620046c689620047e1565b6001600160a01b0386165f90815260208a815260408083207fffffffff0000000000000000000000000000000000000000000000000000000089168452825280832090519092916200471d91879189910162005aa4565b6040516020818303038152906040528051906020012081526020019081526020015f20965050505050505092915050565b5f805f60208551116200476357845162004766565b60205b90505f5b81811015620047d7576200478081600862005baf565b866200478d838862005a22565b81518110620047a057620047a062005bc9565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c92909217916001016200476a565b5090949350505050565b6004810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016905562004844600182015f62004dc9565b5f600382018190556006820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556200358390600783019062004de6565b6004828101546040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018290525f908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa1580156200490a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062004930919062005587565b90505f806200493f8662003d10565b90925090505f811562004953575f62004975565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b6004888101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116918101919091526024810188905260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b158015620049fb575f80fd5b505af115801562004a0e573d5f803e3d5ffd5b505050505f62004a1e8862003d10565b60048a8101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018a905260448101889052909250737109709ecfa91a80626ff3989d68f67f5b1dd12d91506370ca10bb906064015f604051808303815f87803b15801562004aa5575f80fd5b505af115801562004ab8573d5f803e3d5ffd5b5050505083801562004aca5750808314155b98975050505050505050565b6004828101546040517f667f9d700000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018290525f90819081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562004b5e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062004b84919062005587565b90505f8062004b968888600162004c63565b915091505f8062004ba98a8a5f62004c63565b60048c8101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691810191909152602481018c9052604481018890529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562004c31575f80fd5b505af115801562004c44573d5f803e3d5ffd5b5050505083801562004c535750815b9a92995097509095505050505050565b5f805f5b61010081101562004d73575f8462004c83576001821b62004c95565b62004c908260ff62005a55565b6001901b5b6004888101546040517f70ca10bb0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116918101919091526024810188905260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562004d1b575f80fd5b505af115801562004d2e573d5f803e3d5ffd5b505050505f8062004d3f8962003d10565b9150915081801562004d5057508015155b1562004d6757600184955095505050505062004d7b565b50505060010162004c67565b505f80915091505b935093915050565b6102bb8062005d1b83390190565b6101be8062005fd683390190565b613f13806200619483390190565b612c41806200a0a783390190565b6121a8806200cce883390190565b5080545f8255905f5260205f209081019062003583919062004e1d565b50805462004df49062005534565b5f825580601f1062004e04575050565b601f0160209004905f5260205f20908101906200358391905b5b8082111562004e33575f815560010162004e1e565b5090565b5f6020828403121562004e48575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b8181101562004e915783516001600160a01b03168352928401929184019160010162004e6a565b50909695505050505050565b5f5b8381101562004eb957818101518382015260200162004e9f565b50505f910152565b5f815180845262004eda81602086016020860162004e9d565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562004fde577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562004fc7577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa088850301835262004fb484865162004ec1565b948d01949350918c019160010162004f77565b505050968901969350509087019060010162004f13565b50909998505050505050505050565b5f806020838503121562004fff575f80fd5b823567ffffffffffffffff8082111562005017575f80fd5b818501915085601f8301126200502b575f80fd5b8135818111156200503a575f80fd5b8660208285010111156200504c575f80fd5b60209290920196919550909350505050565b602081525f62000d59602083018462004ec1565b5f815180845260208085019450602084015f5b83811015620050c55781517fffffffff00000000000000000000000000000000000000000000000000000000168752958201959082019060010162005085565b509495945050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200516b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0898403018552815180518785526200513c8886018262004ec1565b91890151858303868b015291905062005156818362005072565b968901969450505090860190600101620050f7565b509098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015620051f0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452620051dd85835162004ec1565b94509285019290850190600101620051a0565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200516b578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0018552815180516001600160a01b031684528701518784018790526200527a8785018262005072565b958801959350509086019060010162005224565b5f602082840312156200529f575f80fd5b813567ffffffffffffffff8116811462002f63575f80fd5b8281525f8251620052d081602085016020870162004e9d565b919091016020019392505050565b5f6001600160a01b03808716835285602084015260a060408401526200530860a084018662004ec1565b93166060830152508082036080909101525f81526020019392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160e0810167ffffffffffffffff8111828210171562005379576200537962005326565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620053ab57620053ab62005326565b604052919050565b805163ffffffff8116811462003cf6575f80fd5b5f67ffffffffffffffff831115620053e357620053e362005326565b620053f86020601f19601f860116016200537f565b90508281528383830111156200540c575f80fd5b62002f6383602083018462004e9d565b5f82601f8301126200542c575f80fd5b62000d5983835160208501620053c7565b5f80604083850312156200544f575f80fd5b825167ffffffffffffffff8082111562005467575f80fd5b9084019060e082870312156200547b575f80fd5b6200548562005353565b6200549083620053b3565b8152602083015160208201526040830151604082015260608301516060820152608083015182811115620054c2575f80fd5b620054d0888286016200541c565b60808301525060a083015182811115620054e8575f80fd5b620054f6888286016200541c565b60a08301525060c0830151828111156200550e575f80fd5b6200551c888286016200541c565b60c08301525060209590950151949694955050505050565b600181811c908216806200554957607f821691505b60208210810362005581577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f6020828403121562005598575f80fd5b5051919050565b5f60208284031215620055b0575f80fd5b815167ffffffffffffffff811115620055c7575f80fd5b620055d5848285016200541c565b949350505050565b67ffffffffffffffff83168152604060208201525f620055d5604083018462004ec1565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b67ffffffffffffffff82811682821603908082111562003e895762003e8962005601565b67ffffffffffffffff81811683821601908082111562003e895762003e8962005601565b5f6020828403121562005687575f80fd5b81516001600160a01b038116811462002f63575f80fd5b600181815b80851115620056fd57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115620056e157620056e162005601565b80851615620056ef57918102915b93841c9390800290620056a3565b509250929050565b5f82620057155750600162000d5c565b816200572357505f62000d5c565b81600181146200573c5760028114620057475762005767565b600191505062000d5c565b60ff8411156200575b576200575b62005601565b50506001821b62000d5c565b5060208310610133831016604e8410600b84101617156200578c575081810a62000d5c565b6200579883836200569e565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115620057cd57620057cd62005601565b029392505050565b5f62000d5960ff84168362005705565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82620058235762005823620057e5565b500490565b5f6020828403121562005839575f80fd5b815167ffffffffffffffff81111562005850575f80fd5b8201601f8101841362005861575f80fd5b620055d584825160208401620053c7565b6001600160a01b0383168152604060208201525f620055d5604083018462004ec1565b608081525f620058d260808301600481527f7465737400000000000000000000000000000000000000000000000000000000602082015260400190565b82810360208401526200590f81600481527f7465737400000000000000000000000000000000000000000000000000000000602082015260400190565b9150506001600160a01b0380851660408401528084166060840152509392505050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f8251620059a181602c85016020870162004e9d565b91909101602c0195945050505050565b5f8085851115620059c0575f80fd5b83861115620059cd575f80fd5b5050820193919092039150565b606081525f620059ee606083018662004ec1565b828103602084015262005a02818662004ec1565b9050828103604084015262005a18818562004ec1565b9695505050505050565b8082018082111562000d5c5762000d5c62005601565b5f825162005a4b81846020870162004e9d565b9190910192915050565b8181038181111562000d5c5762000d5c62005601565b5f8262005a7c5762005a7c620057e5565b500690565b604081525f62005a95604083018562004ec1565b90508260208301529392505050565b5f835162005ab781846020880162004e9d565b9190910191825250602001919050565b5f62000d59838362005705565b7f73746453746f726167652066696e642853746453746f72616765293a2050616381527f6b656420736c6f742e2057652063616e2774206669742076616c75652067726560208201527f61746572207468616e200000000000000000000000000000000000000000000060408201525f825162005b5981604a85016020870162004e9d565b91909101604a0192915050565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825162005ba181600485016020870162004e9d565b919091016004019392505050565b808202811582820484141762000d5c5762000d5c62005601565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82601f83011262005c06575f80fd5b8151602067ffffffffffffffff82111562005c255762005c2562005326565b8160051b62005c368282016200537f565b928352848101820192828101908785111562005c50575f80fd5b83870192505b8483101562005c715782518252918301919083019062005c56565b979650505050505050565b5f806040838503121562005c8e575f80fd5b825167ffffffffffffffff8082111562005ca6575f80fd5b62005cb48683870162005bf6565b9350602085015191508082111562005cca575f80fd5b5062005cd98582860162005bf6565b9150509250929050565b5f8162005cf45762005cf462005601565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fe608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063312f619f146100cb575b5f366060828061003984826101f3565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526020818152604080832067ffffffffffffffff8516845282529182902091519395509193506100ad92909101905467ffffffffffffffff8082168352604082811c8216602085015260809290921c169082015260600190565b60405160208183030381529060405292505050915050805190602001f35b6101b16100d9366004610226565b6040805160608101825267ffffffffffffffff92831681525f602080830182815283850183815273ffffffffffffffffffffffffffffffffffffffff909816835282825284832096861683529590529190912090518154935194518316700100000000000000000000000000000000027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff95841668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000000000000000000090951691909316179290921792909216919091179055565b005b73ffffffffffffffffffffffffffffffffffffffff811681146101d4575f80fd5b50565b803567ffffffffffffffff811681146101ee575f80fd5b919050565b5f8060408385031215610204575f80fd5b823561020f816101b3565b915061021d602084016101d7565b90509250929050565b5f805f60608486031215610238575f80fd5b8335610243816101b3565b9250610251602085016101d7565b915061025f604085016101d7565b9050925092509256fea2646970667358221220d5b9ba32438724b70d20ac7197875ff3889106c2524e595f86d6e6608fa1001664736f6c63430008160033608060405234801561000f575f80fd5b506101a18061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80632501ecee14610085575b5f36606082610038838261010e565b73ffffffffffffffffffffffffffffffffffffffff165f908152602081815260409182902054825160ff909116151581830152825180820383018152908301909252815195500192505050f35b6100e8610093366004610130565b73ffffffffffffffffffffffffffffffffffffffff919091165f90815260208190526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b005b73ffffffffffffffffffffffffffffffffffffffff8116811461010b575f80fd5b50565b5f6020828403121561011e575f80fd5b8135610129816100ea565b9392505050565b5f8060408385031215610141575f80fd5b823561014c816100ea565b915060208301358015158114610160575f80fd5b80915050925092905056fea264697066735822122035c0fff1825d88eb4bde8570970797b145c9dca642f89b4781127cecbb5d309764736f6c6343000816003360c060405234801562000010575f80fd5b5060405162003f1338038062003f138339810160408190526200003391620002c2565b83838383838360128484818181818d6001600160a01b0381166200007057604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200007b8162000191565b506001600160a01b038083166080528116620000aa57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b158015620000ef575f80fd5b505af115801562000102573d5f803e3d5ffd5b50505050505050506200011a620001e060201b60201c565b60ff168360ff16101562000141576040516301e9714b60e41b815260040160405180910390fd5b6200014e60068462000360565b6200015b90600a6200047b565b60a052506008915062000171905083826200051c565b5060096200018082826200051c565b5050505050505050505050620005e8565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f83011262000209575f80fd5b81516001600160401b0380821115620002265762000226620001e5565b604051601f8301601f19908116603f01168101908282118183101715620002515762000251620001e5565b81604052838152602092508660208588010111156200026e575f80fd5b5f91505b8382101562000291578582018301518183018401529082019062000272565b5f602085830101528094505050505092915050565b80516001600160a01b0381168114620002bd575f80fd5b919050565b5f805f8060808587031215620002d6575f80fd5b84516001600160401b0380821115620002ed575f80fd5b620002fb88838901620001f9565b9550602087015191508082111562000311575f80fd5b506200032087828801620001f9565b9350506200033160408601620002a6565b91506200034160608601620002a6565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156200037c576200037c6200034c565b92915050565b600181815b80851115620003c257815f1904821115620003a657620003a66200034c565b80851615620003b457918102915b93841c939080029062000387565b509250929050565b5f82620003da575060016200037c565b81620003e857505f6200037c565b81600181146200040157600281146200040c576200042c565b60019150506200037c565b60ff8411156200042057620004206200034c565b50506001821b6200037c565b5060208310610133831016604e8410600b841016171562000451575081810a6200037c565b6200045d838362000382565b805f19048211156200047357620004736200034c565b029392505050565b5f6200048b60ff841683620003ca565b9392505050565b600181811c90821680620004a757607f821691505b602082108103620004c657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200051757805f5260205f20601f840160051c81016020851015620004f35750805b601f840160051c820191505b8181101562000514575f8155600101620004ff565b50505b505050565b81516001600160401b03811115620005385762000538620001e5565b620005508162000549845462000492565b84620004cc565b602080601f83116001811462000586575f84156200056e5750858301515b5f19600386901b1c1916600185901b178555620005e0565b5f85815260208120601f198616915b82811015620005b65788860151825594840194600190910190840162000595565b5085821015620005d457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a0516138c3620006505f395f81816106be01528181611e7f01528181611ef1015261217e01525f818161056e01528181610b050152818161122e01528181611554015281816119af015281816122d2015281816124ab015261259301526138c35ff3fe6080604052600436106102c1575f3560e01c80637d25a05e11610170578063bb0b6a53116100d1578063d045a0dc11610087578063f2fde38b11610062578063f2fde38b1461087c578063fc0c546a146104f7578063ff7bd03d1461089b575f80fd5b8063d045a0dc146107f9578063d42438851461080c578063dd62ed3e1461082b575f80fd5b8063bd815db0116100b7578063bd815db0146107a6578063c7c7f5b3146107b9578063ca5eb5e1146107da575f80fd5b8063bb0b6a531461075c578063bc70b35414610787575f80fd5b8063963efcaa11610126578063a9059cbb1161010c578063a9059cbb146106f2578063b731ea0a14610711578063b98bd0701461073d575f80fd5b8063963efcaa146106ad5780639f68b964146106e0575f80fd5b8063857749b011610156578063857749b01461065d5780638da5cb5b1461067057806395d89b4114610699575f80fd5b80637d25a05e1461060457806382413eac1461063e575f80fd5b806323b872dd116102255780635535d461116101db5780636fc1b31e116101b65780636fc1b31e1461059057806370a08231146105af578063715018a6146105f0575f80fd5b80635535d461146105095780635a0dfe4d146105285780635e280f111461055d575f80fd5b80633400288b1161020b5780633400288b146104ac5780633b6f743b146104cb57806352ae2879146104f7575f80fd5b806323b872dd1461046c578063313ce5671461048b575f80fd5b8063134d4f251161027a57806317442b701161026057806317442b701461041957806318160ddd1461043a5780631f5e133414610458575f80fd5b8063134d4f25146103b2578063156a0d0f146103d9575f80fd5b80630d35b415116102aa5780630d35b4151461031e578063111ecdad1461034c57806313137d651461039d575f80fd5b806306fdde03146102c5578063095ea7b3146102ef575b5f80fd5b3480156102d0575f80fd5b506102d96108ba565b6040516102e6919061278e565b60405180910390f35b3480156102fa575f80fd5b5061030e6103093660046127c1565b61094a565b60405190151581526020016102e6565b348015610329575f80fd5b5061033d610338366004612801565b610963565b6040516102e693929190612833565b348015610357575f80fd5b506004546103789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102e6565b6103b06103ab36600461293d565b610b03565b005b3480156103bd575f80fd5b506103c6600281565b60405161ffff90911681526020016102e6565b3480156103e4575f80fd5b50604080517f02e49c2c00000000000000000000000000000000000000000000000000000000815260016020820152016102e6565b348015610424575f80fd5b50604080516001815260026020820152016102e6565b348015610445575f80fd5b506007545b6040519081526020016102e6565b348015610463575f80fd5b506103c6600181565b348015610477575f80fd5b5061030e6104863660046129d6565b610c02565b348015610496575f80fd5b5060125b60405160ff90911681526020016102e6565b3480156104b7575f80fd5b506103b06104c6366004612a2c565b610c27565b3480156104d6575f80fd5b506104ea6104e5366004612a53565b610c3d565b6040516102e69190612aa2565b348015610502575f80fd5b5030610378565b348015610514575f80fd5b506102d9610523366004612aca565b610ca1565b348015610533575f80fd5b5061030e610542366004612a2c565b63ffffffff919091165f908152600160205260409020541490565b348015610568575f80fd5b506103787f000000000000000000000000000000000000000000000000000000000000000081565b34801561059b575f80fd5b506103b06105aa366004612afb565b610d43565b3480156105ba575f80fd5b5061044a6105c9366004612afb565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b3480156105fb575f80fd5b506103b0610dc5565b34801561060f575f80fd5b5061062561061e366004612a2c565b5f92915050565b60405167ffffffffffffffff90911681526020016102e6565b348015610649575f80fd5b5061030e610658366004612b16565b610dd8565b348015610668575f80fd5b50600661049a565b34801561067b575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610378565b3480156106a4575f80fd5b506102d9610dfa565b3480156106b8575f80fd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb575f80fd5b505f61030e565b3480156106fd575f80fd5b5061030e61070c3660046127c1565b610e09565b34801561071c575f80fd5b506002546103789073ffffffffffffffffffffffffffffffffffffffff1681565b348015610748575f80fd5b506103b0610757366004612bba565b610e16565b348015610767575f80fd5b5061044a610776366004612bf9565b60016020525f908152604090205481565b348015610792575f80fd5b506102d96107a1366004612c12565b610e30565b6103b06107b4366004612bba565b610fea565b6107cc6107c7366004612c6f565b6111ae565b6040516102e6929190612cf6565b3480156107e5575f80fd5b506103b06107f4366004612afb565b6111e1565b6103b061080736600461293d565b611288565b348015610817575f80fd5b506103b0610826366004612afb565b6112d0565b348015610836575f80fd5b5061044a610845366004612d48565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610887575f80fd5b506103b0610896366004612afb565b61134b565b3480156108a6575f80fd5b5061030e6108b5366004612d74565b6113ae565b6060600880546108c990612d8e565b80601f01602080910402602001604051908101604052809291908181526020018280546108f590612d8e565b80156109405780601f1061091757610100808354040283529160200191610940565b820191905f5260205f20905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b5f336109578185856113e2565b60019150505b92915050565b604080518082019091525f8082526020820152606061099360405180604001604052805f81526020015f81525090565b5f803073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109de573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a029190612dd9565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6e9190612df4565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610ac1565b604080518082019091525f815260606020820152815260200190600190039081610a9a5790505b5093505f80610ae5604089013560608a0135610ae060208c018c612bf9565b6113f4565b60408051808201909152918252602082015296989597505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610b79576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610b9390610b8e908a612bf9565b611448565b14610bea57610ba56020880188612bf9565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b70565b610bf98787878787878761149c565b50505050505050565b5f33610c0f85828561162d565b610c1a8585856116fa565b60019150505b9392505050565b610c2f6117a3565b610c3982826117f5565b5050565b604080518082019091525f80825260208201525f610c6b60408501356060860135610ae06020880188612bf9565b9150505f80610c7a8684611849565b9092509050610c97610c8f6020880188612bf9565b83838861199a565b9695505050505050565b600360209081525f928352604080842090915290825290208054610cc490612d8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf090612d8e565b8015610d3b5780601f10610d1257610100808354040283529160200191610d3b565b820191905f5260205f20905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b610d4b6117a3565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610dcd6117a3565b610dd65f611a85565b565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b6060600980546108c990612d8e565b5f336109578185856116fa565b610e1e6117a3565b610c39610e2b8284612f18565b611af9565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610e6390612d8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8f90612d8e565b8015610eda5780601f10610eb157610100808354040283529160200191610eda565b820191905f5260205f20905b815481529060010190602001808311610ebd57829003601f168201915b5050505050905080515f03610f285783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610df29350505050565b5f839003610f37579050610df2565b60028310610fb457610f7d84848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bfa92505050565b80610f8b8460028188613021565b604051602001610f9d93929190613048565b604051602081830303815290604052915050610df2565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b709291906130b5565b5f5b818110156110ed5736838383818110611007576110076130c8565b905060200281019061101991906130f5565b905061104b61102b6020830183612bf9565b602083013563ffffffff919091165f908152600160205260409020541490565b61105557506110e5565b3063d045a0dc60c08301358360a0810135611074610100830183613131565b611085610100890160e08a01612afb565b6110936101208a018a613131565b6040518963ffffffff1660e01b81526004016110b597969594939291906131a7565b5f604051808303818588803b1580156110cc575f80fd5b505af11580156110de573d5f803e3d5ffd5b5050505050505b600101610fec565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611136573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261117b919081019061323a565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b70919061278e565b6111b66126df565b604080518082019091525f80825260208201526111d4858585611c3f565b915091505b935093915050565b6111e96117a3565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b15801561126f575f80fd5b505af1158015611281573d5f803e3d5ffd5b5050505050565b3330146112c1576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf987878787878787610bea565b6112d86117a3565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610dba565b6113536117a3565b73ffffffffffffffffffffffffffffffffffffffff81166113a2576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b6113ab81611a85565b50565b5f6020820180359060019083906113c59086612bf9565b63ffffffff16815260208101919091526040015f20541492915050565b6113ef8383836001611d37565b505050565b5f806113ff85611e7c565b9150819050838110156111d9576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610b70565b63ffffffff81165f908152600160205260408120548061095d576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b70565b5f6114ad6114aa8787611eb2565b90565b90505f6114d8826114c66114c18a8a611ec9565b611eeb565b6114d360208d018d612bf9565b611f20565b905060288611156115be575f6115146114f760608c0160408d016132a3565b61150460208d018d612bf9565b8461150f8c8c611f54565b611f9e565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061158f9086908d905f9087906004016132be565b5f604051808303815f87803b1580156115a6575f80fd5b505af11580156115b8573d5f803e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61160460208d018d612bf9565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116f457818110156116e6576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610b70565b6116f484848484035f611d37565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316611749576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b73ffffffffffffffffffffffffffffffffffffffff8216611798576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b6113ef838383611fd0565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd6576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610b70565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6060805f6118a4856020013561185e86612177565b61186b60a0890189613131565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121ea92505050565b90935090505f816118b65760016118b9565b60025b90506118d96118cb6020880188612bf9565b826107a160808a018a613131565b60045490935073ffffffffffffffffffffffffffffffffffffffff168015611990576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb9061194f90889088906004016132fc565b602060405180830381865afa15801561196a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061198e9190613320565b505b5050509250929050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611a0989611448565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a3e92919061333b565b6040805180830381865afa158015611a58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7c919061340c565b95945050505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611bca57611b2a828281518110611b1957611b196130c8565b602002602001015160400151611bfa565b818181518110611b3c57611b3c6130c8565b60200260200101516040015160035f848481518110611b5d57611b5d6130c8565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611b9457611b946130c8565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611bc1919061346a565b50600101611afb565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610dba9190613586565b600281015161ffff8116600314610c3957816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b70919061278e565b611c476126df565b604080518082019091525f80825260208201525f80611c7c33604089013560608a0135611c7760208c018c612bf9565b61227c565b915091505f80611c8c8984611849565b9092509050611cb8611ca160208b018b612bf9565b8383611cb2368d90038d018d61362d565b8b6122a1565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611d06908d018d612bf9565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b73ffffffffffffffffffffffffffffffffffffffff8416611d86576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b73ffffffffffffffffffffffffffffffffffffffff8316611dd5576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156116f4578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e6e91815260200190565b60405180910390a350505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611ea8818461368a565b61095d91906136c2565b5f611ec06020828486613021565b610c20916136d9565b5f611ed8602860208486613021565b611ee191613715565b60c01c9392505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84166136c2565b5f73ffffffffffffffffffffffffffffffffffffffff8416611f425761dead93505b611f4c84846123b4565b509092915050565b6060611f638260288186613021565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611fb7949392919061375d565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff8316612007578060075f828254611ffc91906137da565b909155506120b79050565b73ffffffffffffffffffffffffffffffffffffffff83165f908152600560205260409020548181101561208c576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610b70565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166120e05760078054829003905561210b565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216a91815260200190565b60405180910390a3505050565b5f806121a37f00000000000000000000000000000000000000000000000000000000000000008461368a565b905067ffffffffffffffff81111561095d576040517fe2ce941300000000000000000000000000000000000000000000000000000000815260048101829052602401610b70565b805160609015158061224b57848460405160200161223792919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b604051602081830303815290604052612272565b8484338560405160200161226294939291906137ed565b6040516020818303038152906040525b9150935093915050565b5f806122898585856113f4565b9092509050612298868361240e565b94509492505050565b6122a96126df565b5f6122b6845f0151612468565b6020850151909150156122d0576122d084602001516124a8565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff16815260200161232d8c611448565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161236892919061333b565b60806040518083038185885af1158015612384573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123a99190613845565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216612403576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b610c395f8383611fd0565b73ffffffffffffffffffffffffffffffffffffffff821661245d576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b70565b610c39825f83611fd0565b5f8134146124a4576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610b70565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612512573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125369190612dd9565b905073ffffffffffffffffffffffffffffffffffffffff8116612585576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133602482018190527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81811660448501526064808501889052855180860390910181526084909401909452602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001781528451610c399688169589936116f49388935f9283929091839182885af18061265f576040513d5f823e3d81fd5b50505f513d91508115612676578060011415612690565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156116f4576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610b70565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161271e60405180604001604052805f81526020015f81525090565b905290565b5f5b8381101561273d578181015183820152602001612725565b50505f910152565b5f815180845261275c816020860160208601612723565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610c206020830184612745565b73ffffffffffffffffffffffffffffffffffffffff811681146113ab575f80fd5b5f80604083850312156127d2575f80fd5b82356127dd816127a0565b946020939093013593505050565b5f60e082840312156127fb575f80fd5b50919050565b5f60208284031215612811575f80fd5b813567ffffffffffffffff811115612827575f80fd5b610df2848285016127eb565b83518152602080850151908201525f60a08201604060a0604085015281865180845260c08601915060c08160051b870101935060208089015f5b838110156128ca578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff400185528151805188528301518388018790526128b787890182612745565b975050938201939082019060010161286d565b50508751606088015250505060208501516080850152509050610df2565b5f606082840312156127fb575f80fd5b5f8083601f840112612908575f80fd5b50813567ffffffffffffffff81111561291f575f80fd5b602083019150836020828501011115612936575f80fd5b9250929050565b5f805f805f805f60e0888a031215612953575f80fd5b61295d89896128e8565b965060608801359550608088013567ffffffffffffffff80821115612980575f80fd5b61298c8b838c016128f8565b909750955060a08a013591506129a1826127a0565b90935060c089013590808211156129b6575f80fd5b506129c38a828b016128f8565b989b979a50959850939692959293505050565b5f805f606084860312156129e8575f80fd5b83356129f3816127a0565b92506020840135612a03816127a0565b929592945050506040919091013590565b803563ffffffff81168114612a27575f80fd5b919050565b5f8060408385031215612a3d575f80fd5b6127dd83612a14565b80151581146113ab575f80fd5b5f8060408385031215612a64575f80fd5b823567ffffffffffffffff811115612a7a575f80fd5b612a86858286016127eb565b9250506020830135612a9781612a46565b809150509250929050565b81518152602080830151908201526040810161095d565b803561ffff81168114612a27575f80fd5b5f8060408385031215612adb575f80fd5b612ae483612a14565b9150612af260208401612ab9565b90509250929050565b5f60208284031215612b0b575f80fd5b8135610c20816127a0565b5f805f8060a08587031215612b29575f80fd5b612b3386866128e8565b9350606085013567ffffffffffffffff811115612b4e575f80fd5b612b5a878288016128f8565b9094509250506080850135612b6e816127a0565b939692955090935050565b5f8083601f840112612b89575f80fd5b50813567ffffffffffffffff811115612ba0575f80fd5b6020830191508360208260051b8501011115612936575f80fd5b5f8060208385031215612bcb575f80fd5b823567ffffffffffffffff811115612be1575f80fd5b612bed85828601612b79565b90969095509350505050565b5f60208284031215612c09575f80fd5b610c2082612a14565b5f805f8060608587031215612c25575f80fd5b612c2e85612a14565b9350612c3c60208601612ab9565b9250604085013567ffffffffffffffff811115612c57575f80fd5b612c63878288016128f8565b95989497509550505050565b5f805f8385036080811215612c82575f80fd5b843567ffffffffffffffff811115612c98575f80fd5b612ca4878288016127eb565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612cd6575f80fd5b506020840191506060840135612ceb816127a0565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151612d31604084018280518252602090810151910152565b5082516080830152602083015160a0830152610c20565b5f8060408385031215612d59575f80fd5b8235612d64816127a0565b91506020830135612a97816127a0565b5f60608284031215612d84575f80fd5b610c2083836128e8565b600181811c90821680612da257607f821691505b6020821081036127fb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215612de9575f80fd5b8151610c20816127a0565b5f60208284031215612e04575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715612e5b57612e5b612e0b565b60405290565b6040805190810167ffffffffffffffff81118282101715612e5b57612e5b612e0b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612ecb57612ecb612e0b565b604052919050565b5f67ffffffffffffffff821115612eec57612eec612e0b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff80841115612f3257612f32612e0b565b8360051b6020612f43818301612e84565b868152918501918181019036841115612f5a575f80fd5b865b8481101561301557803586811115612f72575f80fd5b88016060368290031215612f84575f80fd5b612f8c612e38565b612f9582612a14565b8152612fa2868301612ab9565b8682015260408083013589811115612fb8575f80fd5b929092019136601f840112612fcb575f80fd5b8235612fde612fd982612ed3565b612e84565b8181523689838701011115612ff1575f80fd5b818986018a8301375f91810189019190915290820152845250918301918301612f5c565b50979650505050505050565b5f808585111561302f575f80fd5b8386111561303b575f80fd5b5050820193919092039150565b5f8451613059818460208901612723565b8201838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610df260208301848661306e565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112613127575f80fd5b9190910192915050565b5f8083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613164575f80fd5b83018035915067ffffffffffffffff82111561317e575f80fd5b602001915036819003821315612936575f80fd5b67ffffffffffffffff811681146113ab575f80fd5b63ffffffff6131b589612a14565b168152602088013560208201525f60408901356131d181613192565b67ffffffffffffffff811660408401525087606083015260e060808301526131fd60e08301878961306e565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c084015261322c81858761306e565b9a9950505050505050505050565b5f6020828403121561324a575f80fd5b815167ffffffffffffffff811115613260575f80fd5b8201601f81018413613270575f80fd5b805161327e612fd982612ed3565b818152856020838501011115613292575f80fd5b611a7c826020830160208601612723565b5f602082840312156132b3575f80fd5b8135610c2081613192565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610c976080830184612745565b604081525f61330e6040830185612745565b8281036020840152611a7c8185612745565b5f60208284031215613330575f80fd5b8151610c2081612a46565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261337060e0840182612745565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526133ab8282612745565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156133ee575f80fd5b6133f6612e61565b9050815181526020820151602082015292915050565b5f6040828403121561341c575f80fd5b610c2083836133de565b601f8211156113ef57805f5260205f20601f840160051c8101602085101561344b5750805b601f840160051c820191505b81811015611281575f8155600101613457565b815167ffffffffffffffff81111561348457613484612e0b565b613498816134928454612d8e565b84613426565b602080601f8311600181146134ea575f84156134b45750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561357e565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561353657888601518255948401946001909101908401613517565b508582101561357257878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101561361f578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261360b81860183612745565b9689019694505050908601906001016135ad565b509098975050505050505050565b5f6040828403121561363d575f80fd5b613645612e61565b82358152602083013560208201528091505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f826136bd577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761095d5761095d61365d565b8035602083101561095d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156137555780818660080360031b1b83161692505b505092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f82516137ca81602c850160208701612723565b91909101602c0195945050505050565b8082018082111561095d5761095d61365d565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f8251613835816048850160208701612723565b9190910160480195945050505050565b5f60808284031215613855575f80fd5b61385d612e38565b82518152602083015161386f81613192565b602082015261388184604085016133de565b6040820152939250505056fea26469706673582212203a62d5bac7756b003faa33a3654be29951d22eee7db71dfadf507916bc0d6c5964736f6c634300081600336101a060405234801562000011575f80fd5b5060405162002c4138038062002c41833981016040819052620000349162000259565b60015f556001600160a01b038316620000605760405163c23419a560e01b815260040160405180910390fd5b6001195f82900b128062000077575060125f82900b135b15620000ae5760405163470eb46160e01b81525f82900b600482015260011960248201526012604482015260640160405180910390fd5b826001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620000eb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001119190620002b8565b6001600160a01b03908116608052831660a0525f466103e71462000138576104516200013b565b60965b73222222222222222222222222222222222222222260c052600a60e0526001600160401b0381166101005260a05160408051637e062a3560e11b815290519293506001600160a01b039091169163fc0c546a916004808201926020929091908290030181865afa158015620001b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001d89190620002b8565b6001600160a01b031661012052620001f96001600160401b03841662000221565b6001600160a01b031661014052505f0b610160526001600160401b03166101805250620002fd565b5f6200023b6001600160401b0383166001609d1b620002dd565b92915050565b6001600160a01b038116811462000256575f80fd5b50565b5f805f606084860312156200026c575f80fd5b8351620002798162000241565b60208501519093506001600160401b038116811462000296575f80fd5b809250506040840151805f0b8114620002ad575f80fd5b809150509250925092565b5f60208284031215620002c9575f80fd5b8151620002d68162000241565b9392505050565b808201808211156200023b57634e487b7160e01b5f52601160045260245ffd5b60805160a05160c05160e051610100516101205161014051610160516101805161286e620003d35f395f81816105fd01528181611737015261182501525f8181610496015261175801525f81816105ca0152818161177901526117fa01525f818161052a0152818161170a01526117d701525f81816104c901528181611857015261198901525f81816103b4015261187801525f81816103050152818161189901526118e601525f818161022a0152818161095e01528181611008015261107f01525f81816103810152610f98015261286e5ff3fe60806040526004361061017b575f3560e01c8063a4e7f8bd116100d1578063cebb51201161007c578063f2f7141f11610057578063f2f7141f146105a6578063f34ec5e0146105b9578063fa69dc7b146105ec575f80fd5b8063cebb51201461054c578063d0a1026014610560578063d3af0cc114610573575f80fd5b8063b20bffdc116100ac578063b20bffdc146104b8578063c37bcb4c14610504578063cc4aa20414610519575f80fd5b8063a4e7f8bd14610406578063a69610d114610433578063a754403e14610485575f80fd5b806320d2c951116101315780636fad06f51161010c5780636fad06f51461037057806371139d6c146103a35780639dbfb13f146103d6575f80fd5b806320d2c951146102d5578063574ad4a8146102f4578063634d45b214610327575f80fd5b80631cd66690116101615780631cd66690146101c65780631ed0993d146102195780631f8164d914610271575f80fd5b806303a9437e1461018657806319180904146101b1575f80fd5b3661018257005b5f80fd5b348015610191575f80fd5b5061019a601281565b6040515f9190910b81526020015b60405180910390f35b6101c46101bf366004611dbf565b61061f565b005b3480156101d1575f80fd5b506101e56101e0366004611e0c565b610a07565b604080518251815260208084015167ffffffffffffffff9081169183019190915292820151909216908201526060016101a8565b348015610224575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101a8565b34801561027c575f80fd5b506102a47f010000060000000000000000000000000000000000000000000000000000000081565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101a8565b3480156102e0575f80fd5b50620249f05b6040519081526020016101a8565b3480156102ff575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610332575f80fd5b50610346610341366004611ea4565b610a45565b6040805192835273ffffffffffffffffffffffffffffffffffffffff9091166020830152016101a8565b34801561037b575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103ae575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e1575f80fd5b506103f56103f0366004611ee3565b610a9b565b6040519051151581526020016101a8565b348015610411575f80fd5b50610425610420366004611dbf565b610bf5565b6040516101a8929190611fde565b34801561043e575f80fd5b5061045261044d366004611fff565b610df9565b60408051825167ffffffffffffffff908116825260208085015182169083015292820151909216908201526060016101a8565b348015610490575f80fd5b5061019a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104c3575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b60405167ffffffffffffffff90911681526020016101a8565b34801561050f575f80fd5b5062030d406102e6565b348015610524575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b348015610557575f80fd5b506102e6604081565b6101c461056e366004612036565b610f78565b34801561057e575f80fd5b5061019a7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe81565b6101c46105b43660046120d0565b611423565b3480156105c4575f80fd5b5061024c7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f7575f80fd5b506104eb7f000000000000000000000000000000000000000000000000000000000000000081565b5f818152600160208190526040808320815161012081018352815463ffffffff1692810192835292810154606084015260028101546080840152600381015460a0840152600481018054919284929091849160c085019190610680906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546106ac906120fa565b80156106f75780601f106106ce576101008083540402835291602001916106f7565b820191905f5260205f20905b8154815290600101906020018083116106da57829003601f168201915b50505050508152602001600582018054610710906120fa565b80601f016020809104026020016040519081016040528092919081815260200182805461073c906120fa565b80156107875780601f1061075e57610100808354040283529160200191610787565b820191905f5260205f20905b81548152906001019060200180831161076a57829003601f168201915b505050505081526020016006820180546107a0906120fa565b80601f01602080910402602001604051908101604052809291908181526020018280546107cc906120fa565b80156108175780601f106107ee57610100808354040283529160200191610817565b820191905f5260205f20905b8154815290600101906020018083116107fa57829003601f168201915b5050509190925250505081526007919091015460209091015280515190915063ffffffff165f0361087c576040517f0b948634000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b5f828152600160208190526040822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016815590810182905560028101829055600381018290559081816108d56004830182611d6d565b6108e2600583015f611d6d565b6108ef600683015f611d6d565b5050600782015f905550505f34826020015161090b9190612172565b82516040805180820182528381525f602082015290517fc7c7f5b300000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169263c7c7f5b3928592610995923290600401612185565b60c06040518083038185885af11580156109b1573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906109d69190612271565b505060405183907fd41d02272333251e6367f747c63d5cc227dcac6b0c799067569e80a30f9da369905f90a2505050565b604080516060810182525f8082526020820181905291810182905290610a2d8487610df9565b519050610a3b83828761147b565b9695505050505050565b5f8060408314610a84576040517f2b701db100000000000000000000000000000000000000000000000000000000815260048101849052602401610873565b610a90838501856122da565b909590945092505050565b60408051602081019091525f81526040805173ffffffffffffffffffffffffffffffffffffffff841660208201525f9182916108109101604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610b0a916122fd565b5f60405180830381855afa9150503d805f8114610b42576040519150601f19603f3d011682016040523d82523d5f602084013e610b47565b606091505b509150915081610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f436f726520757365722065786973747320707265636f6d70696c652063616c6c60448201527f206661696c6564000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610bed9190612318565b949350505050565b600160208181525f928352604092839020835160e081018552815463ffffffff16815292810154918301919091526002810154928201929092526003820154606082015260048201805483916080840191610c4f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7b906120fa565b8015610cc65780601f10610c9d57610100808354040283529160200191610cc6565b820191905f5260205f20905b815481529060010190602001808311610ca957829003601f168201915b50505050508152602001600582018054610cdf906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0b906120fa565b8015610d565780601f10610d2d57610100808354040283529160200191610d56565b820191905f5260205f20905b815481529060010190602001808311610d3957829003601f168201915b50505050508152602001600682018054610d6f906120fa565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9b906120fa565b8015610de65780601f10610dbd57610100808354040283529160200191610de6565b820191905f5260205f20905b815481529060010190602001808311610dc957829003601f168201915b5050509190925250505060079091015482565b604080516060810182525f80825260208201819052918101919091526040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff8416918101919091525f90819061080190606001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610e8a916122fd565b5f60405180830381855afa9150503d805f8114610ec2576040519150601f19603f3d011682016040523d82523d5f602084013e610ec7565b606091505b509150915081610f59576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f53706f7442616c616e636520707265636f6d70696c652063616c6c206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610873565b80806020019051810190610f6d9190612366565b925050505b92915050565b610f80611520565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610fef576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8673ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146110b4576040517fc8b356c600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015288166024820152604401610873565b5f6110bf8686611561565b90505f6110cc8787611580565b6040517f634d45b2000000000000000000000000000000000000000000000000000000008152909150309063634d45b29061110b9084906004016123b8565b6040805180830381865afa925050508015611161575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261115e918101906123ca565b60015b6112dd576111aa6040518060e001604052805f63ffffffff1681526020015f80191681526020015f81526020015f81526020016060815260200160608152602001606081525090565b6111b488886115ca565b63ffffffff1681526111c688886115ec565b60208281019190915260408083018590528051808201825283815234818401525f8c81526001808552908390208251805182547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff90911617825594850151918101919091559183015160028301556060830151600383015560808301519092908290600482019061125d9082612438565b5060a082015160058201906112729082612438565b5060c082015160068201906112879082612438565b50505060208201518160070155905050887f387fc8f821460fa8221428c9f4dc1f6d5db4f6a0a01f33dbeaa8cebd95e5d144826020015134856040516112cf93929190612554565b60405180910390a25061140f565b81341015611320576040517f7cb769dc00000000000000000000000000000000000000000000000000000000815234600482015260248101839052604401610873565b5f80341161133157620249f0611336565b62030d405b9050805a101561137e575a6040517f23e228cb000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610873565b6040517ff2f7141f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260248101869052309063f2f7141f9034906044015f604051808303818588803b1580156113eb575f80fd5b505af1935050505080156113fd575060015b61140b5761140b82866115fb565b5050505b505061141a60015f55565b50505050505050565b33301461145e576040517fa19dbf00000000000000000000000000000000000000000000000000000000008152336004820152602401610873565b6114688282611731565b34156114775761147782611851565b5050565b604080516060810182525f80825260208201819052918101919091525f805f845f0b13156114b8576114ae8686866119b2565b90925090506114f2565b6114ec86866114e7877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61257b565b611a4d565b90925090505b6040805160608101825292835267ffffffffffffffff91821660208401529085169082015290509392505050565b60025f540361155b576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f55565b5f611570602c600c848661259e565b611579916125c5565b9392505050565b606061158f82604c818661259e565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b5f6115d9600c6008848661259e565b6115e291612601565b60e01c9392505050565b5f611570604c602c848661259e565b34156116ea575f8273ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f8114611657576040519150601f19603f3d011682016040523d82523d5f602084013e61165c565b606091505b50509050806116e8576040515f90329034908381818185875af1925050503d805f81146116a4576040519150601f19603f3d011682016040523d82523d5f602084013e6116a9565b606091505b50509050806116e6576040517f77479d32000000000000000000000000000000000000000000000000000000008152346004820152602401610873565b505b505b80156114775761147773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168383611aca565b5f61179e7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085610a07565b80519091501561184c575f6117b7848360200151611b57565b825190915061181f9073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016907f000000000000000000000000000000000000000000000000000000000000000090611aca565b61184a847f000000000000000000000000000000000000000000000000000000000000000083611b9e565b505b505050565b5f6118be7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000034610a07565b8051909150156114775780516040515f9173ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016918381818185875af1925050503d805f811461193d576040519150601f19603f3d011682016040523d82523d5f602084013e611942565b606091505b50509050806119835781516040517f77479d320000000000000000000000000000000000000000000000000000000081526004810191909152602401610873565b61184c837f00000000000000000000000000000000000000000000000000000000000000008460200151611b9e565b5f80806119c084600a612767565b90505f6119d78267ffffffffffffffff8816612775565b90508187816119e8576119e861278c565b068703935080841115611a31576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b818481611a4057611a4061278c565b0492505050935093915050565b5f8080611a5b84600a612767565b90505f611a728267ffffffffffffffff88166127b9565b905086935080871115611abb576040517f9a0c830f0000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401610873565b81840292505050935093915050565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261184c908490611cce565b5f611b6183610a9b565b51611b98576040517fbdcf14ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b6040805173ffffffffffffffffffffffffffffffffffffffff8516602082015267ffffffffffffffff84811682840152831660608083019190915282518083039091018152608082019092525f90611c1c907f010000060000000000000000000000000000000000000000000000000000000090849060a0016127f1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f17938e130000000000000000000000000000000000000000000000000000000082529150733333333333333333333333333333333333333333906317938e1390611c9a9084906004016123b8565b5f604051808303815f87803b158015611cb1575f80fd5b505af1158015611cc3573d5f803e3d5ffd5b505050505050505050565b5f8060205f8451602086015f885af180611ced576040513d5f823e3d81fd5b50505f513d91508115611d04578060011415611d1e565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561184a576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610873565b508054611d79906120fa565b5f825580601f10611d88575050565b601f0160209004905f5260205f2090810190611da49190611da7565b50565b5b80821115611dbb575f8155600101611da8565b5090565b5f60208284031215611dcf575f80fd5b5035919050565b67ffffffffffffffff81168114611da4575f80fd5b73ffffffffffffffffffffffffffffffffffffffff81168114611da4575f80fd5b5f805f8060808587031215611e1f575f80fd5b8435611e2a81611dd6565b935060208501355f81900b8114611e3f575f80fd5b92506040850135611e4f81611deb565b9396929550929360600135925050565b5f8083601f840112611e6f575f80fd5b50813567ffffffffffffffff811115611e86575f80fd5b602083019150836020828501011115611e9d575f80fd5b9250929050565b5f8060208385031215611eb5575f80fd5b823567ffffffffffffffff811115611ecb575f80fd5b611ed785828601611e5f565b90969095509350505050565b5f60208284031215611ef3575f80fd5b813561157981611deb565b5f5b83811015611f18578181015183820152602001611f00565b50505f910152565b5f8151808452611f37816020860160208601611efe565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301525f608082015160e06080850152611fab60e0850182611f20565b905060a083015184820360a0860152611fc48282611f20565b91505060c083015184820360c0860152610f6d8282611f20565b604081525f611ff06040830185611f69565b90508260208301529392505050565b5f8060408385031215612010575f80fd5b823561201b81611deb565b9150602083013561202b81611dd6565b809150509250929050565b5f805f805f805f60a0888a03121561204c575f80fd5b873561205781611deb565b965060208801359550604088013567ffffffffffffffff8082111561207a575f80fd5b6120868b838c01611e5f565b909750955060608a0135915061209b82611deb565b909350608089013590808211156120b0575f80fd5b506120bd8a828b01611e5f565b989b979a50959850939692959293505050565b5f80604083850312156120e1575f80fd5b82356120ec81611deb565b946020939093013593505050565b600181811c9082168061210e57607f821691505b602082108103611b98577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610f7257610f72612145565b608081525f6121976080830186611f69565b9050835160208301526020840151604083015273ffffffffffffffffffffffffffffffffffffffff83166060830152949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561221e5761221e6121ce565b60405290565b5f60408284031215612234575f80fd5b6040516040810181811067ffffffffffffffff82111715612257576122576121ce565b604052825181526020928301519281019290925250919050565b5f8082840360c0811215612283575f80fd5b6080811215612290575f80fd5b506122996121fb565b8351815260208401516122ab81611dd6565b60208201526122bd8560408601612224565b604082015291506122d18460808501612224565b90509250929050565b5f80604083850312156122eb575f80fd5b82359150602083013561202b81611deb565b5f825161230e818460208701611efe565b9190910192915050565b5f60208284031215612328575f80fd5b6040516020810181811067ffffffffffffffff8211171561234b5761234b6121ce565b6040528251801515811461235d575f80fd5b81529392505050565b5f60608284031215612376575f80fd5b61237e6121fb565b825161238981611dd6565b8152602083015161239981611dd6565b602082015260408301516123ac81611dd6565b60408201529392505050565b602081525f6115796020830184611f20565b5f80604083850312156123db575f80fd5b82519150602083015161202b81611deb565b601f82111561184c57805f5260205f20601f840160051c810160208510156124125750805b601f840160051c820191505b81811015612431575f815560010161241e565b5050505050565b815167ffffffffffffffff811115612452576124526121ce565b6124668161246084546120fa565b846123ed565b602080601f8311600181146124b8575f84156124825750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561254c565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612504578886015182559484019460019091019084016124e5565b508582101561254057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b838152826020820152606060408201525f6125726060830184611f20565b95945050505050565b5f825f0b825f0b02805f0b915080821461259757612597612145565b5092915050565b5f80858511156125ac575f80fd5b838611156125b8575f80fd5b5050820193919092039150565b80356020831015610f72577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156126415780818660040360031b1b83161692505b505092915050565b600181815b808511156126a257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561268857612688612145565b8085161561269557918102915b93841c939080029061264e565b509250929050565b5f826126b857506001610f72565b816126c457505f610f72565b81600181146126da57600281146126e457612700565b6001915050610f72565b60ff8411156126f5576126f5612145565b50506001821b610f72565b5060208310610133831016604e8410600b8410161715612723575081810a610f72565b61272d8383612649565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561275f5761275f612145565b029392505050565b5f61157960ff8416836126aa565b8082028115828204841417610f7257610f72612145565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826127ec577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b7fffffffff00000000000000000000000000000000000000000000000000000000831681525f825161282a816004850160208701611efe565b91909101600401939250505056fea26469706673582212209aa6ef159b4233fc36e84c55a9bd5b1a107e3dd2503bc35f1bbf969465998faa64736f6c634300081600336080604052600c805460ff19166001179055601f805462f701ff600160581b036001600160581b0319909116179055348015610039575f80fd5b50612161806100475f395ff3fe608060405234801561000f575f80fd5b506004361061012f575f3560e01c806385226c81116100ad578063b0464fdc1161007d578063ba414fa611610063578063ba414fa614610210578063e20c9f7114610228578063fa7626d414610230575f80fd5b8063b0464fdc14610200578063b5508aa914610208575f80fd5b806385226c81146101c6578063867309a0146101db578063916a17c6146101e3578063a95fc549146101f8575f80fd5b80633f7286f41161010257806366d9a9a0116100e857806366d9a9a01461018b5780636f3b738f146101a05780637da665b2146101b3575f80fd5b80633f7286f41461017057806358d2244d14610178575f80fd5b80630a9254e4146101335780631ed7831c146101355780632ade3880146101535780633e5e3c2314610168575b5f80fd5b005b61013d61023d565b60405161014a91906118e9565b60405180910390f35b61015b6102aa565b60405161014a91906119ad565b61013d6103f3565b61013d61045e565b610133610186366004611acf565b6104c9565b610193610682565b60405161014a9190611b6c565b6101336101ae366004611c0f565b6107fb565b6101336101c1366004611acf565b610836565b6101ce61099f565b60405161014a9190611c28565b610133610a6a565b6101eb610aa4565b60405161014a9190611ca8565b610133610ba7565b6101eb610bd3565b6101ce610cd6565b610218610da1565b604051901515815260200161014a565b61013d610e71565b601f546102189060ff1681565b606060168054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156103ea575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b828210156103d3578382905f5260205f2001805461034890611d42565b80601f016020809104026020016040519081016040528092919081815260200182805461037490611d42565b80156103bf5780601f10610396576101008083540402835291602001916103bf565b820191905f5260205f20905b8154815290600101906020018083116103a257829003601f168201915b50505050508152602001906001019061032b565b5050505081525050815260200190600101906102cd565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575050505050905090565b601f546104e2905f83810b916101009004810b90610edc565b6040517f4c63e56200000000000000000000000000000000000000000000000000000000815264e8d4a5100085116004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e562906024015f6040518083038186803b15801561054d575f80fd5b505afa15801561055f573d5f803e3d5ffd5b505050505f817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105909190611dc0565b61059b90600a611f01565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d634c63e5626105cb8367ffffffffffffffff8716611f3c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815290871060048201526024015f6040518083038186803b158015610618575f80fd5b505afa15801561062a573d5f803e3d5ffd5b505050505f61063a858585610fd8565b905061067b815f015183836020015167ffffffffffffffff1661065d9190611f3c565b6040518060600160405280603781526020016120f56037913961107d565b5050505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156103ea578382905f5260205f2090600202016040518060400160405290815f820180546106d590611d42565b80601f016020809104026020016040519081016040528092919081815260200182805461070190611d42565b801561074c5780601f106107235761010080835404028352916020019161074c565b820191905f5260205f20905b81548152906001019060200180831161072f57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156107e357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116107905790505b505050505081525050815260200190600101906106a5565b5f61080582611102565b90505f61081182611131565b67ffffffffffffffff169050610831818467ffffffffffffffff16611166565b505050565b601f5461084f905f83810b91620100009004810b610edc565b6040517f4c63e56200000000000000000000000000000000000000000000000000000000815264e8d4a5100085116004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e562906024015f6040518083038186803b1580156108ba575f80fd5b505afa1580156108cc573d5f803e3d5ffd5b505050505f81600a6108de9190611f01565b9050737109709ecfa91a80626ff3989d68f67f5b1dd12d634c63e56261090e8367ffffffffffffffff8716611f4f565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815290871060048201526024015f6040518083038186803b15801561095b575f80fd5b505afa15801561096d573d5f803e3d5ffd5b505050505f61097d858585610fd8565b8051602082015191925061067b9161065d9067ffffffffffffffff1685611f4f565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156103ea578382905f5260205f200180546109df90611d42565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0b90611d42565b8015610a565780601f10610a2d57610100808354040283529160200191610a56565b820191905f5260205f20905b815481529060010190602001808311610a3957829003601f168201915b5050505050815260200190600101906109c2565b7320000000000000000000000000000000000000015f610a8982611131565b67ffffffffffffffff169050610aa0816001611166565b5050565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156103ea575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610b8f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b3c5790505b50505050508152505081526020019060010190610ac7565b60015f610bb382611102565b9050610aa0817320000000000000000000000000000000000000016111ea565b6060601c805480602002602001604051908101604052809291908181526020015f905b828210156103ea575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015610cbe57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610c6b5790505b50505050508152505081526020019060010190610bf6565b60606019805480602002602001604051908101604052809291908181526020015f905b828210156103ea578382905f5260205f20018054610d1690611d42565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4290611d42565b8015610d8d5780601f10610d6457610100808354040283529160200191610d8d565b820191905f5260205f20905b815481529060010190602001808311610d7057829003601f168201915b505050505081526020019060010190610cf9565b6008545f9060ff1615610db8575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015610e46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6a9190611f66565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156102a057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610275575050505050905090565b5f610ee8848484611258565b604080518082018252600c81527f426f756e6420726573756c740000000000000000000000000000000000000000602082015290517fa322c40e00000000000000000000000000000000000000000000000000000000815260048101839052919250610fd191737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a322c40e906024015f60405180830381865afa158015610f87573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610fcc9190810190611faa565b6114e4565b9392505050565b604080516060810182525f80825260208201819052918101919091525f805f845f0b13156110155761100b868686611575565b909250905061104f565b6110498686611044877fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611dc0565b611610565b90925090505b6040805160608101825292835267ffffffffffffffff91821660208401529085169082015290509392505050565b6040517f88b44c85000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d906388b44c85906110d190869086908690600401612070565b5f6040518083038186803b1580156110e7575f80fd5b505afa1580156110f9573d5f803e3d5ffd5b50505050505050565b5f61112b67ffffffffffffffff8316732000000000000000000000000000000000000000612097565b92915050565b5f61112b73200000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff84166120aa565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015b5f6040518083038186803b1580156111d0575f80fd5b505afa1580156111e2573d5f803e3d5ffd5b505050505050565b6040517f515361f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f6906044016111ba565b5f818313156112ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f5374645574696c7320626f756e6428696e743235362c696e743235362c696e7460448201527f323536293a204d6178206973206c657373207468616e206d696e2e000000000060648201526084015b60405180910390fd5b5f808512611325576113207f800000000000000000000000000000000000000000000000000000000000000086612097565b61135c565b600161135286197f80000000000000000000000000000000000000000000000000000000000000006120aa565b61135c91906120aa565b90505f808512611395576113907f800000000000000000000000000000000000000000000000000000000000000086612097565b6113cc565b60016113c286197f80000000000000000000000000000000000000000000000000000000000000006120aa565b6113cc91906120aa565b90505f808512611405576114007f800000000000000000000000000000000000000000000000000000000000000086612097565b61143c565b600161143286197f80000000000000000000000000000000000000000000000000000000000000006120aa565b61143c91906120aa565b90505f61144a84848461168d565b90507f800000000000000000000000000000000000000000000000000000000000000081106114a25761149d7f8000000000000000000000000000000000000000000000000000000000000000826120aa565b6114d8565b6114cc817f80000000000000000000000000000000000000000000000000000000000000006120aa565b6114d890196001612097565b98975050505050505050565b610aa082826040516024016114fa9291906120bd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4b5c4277000000000000000000000000000000000000000000000000000000001790526118bd565b5f808061158384600a611f01565b90505f61159a8267ffffffffffffffff8816611f4f565b90508187816115ab576115ab611f0f565b0687039350808411156115f4576040517f9a0c830f00000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016112e5565b81848161160357611603611f0f565b0492505050935093915050565b5f808061161e84600a611f01565b90505f6116358267ffffffffffffffff8816611f3c565b90508693508087111561167e576040517f9a0c830f00000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016112e5565b81840292505050935093915050565b5f8183111561171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e000060648201526084016112e5565b82841015801561172e5750818411155b1561173a575082610fd1565b5f61174584846120aa565b611750906001612097565b90506003851115801561176257508481115b15611779576117718585612097565b915050610fd1565b6117a460037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120aa565b85101580156117db57506117d8857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120aa565b81115b156118145761180a857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6120aa565b61177190846120aa565b82851115611867575f61182784876120aa565b90505f61183483836120e1565b9050805f0361184857849350505050610fd1565b60016118548288612097565b61185e91906120aa565b935050506118b5565b838510156118b5575f61187a86866120aa565b90505f61188783836120e1565b9050805f0361189b57859350505050610fd1565b6118a581866120aa565b6118b0906001612097565b935050505b509392505050565b6118c6816118c9565b50565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b602080825282518282018190525f9190848201906040850190845b8181101561193657835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101611904565b50909695505050505050565b5f5b8381101561195c578181015183820152602001611944565b50505f910152565b5f815180845261197b816020860160208601611942565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b84811015611aa4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a84030186528151805173ffffffffffffffffffffffffffffffffffffffff168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b81811015611a8e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888503018352611a7c848651611964565b948d01949350918c0191600101611a42565b50505096890196935050908701906001016119d2565b50909998505050505050505050565b803567ffffffffffffffff81168114611aca575f80fd5b919050565b5f805f60608486031215611ae1575f80fd5b83359250611af160208501611ab3565b91506040840135805f0b8114611b05575f80fd5b809150509250925092565b5f815180845260208085019450602084015f5b83811015611b615781517fffffffff000000000000000000000000000000000000000000000000000000001687529582019590820190600101611b23565b509495945050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c01577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089840301855281518051878552611bd588860182611964565b91890151858303868b0152919050611bed8183611b10565b968901969450505090860190600101611b93565b509098975050505050505050565b5f60208284031215611c1f575f80fd5b610fd182611ab3565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015611c9b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452611c89858351611964565b94509285019290850190600101611c4f565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c01578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff168452870151878401879052611d2f87850182611b10565b9588019593505090860190600101611ccf565b600181811c90821680611d5657607f821691505b602082108103611d8d577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f825f0b825f0b02805f0b9150808214611ddc57611ddc611d93565b5092915050565b600181815b80851115611e3c57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611e2257611e22611d93565b80851615611e2f57918102915b93841c9390800290611de8565b509250929050565b5f82611e525750600161112b565b81611e5e57505f61112b565b8160018114611e745760028114611e7e57611e9a565b600191505061112b565b60ff841115611e8f57611e8f611d93565b50506001821b61112b565b5060208310610133831016604e8410600b8410161715611ebd575081810a61112b565b611ec78383611de3565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115611ef957611ef9611d93565b029392505050565b5f610fd160ff841683611e44565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82611f4a57611f4a611f0f565b500490565b808202811582820484141761112b5761112b611d93565b5f60208284031215611f76575f80fd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215611fba575f80fd5b815167ffffffffffffffff80821115611fd1575f80fd5b818401915084601f830112611fe4575f80fd5b815181811115611ff657611ff6611f7d565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561203c5761203c611f7d565b81604052828152876020848701011115612054575f80fd5b612065836020830160208801611942565b979650505050505050565b838152826020820152606060408201525f61208e6060830184611964565b95945050505050565b8082018082111561112b5761112b611d93565b8181038181111561112b5761112b611d93565b604081525f6120cf6040830185611964565b828103602084015261208e8185611964565b5f826120ef576120ef611f0f565b50069056fe65766d20616e6420636f726520616d6f756e74732073686f756c6420646966666572206279206120666163746f72206f66207363616c65a2646970667358221220991e3aa45ec6f9c920e1d444b7b698ba88211f2d31e0c19ab8324afa7f234e5864736f6c63430008160033a2646970667358221220c176f74d1856c29aa3cee6aae6d6c61e460e19742ee93aa5215b5a8d3867451764736f6c63430008160033","sourceMap":"817:4715:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1799:55:83;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;379:18:91;424:15;;;406:34;;476:15;;;;471:2;456:18;;449:43;342:18;1799:55:83;;;;;;;;885:98:81;;;:::i;:::-;;2731:921;;;:::i;2907:134:47:-;;;:::i;:::-;;;;;;;:::i;2006:21:83:-;;;;;;;;;;;;;;;1363:10:91;1351:23;;;1333:42;;1321:2;1306:18;2006:21:83;1189:192:91;3823:151:47;;;:::i;:::-;;;;;;;:::i;2060:32:83:-;;;;;-1:-1:-1;;;;;2060:32:83;;;;;;-1:-1:-1;;;;;4002:55:91;;;3984:74;;3972:2;3957:18;2060:32:83;3838:226:91;3684:133:47;;;:::i;3385:141::-;;;:::i;5370:160:81:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1747:46:83:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;5068:10:91;5105:15;;;5087:34;;5157:15;;;;5152:2;5137:18;;5130:43;5031:18;1747:46:83;4888:291:91;3193:186:47;;;:::i;:::-;;;;;;;:::i;850:23:83:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;850:23:83;;;;;;;7175:18:91;7163:31;;;7145:50;;7091:4;7231:21;;;;7226:2;7211:18;;7204:49;-1:-1:-1;;;;;7289:55:91;7269:18;;;7262:83;7133:2;7118:18;850:23:83;6951:400:91;989:752:81;;;:::i;1204:100:83:-;;1262:42;1204:100;;1007:84;;1049:42;1007:84;;3047:140:47;;;:::i;:::-;;;;;;;:::i;1698:42:83:-;;;;;;;;;;;;8397:18:91;8385:31;;;8367:50;;8355:2;8340:18;1698:42:83;8223:200:91;3532:146:47;;;:::i;:::-;;;;;;;:::i;2033:21:83:-;;;;;;;;;;;;879:18;;;;;-1:-1:-1;;;;;879:18:83;;;904:46;;;;;-1:-1:-1;;;;;904:46:83;;;2754:147:47;;;:::i;2459:141::-;;;:::i;1243:204:42:-;;;:::i;:::-;;;10269:14:91;;10262:22;10244:41;;10232:2;10217:18;1243:204:42;10104:187:91;1097:101:83;;1156:42;1097:101;;1654:38;;;;;;;;;;;;1311:94;;1363:42;1311:94;;1411;;1463:42;1411:94;;1907:40;;;;;-1:-1:-1;;;;;1907:40:83;;;820:24;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;820:24:83;;;1953:46;;;;;-1:-1:-1;;;;;1953:46:83;;;1861:40;;;;;-1:-1:-1;;;;;1861:40:83;;;2606:142:47;;;:::i;1747:978:81:-;;;:::i;3658:1571::-;;;;;;:::i;:::-;;:::i;1065:26:54:-;;;;;;;;;956:44:83;;;;;-1:-1:-1;;;;;956:44:83;;;885:98:81;928:13;:11;:13::i;:::-;951:14;:25;;;;968:8;951:25;;;885:98::o;2731:921::-;2902:3;;2916:19;;2938:14;;2889:64;;-1:-1:-1;;;;;2902:3:81;;;;2916:19;;2938:14;;;;;2889:4;:64::i;:::-;2990:22;;;2964:23;2990:22;;;11062:36:91;;;11114:18;;;11107:30;;;;11173:1;11153:18;;;11146:29;11211:7;11191:18;;;11184:35;11236:19;;2990:22:81;;;;;;-1:-1:-1;;2990:22:81;;;;;;3105:7;;3126:14;;3188:5;;2990:22;;-1:-1:-1;3023:25:81;;3051:166;;3023:25;;3105:7;;;;;;;;3126:14;;;;;;-1:-1:-1;;;;;3188:5:81;3171:23;3196:10;3154:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3051:25;:166::i;:::-;3242:17;;3228:32;;;;;-1:-1:-1;;;;;3242:17:81;;;3228:32;;;3984:74:91;3023:194:81;;-1:-1:-1;336:42:41;;3228:13:81;;3957:18:91;;3228:32:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3270:19:81;;3308:3;;3270:85;;;;;-1:-1:-1;;;;;3270:19:81;;;;-1:-1:-1;3270:29:81;;-1:-1:-1;3270:85:81;;3308:3;;;;3270:19;;3326:12;;3340:10;;3270:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:42:41;-1:-1:-1;;;;;3365:12:81;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3445:19:81;;:46;;;;;3391:32;3445:46;;;12517:25:91;;;3391:32:81;-1:-1:-1;3391:32:81;;-1:-1:-1;;;;;;3445:19:81;;;;:34;;12490:18:91;;3445:46:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3445:46:81;;;;;;;;;;;;:::i;:::-;3510:18;;;;3547:5;;3510:18;;-1:-1:-1;3390:101:81;;-1:-1:-1;3501:53:81;;-1:-1:-1;;;;;3547:5:81;3501:8;:53::i;:::-;3573:24;;;;3599:14;;3564:50;;3573:24;3599:14;;;;;3564:8;:50::i;:::-;3624:21;3633:8;3643:1;3624:8;:21::i;:::-;2793:859;;;;2731:921::o;2907:134:47:-;2954:33;3018:16;2999:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2999:35:47;;;;;;;;;;;;;;;;;;;;;;;2907:134;:::o;3823:151::-;3872:42;3948:19;3926:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3926:41:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3823:151;:::o;3684:133::-;3730:33;3794:16;3775:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3775:35:47;;;;;;;;;;;;;;;;;;;;;;3684:133;:::o;3385:141::-;3433:35;3501:18;3480:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3480:39:47;;;;;;;;;;;;;;;;;;;;;;3385:141;:::o;5370:160:81:-;5449:12;5480:43;5510:12;;5480:29;:43::i;:::-;5473:50;;5370:160;;;;;:::o;3193:186:47:-;3249:56;3346:26;3317:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;989:752:81;1139:3;;1153:19;;1175:14;;1126:64;;-1:-1:-1;;;;;1139:3:81;;;;1153:19;;1175:14;;;;;1126:4;:64::i;:::-;1201:30;;;;;;;;:25;:30;;;1280:17;;1317;;;;;;;1201:30;;-1:-1:-1;;;;;1280:17:81;;;1272:34;;336:42:41;;1317:15:81;;:17;;;;;;;;;;;1201:25;336:42:41;1317:17:81;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1358:17:81;;1344:32;;;;;-1:-1:-1;;;;;1358:17:81;;;1344:32;;;3984:74:91;336:42:41;;-1:-1:-1;1344:13:81;;-1:-1:-1;3957:18:91;;1344:32:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1386:19:81;;1424:14;;1449:3;;1386:110;;;;;-1:-1:-1;;;;;1386:19:81;;;;-1:-1:-1;1386:29:81;;-1:-1:-1;1424:14:81;;;;;1386:110;;1449:3;;;1386:19;;1467:12;;1481:10;;1386:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:42:41;-1:-1:-1;;;;;1506:12:81;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1540:3:81;;1562:19;;1540:43;;;;;-1:-1:-1;;;;;1562:19:81;;;1540:43;;;3984:74:91;1531:69:81;;-1:-1:-1;1540:3:81;;;-1:-1:-1;1540:13:81;;3957:18:91;;1540:43:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1585:14;;;;;;;1531:8;:69::i;:::-;1627:19;;1610:49;;-1:-1:-1;;;;;1627:19:81;1619:36;1627:19;1610:8;:49::i;:::-;1686:17;;1669:65;;-1:-1:-1;;;;;1686:17:81;1678:34;1714:19;1669:8;:65::i;:::-;1030:711;;989:752::o;3047:140:47:-;3095:34;3162:18;3141:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:146;3580:40;3653:18;3632:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3632:39:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2754:147;2803:40;2876:18;2855:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2855:39:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:141;2508:34;2575:18;2554:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:42;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:42;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;16279:74:91;;;1398:17:42;16369:18:91;;;16362:34;1428:1:42;;1377:7;;16252:18:91;;1377:39:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2606:142:47:-;2655:35;2723:18;2702:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2702:39:47;;;;;;;;;;;;;;;;;;;;;;2606:142;:::o;1747:978:81:-;1913:3;;1927:19;;1949:14;;1900:64;;-1:-1:-1;;;;;1913:3:81;;;;1927:19;;1949:14;;;;;1900:4;:64::i;:::-;2012:14;;2028:18;;;;;2043:2;2028:18;;;12517:25:91;1975:23:81;;2012:14;;;336:42:41;;2028:14:81;;12490:18:91;;2028::81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2028:18:81;;;;;;;;;;;;:::i;:::-;2001:46;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2001:46:81;;;;;;2140:7;;2161:14;;2223:5;;2001:46;;-1:-1:-1;2058:25:81;;2086:166;;2058:25;;2140:7;;;;;;;;2161:14;;;;;;-1:-1:-1;;;;;2223:5:81;2206:23;5235:129;2086:166;2277:17;;2263:32;;;;;-1:-1:-1;;;;;2277:17:81;;;2263:32;;;3984:74:91;2058:194:81;;-1:-1:-1;336:42:41;;2263:13:81;;3957:18:91;;2263:32:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2305:19:81;;2343:14;;2368:3;;2305:110;;;;;-1:-1:-1;;;;;2305:19:81;;;;-1:-1:-1;2305:29:81;;-1:-1:-1;2343:14:81;;;;;2305:110;;2368:3;;;2305:19;;2386:12;;2400:10;;2305:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:42:41;-1:-1:-1;;;;;2425:12:81;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2505:19:81;;:46;;;;;2451:32;2505:46;;;12517:25:91;;;2451:32:81;-1:-1:-1;2451:32:81;;-1:-1:-1;;;;;;2505:19:81;;;;:34;;12490:18:91;;2505:46:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2505:46:81;;;;;;;;;;;;:::i;:::-;2570:18;;;;2607:5;;2570:18;;-1:-1:-1;2450:101:81;;-1:-1:-1;2561:53:81;;-1:-1:-1;;;;;2607:5:81;3501:8;:53::i;2561:::-;2633:24;;;;2659:14;;2624:50;;2633:24;2659:14;;;;;2624:8;:50::i;:::-;2703:14;;2684:34;;2693:8;;2703:14;;2684:8;:34::i;3658:1571::-;3755:44;3761:5;3755:44;;3768:1;3790:8;3771:16;:27;;;;:::i;:::-;3755:44;;:5;:44::i;:::-;3841:14;;3740:60;;-1:-1:-1;3811:27:81;;3841:22;;3740:60;;3841:14;;;;;:22;:::i;:::-;3886:3;;3900:19;;3811:52;;;;;;-1:-1:-1;3873:69:81;;-1:-1:-1;;;;;3886:3:81;;;;3900:19;3811:52;3873:4;:69::i;:::-;3953:26;336:42:41;-1:-1:-1;;;;;3982:16:81;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4010:92;;;;;-1:-1:-1;;;;;18510:55:91;;4010:92:81;;;18492:74:91;4096:5:81;18582:18:91;;;18575:50;3953:47:81;;-1:-1:-1;1262:42:83;;4010:65:81;;18465:18:91;;4010:92:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4157:5:81;:17;4113:29;;-1:-1:-1;4145:30:81;;-1:-1:-1;4157:17:81;;;;;4145:2;:30;:::i;:::-;4274:5;:24;4350:14;;4113:62;;-1:-1:-1;1156:42:83;;4186:74:81;;4274:24;;;-1:-1:-1;;;;;4274:24:81;;4312:17;;;;;4350:38;;4113:62;;4350:14;;;;;:38;:::i;:::-;4186:213;;;;;;;;;;-1:-1:-1;;;;;20663:55:91;;;4186:213:81;;;20645:74:91;20738:18;20792:15;;;20772:18;;;20765:43;20844:15;20824:18;;;20817:43;20618:18;;4186:213:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4447:14:81;;4436:46;;;4447:14;;;;4436:46;;;21043:50:91;-1:-1:-1;;;;;21129:55:91;;21109:18;;;21102:83;4410:23:81;;-1:-1:-1;21016:18:91;;;-1:-1:-1;4436:46:81;;;;;;-1:-1:-1;;4436:46:81;;;;;;4574:7;;4662:5;;4436:46;;-1:-1:-1;4492:25:81;;4520:171;;4492:25;;4574:7;;;;;;;4595:19;;-1:-1:-1;;;;;4662:5:81;4645:23;5235:129;4520:171;4724:3;;4702:27;;;;;-1:-1:-1;;;;;4724:3:81;;;4702:27;;;3984:74:91;4492:199:81;;-1:-1:-1;336:42:41;;4702:13:81;;3957:18:91;;4702:27:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4768:19:81;;4744:86;;12517:25:91;;;-1:-1:-1;;;;;4744:86:81;;;;-1:-1:-1;4768:19:81;;;;-1:-1:-1;4744:86:81;;12505:2:91;12490:18;4744:86:81;;;;;;;4855:17;;4841:32;;;;;-1:-1:-1;;;;;4855:17:81;;;4841:32;;;3984:74:91;336:42:41;;4841:13:81;;3957:18:91;;4841:32:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4883:19:81;;4921:14;;4946:3;;4883:110;;;;;-1:-1:-1;;;;;4883:19:81;;;;-1:-1:-1;4883:29:81;;-1:-1:-1;4921:14:81;;;;;4883:110;;4946:3;;;4883:19;;4964:12;;4978:10;;4883:110;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:42:41;-1:-1:-1;;;;;5003:12:81;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5045:19:81;;5028:49;;-1:-1:-1;;;;;;5045:19:81;5037:36;;-1:-1:-1;5045:19:81;5028:8;:49::i;:::-;5124:14;;5087:52;;-1:-1:-1;;;;;5096:26:81;;;;5124:14;;5087:8;:52::i;:::-;5158:3;;:42;;;;;-1:-1:-1;;;;;4002:55:91;;;5158:42:81;;;3984:74:91;5149:73:81;;5158:3;;:13;;3957:18:91;;5158:42:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5202:19;5149:8;:73::i;:::-;3730:1499;;;;;3658:1571;:::o;2099:2861:83:-;2163:38;;;;;;;;2178:5;2163:38;;2193:5;2163:38;;;;;;;2156:3;-1:-1:-1;2141:19:83;;;:14;:19;;;:60;;:19;:60;;;;2163:38;2141:60;;;;;;;;;;;;;;;;;;2233:38;;;;;;;2248:5;2233:38;;2263:5;2233:38;;;;;;2226:3;2211:19;;;;;;:60;;:19;:60;;;;;;;;;;;;;;;;;;;;;;2382:37;;;;;;;2400:4;2382:37;;2412:4;2382:37;;;;;;2355:24;;;:19;:24;;;:64;;:24;:64;;;;2382:37;2355:64;;;;;;;;;;;;;;;;;;2456:35;;;;;;;;2474:3;2456:35;;2485:3;2456:35;;;;;;2429:24;;;;;;;;:62;;:24;:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;2733:13;:20;;;;:44;;;2757:13;2774:3;2757:20;;2733:44;2729:340;;;2816:35;;;;;21580:2:91;2816:35:83;;;21562:21:91;21619:2;21599:18;;;21592:30;21658:21;21638:18;;;21631:49;2793:20:83;;336:42:41;;2816:12:83;;21697:18:91;;2816:35:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2816:35:83;;;;;;;;;;;;:::i;:::-;2908:27;;;;;2793:58;;-1:-1:-1;336:42:41;;2908:19:83;;:27;;2793:58;;2908:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2908:27:83;;;;;;;;-1:-1:-1;;2908:27:83;;;;;;;;;;;;:::i;:::-;;;2904:155;;2963:50;;;;;;;;;;;;;;;;;;2995:6;2963:50;;;;;;;;;;;;;;;;;:11;:50::i;:::-;3031:13;;;;;3039:4;3031:13;;;10244:41:91;336:42:41;;3031:7:83;;10217:18:91;;3031:13:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2904:155;;;;;2779:290;2729:340;336:42:41;-1:-1:-1;;;;;3079:7:83;;1156:42;3129:31;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3121:45:83;;;;;;;;;;;;;;;;;;;;;;;;3079:88;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:42:41;-1:-1:-1;;;;;3177:7:83;;1262:42;3226:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3218:38:83;;;;;;;;;;;;;;;;;;;;;;;;3177:80;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3288:13;3305:3;3288:20;:76;;1463:42;3288:76;;;1363:42;3288:76;3268:17;:96;;;;-1:-1:-1;;;;;3268:96:83;;;;;;;;;;3400:13;-1:-1:-1;3385:29:83;;;:14;:29;;;;;;;;:36;;3375:7;:46;;;;;3385:36;;;;3375:46;;;;;;;3441:36;;3431:46;;;;;;;;;;;;3441:36;;;;;;;3431:46;;;;;;;;3514:19;:34;;;;;;:40;3647:254;;;;;;;;3514:40;;;;3647:254;;;3514:40;3589:39;;;;;;3647:254;;;;3846:3;3829:20;:41;;3867:2;3829:41;;;3857:1;3829:41;3647:254;;;;;;3693:66;3742:16;3693:48;:66::i;:::-;-1:-1:-1;;;;;3647:254:83;;;;;;3639:262;;:5;:262;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3919:186;;;;;;;;;;;;;4081:2;3919:186;;;;;;;3965:42;3919:186;;;;;;;3912:4;:193;;;;;;;;;;;;;;;;;;;;;;;;4150:17;;4122:58;;4150:17;;;4169:10;;4122:58;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4116:3:83;:64;;;;-1:-1:-1;;;;;4116:64:83;;;;;;;;;4250:5;:17;4212:75;;4250:17;;;;4269;;;-1:-1:-1;4269:17:83;;4212:75;;;:::i;:::-;-1:-1:-1;;;;;23851:55:91;;;23833:74;;23955:18;23943:31;;;23938:2;23923:18;;23916:59;-1:-1:-1;24011:21:91;24006:2;23991:18;;23984:49;23821:2;23806:18;4212:75:83;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4190:19:83;:97;;;;-1:-1:-1;;;;;4190:97:83;;;;;;;;;;4318:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4297:18:83;:45;;;;-1:-1:-1;;;;;4297:45:83;;;;;;4441:5;:24;4353:183;;;;;4441:24;;;;;;4353:183;;;20645:74:91;4479:17:83;;;;20772:18:91;;;20765:43;;;;20824:18;;;20817:43;1156:42:83;;4353:74;;20618:18:91;;4353:183:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4635:4:83;:23;4547:181;;;;;-1:-1:-1;;;;;4635:23:83;;;;4547:181;;;20645:74:91;4672:16:83;;;;20772:18:91;;;20765:43;20824:18;;;20817:43;;;;1156:42:83;;-1:-1:-1;4547:74:83;;-1:-1:-1;20618:18:91;;4547:181:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4805:5:83;;4739:78;;;;;-1:-1:-1;;;;;4805:5:83;;;4739:78;;;18492:74:91;4805:5:83;18582:18:91;;;18575:50;1262:42:83;;-1:-1:-1;4739:65:83;;-1:-1:-1;18465:18:91;;4739:78:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4893:5:83;;4827:78;;;;;-1:-1:-1;;;;;4893:5:83;;;4827:78;;;18492:74:91;4893:5:83;18582:18:91;;;18575:50;1262:42:83;;-1:-1:-1;4827:65:83;;-1:-1:-1;18465:18:91;;4827:78:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4924:17:83;;4916:37;;;;;-1:-1:-1;;;;;4924:17:83;;;4916:37;;;16279:74:91;4943:9:83;16369:18:91;;;16362:34;336:42:41;;-1:-1:-1;4916:7:83;;-1:-1:-1;16252:18:91;;4916:37:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27270:117:44;27352:28;27357:5;27364:2;27368:4;27374:5;27352:4;:28::i;:::-;27270:117;;;:::o;640:284:39:-;824:17;877:6;885:7;894:9;905:11;860:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;853:64;;640:284;;;;;;:::o;3710:110:42:-;3789:24;;;;;;;;25205:25:91;;;25246:18;;;25239:34;;;3789:11:42;;;;25178:18:91;;3789:24:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:110;2349:24;;;;;;;;25205:25:91;;;25246:18;;;25239:34;;;2349:11:42;;;;25178:18:91;;2349:24:42;25031:248:91;2273:128:39;2337:12;2368:26;:4;335:2;2368:4;;:26;:::i;:::-;2361:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2361:33:39;;2273:128;-1:-1:-1;;;;;;2273:128:39:o;2815:199:53:-;2898:14;2933:19;2940:1;2943:3;2948;2933:6;:19::i;:::-;2924:28;;2962:45;;;;;;;;;;;;;;;;;;3000:6;2962:21;:45::i;:::-;2815:199;;;;;:::o;12624:179:56:-;12715:81;12784:2;12788;12792;12731:64;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;12731:64:56;;;;;;;;;;;;;;;;;;;;12715:15;:81::i;1300:176:10:-;1377:7;1419:48;;;;868:42;1419:48;:::i;27666:837:44:-;27836:38;;;-1:-1:-1;;;;;4002:55:91;;;27836:38:44;;;;3984:74:91;;;;27836:38:44;;;;;;;;;;3957:18:91;;;;27836:38:44;;;;;;;;;;;;;27819:56;;27795:20;;27819:16;;;:56;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27792:83;;;27885:15;27914:7;27903:30;;;;;;;;;;;;:::i;:::-;27885:48;-1:-1:-1;27970:71:44;28036:4;27970:51;28018:2;27970:38;;:22;:8;27986:5;27970:15;:22::i;:::-;:26;;:38::i;:::-;:47;;:51::i;:::-;:65;;:71::i;:::-;28087:6;28083:414;;;28156:34;;;;;;;;;;;;;;;;;;;;;;28139:52;;28112:23;;-1:-1:-1;;;;;28139:16:44;;;:52;;28156:34;28139:52;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28109:82;;;28205:14;28233:10;28222:33;;;;;;;;;;;;:::i;:::-;28205:50;;28280:7;28273:4;:14;28269:144;;;28318:14;28328:4;28318:7;:14;:::i;:::-;28307:26;;;;:::i;:::-;;;28269:144;;;28383:14;28390:7;28383:4;:14;:::i;:::-;28372:26;;;;:::i;:::-;;;28269:144;28426:60;28479:6;28426:38;;:22;:8;28442:5;28426:15;:22::i;:60::-;28095:402;;27751:752;;27666:837;;;;:::o;1546:1263:53:-;1630:14;1671:3;1664;:10;;1656:85;;;;;;;27181:2:91;1656:85:53;;;27163:21:91;27220:2;27200:18;;;27193:30;27259:34;27239:18;;;27232:62;27330:32;27310:18;;;27303:60;27380:19;;1656:85:53;;;;;;;;;1975:3;1970:1;:8;;:20;;;;;1987:3;1982:1;:8;;1970:20;1966:34;;;-1:-1:-1;1999:1:53;1992:8;;1966:34;2011:12;2026:9;2032:3;2026;:9;:::i;:::-;:13;;2038:1;2026:13;:::i;:::-;2011:28;;2234:1;2229;:6;;:18;;;;;2246:1;2239:4;:8;2229:18;2225:38;;;2256:7;2262:1;2256:3;:7;:::i;:::-;2249:14;;;;;2225:38;2282:15;2296:1;1042:78;2282:15;:::i;:::-;2277:1;:20;;:46;;;;-1:-1:-1;2308:15:53;2322:1;1042:78;2308:15;:::i;:::-;2301:4;:22;2277:46;2273:82;;;2339:15;2353:1;1042:78;2339:15;:::i;:::-;2332:23;;:3;:23;:::i;2273:82::-;2459:3;2455:1;:7;2451:352;;;2478:12;2493:7;2497:3;2493:1;:7;:::i;:::-;2478:22;-1:-1:-1;2514:11:53;2528;2535:4;2478:22;2528:11;:::i;:::-;2514:25;;2557:3;2564:1;2557:8;2553:24;;2574:3;2567:10;;;;;;;2553:24;2612:1;2600:9;2606:3;2600;:9;:::i;:::-;:13;;;;:::i;:::-;2591:22;;2464:160;;2451:352;;;2638:3;2634:1;:7;2630:173;;;2657:12;2672:7;2678:1;2672:3;:7;:::i;:::-;2657:22;-1:-1:-1;2693:11:53;2707;2714:4;2657:22;2707:11;:::i;:::-;2693:25;;2736:3;2743:1;2736:8;2732:24;;2753:3;2746:10;;;;;;;2732:24;2779:9;2785:3;2779;:9;:::i;:::-;:13;;2791:1;2779:13;:::i;:::-;2770:22;;2643:160;;2630:173;1646:1163;1546:1263;;;;;:::o;9686:162::-;9770:71;9833:2;9837;9786:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;9786:54:53;;;;;;;;;;;;;;;;;;;;9770:15;:71::i;851:129:56:-;922:51;965:7;934:29;922:42;:51;;:::i;:::-;851:129;:::o;13258:156:50:-;6853:12;;;:22;;;;-1:-1:-1;;;;;6853:22:50;;;;;-1:-1:-1;6853:12:50;13371:36;6747:156;13420:143;7008:9;;;:16;;;;;;;;;;;-1:-1:-1;7008:9:50;13526:30;6909:143;13725:152;7504:10;;;;:47;;;;;;;13799:18;7504:47;;;;;;-1:-1:-1;;;;;7528:21:50;;7504:47;;;;;;13860:4;13836:34;7400:179;14946:120;15026:33;15040:4;15054:3;15026:13;:33::i;9016:133:53:-;9087:55;9134:7;9113:19;9087:46;649:196:56;180:463;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;15438:1484:50:-;15532:12;;;;15568:9;;;;15609:11;;;;-1:-1:-1;;;;;15532:12:50;;;;15568:9;;;;;;15518:11;15652:34;15532:4;15652:28;:34::i;:::-;-1:-1:-1;;;;;15702:15:50;;:10;:15;;;;;;;;;;;:21;;;;;;;;;;15734:37;;15630:56;;-1:-1:-1;15702:21:50;15734:37;;15630:56;;15759:11;;15734:37;;:::i;:::-;;;;-1:-1:-1;;15734:37:50;;;;;;;;;15724:48;;15734:37;15724:48;;;;15702:71;;;;;;;;;;-1:-1:-1;15702:71:50;:77;;;;;15697:126;;15795:17;15800:4;15806:5;15795:4;:17::i;:::-;;15697:126;-1:-1:-1;;;;;15856:15:50;;15832:21;15856:15;;;;;;;;;;;:21;;;;;;;;;;15888:37;;15856:21;;15832;;15888:37;;15905:6;;15913:11;;15888:37;;:::i;:::-;;;;;;;;;;;;;15878:48;;;;;;15856:71;;;;;;;;;;;15832:95;;15980:1;15960:4;:16;;;15942:4;:15;;;:34;;;;:::i;:::-;15941:40;15937:460;;;15997:14;16045:4;:16;;;16027:4;:15;;;:34;;;;:::i;:::-;16020:42;;:3;:42;:::i;:::-;16014:49;;:1;:49;:::i;:::-;16313:19;;;;;;;;12517:25:91;;;15997:66:50;;-1:-1:-1;16102:21:50;;;;16313:11;;;;12490:18:91;;16313:19:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16313:19:50;;;;;;;;;;;;:::i;:::-;16169:185;;;;;;;;:::i;:::-;;;;;;;;;;;;;16077:309;;;;;;;;;;;;;;:::i;:::-;;15983:414;15937:460;16444:9;;16423:32;;;;;-1:-1:-1;;;;;16297:55:91;;16423:32:50;;;16279:74:91;16369:18;;;16362:34;;;;16406:14:50;;16423:7;;;;16252:18:91;;16423:32:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16541:15;;;;;16558:16;;;;16406:49;;-1:-1:-1;16465:16:50;;12339:28;;;12334:3;12330:38;12326:46;;;;12322:54;;12305:72;;12676:42;12656:62;;12723:23;;;;12655:92;16608:9;;16586:43;;;;;-1:-1:-1;;;;;29142:55:91;;16586:43:50;;;29124:74:91;29214:18;;;29207:34;;;;29257:18;;;29250:34;;;16465:110:50;;-1:-1:-1;16586:8:50;;;;29097:18:91;;16586:43:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16641:12;16655:18;16677:31;16703:4;16677:25;:31::i;:::-;16640:68;;;;16724:7;16723:8;:29;;;;16749:3;16735:10;:17;;16723:29;16719:176;;;16790:9;;16768:41;;;;;-1:-1:-1;;;;;29142:55:91;;16768:41:50;;;29124:74:91;29214:18;;;29207:34;;;;29257:18;;;29250:34;;;16768:8:50;;;;29097:18:91;;16768:41:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16823:61:50;;;;;29497:2:91;16823:61:50;;;29479:21:91;29536:2;29516:18;;;29509:30;29575:34;29555:18;;;29548:62;29646:21;29626:18;;;29619:49;29685:19;;;-1:-1:-1;16823:61:50;;-1:-1:-1;29295:415:91;16719:176:50;16904:11;16910:4;16904:5;:11::i;:::-;15508:1414;;;;;;;;;15438:1484;;:::o;9155:381:53:-;9253:14;;679:42;9427:2;9414:16;;9229:21;;9253:14;9414:16;679:42;9463:5;9452:68;9443:77;;9380:150;;9155:381;:::o;953:236:50:-;1024:12;1052:4;:14;;:21;;;;;:::i;:::-;;;1077:1;1052:26;1048:135;;1101:19;1109:4;:10;;1101:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:7;:19::i;1048:135::-;1158:4;:14;;1151:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;953:236;;;:::o;1048:135::-;953:236;;;:::o;13111:141::-;13181:7;13207:33;13227:4;13233:6;13207:19;:33::i;:::-;:38;;13111:141;-1:-1:-1;;;13111:141:50:o;1251:343::-;1381:9;;;;1319:4;;;;;;1381:9;;1392:19;1381:4;1392:13;:19::i;:::-;1364:48;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1364:48:50;;;;;;;;;;1458:12;;;;1364:48;;-1:-1:-1;1423:12:50;;;;-1:-1:-1;;;;;1458:12:50;;:29;;1364:48;;1458:29;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1422:65;;;;1497:14;1514:38;1529:4;1540;:11;;;1535:2;:16;;;;:::i;:::-;1514:14;:38::i;:::-;1571:7;;1497:55;;-1:-1:-1;1251:343:50;;-1:-1:-1;;;;;1251:343:50:o;14704:92::-;14763:26;14784:4;14763:20;:26::i;11186:393::-;11245:12;11269:19;11301:1;:8;11312:2;11301:13;;;;:::i;:::-;11291:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11291:24:50;;11269:46;;11330:9;11325:224;11349:1;:8;11345:1;:12;11325:224;;;11378:9;11390:1;11392;11390:4;;;;;;;;:::i;:::-;;;;;;;;;;;;11509:10;;;11489:32;;;;;11482:43;-1:-1:-1;11359:3:50;;11325:224;;;-1:-1:-1;11566:6:50;11186:393;-1:-1:-1;;11186:393:50:o;4249:2492::-;4361:12;;;;4397:9;;;;4438:11;;;;4319:16;;-1:-1:-1;;;;;4361:12:50;;4397:9;;;4319:16;4481:19;4361:4;4481:13;:19::i;:::-;-1:-1:-1;;;;;4551:15:50;;:10;:15;;;;;;;;;;;:21;;;;;;;;;;4583:37;;4459:41;;-1:-1:-1;4551:21:50;4583:37;;4459:41;;4608:11;;4583:37;;:::i;:::-;;;;-1:-1:-1;;4583:37:50;;;;;;;;;4573:48;;4583:37;4573:48;;;;4551:71;;;;;;;;;;-1:-1:-1;4551:71:50;:77;;;;;4547:255;;;4648:6;4644:56;;;4674:11;4680:4;4674:5;:11::i;:::-;-1:-1:-1;;;;;4720:15:50;;:10;:15;;;;;;;;;;;:21;;;;;;;;;;4752:37;;4720:21;;:10;4752:37;;4769:6;;4777:11;;4752:37;;:::i;:::-;;;;;;;;;;;;;4742:48;;;;;;4720:71;;;;;;;;;;;4713:78;;;;;;;;4547:255;670:28;662:37;;-1:-1:-1;;;;;4811:9:50;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4835:18;4857:16;4868:4;4857:10;:16::i;:::-;4911:25;;;;;-1:-1:-1;;;;;4002:55:91;;4911:25:50;;;3984:74:91;4832:41:50;;-1:-1:-1;4884:22:50;;-1:-1:-1;4911:11:50;;;;3957:18:91;;4911:25:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4911:25:50;;;;;;;;;;;;:::i;:::-;4883:53;;;4951:5;:12;4967:1;4951:17;4947:1460;;4984:74;;;;;;32047:2:91;4984:74:50;;;32029:21:91;32066:18;;;32059:30;;;;32125:34;32105:18;;;32098:62;32196:34;32176:18;;;32169:62;32248:19;;4984:74:50;31845:428:91;4947:1460:50;5106:12;;5089:1308;5127:1;5120:3;;;:::i;:::-;;;;:8;5089:1308;;5149:12;670:28;662:37;;-1:-1:-1;;;;;5164:7:50;;5172:3;5177:5;5183:1;5177:8;;;;;;;;:::i;:::-;;;;;;;5164:22;;;;;;;;;;;;;;;-1:-1:-1;;;;;16297:55:91;;;;16279:74;;16384:2;16369:18;;16362:34;16267:2;16252:18;;16105:297;5164:22:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5149:37;-1:-1:-1;5149:37:50;5204:114;;5255:44;5276:3;5289:5;5295:1;5289:8;;;;;;;;:::i;:::-;;;;;;;;;;;;5255:44;;;-1:-1:-1;;;;;16297:55:91;;;16279:74;;16369:18;;;16362:34;16252:18;5255:44:50;;;;;;;5204:114;5341:36;5362:4;5368:5;5374:1;5368:8;;;;;;;;:::i;:::-;;;;;;;5341:20;:36::i;:::-;5336:92;;5401:8;5089:1308;;5336:92;5519:25;;;;5447:18;;;;5519:25;;5515:256;;;5568:10;5635:27;5647:4;5653:5;5659:1;5653:8;;;;;;;;:::i;:::-;;;;;;;5635:11;:27::i;:::-;5600:62;;-1:-1:-1;5600:62:50;-1:-1:-1;5600:62:50;-1:-1:-1;5600:62:50;5684:69;;5722:8;;;;5089:1308;;5684:69;5546:225;5515:256;12374:1;12339:28;;;12334:3;12330:38;12326:46;12322:54;;12305:72;;5901:57;;5900:74;;5997:29;;;5993:84;;6050:8;;;;5089:1308;;5993:84;6100:89;6110:3;6115:4;6148:6;6156:11;6131:37;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6121:48;;;;;;6179:5;6185:1;6179:8;;;;;;;;:::i;:::-;;;;;;;;;;;;6100:89;;;-1:-1:-1;;;;;33028:55:91;;;33010:74;;33132:66;33120:79;;;33100:18;;;33093:107;;;;33216:18;;;33209:34;33274:2;33259:18;;33252:34;32997:3;32982:19;6100:89:50;;;;;;;6301:58;;;;;;;;6318:5;6324:1;6318:8;;;;;;;;:::i;:::-;;;;;;;6310:17;;6301:58;;;;6329:10;6301:58;;;;6341:11;6301:58;;;;6354:4;6301:58;;;;;6207:4;:10;;:15;6218:3;-1:-1:-1;;;;;6207:15:50;-1:-1:-1;;;;;6207:15:50;;;;;;;;;;;;:21;6223:4;6207:21;;;;;;;;;;;;;;;;;:71;6256:6;6264:11;6239:37;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;6239:37:50;;;;;;6229:48;;6239:37;6229:48;;;;6207:71;;;;;;;;;;;;-1:-1:-1;6207:71:50;:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;5089:1308:50;;-1:-1:-1;;;;;6438:15:50;;:10;:15;;;;;;;;;;;:21;;;;;;;;;;6470:37;;6438:21;;:10;6470:37;;6487:6;;6495:11;;6470:37;;:::i;:::-;;;;-1:-1:-1;;6470:37:50;;;;;;;;;6460:48;;6470:37;6460:48;;;;6438:71;;;;;;;;;;-1:-1:-1;6438:71:50;:77;;;;;6417:171;;;;;;;33499:2:91;6417:171:50;;;33481:21:91;33538:2;33518:18;;;33511:30;33577:34;33557:18;;;33550:62;33648:17;33628:18;;;33621:45;33683:19;;6417:171:50;33297:411:91;6417:171:50;6603:6;6599:48;;;6625:11;6631:4;6625:5;:11::i;:::-;-1:-1:-1;;;;;6663:15:50;;:10;:15;;;;;;;;;;;:21;;;;;;;;;;6695:37;;6663:21;;:10;6695:37;;6712:6;;6720:11;;6695:37;;:::i;:::-;;;;;;;;;;;;;6685:48;;;;;;6663:71;;;;;;;;;;;6656:78;;;;;;;;4249:2492;;;;:::o;10876:304::-;10954:7;10973:11;10995;11020:2;11009:1;:8;:13;:29;;11030:1;:8;11009:29;;;11025:2;11009:29;10995:43;;11053:9;11048:106;11072:3;11068:1;:7;11048:106;;;11137:5;:1;11141;11137:5;:::i;:::-;11111:1;11113:10;11122:1;11113:6;:10;:::i;:::-;11111:13;;;;;;;;:::i;:::-;;;;;;;11103:40;;11096:47;;;;;11077:3;;11048:106;;;-1:-1:-1;11170:3:50;;10876:304;-1:-1:-1;;;;10876:304:50:o;11585:239::-;11651:12;;;11644:19;;;;;;11680:9;;;11673:16;;;;;;11699:17;11644:19;11706:10;;11651:12;11699:17;:::i;:::-;11726:18;11733:11;;;11726:18;;;11761:25;;;11754:32;;;;;;11796:21;;11803:14;;;;11796:21;:::i;1851:546::-;1986:12;;;;;1978:27;;;;;-1:-1:-1;;;;;1986:12:50;;;1978:27;;;16279:74:91;;;;16369:18;;;16362:34;;;1938:4:50;;;;1978:7;;;;16252:18:91;;1978:27:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1954:51;;2016:12;2030:23;2057:16;2068:4;2057:10;:16::i;:::-;2015:58;;-1:-1:-1;2015:58:50;-1:-1:-1;2084:15:50;2102:29;;:65;;2165:1;2102:65;;;739:78;2102:65;2186:12;;;;;2177:37;;;;;-1:-1:-1;;;;;2186:12:50;;;2177:37;;;29124:74:91;;;;29214:18;;;29207:34;;;29257:18;;;29250:34;;;2084:83:50;;-1:-1:-1;2177:8:50;;;;29097:18:91;;2177:37:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2228:22;2254:16;2265:4;2254:10;:16::i;:::-;2290:12;;;;;2281:43;;;;;-1:-1:-1;;;;;2290:12:50;;;2281:43;;;29124:74:91;;;;29214:18;;;29207:34;;;29257:18;;;29250:34;;;2225:45:50;;-1:-1:-1;2281:8:50;;-1:-1:-1;2281:8:50;;29097:18:91;;2281:43:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2343:7;:46;;;;;2374:14;2355:15;:33;;2343:46;2335:55;1851:546;-1:-1:-1;;;;;;;;1851:546:50:o;3080:534::-;3224:12;;;;;3216:27;;;;;-1:-1:-1;;;;;3224:12:50;;;3216:27;;;16279:74:91;;;;16369:18;;;16362:34;;;3158:4:50;;;;;;;;3216:7;;;;16252:18:91;;3216:27:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3192:51;;3255:14;3271:18;3293:28;3304:4;3310;3316;3293:10;:28::i;:::-;3254:67;;;;3332:15;3349:19;3372:29;3383:4;3389;3395:5;3372:10;:29::i;:::-;3506:12;;;;;3497:43;;;;;-1:-1:-1;;;;;3506:12:50;;;3497:43;;;29124:74:91;;;;29214:18;;;29207:34;;;29257:18;;;29250:34;;;3331:70:50;;-1:-1:-1;3331:70:50;-1:-1:-1;3497:8:50;;;;29097:18:91;;3497:43:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:9;:23;;;;;3571:10;3558:23;3550:57;3583:10;;-1:-1:-1;3583:10:50;-1:-1:-1;3080:534:50;;-1:-1:-1;;;;;;3080:534:50:o;2560:514::-;2648:4;2654:7;2678:14;2673:368;2707:3;2698:6;:12;2673:368;;;2736:18;2757:4;:44;;2789:1;:11;;2757:44;;;2771:12;2777:6;2771:3;:12;:::i;:::-;2765:1;:19;;2757:44;2824:12;;;;;2815:49;;;;;-1:-1:-1;;;;;2824:12:50;;;2815:49;;;29124:74:91;;;;29214:18;;;29207:34;;;29257:18;;;29250:34;;;2736:65:50;;-1:-1:-1;2815:8:50;;;;29097:18:91;;2815:49:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2880:12;2894;2910:16;2921:4;2910:10;:16::i;:::-;2879:47;;;;2945:7;:30;;;;-1:-1:-1;2957:17:50;;;2945:30;2941:90;;;3003:4;3009:6;2995:21;;;;;;;;;;2941:90;-1:-1:-1;;;2712:8:50;;2673:368;;;;3058:5;3065:1;3050:17;;;;2560:514;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:180:91:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:91;;14:180;-1:-1:-1;14:180:91:o;503:681::-;674:2;726:21;;;796:13;;699:18;;;818:22;;;645:4;;674:2;897:15;;;;871:2;856:18;;;645:4;940:218;954:6;951:1;948:13;940:218;;;1019:13;;-1:-1:-1;;;;;1015:62:91;1003:75;;1133:15;;;;1098:12;;;;976:1;969:9;940:218;;;-1:-1:-1;1175:3:91;;503:681;-1:-1:-1;;;;;;503:681:91:o;1386:250::-;1471:1;1481:113;1495:6;1492:1;1489:13;1481:113;;;1571:11;;;1565:18;1552:11;;;1545:39;1517:2;1510:10;1481:113;;;-1:-1:-1;;1628:1:91;1610:16;;1603:27;1386:250::o;1641:330::-;1683:3;1721:5;1715:12;1748:6;1743:3;1736:19;1764:76;1833:6;1826:4;1821:3;1817:14;1810:4;1803:5;1799:16;1764:76;:::i;:::-;1885:2;1873:15;-1:-1:-1;;1869:88:91;1860:98;;;;1960:4;1856:109;;1641:330;-1:-1:-1;;1641:330:91:o;1976:1857::-;2211:2;2263:21;;;2333:13;;2236:18;;;2355:22;;;2182:4;;2211:2;2396;;2414:18;;;;2451:1;2494:14;;;2479:30;;2475:39;;2537:15;;;2182:4;2580:1224;2594:6;2591:1;2588:13;2580:1224;;;2683:66;2659:22;;;2655:95;2643:108;;2774:13;;2861:9;;-1:-1:-1;;;;;2857:58:91;2842:74;;2955:11;;2949:18;2987:15;;;2980:27;;;3068:19;;2814:15;;;3100:24;;;3281:21;;;;3147:2;3229:17;;;3217:30;;3213:39;;;3171:15;;;;3326:1;3340:355;3356:8;3351:3;3348:17;3340:355;;;3458:66;3449:6;3441;3437:19;3433:92;3426:5;3419:107;3553:42;3588:6;3577:8;3571:15;3553:42;:::i;:::-;3624:17;;;;3543:52;-1:-1:-1;3667:14:91;;;;3384:1;3375:11;3340:355;;;-1:-1:-1;;;3782:12:91;;;;3718:6;-1:-1:-1;;3747:15:91;;;;2616:1;2609:9;2580:1224;;;-1:-1:-1;3821:6:91;;1976:1857;-1:-1:-1;;;;;;;;;1976:1857:91:o;4069:591::-;4139:6;4147;4200:2;4188:9;4179:7;4175:23;4171:32;4168:52;;;4216:1;4213;4206:12;4168:52;4256:9;4243:23;4285:18;4326:2;4318:6;4315:14;4312:34;;;4342:1;4339;4332:12;4312:34;4380:6;4369:9;4365:22;4355:32;;4425:7;4418:4;4414:2;4410:13;4406:27;4396:55;;4447:1;4444;4437:12;4396:55;4487:2;4474:16;4513:2;4505:6;4502:14;4499:34;;;4529:1;4526;4519:12;4499:34;4574:7;4569:2;4560:6;4556:2;4552:15;4548:24;4545:37;4542:57;;;4595:1;4592;4585:12;4542:57;4626:2;4618:11;;;;;4648:6;;-1:-1:-1;4069:591:91;;-1:-1:-1;;;;4069:591:91:o;4665:218::-;4812:2;4801:9;4794:21;4775:4;4832:45;4873:2;4862:9;4858:18;4850:6;4832:45;:::i;5184:511::-;5236:3;5274:5;5268:12;5301:6;5296:3;5289:19;5327:4;5356;5351:3;5347:14;5340:21;;5395:4;5388:5;5384:16;5418:1;5428:242;5442:6;5439:1;5436:13;5428:242;;;5507:13;;5522:66;5503:86;5491:99;;5610:12;;;;5645:15;;;;5464:1;5457:9;5428:242;;;-1:-1:-1;5686:3:91;;5184:511;-1:-1:-1;;;;;5184:511:91:o;5700:1246::-;5920:4;5949:2;5989;5978:9;5974:18;6019:2;6008:9;6001:21;6042:6;6077;6071:13;6108:6;6100;6093:22;6134:2;6124:12;;6167:2;6156:9;6152:18;6145:25;;6229:2;6219:6;6216:1;6212:14;6201:9;6197:30;6193:39;6267:2;6259:6;6255:15;6288:1;6298:619;6312:6;6309:1;6306:13;6298:619;;;6401:66;6389:9;6381:6;6377:22;6373:95;6368:3;6361:108;6498:6;6492:13;6544:2;6538:9;6575:2;6567:6;6560:18;6605:48;6649:2;6641:6;6637:15;6623:12;6605:48;:::i;:::-;6694:11;;;6688:18;6743:19;;;6726:15;;;6719:44;6688:18;6591:62;-1:-1:-1;6786:51:91;6591:62;6688:18;6786:51;:::i;:::-;6895:12;;;;6776:61;-1:-1:-1;;;6860:15:91;;;;6334:1;6327:9;6298:619;;;-1:-1:-1;6934:6:91;;5700:1246;-1:-1:-1;;;;;;;;5700:1246:91:o;7356:862::-;7518:4;7547:2;7587;7576:9;7572:18;7617:2;7606:9;7599:21;7640:6;7675;7669:13;7706:6;7698;7691:22;7744:2;7733:9;7729:18;7722:25;;7806:2;7796:6;7793:1;7789:14;7778:9;7774:30;7770:39;7756:53;;7844:2;7836:6;7832:15;7865:1;7875:314;7889:6;7886:1;7883:13;7875:314;;;7978:66;7966:9;7958:6;7954:22;7950:95;7945:3;7938:108;8069:40;8102:6;8093;8087:13;8069:40;:::i;:::-;8059:50;-1:-1:-1;8167:12:91;;;;8132:15;;;;7911:1;7904:9;7875:314;;;-1:-1:-1;8206:6:91;;7356:862;-1:-1:-1;;;;;;;7356:862:91:o;8428:1157::-;8632:4;8661:2;8701;8690:9;8686:18;8731:2;8720:9;8713:21;8754:6;8789;8783:13;8820:6;8812;8805:22;8846:2;8836:12;;8879:2;8868:9;8864:18;8857:25;;8941:2;8931:6;8928:1;8924:14;8913:9;8909:30;8905:39;8979:2;8971:6;8967:15;9000:1;9010:546;9024:6;9021:1;9018:13;9010:546;;;9089:22;;;9113:66;9085:95;9073:108;;9204:13;;9249:9;;-1:-1:-1;;;;;9245:58:91;9230:74;;9343:11;;9337:18;9375:15;;;9368:27;;;9418:58;9460:15;;;9337:18;9418:58;:::i;:::-;9534:12;;;;9408:68;-1:-1:-1;;9499:15:91;;;;9046:1;9039:9;9010:546;;10296:284;10354:6;10407:2;10395:9;10386:7;10382:23;10378:32;10375:52;;;10423:1;10420;10413:12;10375:52;10462:9;10449:23;10512:18;10505:5;10501:30;10494:5;10491:41;10481:69;;10546:1;10543;10536:12;11266:359;11453:6;11448:3;11441:19;11423:3;11489:6;11483:13;11505:73;11571:6;11566:2;11561:3;11557:12;11552:2;11544:6;11540:15;11505:73;:::i;:::-;11598:16;;;;11616:2;11594:25;;11266:359;-1:-1:-1;;;11266:359:91:o;11630:736::-;11924:4;-1:-1:-1;;;;;12034:2:91;12026:6;12022:15;12011:9;12004:34;12074:6;12069:2;12058:9;12054:18;12047:34;12117:3;12112:2;12101:9;12097:18;12090:31;12144:46;12185:3;12174:9;12170:19;12162:6;12144:46;:::i;:::-;12226:15;;12221:2;12206:18;;12199:43;-1:-1:-1;12279:22:91;;;12273:3;12258:19;;;12251:51;-1:-1:-1;12311:17:91;;12357:2;12345:15;;11630:736;-1:-1:-1;;;11630:736:91:o;12553:184::-;12605:77;12602:1;12595:88;12702:4;12699:1;12692:15;12726:4;12723:1;12716:15;12742:253;12814:2;12808:9;12856:4;12844:17;;12891:18;12876:34;;12912:22;;;12873:62;12870:88;;;12938:18;;:::i;:::-;12974:2;12967:22;12742:253;:::o;13000:334::-;13071:2;13065:9;13127:2;13117:13;;-1:-1:-1;;13113:86:91;13101:99;;13230:18;13215:34;;13251:22;;;13212:62;13209:88;;;13277:18;;:::i;:::-;13313:2;13306:22;13000:334;;-1:-1:-1;13000:334:91:o;13339:167::-;13417:13;;13470:10;13459:22;;13449:33;;13439:61;;13496:1;13493;13486:12;13511:449;13586:5;13620:18;13612:6;13609:30;13606:56;;;13642:18;;:::i;:::-;13680:116;13790:4;-1:-1:-1;;13716:2:91;13708:6;13704:15;13700:88;13696:99;13680:116;:::i;:::-;13671:125;;13819:6;13812:5;13805:21;13859:3;13850:6;13845:3;13841:16;13838:25;13835:45;;;13876:1;13873;13866:12;13835:45;13889:65;13947:6;13940:4;13933:5;13929:16;13924:3;13889:65;:::i;13965:235::-;14018:5;14071:3;14064:4;14056:6;14052:17;14048:27;14038:55;;14089:1;14086;14079:12;14038:55;14111:83;14190:3;14181:6;14175:13;14168:4;14160:6;14156:17;14111:83;:::i;14205:1264::-;14311:6;14319;14372:2;14360:9;14351:7;14347:23;14343:32;14340:52;;;14388:1;14385;14378:12;14340:52;14421:9;14415:16;14450:18;14491:2;14483:6;14480:14;14477:34;;;14507:1;14504;14497:12;14477:34;14530:22;;;;14586:4;14568:16;;;14564:27;14561:47;;;14604:1;14601;14594:12;14561:47;14630:22;;:::i;:::-;14675:32;14704:2;14675:32;:::i;:::-;14668:5;14661:47;14754:2;14750;14746:11;14740:18;14735:2;14728:5;14724:14;14717:42;14805:2;14801;14797:11;14791:18;14786:2;14779:5;14775:14;14768:42;14856:2;14852;14848:11;14842:18;14837:2;14830:5;14826:14;14819:42;14900:3;14896:2;14892:12;14886:19;14930:2;14920:8;14917:16;14914:36;;;14946:1;14943;14936:12;14914:36;14983:55;15030:7;15019:8;15015:2;15011:17;14983:55;:::i;:::-;14977:3;14970:5;14966:15;14959:80;;15078:3;15074:2;15070:12;15064:19;15108:2;15098:8;15095:16;15092:36;;;15124:1;15121;15114:12;15092:36;15161:55;15208:7;15197:8;15193:2;15189:17;15161:55;:::i;:::-;15155:3;15148:5;15144:15;15137:80;;15256:3;15252:2;15248:12;15242:19;15286:2;15276:8;15273:16;15270:36;;;15302:1;15299;15292:12;15270:36;15339:55;15386:7;15375:8;15371:2;15367:17;15339:55;:::i;:::-;15333:3;15322:15;;15315:80;-1:-1:-1;15459:2:91;15444:18;;;;15438:25;15326:5;;15438:25;;-1:-1:-1;;;;;14205:1264:91:o;15474:437::-;15553:1;15549:12;;;;15596;;;15617:61;;15671:4;15663:6;15659:17;15649:27;;15617:61;15724:2;15716:6;15713:14;15693:18;15690:38;15687:218;;15761:77;15758:1;15751:88;15862:4;15859:1;15852:15;15890:4;15887:1;15880:15;15687:218;;15474:437;;;:::o;15916:184::-;15986:6;16039:2;16027:9;16018:7;16014:23;16010:32;16007:52;;;16055:1;16052;16045:12;16007:52;-1:-1:-1;16078:16:91;;15916:184;-1:-1:-1;15916:184:91:o;16787:335::-;16866:6;16919:2;16907:9;16898:7;16894:23;16890:32;16887:52;;;16935:1;16932;16925:12;16887:52;16968:9;16962:16;17001:18;16993:6;16990:30;16987:50;;;17033:1;17030;17023:12;16987:50;17056:60;17108:7;17099:6;17088:9;17084:22;17056:60;:::i;:::-;17046:70;16787:335;-1:-1:-1;;;;16787:335:91:o;17127:312::-;17312:18;17304:6;17300:31;17289:9;17282:50;17368:2;17363;17352:9;17348:18;17341:30;17263:4;17388:45;17429:2;17418:9;17414:18;17406:6;17388:45;:::i;17444:184::-;17496:77;17493:1;17486:88;17593:4;17590:1;17583:15;17617:4;17614:1;17607:15;17633:183;17701:18;17752:10;;;17740;;;17736:27;;17775:12;;;17772:38;;;17790:18;;:::i;17821:180::-;17888:18;17926:10;;;17938;;;17922:27;;17961:11;;;17958:37;;;17975:18;;:::i;18006:313::-;18076:6;18129:2;18117:9;18108:7;18104:23;18100:32;18097:52;;;18145:1;18142;18135:12;18097:52;18177:9;18171:16;-1:-1:-1;;;;;18220:5:91;18216:54;18209:5;18206:65;18196:93;;18285:1;18282;18275:12;18636:476;18725:1;18762:5;18725:1;18776:330;18797:7;18787:8;18784:21;18776:330;;;18916:4;18848:66;18844:77;18838:4;18835:87;18832:113;;;18925:18;;:::i;:::-;18975:7;18965:8;18961:22;18958:55;;;18995:16;;;;18958:55;19074:22;;;;19034:15;;;;18776:330;;;18780:3;18636:476;;;;;:::o;19117:866::-;19166:5;19196:8;19186:80;;-1:-1:-1;19237:1:91;19251:5;;19186:80;19285:4;19275:76;;-1:-1:-1;19322:1:91;19336:5;;19275:76;19367:4;19385:1;19380:59;;;;19453:1;19448:130;;;;19360:218;;19380:59;19410:1;19401:10;;19424:5;;;19448:130;19485:3;19475:8;19472:17;19469:43;;;19492:18;;:::i;:::-;-1:-1:-1;;19548:1:91;19534:16;;19563:5;;19360:218;;19662:2;19652:8;19649:16;19643:3;19637:4;19634:13;19630:36;19624:2;19614:8;19611:16;19606:2;19600:4;19597:12;19593:35;19590:77;19587:159;;;-1:-1:-1;19699:19:91;;;19731:5;;19587:159;19778:34;19803:8;19797:4;19778:34;:::i;:::-;19908:6;19840:66;19836:79;19827:7;19824:92;19821:118;;;19919:18;;:::i;:::-;19957:20;;19117:866;-1:-1:-1;;;19117:866:91:o;19988:140::-;20046:5;20075:47;20116:4;20106:8;20102:19;20096:4;20075:47;:::i;20133:184::-;20185:77;20182:1;20175:88;20282:4;20279:1;20272:15;20306:4;20303:1;20296:15;20322:120;20362:1;20388;20378:35;;20393:18;;:::i;:::-;-1:-1:-1;20427:9:91;;20322:120::o;21726:458::-;21806:6;21859:2;21847:9;21838:7;21834:23;21830:32;21827:52;;;21875:1;21872;21865:12;21827:52;21908:9;21902:16;21941:18;21933:6;21930:30;21927:50;;;21973:1;21970;21963:12;21927:50;21996:22;;22049:4;22041:13;;22037:27;-1:-1:-1;22027:55:91;;22078:1;22075;22068:12;22027:55;22101:77;22170:7;22165:2;22159:9;22154:2;22150;22146:11;22101:77;:::i;22414:338::-;-1:-1:-1;;;;;22593:6:91;22589:55;22578:9;22571:74;22681:2;22676;22665:9;22661:18;22654:30;22552:4;22701:45;22742:2;22731:9;22727:18;22719:6;22701:45;:::i;22914:720::-;23273:3;23262:9;23255:22;23236:4;23300:50;23345:3;23334:9;23330:19;22834:1;22822:14;;22868:6;22861:4;22852:14;;22845:30;22900:2;22891:12;;22757:152;23300:50;23398:9;23390:6;23386:22;23381:2;23370:9;23366:18;23359:50;23426:37;23456:6;22834:1;22822:14;;22868:6;22861:4;22852:14;;22845:30;22900:2;22891:12;;22757:152;23426:37;23418:45;;;-1:-1:-1;;;;;23572:2:91;23564:6;23560:15;23555:2;23544:9;23540:18;23533:43;23624:2;23616:6;23612:15;23607:2;23596:9;23592:18;23585:43;;22914:720;;;;;:::o;24374:652::-;24635:66;24626:6;24621:3;24617:16;24613:89;24608:3;24601:102;24754:66;24745:6;24740:3;24736:16;24732:89;24728:1;24723:3;24719:11;24712:110;24852:6;24847:2;24842:3;24838:12;24831:28;24583:3;24888:6;24882:13;24904:75;24972:6;24967:2;24962:3;24958:12;24951:4;24943:6;24939:17;24904:75;:::i;:::-;24999:16;;;;25017:2;24995:25;;24374:652;-1:-1:-1;;;;;24374:652:91:o;25537:331::-;25642:9;25653;25695:8;25683:10;25680:24;25677:44;;;25717:1;25714;25707:12;25677:44;25746:6;25736:8;25733:20;25730:40;;;25766:1;25763;25756:12;25730:40;-1:-1:-1;;25792:23:91;;;25837:25;;;;;-1:-1:-1;25537:331:91:o;25873:546::-;26118:2;26107:9;26100:21;26081:4;26144:45;26185:2;26174:9;26170:18;26162:6;26144:45;:::i;:::-;26237:9;26229:6;26225:22;26220:2;26209:9;26205:18;26198:50;26271:33;26297:6;26289;26271:33;:::i;:::-;26257:47;;26352:9;26344:6;26340:22;26335:2;26324:9;26320:18;26313:50;26380:33;26406:6;26398;26380:33;:::i;:::-;26372:41;25873:546;-1:-1:-1;;;;;;25873:546:91:o;26424:125::-;26489:9;;;26510:10;;;26507:36;;;26523:18;;:::i;26554:287::-;26683:3;26721:6;26715:13;26737:66;26796:6;26791:3;26784:4;26776:6;26772:17;26737:66;:::i;:::-;26819:16;;;;;26554:287;-1:-1:-1;;26554:287:91:o;26846:128::-;26913:9;;;26934:11;;;26931:37;;;26948:18;;:::i;27410:112::-;27442:1;27468;27458:35;;27473:18;;:::i;:::-;-1:-1:-1;27507:9:91;;27410:112::o;27527:291::-;27704:2;27693:9;27686:21;27667:4;27724:45;27765:2;27754:9;27750:18;27742:6;27724:45;:::i;:::-;27716:53;;27805:6;27800:2;27789:9;27785:18;27778:34;27527:291;;;;;:::o;27823:383::-;27980:3;28018:6;28012:13;28034:66;28093:6;28088:3;28081:4;28073:6;28069:17;28034:66;:::i;:::-;28122:16;;;;28147:21;;;-1:-1:-1;28195:4:91;28184:16;;27823:383;-1:-1:-1;27823:383:91:o;28211:131::-;28271:5;28300:36;28327:8;28321:4;28300:36;:::i;28347:570::-;28609:34;28604:3;28597:47;28674:34;28669:2;28664:3;28660:12;28653:56;28739:12;28734:2;28729:3;28725:12;28718:34;28579:3;28781:6;28775:13;28797:73;28863:6;28858:2;28853:3;28849:12;28844:2;28836:6;28832:15;28797:73;:::i;:::-;28890:16;;;;28908:2;28886:25;;28347:570;-1:-1:-1;;28347:570:91:o;29715:430::-;29912:66;29904:6;29900:79;29895:3;29888:92;29870:3;30009:6;30003:13;30025:74;30092:6;30088:1;30083:3;30079:11;30072:4;30064:6;30060:17;30025:74;:::i;:::-;30119:16;;;;30137:1;30115:24;;29715:430;-1:-1:-1;;;29715:430:91:o;30150:168::-;30223:9;;;30254;;30271:15;;;30265:22;;30251:37;30241:71;;30292:18;;:::i;30323:184::-;30375:77;30372:1;30365:88;30472:4;30469:1;30462:15;30496:4;30493:1;30486:15;30512:709;30577:5;30630:3;30623:4;30615:6;30611:17;30607:27;30597:55;;30648:1;30645;30638:12;30597:55;30677:6;30671:13;30703:4;30726:18;30722:2;30719:26;30716:52;;;30748:18;;:::i;:::-;30794:2;30791:1;30787:10;30817:28;30841:2;30837;30833:11;30817:28;:::i;:::-;30879:15;;;30949;;;30945:24;;;30910:12;;;;30981:15;;;30978:35;;;31009:1;31006;30999:12;30978:35;31045:2;31037:6;31033:15;31022:26;;31057:135;31073:6;31068:3;31065:15;31057:135;;;31139:10;;31127:23;;31090:12;;;;31170;;;;31057:135;;;31210:5;30512:709;-1:-1:-1;;;;;;;30512:709:91:o;31226:614::-;31355:6;31363;31416:2;31404:9;31395:7;31391:23;31387:32;31384:52;;;31432:1;31429;31422:12;31384:52;31465:9;31459:16;31494:18;31535:2;31527:6;31524:14;31521:34;;;31551:1;31548;31541:12;31521:34;31574:72;31638:7;31629:6;31618:9;31614:22;31574:72;:::i;:::-;31564:82;;31692:2;31681:9;31677:18;31671:25;31655:41;;31721:2;31711:8;31708:16;31705:36;;;31737:1;31734;31727:12;31705:36;;31760:74;31826:7;31815:8;31804:9;31800:24;31760:74;:::i;:::-;31750:84;;;31226:614;;;;;:::o;32278:196::-;32317:3;32345:5;32335:39;;32354:18;;:::i;:::-;-1:-1:-1;32401:66:91;32390:78;;32278:196::o","linkReferences":{}},"methodIdentifiers":{"AMOUNT_TO_FUND()":"9127ace2","AMOUNT_TO_SEND()":"bb641b3e","ERC20()":"cc4aa204","ETH_EID()":"25996dae","HLP_CORE_WRITER()":"7ecd9ac3","HLP_EID()":"929c0579","HLP_PRECOMPILE_READ_SPOT_BALANCE()":"ba872679","HLP_PRECOMPILE_READ_USER_EXISTS()":"7773fb73","HL_LZ_ENDPOINT_V2()":"318f405a","HL_LZ_ENDPOINT_V2_MAINNET()":"c203ccab","HL_LZ_ENDPOINT_V2_TESTNET()":"c1d1ead8","HYPE()":"76e86e72","IS_TEST()":"fa7626d4","coreSpotFromChainId(uint256)":"0a853483","eidFromChainId(uint256)":"5f60057d","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getComposeMessage(bytes)":"47d7694f","hyperLiquidComposer()":"a09e7430","oft()":"9b5215f6","recovery()":"ddceafa9","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","test_erc20_refund_sender_malformed_receiver()":"12659341","test_malformed_payload()":"76e92273","test_native_refund_receiver_not_activated(uint64)":"f8ba719e","test_non_evm_sender_malformed_receiver()":"e970bd69","typeConversionTest()":"fbe021a1","userA()":"deb22e9a","userB()":"cb1a295f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"fsig\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"keysHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"SlotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"who\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slot\",\"type\":\"uint256\"}],\"name\":\"WARNING_UninitedSlot\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AMOUNT_TO_FUND\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"AMOUNT_TO_SEND\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ERC20\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"coreIndexId\",\"type\":\"uint64\"},{\"internalType\":\"int8\",\"name\":\"decimalDiff\",\"type\":\"int8\"},{\"internalType\":\"address\",\"name\":\"assetBridgeAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ETH_EID\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HLP_CORE_WRITER\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HLP_EID\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HLP_PRECOMPILE_READ_SPOT_BALANCE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HLP_PRECOMPILE_READ_USER_EXISTS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HL_LZ_ENDPOINT_V2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HL_LZ_ENDPOINT_V2_MAINNET\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HL_LZ_ENDPOINT_V2_TESTNET\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"HYPE\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"coreIndexId\",\"type\":\"uint64\"},{\"internalType\":\"int8\",\"name\":\"decimalDiff\",\"type\":\"int8\"},{\"internalType\":\"address\",\"name\":\"assetBridgeAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"coreSpotFromChainId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"erc20\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"hype\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"eidFromChainId\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"ethEid\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"hlpEid\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_composerMsg\",\"type\":\"bytes\"}],\"name\":\"getComposeMessage\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hyperLiquidComposer\",\"outputs\":[{\"internalType\":\"contract HyperLiquidComposer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oft\",\"outputs\":[{\"internalType\":\"contract OFTMock\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recovery\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_erc20_refund_sender_malformed_receiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_malformed_payload\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_dust\",\"type\":\"uint64\"}],\"name\":\"test_native_refund_receiver_not_activated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_non_evm_sender_malformed_receiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeConversionTest\",\"outputs\":[{\"internalType\":\"contract TypeConversionTest\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"userA\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"userB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/HyperLiquidComposerRefund.t.sol\":\"HyperLiquidComposerRefundTest\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@layerzerolabs/=node_modules/@layerzerolabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/\",\":forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/\"]},\"sources\":{\"contracts/HyperLiquidComposer.sol\":{\"keccak256\":\"0xd4671407c8c12decb300821bc254bc2274d252e0496730c862477bbfb8b8ea48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8969e4547f373693fccc6722d1331a577eaf3021e523caa0329c56ba00b7ce0\",\"dweb:/ipfs/QmRQixxBDhoMpeHQ6keLc9NDm3h9Y31Npkup1jxLfHrSmC\"]},\"contracts/HyperLiquidCore.sol\":{\"keccak256\":\"0x8b3ef77a81d3e487306e7c5ee70d47899c45b30a08073d784290dfeefc329726\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0665c3ef5239fc7fe9dee759df07684470f5c187e64b0307ec4165153fe8d55f\",\"dweb:/ipfs/QmQbxKLjaDUondwX25EEyq5kXkB4YTxbP1ms8XJ7a6W1c9\"]},\"contracts/interfaces/ICoreWriter.sol\":{\"keccak256\":\"0x8faa15935746558808a46034a124ae465b941a68a5a723d2ba474400bb412eb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://417cfcca8b2324b7894f809a3347fe367afe8a12f32b271bb63d39e4d577f76c\",\"dweb:/ipfs/QmTQpC2KUJfk1Gdt5Y6tNLCdJSBpjGLcswoNGrcHVgEm7k\"]},\"contracts/interfaces/IHyperLiquidComposer.sol\":{\"keccak256\":\"0xecaf495037b2a136f90e58dacb4f94c50bd26a5d71e6630858fc61666cb44136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b00da60853ff1623294e8f998bcbd4534929217abb39c813983b48a699e91ee4\",\"dweb:/ipfs/QmS93bWUZ7r9REGYjxRkV792xr6gixo5QQxGWhNWgijKqj\"]},\"contracts/library/HyperLiquidComposerCodec.sol\":{\"keccak256\":\"0x07050a19c7f7cb13876323fd73889322629fe9a3f16208ba805924579cdf5433\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://240dcc2c14e1e1884ad9028d1692127baaebf3d6d6abf01ac38e65a7ee023772\",\"dweb:/ipfs/QmQZou5KnuRxrQghpFptnbExCmN1TBRer5V5xyrHmW9tGw\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol\":{\"keccak256\":\"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf\",\"dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol\":{\"keccak256\":\"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083\",\"dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol\":{\"keccak256\":\"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933\",\"dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol\":{\"keccak256\":\"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0\",\"dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol\":{\"keccak256\":\"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b\",\"dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol\":{\"keccak256\":\"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927\",\"dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol\":{\"keccak256\":\"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d\",\"dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol\":{\"keccak256\":\"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6\",\"dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol\":{\"keccak256\":\"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97\",\"dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol\":{\"keccak256\":\"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1\",\"dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT\"]},\"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol\":{\"keccak256\":\"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680\",\"license\":\"LZBL-1.2\",\"urls\":[\"bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09\",\"dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol\":{\"keccak256\":\"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28\",\"dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol\":{\"keccak256\":\"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0\",\"dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol\":{\"keccak256\":\"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075\",\"dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol\":{\"keccak256\":\"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2\",\"dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppComposer.sol\":{\"keccak256\":\"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d\",\"dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol\":{\"keccak256\":\"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd\",\"dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol\":{\"keccak256\":\"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e\",\"dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol\":{\"keccak256\":\"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc\",\"dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol\":{\"keccak256\":\"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2\",\"dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol\":{\"keccak256\":\"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af\",\"dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82\",\"dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol\":{\"keccak256\":\"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a\",\"dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol\":{\"keccak256\":\"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e\",\"dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg\"]},\"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol\":{\"keccak256\":\"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc\",\"dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/OFT.sol\":{\"keccak256\":\"0xdc3582e4a20e02a79050c17058a1f1f42a4335d1a70be06c0a52a3fb05d4c89a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83c4bd42e68528246860a952a92a79e51e3a789dac79a0b62576ab2f609de9c7\",\"dweb:/ipfs/QmVj1x655j1cFTnPT8uBaM71TCSrhFVwPdoFkAkWhhadns\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/OFTCore.sol\":{\"keccak256\":\"0xdda89798c66928bba9e0fa44b3edf4710ff15cf46edadcf3e15c92d78fcc9ca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef0cf33304a4ae343e83e9c11bafb2516f2b256c290cba3e096455ff237fa78c\",\"dweb:/ipfs/QmQph8KfKf9o7JNoas4BmNQ9qL9whZsrchouPiUp7o4YFm\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol\":{\"keccak256\":\"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15\",\"dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol\":{\"keccak256\":\"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e\",\"dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK\"]},\"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol\":{\"keccak256\":\"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258\",\"dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/Base.sol\":{\"keccak256\":\"0xa3735a6618a3014e42bb4329ad143e3b2c59cd95094350202e4c4a06c9d585dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eef9db48d94726ec3d3fa3a84a8d520903705190f7ee7a04a065335a6aeeac4d\",\"dweb:/ipfs/QmSWmNny7TkzyqRPjGdpERAJuBwwznrGPLUqS4DZy5fX5z\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdChains.sol\":{\"keccak256\":\"0xd3edaf57db178f839d97ccee0009c2b7b20f78c2adca9028a6013acb8d5b4c5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f17329ac1d25d3e6657ca240dee0a3f9b2cf22a64a05b87dac15252dee74351\",\"dweb:/ipfs/QmPHxkEwgVpQNbU52s58RmmegrkYGj8bNKTVSW8rZm3dBm\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdCheats.sol\":{\"keccak256\":\"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41\",\"dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdConstants.sol\":{\"keccak256\":\"0x319ccdabfa2c0b2428301445873270ffea20f0e039d4fd5e6eeba65158e4e534\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b633f9d3a719e1d035ce7daa6cc051ddf89a72d34200d14cec37728e245cdabc\",\"dweb:/ipfs/QmRP7HQJpHMx1CsFrY8tXVVx1DQmi2dcb2BoGfiWaA923r\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdUtils.sol\":{\"keccak256\":\"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138\",\"dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/Test.sol\":{\"keccak256\":\"0x3dda6083a83dfa3e8526e97bcc28e862ee2442dd58fe94d5c426d65b8e38f73c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33f8c02e4dabdab86a6825125856446a8657eacd712318b51b7818e4a6f6e3f4\",\"dweb:/ipfs/QmRKSjVnrk54yr8wTK2e6QxRjiuba2H8HJSKunHAkdo7RG\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/Vm.sol\":{\"keccak256\":\"0x399d0b11c8e4e902b6c95c21c187968e62e1bd2a86b8f6dad882c399a05404c1\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://82618dd9135c30870716bb9561f238b68b0c46cff6c7311a3d4b1c35a541c633\",\"dweb:/ipfs/QmSw3gEwXthgoDAqE3gemC5JfQnBnRBTFGEJaDNBj7JwxH\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"test/ComposerCodec/TypeConversion.t.sol\":{\"keccak256\":\"0x96d25f7446bf1f0a2293910c38b5492b31229d0395a28416eef7560cd7451351\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://27ad7a0e76dce11e733f2f7f1ad51597d7f1d238a08f900479432f61e862c61b\",\"dweb:/ipfs/QmS2Bco158GqSA5PbC8SxXfV7RxDtSXRGKgDoxufxqF9gr\"]},\"test/HyperLiquidComposerRefund.t.sol\":{\"keccak256\":\"0x32ac0f8372cb30b64e1dfb0c82f2b2b5e6cfbcf219a5b31dfdcf77021bdfabdb\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e9e26f781be1b4fce0f4ffc7b43ec4937e5ec7873b36203571c6cf74a8d2a262\",\"dweb:/ipfs/QmcULRPTwPNKdWtffc9q29NeVP6uttcEzfTzpbsp77DQJu\"]},\"test/HyperliquidBase.t.sol\":{\"keccak256\":\"0xc77b543e8555c37e83628ed03a4a70eeea256b570fd2befb5e2fc6e2329a9900\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://b45f366739a2ff2c6bc7a8a4f474153a16767034523ce7def36978f0be00345a\",\"dweb:/ipfs/QmPQ7c2hR9c3pSt64uzyhYMrMtivJFSJ6aks4cPbdwH5ds\"]},\"test/mocks/CoreUserExistsMock.sol\":{\"keccak256\":\"0x77abb0ecb911c8f6bf433096151afe35b2567eba5191821a5f0b95a9759b48c3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://7cfb4bbfcebad78b48e2b5769c3421fade471cfdee055e08a72336aaf993ab73\",\"dweb:/ipfs/QmYNE9Jg5uGxzisyUUPC1efKgWx3GcNVr3gDoqaESdVck1\"]},\"test/mocks/NoFallback.sol\":{\"keccak256\":\"0x037c747ded3fb3f818ee5608c4a3324b2978568dcd533d545649de039b8af52b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6220051e78eb77334c2fedf84756e1acb2c5582ba973677f3f0ac13ea6c22664\",\"dweb:/ipfs/QmVrCa5N2DWd89vLp8aZVxDW77cU8wULzZx6VxAMmiN6iJ\"]},\"test/mocks/OFTMock.sol\":{\"keccak256\":\"0x4418ffbf7cbcc3e98033fe9869ae2c6b74a3fc22d9d5d5b927a53787b6e8d4ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://195f8028f158026b4be544c5c4dedd602b5114c43248060bead77b2b031a1aad\",\"dweb:/ipfs/QmbeMSV9NJSXAAfZVjkAqtKzr425MSTieJGn1DU28xMnM8\"]},\"test/mocks/SpotBalancePrecompileMock.sol\":{\"keccak256\":\"0x505679fd52f51ebf9c37a2eb1a0cc3cc19f5cf6d072d3bcc956d685c2a810e3d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3d5140c957eada70919aba0df0d8178becc0b972c182aa4d24d951e314ca6304\",\"dweb:/ipfs/QmRJ2QofgDTTix6kt3kn32Dz1Lu7qAPk2PSBou5cXkG4pa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.22+commit.4fc1097e"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"bytes4","name":"fsig","type":"bytes4","indexed":false},{"internalType":"bytes32","name":"keysHash","type":"bytes32","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"SlotFound","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"who","type":"address","indexed":false},{"internalType":"uint256","name":"slot","type":"uint256","indexed":false}],"type":"event","name":"WARNING_UninitedSlot","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AMOUNT_TO_FUND","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"AMOUNT_TO_SEND","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ERC20","outputs":[{"internalType":"uint64","name":"coreIndexId","type":"uint64"},{"internalType":"int8","name":"decimalDiff","type":"int8"},{"internalType":"address","name":"assetBridgeAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ETH_EID","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HLP_CORE_WRITER","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HLP_EID","outputs":[{"internalType":"uint32","name":"","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HLP_PRECOMPILE_READ_SPOT_BALANCE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HLP_PRECOMPILE_READ_USER_EXISTS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HL_LZ_ENDPOINT_V2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HL_LZ_ENDPOINT_V2_MAINNET","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HL_LZ_ENDPOINT_V2_TESTNET","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"HYPE","outputs":[{"internalType":"uint64","name":"coreIndexId","type":"uint64"},{"internalType":"int8","name":"decimalDiff","type":"int8"},{"internalType":"address","name":"assetBridgeAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"coreSpotFromChainId","outputs":[{"internalType":"uint64","name":"erc20","type":"uint64"},{"internalType":"uint64","name":"hype","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"eidFromChainId","outputs":[{"internalType":"uint32","name":"ethEid","type":"uint32"},{"internalType":"uint32","name":"hlpEid","type":"uint32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes","name":"_composerMsg","type":"bytes"}],"stateMutability":"pure","type":"function","name":"getComposeMessage","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hyperLiquidComposer","outputs":[{"internalType":"contract HyperLiquidComposer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oft","outputs":[{"internalType":"contract OFTMock","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"recovery","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_erc20_refund_sender_malformed_receiver"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_malformed_payload"},{"inputs":[{"internalType":"uint64","name":"_dust","type":"uint64"}],"stateMutability":"nonpayable","type":"function","name":"test_native_refund_receiver_not_activated"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_non_evm_sender_malformed_receiver"},{"inputs":[],"stateMutability":"view","type":"function","name":"typeConversionTest","outputs":[{"internalType":"contract TypeConversionTest","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"userA","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"userB","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@layerzerolabs/=node_modules/@layerzerolabs/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/","forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/","hardhat/=node_modules/hardhat/","solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/HyperLiquidComposerRefund.t.sol":"HyperLiquidComposerRefundTest"},"evmVersion":"shanghai","libraries":{}},"sources":{"contracts/HyperLiquidComposer.sol":{"keccak256":"0xd4671407c8c12decb300821bc254bc2274d252e0496730c862477bbfb8b8ea48","urls":["bzz-raw://f8969e4547f373693fccc6722d1331a577eaf3021e523caa0329c56ba00b7ce0","dweb:/ipfs/QmRQixxBDhoMpeHQ6keLc9NDm3h9Y31Npkup1jxLfHrSmC"],"license":"MIT"},"contracts/HyperLiquidCore.sol":{"keccak256":"0x8b3ef77a81d3e487306e7c5ee70d47899c45b30a08073d784290dfeefc329726","urls":["bzz-raw://0665c3ef5239fc7fe9dee759df07684470f5c187e64b0307ec4165153fe8d55f","dweb:/ipfs/QmQbxKLjaDUondwX25EEyq5kXkB4YTxbP1ms8XJ7a6W1c9"],"license":"MIT"},"contracts/interfaces/ICoreWriter.sol":{"keccak256":"0x8faa15935746558808a46034a124ae465b941a68a5a723d2ba474400bb412eb3","urls":["bzz-raw://417cfcca8b2324b7894f809a3347fe367afe8a12f32b271bb63d39e4d577f76c","dweb:/ipfs/QmTQpC2KUJfk1Gdt5Y6tNLCdJSBpjGLcswoNGrcHVgEm7k"],"license":"MIT"},"contracts/interfaces/IHyperLiquidComposer.sol":{"keccak256":"0xecaf495037b2a136f90e58dacb4f94c50bd26a5d71e6630858fc61666cb44136","urls":["bzz-raw://b00da60853ff1623294e8f998bcbd4534929217abb39c813983b48a699e91ee4","dweb:/ipfs/QmS93bWUZ7r9REGYjxRkV792xr6gixo5QQxGWhNWgijKqj"],"license":"MIT"},"contracts/library/HyperLiquidComposerCodec.sol":{"keccak256":"0x07050a19c7f7cb13876323fd73889322629fe9a3f16208ba805924579cdf5433","urls":["bzz-raw://240dcc2c14e1e1884ad9028d1692127baaebf3d6d6abf01ac38e65a7ee023772","dweb:/ipfs/QmQZou5KnuRxrQghpFptnbExCmN1TBRer5V5xyrHmW9tGw"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol":{"keccak256":"0xfaca7205d4211ee9208a7e59171e2301731f3d2a20c49b4a839821871f5fdd49","urls":["bzz-raw://f254bc60ac26687b5320a43a556e30777b0745abf7cd64d5f4720d9b1d1f7fdf","dweb:/ipfs/QmRSJEZVgxaC3L2DdE6s8P5qkYfM3V5JMeseeFJJqGR4xz"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroEndpointV2.sol":{"keccak256":"0xf7f941bee89ea6369950fe54e8ac476ae6478b958b20fc0e8a83e8ff1364eac3","urls":["bzz-raw://bacc29fd3866af71e59cb0bdc1cf82c882a4a7f4e2652fd413c9f12649762083","dweb:/ipfs/QmZh2toLnrQDWaNYhS5K4NoW7Vxd2GdZx9KA77vKEDLAqs"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroReceiver.sol":{"keccak256":"0x9641abba8d53b08bb517d1b74801dd15ea7b84d77a6719085bd96c8ea94e3ca0","urls":["bzz-raw://77415ae0820859e0faf3fabdce683cce9fa03ea026ae0f6fe081ef1c9205f933","dweb:/ipfs/QmXd7APqoCunQ2jYy73AHvi5gsZofLpm3SzM6FPo7zRPfL"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLib.sol":{"keccak256":"0x5cf5f24751b4e3ea1c9c5ded07cedfdfd62566b6daaffcc0144733859c9dba0c","urls":["bzz-raw://cae7e35007a714f007ea08045ef7c0cfa6c91fd2425b5028b2d49abad357a5f0","dweb:/ipfs/QmcDBs5tsiyB35b8cwzWQWNnpkawb3uuHRaqE77Hxm2tve"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessageLibManager.sol":{"keccak256":"0x919b37133adff4dc528e3061deb2789c3149971b530c61e556fb3d09ab315dfc","urls":["bzz-raw://d8ff6a8a89297fa127f86b54e0db3eba1d6a6eeb4f6398d3c84d569665ac8f1b","dweb:/ipfs/QmVSwhw6xFDrLRAX4RXaCM47yBaBtac4wf36DYEq6KCTvT"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingChannel.sol":{"keccak256":"0x0878f64dffebf58c4165569416372f40860fab546b88cd926eba0d5cb6d8d972","urls":["bzz-raw://7e1b245d58221d16d8b5e0f01ef3e289a24a7df1ace3b94239e4d5b954ad5927","dweb:/ipfs/Qmappsgp7PCY9rSSNE9Cdn4BTRX591WfCSEgq2HxhA3z6S"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingComposer.sol":{"keccak256":"0x85bc7090134529ec474866dc4bb1c48692d518c756eb0a961c82574829c51901","urls":["bzz-raw://b18b23a1643fc6636c4ad9d9023e2e6ca2d3c2a4a046482d4655bff09950598d","dweb:/ipfs/Qma6G5SqiovwrMPfgqTrRngK1HWW373Wkf9c6YP2NhXpPk"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/IMessagingContext.sol":{"keccak256":"0xff0c546c2813dae3e440882f46b377375f7461b0714efd80bd3f0c6e5cb8da4e","urls":["bzz-raw://5173fc9143bea314b159ca5a9adb5626659ef763bc598e27de5fa46efe3291a6","dweb:/ipfs/QmSLFeMFPmVeGxT4sxRPW28ictjAS22M8rLeYRu9TXkA6D"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ISendLib.sol":{"keccak256":"0xf1c07bc61e7b1dce195ed12d50f87980fbf2d63cac1326fd28287f55fe0ba625","urls":["bzz-raw://060f10ff7afc33c1c2f2b4b5ba29231fd3c943146488084d0e4ab99fce991d97","dweb:/ipfs/QmaSsefAqqEqtf8FgFUmDYMwTsAty3X1pqDb6SiFvry6B3"],"license":"MIT"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol":{"keccak256":"0x2ebbcaaab3554edcd41b581f1a72ac1806afbfb8047d0d47ff098f9af30d6deb","urls":["bzz-raw://2d4b2cf5c3b16dc76c6767f285b57c0af917972327b2be3f7cba5825402f5fc1","dweb:/ipfs/QmQQWiHE2jKEDbjzGutSoZwtApSXYfLqZt5CxEpFj8xyvT"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/libs/PacketV1Codec.sol":{"keccak256":"0xc84cf1bf785977fe1fbe7566eef902c2db68d0e163813ebe6c34921754802680","urls":["bzz-raw://de686666fc16fa432d4208d85cec87dc952faf3e481b683b9adf4b4610db4b09","dweb:/ipfs/QmdmQeopzmxqRzi9DNB4EJDrYUXFfD7fUhnGhSni4QejUW"],"license":"LZBL-1.2"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OApp.sol":{"keccak256":"0xac362c4c291fad2f1511a968424b2e78a5ad502d1c867bd31da04be742aca8c5","urls":["bzz-raw://e1f8cf9f20a2b683a53c3883972aa0676af97a24c678f461fae08e1fb056df28","dweb:/ipfs/QmPpKNqda3rgxDwnq3XiRTtT3NfWeqrCJT6LwmhYd2AoT2"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppCore.sol":{"keccak256":"0x13a9c2d1d2c1f086b8624f2e84c4a4702212daae36f701d92bb915b535cbe4cc","urls":["bzz-raw://606515dd9193551bd2c94ac8c304f3776fafcc70e544ebf441f334658b2fd5f0","dweb:/ipfs/QmZ88ey7DdZqV5taAoebabvszX5kdPMSrQCAmTteVdDtcH"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppReceiver.sol":{"keccak256":"0x0174e9f1ec4cefe4b5adc26c392269c699b9ff75965364e5b7264426a462c70b","urls":["bzz-raw://cd12bb4fe5802c53911b9a0081a2ea10639b1f99925d1e5c1b1421d1bdc17075","dweb:/ipfs/QmZonarwbKiEwQ8qoASKur2bbMjusdy9pqK9RCR4P1YPtc"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/OAppSender.sol":{"keccak256":"0x518cf4adca601923ed4baa6619846a253ea32b8d8775f8bc1faa3dfac7f67c20","urls":["bzz-raw://d42b471418efadcc3577ef3fa9f8f504e8bed7db90c3b0c862038d8b29529eb2","dweb:/ipfs/QmZETDQiJN4U92fmLKo8T9ZbdDf7BNBUUvo9H7M7GqAyFU"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppComposer.sol":{"keccak256":"0xe5014c411acb2b59dd74ae74a1bab02cf32d94a41a548a5ab553d64aeeb55dae","urls":["bzz-raw://29dfb7bc121002fc7e7931c34eb17af0ae0f0127dcc3199511c83a58a917160d","dweb:/ipfs/QmPdq1wcRRBdUP169LHCLoLuPRunN9eR71TQN42FjGpowx"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppCore.sol":{"keccak256":"0x40e49f2de74506e1da5dcaed53a39853f691647f4ceb0fccc8f49a68d3f47c58","urls":["bzz-raw://4a1deb2a6a3eb1fb83936c9578469142bff470295f403d7d07d955a76be3adbd","dweb:/ipfs/QmS9bjSfBaE4YhQ1PCQ1TknbEPbNfRXzBK9E7SaPGyiZEv"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppMsgInspector.sol":{"keccak256":"0x339654e699043c400cad92de209aa23855ce10211c31cf4114042cc5224d3b7c","urls":["bzz-raw://5222afde59bf086f67b39e0288ad36343f4f5ed683d250533f256a5db956f37e","dweb:/ipfs/QmbEG9EMYsK3Y6Cz7QbNtkW4kHGzMuhp2y2seSoL8v1A5b"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppOptionsType3.sol":{"keccak256":"0x9fc08a51e9d7c9c710c4eb26f84fe77228305ad7da63fa486ff24ebf2f3bc461","urls":["bzz-raw://2e2eea8a93bb9fc3f629767118b362e9b4bda2443ff95eae21c6a894f3e334cc","dweb:/ipfs/QmPRRNjAB4U19ke4gr3U7ZJGtdcVBxdXVBZ2BmB1riFkP7"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/interfaces/IOAppReceiver.sol":{"keccak256":"0xd26135185e19b3732746d4a9e2923e896f28dec8664bab161faea2ee26fcdc3d","urls":["bzz-raw://c236dfe386b508be33c3a1a74ae1d4fd64b8c77ae207767e9dbed0f2429518a2","dweb:/ipfs/QmXVbZJjfryTRti98uN3BMh5qh4K7NuEs1RSCoBjRoYd4q"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/oapp/libs/OAppOptionsType3.sol":{"keccak256":"0x5275636cd47e660a2fdf6c7fe9d41ff3cc866b785cc8a9d88c1b8ca983509f01","urls":["bzz-raw://a59dd6e3cfcc332f45a13d44585eb228588c4b9d470cbb19852df5753a4571af","dweb:/ipfs/QmQJF1QU3MKhvmw42eq61u9z3bzKJJKMsEdQVYyPyYgTVS"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/OAppPreCrimeSimulator.sol":{"keccak256":"0x205a0abfd8b3c9af2740769f251381b84999b8e9347f3cd50de3ef8290a17750","urls":["bzz-raw://d9778d7d5da941af2029410b6ac212f915ea1785573ae2865b0ed8f779fcca82","dweb:/ipfs/QmNkVEkfecvgubgnMuaT5fEfSExd95vz8DQHhpZtMrVRjH"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IOAppPreCrimeSimulator.sol":{"keccak256":"0x5d24db150949ea8e6437178e65a942e8c8b7f332e5daf32750f56b23b35b5bb2","urls":["bzz-raw://1b1dcea0267234654126f926a1b405743606d7b5e49185b621afb7bd94d18b9a","dweb:/ipfs/QmZ9BXQmbWJcrhHKuBs4yhNtbCV5WUpUY3AXSX7rkWwX6y"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/interfaces/IPreCrime.sol":{"keccak256":"0xc8d869f27ef8ceb2e13fdf6a70682fd4dee3f90c4924eb8e125bc1e66cb6af84","urls":["bzz-raw://66bf49d59c14832ea0ddddcd12d512d4f9bd0fd254a1368442587bf3e77fe73e","dweb:/ipfs/QmYUAvsyuUPiSYjbL4zVo6ZtiRSLCUPDvCesqgdZWbSGDg"],"license":"MIT"},"node_modules/@layerzerolabs/oapp-evm/contracts/precrime/libs/Packet.sol":{"keccak256":"0xcb2fb1c5b2eb3731de78b479b9c2ab3bba326fe0b0b3a008590f18e881e457a6","urls":["bzz-raw://f70724c61d226743c2bd8ba6c09758805e4339780978949ce5b333c106be4edc","dweb:/ipfs/QmX5rV9K1N7RgTz9xtf8CDG8SrYiitGAzFh9ec2tbnEec4"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/OFT.sol":{"keccak256":"0xdc3582e4a20e02a79050c17058a1f1f42a4335d1a70be06c0a52a3fb05d4c89a","urls":["bzz-raw://83c4bd42e68528246860a952a92a79e51e3a789dac79a0b62576ab2f609de9c7","dweb:/ipfs/QmVj1x655j1cFTnPT8uBaM71TCSrhFVwPdoFkAkWhhadns"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/OFTCore.sol":{"keccak256":"0xdda89798c66928bba9e0fa44b3edf4710ff15cf46edadcf3e15c92d78fcc9ca8","urls":["bzz-raw://ef0cf33304a4ae343e83e9c11bafb2516f2b256c290cba3e096455ff237fa78c","dweb:/ipfs/QmQph8KfKf9o7JNoas4BmNQ9qL9whZsrchouPiUp7o4YFm"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/interfaces/IOFT.sol":{"keccak256":"0xc60c7b4374b3d89f33b8de982f463c92374a8548800c816fe776f0ec76351fb0","urls":["bzz-raw://9e2ae9efc2a93373e822b148b3a3b50e3562c8c317f2e71d73cf4a11dede9d15","dweb:/ipfs/QmahCbqvqEcWLJpqE6EbHHTuSbnGWyo35ZBVqoyKv18BSF"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTComposeMsgCodec.sol":{"keccak256":"0xaae73d6eb8b9561c43f1802f3c416c00ccd35f172b711f9781ccdf1b25a40db5","urls":["bzz-raw://7beda2d895ae9e15269dd261a492ce0a29b498e5bebf088ed6f2ae6a5185719e","dweb:/ipfs/QmScog2tW1YVyEPLVcUVqGGc85ub46sA28nUKNzFEZcFdK"],"license":"MIT"},"node_modules/@layerzerolabs/oft-evm/contracts/libs/OFTMsgCodec.sol":{"keccak256":"0x5358948017669c03e157f871d8c38e988f9004dbd0801ad3119d2487f0d40b0b","urls":["bzz-raw://c7d0f1bf32a80af9b99cd93fefa373dac5c27463351cc35f62b9c2439d5b9258","dweb:/ipfs/Qmb81qoxzMwV3PkPANRvnXf4fJTsZ5sjJ8r2df9V2vhh6q"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/Base.sol":{"keccak256":"0xa3735a6618a3014e42bb4329ad143e3b2c59cd95094350202e4c4a06c9d585dd","urls":["bzz-raw://eef9db48d94726ec3d3fa3a84a8d520903705190f7ee7a04a065335a6aeeac4d","dweb:/ipfs/QmSWmNny7TkzyqRPjGdpERAJuBwwznrGPLUqS4DZy5fX5z"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdChains.sol":{"keccak256":"0xd3edaf57db178f839d97ccee0009c2b7b20f78c2adca9028a6013acb8d5b4c5e","urls":["bzz-raw://0f17329ac1d25d3e6657ca240dee0a3f9b2cf22a64a05b87dac15252dee74351","dweb:/ipfs/QmPHxkEwgVpQNbU52s58RmmegrkYGj8bNKTVSW8rZm3dBm"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdCheats.sol":{"keccak256":"0x0fa6ec03602648b62cce41aab2096e6b7e052f2846075d967b6958dd586db746","urls":["bzz-raw://cd84e2ca9c1eaed6b76768cc12bb8c1af8289170ea8b7706f58d516460d79c41","dweb:/ipfs/QmQ7BK7co6DE4eWUqMyv11s5eHYkS1tyx8tDSZGZVtf2aK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdConstants.sol":{"keccak256":"0x319ccdabfa2c0b2428301445873270ffea20f0e039d4fd5e6eeba65158e4e534","urls":["bzz-raw://b633f9d3a719e1d035ce7daa6cc051ddf89a72d34200d14cec37728e245cdabc","dweb:/ipfs/QmRP7HQJpHMx1CsFrY8tXVVx1DQmi2dcb2BoGfiWaA923r"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/StdUtils.sol":{"keccak256":"0x7274081e11c05164fd8eadde4de8305c033e58a43008dea58065f3170ccf0737","urls":["bzz-raw://e9801614b6c9d3e472982e6cc68f5f1ad03682f84eafb686be65633c7132d138","dweb:/ipfs/QmcQSUcrm2A7XuektnxJjvYGmZtBeA6LKPxCXRqdXBX776"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/Test.sol":{"keccak256":"0x3dda6083a83dfa3e8526e97bcc28e862ee2442dd58fe94d5c426d65b8e38f73c","urls":["bzz-raw://33f8c02e4dabdab86a6825125856446a8657eacd712318b51b7818e4a6f6e3f4","dweb:/ipfs/QmRKSjVnrk54yr8wTK2e6QxRjiuba2H8HJSKunHAkdo7RG"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/Vm.sol":{"keccak256":"0x399d0b11c8e4e902b6c95c21c187968e62e1bd2a86b8f6dad882c399a05404c1","urls":["bzz-raw://82618dd9135c30870716bb9561f238b68b0c46cff6c7311a3d4b1c35a541c633","dweb:/ipfs/QmSw3gEwXthgoDAqE3gemC5JfQnBnRBTFGEJaDNBj7JwxH"],"license":"MIT OR Apache-2.0"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31","urls":["bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09","dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"test/ComposerCodec/TypeConversion.t.sol":{"keccak256":"0x96d25f7446bf1f0a2293910c38b5492b31229d0395a28416eef7560cd7451351","urls":["bzz-raw://27ad7a0e76dce11e733f2f7f1ad51597d7f1d238a08f900479432f61e862c61b","dweb:/ipfs/QmS2Bco158GqSA5PbC8SxXfV7RxDtSXRGKgDoxufxqF9gr"],"license":"UNLICENSED"},"test/HyperLiquidComposerRefund.t.sol":{"keccak256":"0x32ac0f8372cb30b64e1dfb0c82f2b2b5e6cfbcf219a5b31dfdcf77021bdfabdb","urls":["bzz-raw://e9e26f781be1b4fce0f4ffc7b43ec4937e5ec7873b36203571c6cf74a8d2a262","dweb:/ipfs/QmcULRPTwPNKdWtffc9q29NeVP6uttcEzfTzpbsp77DQJu"],"license":"UNLICENSED"},"test/HyperliquidBase.t.sol":{"keccak256":"0xc77b543e8555c37e83628ed03a4a70eeea256b570fd2befb5e2fc6e2329a9900","urls":["bzz-raw://b45f366739a2ff2c6bc7a8a4f474153a16767034523ce7def36978f0be00345a","dweb:/ipfs/QmPQ7c2hR9c3pSt64uzyhYMrMtivJFSJ6aks4cPbdwH5ds"],"license":"UNLICENSED"},"test/mocks/CoreUserExistsMock.sol":{"keccak256":"0x77abb0ecb911c8f6bf433096151afe35b2567eba5191821a5f0b95a9759b48c3","urls":["bzz-raw://7cfb4bbfcebad78b48e2b5769c3421fade471cfdee055e08a72336aaf993ab73","dweb:/ipfs/QmYNE9Jg5uGxzisyUUPC1efKgWx3GcNVr3gDoqaESdVck1"],"license":"UNLICENSED"},"test/mocks/NoFallback.sol":{"keccak256":"0x037c747ded3fb3f818ee5608c4a3324b2978568dcd533d545649de039b8af52b","urls":["bzz-raw://6220051e78eb77334c2fedf84756e1acb2c5582ba973677f3f0ac13ea6c22664","dweb:/ipfs/QmVrCa5N2DWd89vLp8aZVxDW77cU8wULzZx6VxAMmiN6iJ"],"license":"MIT"},"test/mocks/OFTMock.sol":{"keccak256":"0x4418ffbf7cbcc3e98033fe9869ae2c6b74a3fc22d9d5d5b927a53787b6e8d4ea","urls":["bzz-raw://195f8028f158026b4be544c5c4dedd602b5114c43248060bead77b2b031a1aad","dweb:/ipfs/QmbeMSV9NJSXAAfZVjkAqtKzr425MSTieJGn1DU28xMnM8"],"license":"MIT"},"test/mocks/SpotBalancePrecompileMock.sol":{"keccak256":"0x505679fd52f51ebf9c37a2eb1a0cc3cc19f5cf6d072d3bcc956d685c2a810e3d","urls":["bzz-raw://3d5140c957eada70919aba0df0d8178becc0b972c182aa4d24d951e314ca6304","dweb:/ipfs/QmRJ2QofgDTTix6kt3kn32Dz1Lu7qAPk2PSBou5cXkG4pa"],"license":"UNLICENSED"}},"version":1},"id":81}